#!/bin/sh # # Script de démarrage qui lance l'interface réseau internet, # met en place un firewall basique et un partage de connexion # # Pour me contacter # Mjules_at_ifrance.com # . /etc/init.d/functions start() { # init du la périphérique internet (ici une carte RNIS) /sbin/ifup ippp0 /sbin/ifconfig ippp0 mtu 576 # Dans cette partie, on met en place le firewall #vidage des chaines iptables -F #destruction des chaines personnelles iptables -X #stratégies par défaut iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #init des tables NAT et MANGLE (pas forcément nécessaire) iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -F iptables -t mangle -X iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT # Acceptation de toutes les connexions en local (un process avec l'autre) iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #création d'une nouvelle règle iptables -N regle #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 regle -m state --state NEW -i! ippp0 -j ACCEPT iptables -A regle -m state --state ESTABLISHED,RELATED -j ACCEPT #application de la règle au partage de connection iptables -A INPUT -j regle iptables -A FORWARD -j regle # activation du forwarding dans le noyau # mise en place du partage de connexion sur le réseau local echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ippp0 -j MASQUERADE } stop() { echo 0 >/proc/sys/net/ipv4/ip_forward ifdown ippp0 } case "$1" in start) start ;; stop) stop ;; restart) stop && start ;; *) gprintf "Usage %s {start|stop|restart}\n" "$0" exit 1 esac exit 0