Pare-feu
Un article de Wikiserveur.
| Cet article est une ébauche à compléter. |
Liste des ports utilisés par le serveur :
- FTP : port 21, protocole TCP
- SSH : port 22, protocole TCP
- SMTP : port 25, protocole TCP
- DNS : port 53, protocole TCP et UDP
- HTTP : port 80, protocole TCP
- POP3 : port 110, protocole TCP
- IMAP : port 143, protocole TCP
- HTTPS : port 443, protocole TCP
Ajouts suplementaires :
- MUNIN : port 4949, protocole TCP
- TEAMSPEAK : port 8767, protocole UDP
- STEAM : port 27015, protocole TCP
- FTP PASSIF : port 20, protocole TCP
- FTP ACTIF : ports 60000 à 65535, protocole TCP (bourrin, faire plutot un suivi de connexion par la suite)
[modifier] Premiere version
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT #/sbin/iptables -A INPUT -i eth0 -s 82.236.136.196 -p tcp --dport 22 -j ACCEPT #/sbin/iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT # Regle apache standard /sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # Regle anti DOS HTTP #/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 --syn -m limit --limit 5/second -j ACCEPT #/sbin/iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT #/sbin/iptables -A INPUT -i eth0 -p tcp --dport 143 -j ACCEPT #/sbin/iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -s 82.236.136.196 -p tcp --dport 4949 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -s 88.191.30.43 -p tcp --dport 4949 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 6881:6999 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p udp --dport 8767 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 60000:65535 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p icmp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -j REJECT # Regles anti bruteforce ssh /sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set /sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j DROP
Pour supprimer toutes ces regles :
/sbin/iptables -F INPUT
[modifier] Seconde version (script)
#!/bin/sh # VARIABLES IPTABLES="/sbin/iptables" IF="eth0" TCP_IN_PORTS="21 22 25 53 80 110 143 443 4949" UDP_IN_PORTS="53 8767" # REMISE à ZERO des règles de filtrage $IPTABLES -F $IPTABLES -t nat -F # DEBUT des "politiques par défaut" # Les connexions entrantes sont bloquées par défaut $IPTABLES -P INPUT DROP # Les connexions sortantes sont acceptées par défaut $IPTABLES -P OUTPUT ACCEPT # FIN des "politiques par défaut" # DEBUT des règles de filtrage # Pas de filtrage sur l'interface de "loopback" $IPTABLES -A INPUT -i lo -j ACCEPT # Accepte les packets entrants relatifs à des connexions déjà établies $IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # autoriser le ping $IPTABLES -A INPUT -i $IF -p icmp -j ACCEPT # Autorisation des requetes tcp sur les ports suivants for port in `echo $TCP_IN_PORTS` do $IPTABLES -A INPUT -p tcp --dport $port -j ACCEPT done # Autorisation des requetes udp sur les ports suivants for port in `echo $UDP_IN_PORTS` do $IPTABLES -A INPUT -p udp --dport $port -j ACCEPT done # Regles anti bruteforce ssh $IPTABLES -I INPUT -p tcp --dport 22 -i $IF -m state --state NEW -m recent --set $IPTABLES -I INPUT -p tcp --dport 22 -i $IF -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j DROP # La règle par défaut pour la chaine INPUT devient "REJECT" $IPTABLES -A INPUT -j REJECT # FIN des règles de filtrage

