Nicolas Le Borgne

Développeur

Le fichier /etc/services

Le 18 avril 2021

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 🙂.

Sources

© 2021 Nicolas Le Borgne