Quelques bonnes pratiques pour améliorer la sécurité sur les serveurs.
Si l’hôte n'est pas nomade ou si le fonctionnement ne le requiert pas, désactiver les protocoles:
Le wiki parametrage-hote-sans-routage présente les paramétrages réseau recommandés par l'ANSSI sur des poste n'offrant pas de service de routage.
De manière générale, limiter la surface d'attaque en n'installant que les services nécessaires au fonctionnement.
Par défaut les droits notamment en lecture sont assez permissifs: un utilisateur peut lire le contenu des fichiers et répertoires des autres utilisateurs.
Lors de la connexion en root, un mail de notification peut être envoyé automatiquement en modifiant le fichier bashrc. à voir avec ssh.
Le port ssh par défaut peut être modifié. Utiliser de préférence l'authentification par clé.
Les shells (bash,ksh,zsh) ont une variable TMOUT qui quand elle est définie indique le délai d'inactivité (timeout) au bout duquel la session interactive sera automatiquement clôturée limitant ainsi les risques de compromission du système et la consommation inutile de ressources en cas d'oubli de fermeture de session.
Exporter la variable dans le fichier .profile:
# Interrompt la session interactive apres 5 min d'inactivité export TMOUT=300
Limiter l’exécution des compilateurs et installateurs à root:
chmod o-x /usr/bin/gcc-4.1 chmod o-x /usr/bin/make chmod o-x /usr/bin/apt-get chmod o-x /usr/bin/aptitude chmod o-x /usr/bin/dpkg
Uncomplicated Fire Wall est facile à mettre en place et à administrer, il sécurise rapidement une machine. A privilégier pour tout hôte sans spécificités de services. Ne requiert pas de connaissances approfondies d'iptables.
Au minimum:
# Tout ce qui n'est pas explicitement autorisé sera ignoré iptables --policy INPUT DROP iptables --policy OUTPUT DROP iptables --policy FORWARD DROP # Autoriser la boucle locale (loopback) iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # Tout le trafic sortant est autorisé s'il est liée à une connexion entrante autorisée iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Tout paquet entrant est autorisé s'il est lié a une sortie explicitement autorisée et établie iptables -A INPUT -m state --state RELATED,ESTABLISHED - j ACCEPT # Autoriser les requêtes ICMP entrantes en provenance de l'interface lan iptables -A INPUT -i lan -p icmp -s 192.168.0.0/24 -j ACCEPT
fail2ban surveille l'acces aux services fournis par le système et peut réagir automatiquement en cas de comportement suspect (DoS, attaque en force brute).
rkhunter ou chkrootkit permettent de surveiller les binaires installés et notifient toute modification non prévue.