Et aussi un script qui convient, celui-ci ne décrit pas tout les aspects de sécurité :
___eth2 (DMZ)
==eth1(LAN)==|______________|_eth0 (WAN)__
# !/bin/bash
$IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -N INPUT -j DROP
$IPTABLES -N OUTPUT -j DROP
$IPTABLES -N FORWARD -j DROP
#id réseau lan
$IDLAN=192.168.0.0/24
#id réseau DMZ
$IDMZ=192.168.1.0.0/24
#id réseau wan
$IDWAN=0.0.0.0/0
#iface réseau lan
$IFLAN=eth1
#iface réseau wan
$IFWAN=eth0
#iface dmz
$IFDMZ=eth2
#ip réseau lan
$IPLAN=192.168.0.100
#ip réseau wan
$IPWAN=82.226.87.154 #IP PUBLIC
#ip réseau DMZ
$IPDMZ=192.168.1.100
#service HTTP dmz
$SERVICEHTTPDMZ=80
#service FTP dmz
$SERVICEFTPDMZ=21
#Services LAN to WAN
$SERHTTPLANTOWAN=80
$SERHTTPSLANTOWAN=443
$SERDNSLANTOWAN=53
# MASQUE IP LAN & DMZ
$IPTABLES -A POSTROUTING -s $IDLAN -o $IFWAN -j SNAT --to $IPWAN
$IPTABLES -A POSTROUTING -s $IDMZ -o $IFWAN -j SNAT --to $IPWAN
#NAT HTTP
$IPTABLES -A PREROUTING -d $IPWAN -i $IFWAN -s $IDWAN -p tcp -m tcp --dport http -j DNAT --to-destination $IPDMZ:$SERVICEHTTPDMZ
#NAT FTP
$IPTABLES -A PREROUTING -d $IPWAN -i $IFWAN -s $IDWAN -p tcp -m tcp --dport ftp -j DNAT --to-destination $IPDMZ:$SERVICEFTPDMZ
#DMZ-> HTTP
$IPTABLES-A FORWARD -d $IPDMZ -i $IFWAN -s $IDWAN -o $IFDMZ -p tcp --dport $SERVICEHTTPDMZ -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES-A FORWARD -s $IPDMZ -o $IFWAN -d $IDWAN -i $IFDMZ -p tcp --sport $SERVICEHTTPDMZ -m state --state RELATED,ESTABLISHED -j ACCEPT
#DMZ-> FTP
$IPTABLES-A FORWARD -d $IPDMZ -i $IFWAN -s $IDWAN -o $IFDMZ -p tcp --dport $SERVICEFTPDMZ -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES-A FORWARD -s $IPDMZ -o $IFWAN -d $IDWAN -i $IFDMZ -p tcp --sport $SERVICEFTPDMZ -m state --state RELATED,ESTABLISHED -j ACCEPT
#ADMIN LAN->DMZ (HTTP)
$IPTABLES -A FORWARD -s $IPLAN -i $IFLAN -d $IPDMZ -o $IFDMZ -p tcp --dport $SERVICEHTTPDMZ -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES -A FORWARD -d $IPLAN -i $IFDMZ -s $IPDMZ -o $IFLAN -p tcp --sport $SERVICEHTTPDMZ -m state --state RELATED,ESTABLISHED -j ACCEPT
#ADMIN LAN->DMZ (FTP)
$IPTABLES -A FORWARD -s $IPLAN -i $IFLAN -d $IPDMZ -o $IFDMZ -p tcp --dport $SERVICEFTPDMZ -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES -A FORWARD -d $IPLAN -i $IFDMZ -s $IPDMZ -o $IFLAN -p tcp --sport $SERVICEFTPDMZ -m state --state RELATED,ESTABLISHED -j ACCEPT
#LAN-> EXTERIEUR (HTTP)
$IPTABLES -A FORWARD -s $IPLAN -i $IFLAN -d $IDWAN -o $IFWAN -p tcp --dport $SERVICELANTOWAN -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES -A FORWARD -d $IPLAN -i $IFWAN -s $IDWAN -o $IFLAN -p tcp --sport $SERVICELANTOWAN -m state --state RELATED,ESTABLISHED -j ACCEPT
#LAN-> EXTERIEUR (HTTPS)
$IPTABLES -A FORWARD -s $IPLAN -i $IFLAN -d $IDWAN -o $IFWAN -p tcp --dport $SERHTTPSLANTOWAN -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES -A FORWARD -d $IPLAN -i $IFWAN -s $IDWAN -o $IFLAN -p tcp --sport $SERHTTPSLANTOWAN -m state --state RELATED,ESTABLISHED -j ACCEPT
#LAN-> EXTERIEUR (DNS)
$IPTABLES -A FORWARD -s $IPLAN -i $IFLAN -d $IDWAN -o $IFWAN -p tcp --dport $SERDNSLANTOWAN -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
$IPTABLES -A FORWARD -d $IPLAN -i $IFWAN -s $IDWAN -o $IFLAN -p tcp --sport $SERHTTPSLANTOWAN -m state --state RELATED,ESTABLISHED -j ACCEPT
Ne pas oublié d'activé la fonction de routage dans
/etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
Puis relir la nouvelle configuration avec :
/sbin/sysctl -p /etc/sysctl.conf