include("../../menu.php"); ?>
###################################################################### # C O N F I G U R A T I O N F I R E W A L L # # (c) 2003 A. CANONNE # http://www.canonne.net ###################################################################### ###################################################################### # D E F I N I T I O N D E V A R I A B L E S ###################################################################### ip_boulot1="xxx.xxx.xxx.xxx" ###################################################################### # I N I T I A L I S A T I O N R E S E A U / K E R N E L ###################################################################### # Activation du forwarding # C'est pas pour faire joli, on aura des règles # de forward et il faut bien que les paquets # traversent la machine, donc on met ce fichier à 1 echo 1 > /proc/sys/net/ipv4/ip_forward # Alors la, on va appliquer quelques astuces # pour empêcher les attaques de type spoofing # et bloquer les réponses ICMP du firewall, # comme ça c'est très propre. Attention, le # fait de bloquer le trafic ICMP sur # le firewall bloque les pings. # Je veux pas de spoofing #if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] #then # for filtre in /proc/sys/net/ipv4/conf/*/rp_filter # do # echo 1 > $filtre # done #fi # pas de icmp #echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ###################################################################### # I N I T I A L I S A T I O N D E S C H A I N E S ###################################################################### # Nous vidons les chaînes : iptables -F # Nous supprimons d'éventuelles chaînes personnelles : iptables -X # Nous les faisons pointer par défaut sur DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Nous faisons de même avec toutes les autres tables, # à savoir "nat" et "mangle", mais en les faisant pointer # par défaut sur ACCEPT. Ca ne pose pas de problèmes # puisque tout est bloqué au niveau "filter" iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT ###################################################################### # G E S T I O N M A C H I N E L O C A L E ###################################################################### # Nous considérons que la machine elle même est sûre # et que les processus locaux peuvent communiquer entre eux # via l'interface locale : iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT ###################################################################### # G E S T I O N F I R E W A L L -> L A N ###################################################################### #on permet toutes les liaisons firewall-LAN #iptables -A INPUT -i eth0 -m state --state ESTABLISHED -j ACCEPT #iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT #on permet l'utilisation de VNC iptables -A INPUT -i eth0 -p tcp --sport 5900 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 5900 -m state --state NEW,ESTABLISHED -j ACCEPT ###################################################################### # G E S T I O N L A N -> F I R E W A L L ###################################################################### #on permet toutes les liaisons LAN-firewall #iptables -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED -j ACCEPT #on permet l'acces au serveur web iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT #on permet l'acces au serveur smtp iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT #on permet l'acces au serveur imap iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT #on permet l'acces au serveur ssh iptables -A INPUT -i eth0 -p tcp --dport 2201 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 2201 -m state --state ESTABLISHED -j ACCEPT #on permet l'acces au serveur Samba iptables -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p udp --dport 137 -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED -p udp --sport 137 -j ACCEPT iptables -A INPUT -i eth0 -m state --state ESTABLISHED -p udp --dport 137 -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -p udp --sport 137 -j ACCEPT iptables -A INPUT -i eth0 -p udp --dport 138 -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --sport 138 -j ACCEPT iptables -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 139 -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 139 -j ACCEPT #on permet l'acces au serveur ldap iptables -A INPUT -i eth0 -p tcp --dport 389 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 389 -m state --state ESTABLISHED -j ACCEPT ###################################################################### # G E S T I O N I N T E R N E T -> S E R V E U R S ###################################################################### # pour le serveur FTP iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --dport 20 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT # Pour le serveur web iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT # Pour le serveur geneweb iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --dport 2317 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 2317 -m state --state ESTABLISHED -j ACCEPT # Pour le serveur imaps #iptables -A INPUT -i ppp0 -p tcp --source $ip_boulot1 --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -o ppp0 -p tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT # pour le serveur ssh iptables -A OUTPUT -o ppp0 -p tcp --sport 2201 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 2201 -j ACCEPT # pour le serveur smtp iptables -A OUTPUT -o ppp0 -p tcp --sport 25 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT ###################################################################### # G E S T I O N F I R E W A L L -> I N T E R N E T ###################################################################### # Toutes les connexions Firewall-Internet #iptables -A OUTPUT -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Resolution DNS pour le firewall iptables -A INPUT -i ppp0 -p udp --source-port 53 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp --destination-port 53 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --source-port 53 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --destination-port 53 -j ACCEPT # connexions Firewall-Internet (ntp) iptables -A INPUT -i ppp0 -p udp --source-port 123 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp --destination-port 123 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --source-port 123 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --destination-port 123 -j ACCEPT # connexions Firewall-Internet (http/https) iptables -A OUTPUT -p tcp --dport 80 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp --dport 443 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 80 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 443 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (ftp)a #bof bof a revoir !!! iptables -A OUTPUT -o ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (pop) iptables -A OUTPUT -p tcp --dport 110 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 110 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (imaps) iptables -A OUTPUT -p tcp --dport 993 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 993 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (smtp) iptables -A OUTPUT -p tcp --dport 25 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 25 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (nntp) iptables -A OUTPUT -p tcp --dport 119 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 119 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (mysql) iptables -A OUTPUT -p tcp --dport 3306 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 3306 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # connexions Firewall-Internet (serveur de clefs gpg) iptables -A OUTPUT -p tcp --dport 11371 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 11371 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT ###################################################################### # G E S T I O N L A N -> I N T E R N E T ###################################################################### # Translation d'adresses pour tout ce qui traverse la passerelle # en sortant par ppp0 #iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.1.2 -o ppp0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.1.3 -o ppp0 -j MASQUERADE # Toutes les connexions qui sortent du LAN-Net sont acceptées #iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Resolution DNS pour les machines du LAN iptables -A FORWARD -i ppp0 -o eth0 --protocol udp --source-port 53 -j ACCEPT iptables -A FORWARD -i eth0 -o ppp0 --protocol udp --destination-port 53 -j ACCEPT iptables -A FORWARD -i ppp0 -o eth0 --protocol tcp --source-port 53 -j ACCEPT iptables -A FORWARD -i eth0 -o ppp0 --protocol tcp --destination-port 53 -j ACCEPT # connexions LAN-Internet (http/https) iptables -A FORWARD -p tcp --dport 80 -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp --dport 443 -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp --sport 80 -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp --sport 443 -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPTinclude("../../pied.php"); ?>