====== Firewall sur iptables ====== ===== Script bash ===== #!/bin/bash IPTABLES=/sbin/iptables # Nous vidons les chaines $IPTABLES -F # Nous supprimons d'eventuelles chaines personnelles $IPTABLES -X # Par defaut, on interdit tout $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP # Definition d'un logger sur le drop $IPTABLES -N LOGDROP $IPTABLES -A LOGDROP -j LOG --log-prefix '[IPTABLES DROP] : ' $IPTABLES -A LOGDROP -j DROP # Accepter ce qu'il se passe en local $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT # Accepter la resolution DNS $IPTABLES -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p tcp --sport 53 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT # On autorise tout en sortie $IPTABLES -A INPUT -i eth0 -m state --state ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT # On autorise en entree # http $IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT # https $IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 443 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 443 -j ACCEPT #ssh (autorisé par knock) #$IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j LOGACCEPT #$IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 22 -j LOGACCEPT # ftp $IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 21 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 21 -j ACCEPT # ftp actif $IPTABLES -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p tcp --dport 20 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 20 -j ACCEPT # ftp passif $IPTABLES -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p tcp --sport 1024: --dport 1024: -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 1024: --dport 1024: -j ACCEPT # freeplayer $IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 8080 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p tcp --sport 8080 -j ACCEPT # Multiposte # Puis une adresse multicast qui 'doit' venir de http://www.live555.com/ apparement $IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p udp --dport 31336:31337 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p udp --sport 31336:31337 -j ACCEPT $IPTABLES -A INPUT -i eth0 -m state --state NEW,ESTABLISHED -p udp --sport 15947 --dport 15947 -d 228.67.43.91 -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -m state --state ESTABLISHED -p udp --sport 15947 --dport 15947 -s 228.67.43.91 -j ACCEPT # Enfin, on refuse tout le reste et on le log $IPTABLES -A INPUT -j LOGDROP $IPTABLES -A OUTPUT -j LOGDROP $IPTABLES -A FORWARD -j LOGDROP