Chapitre 158 minIntermédiaire
Aide-mémoire : fichiers, commandes et ports des services Linux
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- retrouver la commande qui teste la configuration de chaque service ;
- retrouver les fichiers, les journaux et les ports de chaque service.
Cet aide-mémoire rassemble, service par service, les fichiers de configuration, les commandes de test et de rechargement, et les ports des services Linux vus dans ce cours, pour Debian 13. Il sert à réviser la veille d'un TP ou d'une épreuve, et à retrouver vite une commande pendant une intervention. Chaque ligne renvoie à son chapitre pour les explications.
Vérifier avant de recharger
| Service | Tester la configuration | Appliquer | Chapitre |
|---|---|---|---|
| Nginx | sudo nginx -t | sudo systemctl reload nginx | 2 |
| Apache | sudo apachectl configtest | sudo systemctl reload apache2 | 3 |
| PHP-FPM | sudo php-fpm8.4 -t | sudo systemctl reload php8.4-fpm | 4 |
| MariaDB | mariadbd --help --verbose (lit les fichiers) | sudo systemctl restart mariadb | 5 |
| HAProxy | sudo haproxy -c -f /etc/haproxy/haproxy.cfg | sudo systemctl reload haproxy | 10 |
| keepalived | sudo keepalived -t -f /etc/keepalived/keepalived.conf | sudo systemctl reload keepalived | 10 |
| Samba | testparm -s | sudo systemctl restart smbd | 9 |
| NFS | sudo exportfs -v après sudo exportfs -ra | (appliqué par exportfs -ra) | 9 |
| SSH | sudo sshd -t | sudo systemctl reload ssh | 9 |
| Postfix | sudo postfix check ; postconf -n | sudo systemctl reload postfix | 11 |
| Dovecot | sudo doveconf -n | sudo systemctl reload dovecot | 11 |
| rsyslog | sudo rsyslogd -N1 | sudo systemctl restart rsyslog | 12 |
| nftables | sudo nft -c -f /etc/nftables.conf | sudo systemctl reload nftables (puis relancer fail2ban) | 13 |
| fail2ban | sudo fail2ban-client -t | sudo systemctl restart fail2ban | 13 |
| sudo | sudo visudo -c | (immédiat) | 8 |
| SSSD | sudo sssctl config-check | sudo systemctl restart sssd | 8 |
Les fichiers de configuration
| Service | Fichiers principaux | Journaux |
|---|---|---|
| Nginx | /etc/nginx/nginx.conf, sites-available/, sites-enabled/, snippets/fastcgi-php.conf, proxy_params | /var/log/nginx/ |
| Apache | /etc/apache2/apache2.conf, ports.conf, sites-available/, mods-enabled/, conf-available/security.conf | /var/log/apache2/ |
| PHP-FPM | /etc/php/8.4/fpm/php.ini, /etc/php/8.4/fpm/pool.d/*.conf | /var/log/php8.4-fpm.log, journal de chaque pool |
| MariaDB | /etc/mysql/mariadb.conf.d/50-server.cnf, tes fichiers 60-*.cnf | journalctl -u mariadb |
| Certbot | /etc/letsencrypt/live/<nom>/, renewal/<nom>.conf | /var/log/letsencrypt/ |
| Magasin de confiance | /usr/local/share/ca-certificates/*.crt puis update-ca-certificates | — |
| GLPI | /var/www/glpi, /etc/glpi, /var/lib/glpi, inc/downstream.php | /var/log/glpi/ |
| realmd, SSSD | /etc/sssd/sssd.conf (droits 600), /etc/krb5.conf, /etc/krb5.keytab | journalctl -u sssd, /var/log/sssd/ |
| Samba | /etc/samba/smb.conf, /etc/krb5.conf, /etc/nsswitch.conf | /var/log/samba/ |
| NFS | /etc/exports (serveur), /etc/fstab (client) | journalctl -u nfs-server |
| HAProxy | /etc/haproxy/haproxy.cfg, /etc/haproxy/certs/ | journalctl -u haproxy |
| keepalived | /etc/keepalived/keepalived.conf | journalctl -u keepalived |
| Postfix | /etc/postfix/main.cf, master.cf, sasl_passwd, generic | journalctl -u postfix@- |
| Dovecot | /etc/dovecot/local.conf, conf.d/ | journalctl -u dovecot |
| rsyslog | /etc/rsyslog.conf, /etc/rsyslog.d/*.conf | /var/log/syslog (une fois rsyslog installé) |
| Agent Wazuh | /var/ossec/etc/ossec.conf | /var/ossec/logs/ossec.log |
| nftables | /etc/nftables.conf | journalctl -k -g <préfixe> |
| fail2ban | /etc/fail2ban/jail.d/*.conf | /var/log/fail2ban.log |
| Réseau, nom, heure | /etc/network/interfaces, /etc/hosts, /etc/resolv.conf, /etc/chrony/sources.d/ | journalctl -u networking |
Les commandes de diagnostic
| Question | Commande |
|---|---|
| Le service tourne-t-il ? | systemctl status <service> |
| Pourquoi s'est-il arrêté ? | journalctl -u <service> -n 50 --no-pager |
| Qu'est-ce qui écoute, sur quelle adresse ? | sudo ss -tlnup |
| Le service répond-il en local ? | curl -I http://localhost, curl -kI https://localhost |
| Le port est-il joignable depuis le client ? | nc -zv <serveur> <port> |
| Les paquets arrivent-ils au serveur ? | sudo tcpdump -ni ens18 port <port> |
| Le nom se résout-il ? | host <nom>, getent hosts <nom>, host -t SRV _ldap._tcp.ad.sorbier.example |
| Quel certificat est présenté ? | openssl s_client -connect <nom>:443 -servername <nom> </dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName |
| Quels certificats Let's Encrypt, quelles dates ? | sudo certbot certificates |
| L'heure est-elle juste ? | chronyc tracking, chronyc sources |
| Le serveur est-il bien membre du domaine ? | realm list, id <compte>, sudo klist -k (SSSD) ; wbinfo -t, wbinfo -u (winbind) |
| Qui est connecté à la base ? | sudo mariadb -e "SHOW PROCESSLIST;" |
| Que contient la file d'attente des courriels ? | mailq, sudo postqueue -f |
| Quelles adresses sont bloquées ? | sudo fail2ban-client status <prison> |
| Quelles règles de pare-feu ? | sudo nft list ruleset |
| Quel processus, sous quel compte ? | ps -o user,pid,cmd -C <programme> |
Qui exécute quoi : les comptes des services
Un service bien installé travaille sous un compte sans privilège, et ce compte n'écrit que là où c'est nécessaire. Quand un service ne peut pas lire ou écrire un fichier, c'est par ce tableau qu'on commence.
| Service | Compte des processus de travail | Doit pouvoir écrire dans | Doit seulement lire |
|---|---|---|---|
| Nginx | www-data (maître en root) | /var/log/nginx/ (par le maître), rien d'autre | Les racines des sites, les certificats (lus par le maître) |
| Pool PHP-FPM d'une application | Le compte du pool (suivi, glpi) | Les dossiers de données et de journaux de l'application | Le code de l'application, propriété de root |
| MariaDB | mysql | /var/lib/mysql/ | /etc/mysql/ |
| Postfix | postfix (maître en root) | /var/spool/postfix/ | /etc/postfix/ ; sasl_passwd reste lisible par root seul |
| Dovecot | dovecot, puis le compte de l'utilisateur pour sa boîte | Le Maildir de chaque utilisateur | /etc/dovecot/ |
| Samba | root pour smbd, puis l'identité de l'utilisateur connecté | Les dossiers partagés, selon les droits de l'utilisateur | /etc/samba/ |
| HAProxy | haproxy, enfermé dans /var/lib/haproxy | Rien | Le certificat .pem, lu au démarrage |
| SSSD | root (choix du paquet Debian) | /var/lib/sss/ (cache) | /etc/sssd/sssd.conf (droits 600), la keytab |
| Agent Wazuh | wazuh (et root pour la collecte) | /var/ossec/ | Les journaux qu'il collecte |
| Certbot | root, lancé par certbot.timer | /etc/letsencrypt/ | — |
Deux règles qui découlent de ce tableau : le code d'une application n'appartient jamais au compte qui l'exécute, et une clé privée n'est lisible que par root ou par le seul compte du service qui l'utilise.
Les ports à connaître
| Port | Protocole | Service |
|---|---|---|
| TCP 22 | SSH, SFTP | OpenSSH |
| TCP 25 | SMTP entre serveurs | Postfix |
| UDP et TCP 53 | DNS | Contrôleurs de domaine |
| TCP 80 | HTTP | Nginx, Apache, HAProxy |
| UDP et TCP 88 | Kerberos | Contrôleurs de domaine |
| UDP 123 | NTP | chrony vers les contrôleurs |
| TCP 389, UDP 389 | LDAP, découverte du contrôleur | Contrôleurs de domaine |
| TCP 443 | HTTPS | Nginx, Apache, HAProxy |
| TCP 445 | SMB | Samba, serveurs Windows |
| UDP et TCP 464 | Changement de mot de passe Kerberos | Contrôleurs de domaine |
| TCP 587 | Soumission SMTP | Relais du fournisseur, Postfix |
| TCP 636 | LDAPS | Contrôleurs de domaine |
| TCP 993 | IMAP en TLS | Dovecot |
| TCP 1514, 1515 | Événements et enregistrement des agents | Serveur Wazuh |
| TCP 2049 | NFS version 4 | nfs-kernel-server |
| TCP 3306 | MariaDB, MySQL | mariadbd |
| TCP 6514 | Syslog sur TLS | rsyslog vers srv-journaux |
| TCP 8404 | Page de statistiques (choix du cours) | HAProxy |
| IP 112 | VRRP | keepalived |
Le plan d'adressage du cours
| Machine | Adresse | VLAN |
|---|---|---|
| Passerelle du VLAN 20 (pfSense) | 192.168.10.190 | 20 SERVEURS 192.168.10.176/28 |
srv-ad, srv-ad2 | 192.168.10.177, .181 | 20 |
srv-journaux (syslog, Wazuh, Grafana) | 192.168.10.180 | 20 |
srv-glpi | 192.168.10.184 | 20 |
srv-partages | 192.168.10.185 | 20 |
| Adresse virtuelle du site de suivi | 192.168.10.225 | 60 DMZ 192.168.10.224/28, passerelle .238 |
srv-web1, srv-web2 | 192.168.10.226, .227 | 60 |
lb1, lb2 | 192.168.10.228, .229 | 60 |
| Postes | 192.168.10.64/26 | 10 |
| Entrepôt | 192.168.10.128/27 | 30 |
| Poste d'administration | 192.168.10.209 | 99 ADMIN 192.168.10.208/28 |
| Adresse publique du pare-feu | 203.0.113.17 | Internet |