Pare-feu

Un article de Wikiserveur.

Jump to: navigation, search
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