{{tag>sysadmin netadmin securité}} :TODO_DOCUPDATE: ====== Sécurité ====== Quelques bonnes pratiques pour améliorer la sécurité sur les serveurs. ===== Mises à jours système ===== ===== Réseau ===== Si l’hôte n'est pas nomade ou si le fonctionnement ne le requiert pas, désactiver les protocoles: * DHCP * IPv6 Le wiki [[netadmin: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. ===== Droits d'accès ===== 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. ===== Notification de connexion ===== Lors de la connexion en root, un mail de notification peut être envoyé automatiquement en modifiant le fichier bashrc. à voir avec ssh. ===== ssh ===== Le port **ssh** par défaut peut être modifié. Utiliser de préférence l'authentification par clé. ===== Limiter la durée des sessions inactives ===== 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 ===== Interdire la compilation ===== 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 ===== Pare-feu ===== ==== UFW ==== 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. ==== Règles 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 ===== Veille des logs ===== **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). ===== Veille des programmes ===== **rkhunter** ou **chkrootkit** permettent de surveiller les binaires installés et notifient toute modification non prévue. ===== Sauvegarde des fichiers de config ===== ===== Références ===== * http://www.alsacreations.com/tuto/lire/622-Securite-firewall-iptables.html * https://www.youtube.com/watch?v=QxNsyrftJ8I