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