#!/bin/sh -x # # A installer dans /etc/init.d/ # puis lier dans /etc/ppp/ip-up.d/ # ln -s /etc/init.d/firewalling /etc/ppp/ip-up.d/firewalling #creation de chaine variable ! IFC=/sbin/ifconfig RTE=/sbin/route eth0_ip=`$IFC eth0 | grep Bcast | awk '{print $2}' | cut -d : -f 2` eth0_bdc=`$IFC eth0 | grep Bcast | awk '{print $3}' | cut -d : -f 2` eth0_mask=`$IFC eth0 | grep Bcast | awk '{print $4}' | cut -d : -f 2` eth0_net=`$RTE -n | grep $eth0_mask | awk '{print $1}'` lan="$eth0_net/24" wan="0.0.0.0/0" # on vide nos tables iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # rejette tout ! iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT # AUTORISE LES CONNEXIONS LOCALES MACHINES iptables -A OUTPUT -o lo -m state --state ! INVALID -j ACCEPT iptables -A INPUT -i lo -m state --state ! INVALID -j ACCEPT # autorise entree-sortie vers DNS <-> LAN, si est server DNS iptables -A INPUT -i eth0 -s $lan -d $eth0_ip -m state --state ! INVALID -p TCP --dport 53 -j ACCEPT iptables -A INPUT -i eth0 -s $lan -d $eth0_ip -m state --state ! INVALID -p UDP --dport 53 -j ACCEPT iptables -A OUTPUT -o eth0 -s $eth0_ip -d $lan -m state --state RELATED,ESTABLISHED -p TCP --sport 53 -j ACCEPT iptables -A OUTPUT -o eth0 -s $eth0_ip -d $lan -m state --state RELATED,ESTABLISHED -p UDP --sport 53 -j ACCEPT # autorise entree-sortie vers Cups <-> LAN, si est server Cups iptables -A INPUT -i eth0 -s $lan -d $eth0_ip -m state --state ! INVALID -p TCP --dport 631 -j ACCEPT iptables -A OUTPUT -o eth0 -s $eth0_ip -d $lan -m state --state RELATED,ESTABLISHED -p TCP --sport 631 -j ACCEPT # autorise vers Internet iptables -A OUTPUT -o eth0 -s $eth0_ip -d $wan -m state --state ! INVALID -j ACCEPT # autorise d'Internet seulement si initiƩ par moi ! iptables -A INPUT -i eth0 -s $wan -d $eth0_ip -m state --state RELATED,ESTABLISHED -j ACCEPT # rejette toute demande venant d'Internet iptables -A INPUT -i eth0 -s $wan -d $eth0_ip -m state --state NEW -j REJECT