#!/bin/sh# Chemin vers iptablesIPTABLES=/usr/sbin/iptablesMODPROBE=/sbin/modprobe# Loading modules$MODPROBE ip_conntrack_ftp#$MODPROBE ip_conntrack_irc##################################################### On vide la table #####################################################$IPTABLES -F##################################################### Log des paquets rejettés #####################################################$IPTABLES -N LOG_DROP$IPTABLES -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '$IPTABLES -A LOG_DROP -j DROP##################################################### Log des paquets acceptés #####################################################$IPTABLES -N LOG_ACCEPT$IPTABLES -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '$IPTABLES -A LOG_ACCEPT -j ACCEPT##################################################### Log des paquets rejetés 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ébergés #####################################################$IPTABLES -N SERVICES# Acces FTP$IPTABLES -A SERVICES -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT$IPTABLES -A SERVICES -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT# Serveur web ( tcp 80 )$IPTABLES -A SERVICES -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT# Accès CVS ( tcp 2401 )$IPTABLES -A SERVICES -p tcp --dport 2401 -m state --state NEW,ESTABLISHED -j ACCEPT# Accès BitTorrent (tcp/udp 6881/6885)$IPTABLES -A SERVICES -p tcp --dport 6881:6885 -m state --state NEW,ESTABLISHED -j ACCEPT$IPTABLES -A SERVICES -p udp --dport 6881:6885 -m state --state NEW,ESTABLISHED -j ACCEPT# Échange direct de fichier jabber (tcp 6886)$IPTABLES -A SERVICES -p tcp --dport 6886 -m state --state NEW,ESTABLISHED -j ACCEPT$IPTABLES -A SERVICES -p udp --dport 6886 -m state --state NEW,ESTABLISHED -j ACCEPT##################################################### Autorisation pour certaines IP #####################################################$IPTABLES -N SAFE_IPS$IPTABLES -A SAFE_IPS -s xxx.xxx.xxx.xxx -j ACCEPT$IPTABLES -A SAFE_IPS -s xxx.xxx.xxx.xxx -j ACCEPT$IPTABLES -A SAFE_IPS -s xxx.xxx.xxx.xxx -j ACCEPT##################################################### politique par défaut: 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ésolution DNS ###################################################### Résolution DNS ( udp 53 )$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT##################################################### Connexion Sortantes autorisées ###################################################### On laisse rentrer toute les connections établie$IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -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 SAFE_IPS$IPTABLES -A INPUT -j SERVICES##################################################### Puit pour les paquets non traités #####################################################$IPTABLES -A INPUT -j LOG_DROP# $IPTABLES -A OUTPUT -j LOG_ACCEPT$IPTABLES -A FORWARD -j LOG_DROP