Ah oui,
0.0.0.0 0.0.0.0 0.0.0.0 UG 0 0 0 ppp0
est normal ?
Je pensais que je devais avoir un truc du genre :
Car comment je fais pour que mon réseau interne qui est sur eth1 se connecte au ppp0 (ou eth0) ?
Sinon, voici mon iptable (je pense qu’en fait, je dois mettre ifc_internet=ppp0 au lieu de eth0 ?):
[code]#!/bin/bash
##############################################
Script de configuration du Firewall
Dernière révision : 02/09/2009
##############################################
case $1 in
stop)
echo "Suppression des tables"
iptables -F # table filter
iptables -X
iptables -t nat -X # table nat
iptables -t nat -F
iptables -t mangle -X # table mangle
iptables -t mangle -F
echo “Arrêt de Fail2Ban”
/etc/init.d/fail2ban stop
;;
start)
#---------------------------------------------------------------------------
#–Variables----------------------------------------------------------------
ifc_loop=lo # Nom de l’interface de la boucle locale
ifc_internet=eth0 # Nom de l’interface Internet
ifc_local=eth1 # Nom de l’interface du réseau locale
reseau_local=192.168.1.0 # IP du réseau local
Les deux lignes suivantes récupèrent ces adresses IP
IP rattachée à l’interface Internet
ip_internet="ifconfig $ifc_internet | grep 'inet ad*r' | sed -e 's/.*inet ad*r://' | sed -e 's/ Bcast.*//'
"
IP rattachée à l’interface du réseau local
ip_locale="ifconfig $ifc_local | grep 'inet ad*r' | sed -e 's/.*inet ad*r://' | sed -e 's/ Bcast.*//'
"
Services de la passerelle :
HTTP=XXXX # Port d’écoute du serveur HTTP
FTP=XX # Port d’écoute du serveur FTP
SSH=XXXX # Port d’écoute du serveur SSH
Services redirigés :
Serveur de mail SMTP
ip_smtp_externe=xx.xx.xx.xx
ip_smtp_interne=192.168.1.1
port_smtp_public=25
port_smtp_interne=25
#---------------------------------------------------------------------------
#–IpTables-----------------------------------------------------------------
echo
echo “— Configuration du parefeu par IpTables —”
Suppression des anciennes chaines
echo "PAR DEFAUT"
echo " Suppression des anciennes chaines"
iptables -F # table filter
iptables -X
iptables -t nat -X # table nat
iptables -t nat -F
iptables -t mangle -X # table mangle
iptables -t mangle -F
Blocage complet par défaut (table filter)
echo " Blocage complet par défaut (table filter à DROP)"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Contre les attaques brutes : lancement de fail2ban
echo " Lancement de fail2ban pour le pré-remplissage des tables"
/etc/init.d/fail2ban start
Initialisation des autres tables
echo " Initialisation des autres tables à ACCEPT"
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 POSTROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
Autorisation de communication des processus locaux
echo
echo "PASSERELLE"
echo " Autorisation de communication des processus locaux"
iptables -A INPUT -i $ifc_loop -j ACCEPT
iptables -A OUTPUT -o $ifc_loop -j ACCEPT
Autorisation de communication entre la passerelle et le réseau local
echo
echo "PASSERELLE - RESEAU LOCAL"
echo " Toutes communications entre la passerelle et le réseau local autorisées"
iptables -A INPUT -i $ifc_local -j ACCEPT
iptables -A OUTPUT -o $ifc_local -j ACCEPT
Autorisation de communication entre la passerelle et internet si connexion établie par la passerelle
echo
echo "PASSERELLE - INTERNET"
echo " Toute communication vers l’extérieur acceptée (sauf state INVALID)"
iptables -A OUTPUT -o $ifc_internet -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo " Communications depuis Internet autorisées si établies ou relatives"
iptables -A INPUT -i $ifc_internet -m state --state ESTABLISHED,RELATED -j ACCEPT
echo " Accès autorisé au serveur HTTP ($HTTP)“
iptables -A INPUT -i $ifc_internet -p TCP --dport $HTTP -m state --state NEW -j ACCEPT
echo " Accès autorisé au serveur FTP ($FTP)”
Le mode passif nécessite seulement le port de commandes ftp
iptables -A INPUT -i $ifc_internet -p TCP --dport $FTP -m state --state NEW -j ACCEPT
Le mode actif nécessite en plus le module ip_conntrack_ftp
modprobe ip_conntrack_ftp
echo " Accès autorisé au serveur SSH ($SSH)"
iptables -A INPUT -i $ifc_internet -p TCP --dport $SSH -m state --state NEW -j ACCEPT
Toute communication vers l’extérieur acceptée (sauf state INVALID)
echo
echo "RESEAU LOCAL - INTERNET"
echo " Toute communication vers l’extérieur acceptée (sauf state INVALID)"
iptables -A FORWARD -i $ifc_local -o $ifc_internet -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Communications depuis Internet autorisées si :
-déjà établies (initiées en local)
-relatives à une connexion déjà établie (ex FTP)
echo " Communications depuis Internet autorisées si établies ou relatives"
iptables -A FORWARD -i $ifc_internet -o $ifc_local -m state --state ESTABLISHED,RELATED -j ACCEPT
Activation du SNAT
On “masque” l’adresse source de tous les paquets qui sortent vers Internet.
echo " Activation du masquage d’adresse de source (SNAT)"
iptables -t nat -A POSTROUTING -s $reseau_local/24 -o $ifc_internet -j MASQUERADE
Redirections de ports
echo ""
echo “— Redirections de ports —”
echo " * HTTP:XXXX vers 192.168.1.1"
Le port tcp XXXX de l’IP publique est redirigé sur le port XXXX de 192.168.1.1
iptables -A FORWARD -i $ifc_internet -o $ifc_local -p tcp --dport XXXX -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -d $ip_internet -i $ifc_internet -p tcp --dport XXXX -j DNAT --to-destination 192.168.1.1:XXXX
echo " * Serveur Exchange (SMTP) $port_smtp_public->$ip_smtp_interne:$port_smtp_interne (depuis $ip_smtp_externe seulement)"
Autoriser le forwarding (port tcp 25 de l’IP publique redirigé sur le port 25 du serveur interne)
iptables -A FORWARD -i $ifc_internet -o $ifc_local -p tcp --dport $port_smtp_interne -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -s $ip_smtp_externe -d $ip_internet -i $ifc_internet -p tcp --dport $port_smtp_public -j DNAT --to-destination $ip_smtp_interne
;;
Fin du cas start
*)
echo “Usage : $0 {start|stop}”
;;
esac
exit 0
[/code]