Crée le fichier /etc/init.d/iptables avec le script suivant :
[code]#!/bin/sh
BEGIN INIT INFO
Required-Start: $local_fs $network
Required-Stop: $local_fs $remote_fs
Default-Start: 2 3 4 5
Default-Stop: 0 1 6
Short-Description: Wireless & LAN Access Point Controller
Description: Script met en place un firewall avec partage la connexion internet
END INIT INFO
Script de démarrage qui lance l’interface réseau internet,
met en place un firewall et un partage de connexion
#Déclaration des interfaces :
interface_WAN=eth0 # Carte connectée è UDI
interface_LAN=eth1 # Carte coté LAN
start() {
init du la périphérique internet (ici derriere une freebox)
/sbin/ifup $interface_WAN
echo “activation de l’interface WAN”
#vidage des chaines
iptables -F
echo “vidage des chaines”
#destruction des chaines personnelles
iptables -X
echo “destruction des chaines personnelles”
#stratégies par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
echo “mise en place de la stratégie par défault (INPUT et FORWARD = DROP et OUTPUT = DROP)”
#init des tables NAT et MANGLE (pas forcément nécessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING DROP
iptables -t nat -P POSTROUTING DROP
iptables -t nat -P OUTPUT DROP
echo “initialisation des tables NAT et MANGLE”
Acceptation de toutes les connexions en local (un process avec l’autre)
iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
echo “Acceptation de toutes les connexions en local”
On fait confiance au LAN et WLAN
iptables -A INPUT -i $interface_LAN -j ACCEPT
iptables -A OUTPUT -o $interface_LAN -j ACCEPT
=====================================================
=== TENTATIVE pour SORTIE (OUTPUT)Pour le SERVEUR ===
=====================================================
==== On accepte la sortie de certains protocoles ====
iptables -A OUTPUT -o $interface_WAN -p UDP --dport 123 -j ACCEPT # Port 123 (Time ntp udp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 123 -j ACCEPT # Port 123 (Time ntp tcp)
iptables -A OUTPUT -o $interface_WAN -p UDP --dport domain -j ACCEPT # Port 53 (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport http -j ACCEPT # Port 80 (Http)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport https -j ACCEPT # Port 443 (Https)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 143 -j ACCEPT # Port 143 (imap)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport pop3 -j ACCEPT # Port 110 (Pop3)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 993 -j ACCEPT # Port 993 (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 995 -j ACCEPT # Port 995 (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport smtp -j ACCEPT # Port 25 (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 587 -j ACCEPT # Port 587 (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp-data -j ACCEPT # Port 20 (Ftp Data)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp -j ACCEPT # Port 21 (Ftp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 5055 -j ACCEPT # Port #5055 (Ssh)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 22 -j ACCEPT # Port 22 (SSH)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport nntp -j ACCEPT # Port 119 (News groups)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 1863 -j ACCEPT # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 5222 -j ACCEPT # Port 1863 (Msn Pidgin)
=== OUTPUT générique ? ===
On autorise les connexions deja etablies ou relatives à une autre connexion a sortir
iptables -A OUTPUT -o $interface_WAN -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
echo “Aceptation de certain protocole en sortie pour le serveur”
#Autoriser le ping sur des IP externes
iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
#########################################################################################################
################################### Partage de la connexion internet ##############################
#########################################################################################################
#création d’une nouvelle règle pour partage internet
iptables -N MAregle
#définition de la règle : accepter les nouvelles connexions ne venant pas de l’interface internet
et accepter toutes les connexions établies et reliées (ex: une demande de page HTML provoque
#l’ouverture d’une connexion reliée pour acheminer cette page vers l’ordinateur)
iptables -A MAregle -m conntrack --ctstate NEW -i $interface_LAN -j ACCEPT
iptables -A MAregle -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A MAregle -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A MAregle -m conntrack --ctstate UNTRACKED,INVALID -j DROP
#application de la règle au partage de connexion
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $interface_WAN -j MASQUERADE
echo “Mise en place du partage de connextion internet”
#Log tous ce qui qui n’est pas accepter par une règles précédente
prés requit : sudo apt-get install zysklogd
echo ‘kern.warning /var/log/iptables.log’ > /etc/syslog.conf
iptables -A OUTPUT -j LOG --log-level 4 --log-prefix '[OUTPUT DROP]:'
iptables -A INPUT -j LOG --log-level 4 --log-prefix '[INPUT DROP]:'
iptables -A FORWARD -j LOG --log-level 4 --log-prefix ‘[FORWARD DROP]:’
iptables -L -n -v # commanter pour desactiver l’afichage des règles en cours#
echo “############ #############”
}
stop() {
echo 0 >/proc/sys/net/ipv4/ip_forward
ifdown $interface_WAN
}
case “$1” in
start)
start
echo “firewall IPv4 démarré”
;;
stop)
stop
echo “firewall IPv4 stopé”
;;
restart)
stop && start
echo “firewall IPv4 redémarré”
;;
status)
status
/sbin/iptables -L -n
/sbin/iptables -t nat -L -n -v
RETVAL=?
;;
*)
echo "Usage $0 {start|stop|restart|status}"
exit 1
esac
exit 0[/code]
Fait un :
puis un :
ensuite édite ton fichier /etc/network/interface et met :
[code]auto lo
iface lo inet loopback
iface eth0 inet dhcp # c’est ton FAI qui te donne la conf
auto eth1
#allow-hotplug eth1
iface eth1 inet static
address 192.168.1.254
netmask 255.255.255.0
[/code]
Ensuite redémarre ta machine et fait un test depuis un pc client pour voir si sa fonctionne.
Cela dit dans ton fichier /etc/network/interface actuel je metterai sa :
[code]auto lo
iface lo inet loopback
auto eth0
#allow-hotplug eth0
iface eth0 inet static
hwaddress ether bc:ae:c5:a3:60:96
address 41…
netmask 255.255.255.240
gateway 41.204.123…
Broadcast 41.204.123…
pre-up iptables-restore < /etc/nat.conf
auto eth1
#allow-hotplug eth1
iface eth1 inet static
address 192.168.1.254
netmask 255.255.255.0[/code]
Parce qu’il me semble que tu confond tes 2 interfaces…
Juste pour être sur :
eth0 coté internet
et eth1 coté lan
c’est bien sa…