Introduction
NacerAdamouSaidou regroupe ici les règles et bonnes habitudes à respecter lors de l'exécution de différentes tâches techniques, en plus de celles présentées dans les différentes pages du wiki. Cette page servira aussi de base de documentation pour quiconque interviendra sur les systèmes en place à N'djamena.
== Installation de serveur ==
- Références:
Je reprendrai ici des informations/instructions/conseils publiés dans les pages en références afin de disposer d'une page uniforme ayant le moins possible de références externes.
- 1- Installation d'un serveur
- le système recommendé (obligatoire) est debian squeeze
- bios à l'heure UTC
- cpu non overclocké, boot on power, AHCI si disques SATA
- installation du système minimal
- sur serveur physique: 2 disques raid1 (md0 pour /boot (128Mo), md1 en lvm)
pour le reste, suivre les conseils de la page http://wiki.auf.org/wikiteki/Partitionnement
- les sources de paquets (/etc/apt/sources.list) doit contenir au minimum les infos suivantes:
deb http://ftp.fr.debian.org/debian/ squeeze main deb http://security.debian.org/ squeeze/updates main deb http://ftp.fr.debian.org/debian/ squeeze-updates main deb http://apt.auf.org/ squeeze auf
- configurer une adresse statique (/etc/network/interfaces)
- désinstaller les paquets suivants: isc-dhcp-client, isc-dhcp-common (vu qu'on utilise l'adressage statique sur les serveurs)
- configurer le nom de l'hôte (/etc/hosts, /etc/hostname)
- /etc/hosts
127.0.0.1 localhost <ip-serveur> <nom-fqdn> <nom>
- /etc/hostname
Par exemple:
paranoia.td.auf.org
- vérifier que tout est ok:
hostname -f
pour s'assurer que le hostname est bien mis;
host <nom d'hôte>
pour s'assurer de l'association <nom d'hôte> - <adresse ip> en plus d'autres vérification sur le dns avec les outils comme nslookup ou dig comme par exemple:
dig -x <adresse ip de la machine> @<ip serveur dns>
pour s'assurer que le mapping inverse fonctionne bien,
dig @<ip serveur dns> <nom d'hôte>
pour le mapping direct.
- indiquer les dns et domaine par défaut de la machine (/etc/resolv.conf)
- j'utilise le(s) serveur(s) dns de mon isp + mon serveur dns publique pour mes serveurs. La raison: j'économise un peu de trafic réseau (mon serveur dns publique est authoritative-only, donc il n'accepte pas de requête récursive).
- j'utilise mon serveur dns privé pour les serveurs internes: le dns privé est autoritative pour les domaines dont j'ai la responsabilité et forward le reste aux dns de l'isp (pour la raison précédente)
- installer et configurer sudo
- je m'attribue via sudo tous les droits.
- installer et configurer ssh
- je copie ma clé publique
ssh-copy-id nacer@<ip serveur>
- j'interdit l'accès par mot de passe après avoir vérifié que l'étape précédente est ok
# /etc/ssh/sshd_config PasswordAuthentication no
- j'interdit la connexion avec le compte root
# /etc/ssh/sshd_config PermitRootLogin no
- mettre en place le port knocking systématiquement pour l'accès aux serveurs publiques
- installer et configurer ntp/ntpdate
- sur mes serveurs, j'utilise les serveurs ntp de mon isp (ils sont les plus proches).
- tous les postes internes auf, à l'exception des serveurs, utilisent mon serveur ntp interne. Les autres clients du réseau peuvent utiliser un serveur externe.
- un check rapide avec
root@ns:/etc# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== absolut.taide.n 193.219.192.2 3 u 113 64 2 2640.49 1071.58 0.000 alf.taide.net 193.219.192.6 4 u 111 64 2 2780.98 1142.23 0.000
La colonne reach doit avoir une valeur > 0 pour chacun des serveurs.
installer et configurer la boîte à outils minimale (selon moi): iproute, mtr, netdiag, tcpdump, iptraf, less, vim, manpages-fr, apticron et apt-listchanges, logcheck, etckeeper/auf-git-etc, dnsutils, nmap,telnet, tripwire?
- installer et configurer exim4-daemon-light sur les serveurs non destinés à jouer le rôle de serveur de mail
A propos d'Apache (idées)
- pour les serveurs apache accessible en publique, réduire la quantité d'informations diffusée dans les pages autogénérées:
dans le fichier /etc/apache2/conf.d/security, mettre les paramètres ServerTokens et ServerSignature aux valeurs suivantes:
ServerTokens Prod ServerSignature Off
s'assurer que dans le fichier /etc/apache2/conf.d/charset on a bien:
AddDefaultCharset UTF-8
A propose de php (idées)
- réduire la quantité d'informations que retourne php:
# /etc/php5/apache2/php.ini expose_php = Off date.timezone = <la bonne donnée>
A propos des certificats (idées)
- lire les pages du wiki relatives à ce sujet
- chaque serveur publique doit disposer d'un certificat
= Logiciels à regarder de près =
- Ossec
- ...