#!/bin/sh # Chemin vers iptables IPTABLES=/usr/sbin/iptables MODPROBE=/sbin/modprobe # Loading modules $MODPROBE ip_conntrack_ftp $MODPROBE ip_conntrack_irc #################################################### # On vide la table # #################################################### $IPTABLES -F #################################################### # Log des paquets rejett� # #################################################### $IPTABLES -N LOG_DROP $IPTABLES -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : ' $IPTABLES -A LOG_DROP -j DROP #################################################### # Log des paquets accept� # #################################################### $IPTABLES -N LOG_ACCEPT $IPTABLES -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : ' $IPTABLES -A LOG_ACCEPT -j ACCEPT #################################################### # Log des paquets rejet� par protection # #################################################### $IPTABLES -N LOG_PROTECT $IPTABLES -A LOG_PROTECT -j LOG --log-prefix '[IPTABLES PROTECT] : ' $IPTABLES -A LOG_PROTECT -j DROP #################################################### # Quelques protections de base # #################################################### $IPTABLES -N PROTECT # Syn flood $IPTABLES -A PROTECT -p tcp ! --syn -m state --state NEW,INVALID -j LOG_PROTECT # Spoofing $IPTABLES -A PROTECT -s 127.0.0.0/8 -j LOG_PROTECT $IPTABLES -A PROTECT -s 10.0.0.0/8 -j LOG_PROTECT $IPTABLES -A PROTECT -s 169.254.0.0/12 -j LOG_PROTECT $IPTABLES -A PROTECT -s 172.16.0.0/12 -j LOG_PROTECT #################################################### # Autoriser la connexion sur les services h�erg� # #################################################### $IPTABLES -N SERVICES # Acces FTP $IPTABLES -A SERVICES -p tcp --dport 20:21 -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A SERVICES -p tcp --dport 45000:45050 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Acc� FTP actif $IPTABLES -A SERVICES -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT # Acc� SSH ( tcp 2022 ) $IPTABLES -A SERVICES -p tcp --dport 2022 -m state --state NEW,ESTABLISHED -j ACCEPT # Serveur web ( tcp 80 ) $IPTABLES -A SERVICES -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT # Acc� MySQL (tcp 3306) $IPTABLES -A SERVICES -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A SERVICES -p udp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT # Acc� BitTorrent tcp,udp 40000-40100) $IPTABLES -A SERVICES -p tcp --dport 40000:40100 -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A SERVICES -p udp --dport 40000:40100 -m state --state NEW,ESTABLISHED -j ACCEPT #################################################### # Masquage de l'adresse IP # #################################################### #################################################### # politique par d�aut: On rejette tout # # qui entre, on accepte tout ce qui sort # #################################################### $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP #################################################### # On laisse tout passer sur le looppback # #################################################### $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT #################################################### # On laisse passer les ping # #################################################### $IPTABLES -A INPUT -p icmp -j ACCEPT #################################################### # R�olution DNS # #################################################### # R�olution DNS ( udp 53 ) $IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT $IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT #################################################### # Connexion Sortantes autoris�s # #################################################### # On laisse rentrer toute les connections �ablie $IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT #$IPTABLES -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT #################################################### # Mise en ouvre du firewall # #################################################### $IPTABLES -A INPUT -j PROTECT $IPTABLES -A INPUT -j SERVICES #################################################### # Puit pour les paquets non trait� # #################################################### $IPTABLES -A INPUT -j LOG_DROP # $IPTABLES -A OUTPUT -j LOG_ACCEPT $IPTABLES -A FORWARD -j LOG_DROP