j'aimerai avoir vôtre avis sur ma configuration IpTables.
C'est une configuration "simple" qui normalement refuse tout en entrée et sortie sauf quelques ports spécifiés.
J’espère ne pas avoir fait d'erreur, mon but étant de tout bloquer sauf mes applications qui doivent se connecter sur internet.
Par la suite et après avoir lu toutes les doc sur iptables {c'est trèeees long :s} je compléterai ce fichier.
Je pense que c'est "le minimum" a avoir, certain me diront que ce n'est pas nécessaire de filtrer les sortie mais je préfère l'avoir.
Voici la config:
Code : Tout sélectionner
#!/bin/bash
echo Mes Règles iptables.
# Chargement des modules du suivi de connexion.
modprobe ip_conntrack ; # Module principal du suivi de connexion
modprobe ip_conntrack_ftp ; # Module du suivi de connexion FTP
modprobe ip_conntrack_irc ; # Module du suivi de connexion IRC
echo - Chargement des modules ip_conntrack : [OK]
# J'efface toutes les règles existantes dans iptables.
iptables -t filter -F
iptables -t filter -X
echo - Vidage : [OK]
# Je mets en place les regles par défaut (on refuse tout).
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
echo - Interdire toute connexion : [OK]
# J'autorise l'interface loopback à dialoguer avec elle-même.
iptables -t filter -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
iptables -t filter -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
echo - Autoriser loopback : [OK]
# J'interdit les PC de l'exterieur de faire des ping.
iptables -A INPUT -p icmp -j DROP
echo - Interdire le ping entrant : [OK]
# Je refuse certaines requetes.
iptables -N SCANS
iptables -A SCANS -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A SCANS -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p udp --dport 33434:33523 -j DROP
# Je rejet les paquets bizarres.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
echo - Refus de certaines requetes : [OK]
# Dropper silencieusement tous les paquets broadcastés.
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
echo - Droppe des paquets broadcastés : [OK]
# RFC 1413 - Identification Protocol.
#iptables -A INPUT -p tcp --destination-port auth -j REJECT --reject-with tcp-reset
echo - RFC 1413 : [OK]
# Ne pas casser les connexions établies.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo - Ne pas casser les connexions établies : [OK]
# J'accepte la sortie de certain protocoles:
iptables -A OUTPUT -p TCP --dport http -j ACCEPT # Port 80 (Http)
iptables -A OUTPUT -p TCP --dport https -j ACCEPT # Port 443 (Https)
iptables -A OUTPUT -p TCP --dport pop3 -j ACCEPT # Port 110 (Pop3)
iptables -A OUTPUT -p TCP --dport smtp -j ACCEPT # Port 25 (Smtp)
iptables -A OUTPUT -p TCP --dport ftp-data -j ACCEPT # Port 20 (Ftp Data)
iptables -A OUTPUT -p TCP --dport ftp -j ACCEPT # Port 21 (Ftp)
iptables -A OUTPUT -p TCP --dport ssh -j ACCEPT # Port 22 (Ssh)
iptables -A OUTPUT -p TCP --dport 1863 -j ACCEPT # (Msn Pidgin)
iptables -A OUTPUT -p UDP --dport 53 -j ACCEPT # (Dns)
iptables -A OUTPUT -p TCP --dport 995 -j ACCEPT # (Pop3s)
iptables -A OUTPUT -p TCP --dport 993 -j ACCEPT # (Imaps)
iptables -A OUTPUT -p UDP --dport 465 -j ACCEPT # (Urd)
iptables -A OUTPUT -p TCP --dport 8000 -j ACCEPT # (Shoutcast)
iptables -A OUTPUT -p TCP --dport 5222 -j ACCEPT # (xmpp)
echo - Autorisation protocole de sortie : [OK]
# On log les anomalies et les paquets rejetés.
iptables -A INPUT -m state --state INVALID -m limit --limit 4/s -j LOG --log-prefix "INPUT INVALID"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state NEW,RELATED -p tcp --tcp-flags ALL SYN -j DROP
iptables -A INPUT -p tcp --destination-port auth -j REJECT --reject-with tcp-reset
iptables -A INPUT -m limit --limit 4/s -j LOG --log-prefix "INPUT bad "
iptables -A INPUT -j DROP
echo - Log des anomalies et des paquets rejetés : [OK]
# MEMO:
#-I = insert rule, on ajoute un règle en tête du filtre.
#-A = append rule, on ajoute une règle à la fin du filtre.
#-D = delete, on efface une règle.
#-R = replace, on remplace un règle.
#-L = list, on liste un chaîne.
#-F = flush, on efface les règle d’une chaîne.
#-P = Policy, réaction par défaut.
#Sauvegarde
rc.d save iptables
exit 0
http://forums.archlinux.fr/post89569.html#p89569