Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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

ServiceTester la configurationAppliquerChapitre
Nginxsudo nginx -tsudo systemctl reload nginx2
Apachesudo apachectl configtestsudo systemctl reload apache23
PHP-FPMsudo php-fpm8.4 -tsudo systemctl reload php8.4-fpm4
MariaDBmariadbd --help --verbose (lit les fichiers)sudo systemctl restart mariadb5
HAProxysudo haproxy -c -f /etc/haproxy/haproxy.cfgsudo systemctl reload haproxy10
keepalivedsudo keepalived -t -f /etc/keepalived/keepalived.confsudo systemctl reload keepalived10
Sambatestparm -ssudo systemctl restart smbd9
NFSsudo exportfs -v après sudo exportfs -ra(appliqué par exportfs -ra)9
SSHsudo sshd -tsudo systemctl reload ssh9
Postfixsudo postfix check ; postconf -nsudo systemctl reload postfix11
Dovecotsudo doveconf -nsudo systemctl reload dovecot11
rsyslogsudo rsyslogd -N1sudo systemctl restart rsyslog12
nftablessudo nft -c -f /etc/nftables.confsudo systemctl reload nftables (puis relancer fail2ban)13
fail2bansudo fail2ban-client -tsudo systemctl restart fail2ban13
sudosudo visudo -c(immédiat)8
SSSDsudo sssctl config-checksudo systemctl restart sssd8

Les fichiers de configuration

ServiceFichiers principauxJournaux
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-*.cnfjournalctl -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.keytabjournalctl -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.confjournalctl -u keepalived
Postfix/etc/postfix/main.cf, master.cf, sasl_passwd, genericjournalctl -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.confjournalctl -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

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

ServiceCompte des processus de travailDoit pouvoir écrire dansDoit seulement lire
Nginxwww-data (maître en root)/var/log/nginx/ (par le maître), rien d'autreLes racines des sites, les certificats (lus par le maître)
Pool PHP-FPM d'une applicationLe compte du pool (suivi, glpi)Les dossiers de données et de journaux de l'applicationLe code de l'application, propriété de root
MariaDBmysql/var/lib/mysql//etc/mysql/
Postfixpostfix (maître en root)/var/spool/postfix//etc/postfix/ ; sasl_passwd reste lisible par root seul
Dovecotdovecot, puis le compte de l'utilisateur pour sa boîteLe Maildir de chaque utilisateur/etc/dovecot/
Sambaroot pour smbd, puis l'identité de l'utilisateur connectéLes dossiers partagés, selon les droits de l'utilisateur/etc/samba/
HAProxyhaproxy, enfermé dans /var/lib/haproxyRienLe certificat .pem, lu au démarrage
SSSDroot (choix du paquet Debian)/var/lib/sss/ (cache)/etc/sssd/sssd.conf (droits 600), la keytab
Agent Wazuhwazuh (et root pour la collecte)/var/ossec/Les journaux qu'il collecte
Certbotroot, 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

PortProtocoleService
TCP 22SSH, SFTPOpenSSH
TCP 25SMTP entre serveursPostfix
UDP et TCP 53DNSContrôleurs de domaine
TCP 80HTTPNginx, Apache, HAProxy
UDP et TCP 88KerberosContrôleurs de domaine
UDP 123NTPchrony vers les contrôleurs
TCP 389, UDP 389LDAP, découverte du contrôleurContrôleurs de domaine
TCP 443HTTPSNginx, Apache, HAProxy
TCP 445SMBSamba, serveurs Windows
UDP et TCP 464Changement de mot de passe KerberosContrôleurs de domaine
TCP 587Soumission SMTPRelais du fournisseur, Postfix
TCP 636LDAPSContrôleurs de domaine
TCP 993IMAP en TLSDovecot
TCP 1514, 1515Événements et enregistrement des agentsServeur Wazuh
TCP 2049NFS version 4nfs-kernel-server
TCP 3306MariaDB, MySQLmariadbd
TCP 6514Syslog sur TLSrsyslog vers srv-journaux
TCP 8404Page de statistiques (choix du cours)HAProxy
IP 112VRRPkeepalived

Le plan d'adressage du cours

MachineAdresseVLAN
Passerelle du VLAN 20 (pfSense)192.168.10.19020 SERVEURS 192.168.10.176/28
srv-ad, srv-ad2192.168.10.177, .18120
srv-journaux (syslog, Wazuh, Grafana)192.168.10.18020
srv-glpi192.168.10.18420
srv-partages192.168.10.18520
Adresse virtuelle du site de suivi192.168.10.22560 DMZ 192.168.10.224/28, passerelle .238
srv-web1, srv-web2192.168.10.226, .22760
lb1, lb2192.168.10.228, .22960
Postes192.168.10.64/2610
Entrepôt192.168.10.128/2730
Poste d'administration192.168.10.20999 ADMIN 192.168.10.208/28
Adresse publique du pare-feu203.0.113.17Internet

Chapitre terminé !

Tu as lu ce chapitre jusqu'au bout. Passe au suivant tant que c'est frais.

chapitres
–
de série
–
du cours
–
Cours suivant : Windows ServerRevoir le sommaire du cours