- #!/bin/sh -norc
- ####SCRIPT D'INITIALISATION DU FIREWALL####
- ####ALIAS PROPRES AU SCRIPT####
- FTP_SRV_PORT=21;
- SSH_PORT=22;
- HTTP_PORT=80;
- echo "==========INITIALISATION FIREWALL=========="
- ####TABLES####
- # TABLE SECURITE (TOUT LE TRAFIC EST BLOQUE #
- echo " + Initialisation de la table de sécurité "
- iptables -t filter -F
- iptables -t filter -X
- iptables -t filter -P INPUT DROP
- iptables -t filter -P FORWARD DROP
- iptables -t filter -P OUTPUT DROP
- ####REGLES DE FILTRAGE####
- # Autorise l'interface loopback à dialoguer avec elle-meme #
- echo " + Règles concernant le localhost "
- iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT
- iptables -t filter -A INPUT -i lo -p all -j ACCEPT
- # Autorise l'acces au serveur FTP local depuis internet
- echo " + Port FTP ouvert "
- iptables -A INPUT -i $1 -d $2 -p tcp --dport $FTP_SRV_PORT -m state ! --state INVALID -j ACCEPT
- iptables -A OUTPUT -o $1 -s $2 -p tcp --sport $FTP_SRV_PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
- # Autorise l'accès au serveur SSH local depuis internet
- echo " + Port SSH ouvert"
- iptables -A INPUT -i $1 -d $2 -p tcp --dport $SSH_PORT -m state ! --state INVALID -j ACCEPT
- iptables -A OUTPUT -o $1 -s $2 -p tcp --sport $SSH_PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
- # Autorise l'accès au serveur APACHE depuis internet
- echo " + Port HTTP ouvert"
- iptables -A INPUT -i $1 -d $2 -p tcp --dport $HTTP_PORT -m state ! --state INVALID -j ACCEPT
- iptables -A OUTPUT -o $1 -s $2 -p tcp --sport $HTTP_PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
- ####TRAFIC INTERNET####
- # Règles pour internet
- echo " + Chargement des modules nécessaires au suivi de connexion "
- modprobe ip_conntrack
- modprobe ip_conntrack_ftp
- modprobe ip_conntrack_irc
- echo " + Regles pour Internet ALL IP/ ALL PORT"
- iptables -A OUTPUT -o $1 -s $2 -d 0.0.0.0 -p all -m state ! --state INVALID -j ACCEPT
- iptables -A INPUT -i $1 -s 0.0.0.0 -d $2 -p all -m state ! --state RELATED,ESTABLISHED -j ACCEPT
- ####LOGS####
- # Log des paquets rejetés dans /var/log/messages
- echo " + Regles log des paquets rejetes ([IN/FO/OU_PKTS_DROP]==>)"
- iptables -A INPUT -j LOG --log-prefix="[IN_PKTS_DROP]==> "
- iptables -A FORWARD -j LOG --log-prefix="[FO_PKTS_DROP]==> "
- iptables -A OUTPUT -j LOG --log-prefix="[OU_PKTS_DROP]==> "
- echo "==========FIREWALL INITIALISE=============="