Le fichier /etc/services
Suite à une installation de fail2ban
, j'ai souhaité changer le numéro de port ssh
. Cela implique donc de revoir la configuration de fail2ban
, qui appliquera des restrictions basées sur le port par défaut, 22
. En ouvrant la configuration /etc/fail2ban/jail.conf
, on ne retrouve pas le port 22
... Mais une variable ! Dommage de remplacer toutes les variables par le nouveau port en perdant son bénéfice ...
# /etc/fail2ban/jail.conf
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Après quelques recherches, il s'avère que la variable est initialisée à partir du fichier /etc/services
. Le fichier est en fait un annuaire des ports déclarés à l'IANA (Internet Assigned Numbers Authority). Il existe donc des apis pour lire ce fichier :
# /etc/services
ssh 22/udp # SSH Remote Login Protocol
ssh 22/tcp # SSH Remote Login Protocol
La bonne pratique semble donc de mettre à jour le numéro de port ssh
dans le fichier /etc/services
, permettant ainsi à tous les services sur la machine d'utiliser le bon port. À noter que le fichier peut très bien être enrichi avec des ports spécifiques aux logiciels que vous développez, et ainsi partager cet élément de configuration 🙂.