OVH : Sécurisation du serveur Mandriva (SSH, firewall iptables, fail2ban…)


Avant d’aller plus loin dans l’ajout de services (mail par exemple), je vous propose un petit article sur la sécurisation d’un serveur.

Mon article est tiré du très bon site alsacration que nous connaissons tous !

  1. SSH
    Ce service est installé par défaut avec votre distribution Mandriva sur les serveurs OVH. Par mesure de sécurité, il est conseillé de changer le port d’écoute. Par défaut, on est sur le port 22. Pour la suite de ce tutoriel, je vais configurer ssh sur le port 2222. Ceci est modifiable dans le fichier etc/ssh/sshd_config . Rechercher le paramètre port et modifier 22 en 2222.
  2. vi /etc/ssh/sshd_config

    Port 2222 # Changer le port par défaut
    PermitRootLogin no # Ne pas permettre de login en root
    Protocol 2 # Protocole v2
    #AllowUsers MONUSER # N'autoriser qu'un utilisateur précis

    Redémarrez le service SSH après ces modifications :
    /etc/init.d/ssh restart

  3. IPtables / Netfilter
    Iptables est le module qui fournit à Linux les fonctions de pare-feu, de traduction d’adresse et d’historisation du trafic réseau. Netfilter fonctionne en mode noyau. Il intercepte et manipule les paquets IP avant et après le routage.

    iptables est la commande qui permet à un administrateur réseaux de configurer Netfilter en espace utilisateur. iptables configure la gestion des paquets réseaux IPv4. Pour la gestion des paquets réseaux IPv6, on utilise la commande ip6tables.

    Nous allons créer un script qui sera lancé à chaque démarrage pour mettre en place des règles de base.

    vi /etc/init.d/firewall

    #!/bin/sh

    # Vider les tables actuelles
    iptables -t filter -F

    # Vider les règles personnelles
    iptables -t filter -X

    # Interdire toute connexion entrante et sortante
    iptables -t filter -P INPUT DROP
    iptables -t filter -P FORWARD DROP
    iptables -t filter -P OUTPUT DROP

    # —

    # Ne pas casser les connexions etablies
    iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

    # Autoriser loopback
    iptables -t filter -A INPUT -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -o lo -j ACCEPT

    # ICMP (Ping)
    iptables -t filter -A INPUT -p icmp -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -j ACCEPT

    # —

    # SSH In
    iptables -t filter -A INPUT -p tcp –dport 2222 -j ACCEPT

    # SSH Out
    iptables -t filter -A OUTPUT -p tcp –dport 2222 -j ACCEPT

    # DNS In/Out
    iptables -t filter -A OUTPUT -p tcp –dport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -p udp –dport 53 -j ACCEPT
    iptables -t filter -A INPUT -p tcp –dport 53 -j ACCEPT
    iptables -t filter -A INPUT -p udp –dport 53 -j ACCEPT

    # NTP Out
    iptables -t filter -A OUTPUT -p udp –dport 123 -j ACCEPT

    # HTTP + HTTPS Out
    iptables -t filter -A OUTPUT -p tcp –dport 80 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 443 -j ACCEPT

    # SERVEUR Web
    # HTTP + HTTPS In
    iptables -t filter -A INPUT -p tcp –dport 80 -j ACCEPT
    iptables -t filter -A INPUT -p tcp –dport 443 -j ACCEPT
    iptables -t filter -A INPUT -p tcp –dport 8443 -j ACCEPT

    # FTP Out
    iptables -t filter -A OUTPUT -p tcp –dport 20:21 -j ACCEPT

    # serveur FTP
    # FTP In
    iptables -t filter -A INPUT -p tcp –dport 20:21 -j ACCEPT
    iptables -t filter -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

    # Mail SMTP:25
    iptables -t filter -A INPUT -p tcp –dport 25 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 25 -j ACCEPT

    # Mail POP3:110
    iptables -t filter -A INPUT -p tcp –dport 110 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 110 -j ACCEPT

    # Mail IMAP:143
    iptables -t filter -A INPUT -p tcp –dport 143 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 143 -j ACCEPT

    # Mail POP3S:995
    iptables -t filter -A INPUT -p tcp –dport 995 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 995 -j ACCEPT

    chmod +x /etc/init.d/firewall pour rendre ce fichier exécutable
    puis /etc/init.d/firewall pour le lancer.
    (au prochain reboot, toutes vos règles seront perdues…l’article de référence vous explique comment lancer ces règles au démarrage)

  4. Fail2ban
    Fail2ban est un script surveillant les accès réseau grâce aux logs des serveurs. Lorsqu’il détecte des erreurs d’authentification répétées, il prend des contre-mesures en bannissant l’adresse IP grâce à iptables. Cela permet d’éviter nombre d’attaques bruteforce et/ou par dictionnaire.

    Installation

    urpmi fail2ban

    Configuration

    vim /etc/fail2ban/fail2ban.conf
    vim /etc/fail2ban/jail.local

    Attention, si vous souhaitez surveiller ssh, attention à bien changer le port dans jail.local !
    Pour relancer le service /etc/init.d/fail2ban restart

  5. Rkhunter

    Rootkit Hunter est un programme de détection de rootkits. Vous pouvez l’installer grâce à :

    urpmi rkhunter

    Les 2 fichiers principaux de configuration sont /etc/default/rkhunter et /etc/rkhunter.conf

  6. Voilà…La suite au prochain épisode ;)

  1. Pas encore de commentaire.

Vous devez être connecté pour poster un commentaire.

  1. Pas encore de rétrolien.