Firewall
Fermé
kenneth007
Messages postés
14
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2010
-
13 oct. 2008 à 13:12
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 - 13 oct. 2008 à 17:13
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 - 13 oct. 2008 à 17:13
Bonjour,
j'ai install un petit réseau sur lequel il y'a un parefeu (Netfilter), un proxy et un serveur web.
Chaque machine a une adresse statique.Mon problème est que si je démarre le parefeu certains sites ne passent pas. quand je fais un ping sur ces sites ça passe. Quand j'arrête le parefeu tout roule à merveil.
J'ai tester toutes mes règles, ça mache, alors je sais pas ce que c'est! merci d'avance pour vos reponses
j'ai install un petit réseau sur lequel il y'a un parefeu (Netfilter), un proxy et un serveur web.
Chaque machine a une adresse statique.Mon problème est que si je démarre le parefeu certains sites ne passent pas. quand je fais un ping sur ces sites ça passe. Quand j'arrête le parefeu tout roule à merveil.
J'ai tester toutes mes règles, ça mache, alors je sais pas ce que c'est! merci d'avance pour vos reponses
A voir également:
- Firewall
- Comodo firewall gratuit - Télécharger - Pare-feu
- Zonealarm free antivirus + firewall - Télécharger - Pare-feu
- Firewall builder - Télécharger - Web & Internet
- Private firewall - Télécharger - Pare-feu
- Sygate personal firewall - Télécharger - Pare-feu
4 réponses
Ritchi09
Messages postés
642
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
19 novembre 2010
41
13 oct. 2008 à 14:23
13 oct. 2008 à 14:23
normal si, ces pas les mêmes ports qui sont utilisées.
Pour le ping et le HTTP ces des ports différents, donc celui du ping doit être ouvert et pas celui du serveur WEB.
après question serveur je suis pas très caler moi, faut attendre un pro des serveurs WEB.
Pour le ping et le HTTP ces des ports différents, donc celui du ping doit être ouvert et pas celui du serveur WEB.
après question serveur je suis pas très caler moi, faut attendre un pro des serveurs WEB.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 oct. 2008 à 14:49
13 oct. 2008 à 14:49
Salut,
il faut tester les règles une par une
essaie avec ces règles quand ton firewall est actif
INTERFACE tu l'as trouves avec la commande
106485010510997108
il faut tester les règles une par une
essaie avec ces règles quand ton firewall est actif
iptables -A INPUT -i INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o INTERFACE -m state --state ! INVALID -j ACCEPT
INTERFACE tu l'as trouves avec la commande
/sbin/ifconfig--
106485010510997108
kenneth007
Messages postés
14
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2010
2
13 oct. 2008 à 15:52
13 oct. 2008 à 15:52
salut!
Merçi ,ais j'ai déjà essayé avec cette méthode et le résultat était le même
Merçi ,ais j'ai déjà essayé avec cette méthode et le résultat était le même
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 oct. 2008 à 16:39
13 oct. 2008 à 16:39
Re,
affiche le résultat de
affiche le résultat de
iptables-save | perl -ne 's/([\s\/])(\d{1,3}\.){1,3}\d{1,3}/$1X.X.X.X/g;print'
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 oct. 2008 à 17:04
13 oct. 2008 à 17:04
Re,
plus besoin, je n'ai pas vu ton script ;-)))
plus besoin, je n'ai pas vu ton script ;-)))
kenneth007
Messages postés
14
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2010
2
13 oct. 2008 à 17:13
13 oct. 2008 à 17:13
Voici le script du firewall
#! /bin/bash
. /lib/lsb/init-functions
case "$1" in
'start')
log_daemon_msg "Démarrage du parefeu..."
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_state
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
iptables-restore < /etc/init.d/firewall.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'stop')
log_daemon_msg "Arrêt du parefeu..."
iptables-restore < /etc/init.d/firewall.conf
iptables-save > /etc/init.d/firewall.conf
#Clean le parefeu pendant que la machine tourne
log_daemon_msg "Remise à zéro des règles du parefeu"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
#Désactive le partage de connexion
echo 0 > /proc/sys/net/ipv4/ip_forward
RETVAL=$?
log_end_msg $RETVAL
;;
'restart')
$0 stop && $0 start
;;
'clean')
$0 stop
log_daemon_msg "Activation du partage de connexion"
#Active le partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Redémarre la connexion internet PPP
poff
pon dsl-provider
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'status')
iptables-save
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'init')
log_daemon_msg "Initialisation des règles du parefeu..."
/etc/init.d/firewall.init
iptables-save > /etc/init.d/firewall.conf
$0 start
RETVAL=$?
sleep 1
log_end_msg $RETVAL
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|restart|status|clean|init}"
RETVAL=1
log_end_msg $RETVAL
;;
esac
exit $RETVAL
# !/bin/bash
####################################################
#Variables globales#################################
####################################################
NET_ETH=ppp0 ;
LAN_ETH=eth1 ; # Interface reseau interne
LAN_IP=192.168.16.1 ; # Adresse reseau interne
LAN_NETWORK=192.168.16.0/24 ; # Reseau interne
LAN_BROADCAST=192.168.16.255 ; # Adresse de broadcast interne
IP_PROXY=192.168.16.3 ; # Adresse IP du Proxy
IP_PUBLIC=41.233.187.150 ; # Adresse IP publique
FTP_DATA_PORT=20 ;
FTP_PORT=21 ; # Port d'ecoute du serveur local
SSH_PORT=22 ; # Port d'ecoute du Serveur SSH local
SMTP_PORT=25 ; # Port d'ecoute du serveur SMTP local
DNS_PORT=53 ; # Port d'ecoute du serveur DNS local
TFTP_PORT=69 ; # Port d'ecoute du serveur TFTP local
WEB_PORT=80 ; # Port d'ecoute du servur WEb local
SFTP_PORT=115 ; # Port d'ecoute du serveur SFTP local
HTTPS_PORT=443 ; # Port d'ecoute du serveur HTTPS local
POP3_PORT=110 ; # Port d'ecoute du serveur POP3 local
IMAP_PORT=143 ; # Port d'ecoute du serveur IMAP local
MMCC_PORT=5050 ; # Port d'ecoute du serveur yahoo
MSN_PORT=1863 ; # Port d'ecoute du serveur MSN
UNPRIVPORTS="1024:65535";
###########################################################################
###################Initialisation des tables###############################
# Initialise la table Filter (par defaut tout les echanges sont refuses)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Initialisation de la table NAT (par defaut tout les echanges sont actives)
iptables -t nat -F
iptables -t nat -X
# Initialisation de la table Mangle(par defaut tout les echanges sont actives)
iptables -t mangle -F
iptables -t mangle -X
# On rejete les requetes icmp du type echo-request
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 10/min -j LOG --log-prefix "rejet_paquet_ICMP"
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# On autorise le ping sur l'interface LAN du parefeu et du LAN vers l'extérieur
iptables -A INPUT -i $LAN_ETH -p icmp -j ACCEPT
iptables -A FORWARD -s $LAN_NETWORK -p icmp -j ACCEPT
# On autorise l'interface loopback à dialoguer avec elle-meme
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# On redirige les requetes en provenance de l'exterieur vers le serveur approprié
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p tcp -m multiport --dports $WEB_PORT,$FTP_DATA_PORT,$FTP_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -j DNAT --to-destination $IP_PROXY
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p udp -m multiport --dports $SSH_PORT,$DNS_PORT,$TFTP_PORT -j DNAT --to-destination $IP_PROXY
# On redirige vers le proxy les requets HTTP et FTP du LAN destinées vers l'exterieur \(sauf le proxy\)
# iptables -t nat -A PREROUTING -i $LAN_ETH -s ! $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$FTP_PORT,$FTP_DATA_PORT -j DNAT --to-destination $IP_PROXY:3128
# On accepte tous les paquets faisant partie d'une connexion déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# On autorise les nouveaux paquets à transiter par le parefeu pour les services autorisés
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p tcp -m multiport --dports $WEB_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT,$FTP_PORT,$FTP_DATA_PORT,$HTTPS_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$SMTP_PORT,$FTP_PORT,$FTP_DATA_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p udp -m multiport --dports $DNS_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p udp -m multiport --dports $DNS_PORT -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $NET_ETH -i $LAN_ETH -j ACCEPT
# On autorise le reseau local à dialoguer avec le routeur
iptables -A INPUT -s $LAN_NETWORK -j ACCEPT
# On autorise le parefeu à se connecter à l'Internet
iptables -A OUTPUT -j ACCEPT
# On active le partage de connexion
iptables -t nat -A POSTROUTING -o $NET_ETH -j MASQUERADE
# Journalisation des paquets rejetés
iptables -A INPUT -i $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "rejets_inTCP_NET"
iptables -A INPUT -i $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_inTCP_LAN"
iptables -A OUTPUT -o $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_NET"
iptables -A OUTPUT -o $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_LAN"
iptables -A FORWARD -m limit --limit 10/min -j LOG --log-prefix "Rejet_fw"
#! /bin/bash
. /lib/lsb/init-functions
case "$1" in
'start')
log_daemon_msg "Démarrage du parefeu..."
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_state
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
iptables-restore < /etc/init.d/firewall.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'stop')
log_daemon_msg "Arrêt du parefeu..."
iptables-restore < /etc/init.d/firewall.conf
iptables-save > /etc/init.d/firewall.conf
#Clean le parefeu pendant que la machine tourne
log_daemon_msg "Remise à zéro des règles du parefeu"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
#Désactive le partage de connexion
echo 0 > /proc/sys/net/ipv4/ip_forward
RETVAL=$?
log_end_msg $RETVAL
;;
'restart')
$0 stop && $0 start
;;
'clean')
$0 stop
log_daemon_msg "Activation du partage de connexion"
#Active le partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Redémarre la connexion internet PPP
poff
pon dsl-provider
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'status')
iptables-save
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'init')
log_daemon_msg "Initialisation des règles du parefeu..."
/etc/init.d/firewall.init
iptables-save > /etc/init.d/firewall.conf
$0 start
RETVAL=$?
sleep 1
log_end_msg $RETVAL
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|restart|status|clean|init}"
RETVAL=1
log_end_msg $RETVAL
;;
esac
exit $RETVAL
# !/bin/bash
####################################################
#Variables globales#################################
####################################################
NET_ETH=ppp0 ;
LAN_ETH=eth1 ; # Interface reseau interne
LAN_IP=192.168.16.1 ; # Adresse reseau interne
LAN_NETWORK=192.168.16.0/24 ; # Reseau interne
LAN_BROADCAST=192.168.16.255 ; # Adresse de broadcast interne
IP_PROXY=192.168.16.3 ; # Adresse IP du Proxy
IP_PUBLIC=41.233.187.150 ; # Adresse IP publique
FTP_DATA_PORT=20 ;
FTP_PORT=21 ; # Port d'ecoute du serveur local
SSH_PORT=22 ; # Port d'ecoute du Serveur SSH local
SMTP_PORT=25 ; # Port d'ecoute du serveur SMTP local
DNS_PORT=53 ; # Port d'ecoute du serveur DNS local
TFTP_PORT=69 ; # Port d'ecoute du serveur TFTP local
WEB_PORT=80 ; # Port d'ecoute du servur WEb local
SFTP_PORT=115 ; # Port d'ecoute du serveur SFTP local
HTTPS_PORT=443 ; # Port d'ecoute du serveur HTTPS local
POP3_PORT=110 ; # Port d'ecoute du serveur POP3 local
IMAP_PORT=143 ; # Port d'ecoute du serveur IMAP local
MMCC_PORT=5050 ; # Port d'ecoute du serveur yahoo
MSN_PORT=1863 ; # Port d'ecoute du serveur MSN
UNPRIVPORTS="1024:65535";
###########################################################################
###################Initialisation des tables###############################
# Initialise la table Filter (par defaut tout les echanges sont refuses)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Initialisation de la table NAT (par defaut tout les echanges sont actives)
iptables -t nat -F
iptables -t nat -X
# Initialisation de la table Mangle(par defaut tout les echanges sont actives)
iptables -t mangle -F
iptables -t mangle -X
# On rejete les requetes icmp du type echo-request
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 10/min -j LOG --log-prefix "rejet_paquet_ICMP"
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# On autorise le ping sur l'interface LAN du parefeu et du LAN vers l'extérieur
iptables -A INPUT -i $LAN_ETH -p icmp -j ACCEPT
iptables -A FORWARD -s $LAN_NETWORK -p icmp -j ACCEPT
# On autorise l'interface loopback à dialoguer avec elle-meme
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# On redirige les requetes en provenance de l'exterieur vers le serveur approprié
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p tcp -m multiport --dports $WEB_PORT,$FTP_DATA_PORT,$FTP_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -j DNAT --to-destination $IP_PROXY
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p udp -m multiport --dports $SSH_PORT,$DNS_PORT,$TFTP_PORT -j DNAT --to-destination $IP_PROXY
# On redirige vers le proxy les requets HTTP et FTP du LAN destinées vers l'exterieur \(sauf le proxy\)
# iptables -t nat -A PREROUTING -i $LAN_ETH -s ! $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$FTP_PORT,$FTP_DATA_PORT -j DNAT --to-destination $IP_PROXY:3128
# On accepte tous les paquets faisant partie d'une connexion déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# On autorise les nouveaux paquets à transiter par le parefeu pour les services autorisés
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p tcp -m multiport --dports $WEB_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT,$FTP_PORT,$FTP_DATA_PORT,$HTTPS_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$SMTP_PORT,$FTP_PORT,$FTP_DATA_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p udp -m multiport --dports $DNS_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p udp -m multiport --dports $DNS_PORT -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $NET_ETH -i $LAN_ETH -j ACCEPT
# On autorise le reseau local à dialoguer avec le routeur
iptables -A INPUT -s $LAN_NETWORK -j ACCEPT
# On autorise le parefeu à se connecter à l'Internet
iptables -A OUTPUT -j ACCEPT
# On active le partage de connexion
iptables -t nat -A POSTROUTING -o $NET_ETH -j MASQUERADE
# Journalisation des paquets rejetés
iptables -A INPUT -i $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "rejets_inTCP_NET"
iptables -A INPUT -i $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_inTCP_LAN"
iptables -A OUTPUT -o $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_NET"
iptables -A OUTPUT -o $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_LAN"
iptables -A FORWARD -m limit --limit 10/min -j LOG --log-prefix "Rejet_fw"
13 oct. 2008 à 14:25
Je voudraiq d'abord vous remercier d'avance d'avoir accepter de m'aider.
Alors la pluspart des sites comme yahoo, hotmail , wikipedia, etc....
13 oct. 2008 à 14:46
13 oct. 2008 à 15:48
#! /bin/bash
. /lib/lsb/init-functions
case "$1" in
'start')
log_daemon_msg "Démarrage du parefeu..."
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_state
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
iptables-restore < /etc/init.d/firewall.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'stop')
log_daemon_msg "Arrêt du parefeu..."
iptables-restore < /etc/init.d/firewall.conf
iptables-save > /etc/init.d/firewall.conf
#Clean le parefeu pendant que la machine tourne
log_daemon_msg "Remise à zéro des règles du parefeu"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
#Désactive le partage de connexion
echo 0 > /proc/sys/net/ipv4/ip_forward
RETVAL=$?
log_end_msg $RETVAL
;;
'restart')
$0 stop && $0 start
;;
'clean')
$0 stop
log_daemon_msg "Activation du partage de connexion"
#Active le partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Redémarre la connexion internet PPP
poff
pon dsl-provider
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'status')
iptables-save
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'init')
log_daemon_msg "Initialisation des règles du parefeu..."
/etc/init.d/firewall.init
iptables-save > /etc/init.d/firewall.conf
$0 start
RETVAL=$?
sleep 1
log_end_msg $RETVAL
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|restart|status|clean|init}"
RETVAL=1
log_end_msg $RETVAL
;;
esac
exit $RETVAL
# !/bin/bash
####################################################
#Variables globales#################################
####################################################
NET_ETH=ppp0 ;
LAN_ETH=eth1 ; # Interface reseau interne
LAN_IP=192.168.16.1 ; # Adresse reseau interne
LAN_NETWORK=192.168.16.0/24 ; # Reseau interne
LAN_BROADCAST=192.168.16.255 ; # Adresse de broadcast interne
IP_PROXY=192.168.16.3 ; # Adresse IP du Proxy
IP_PUBLIC=41.233.187.150 ; # Adresse IP publique
FTP_DATA_PORT=20 ;
FTP_PORT=21 ; # Port d'ecoute du serveur local
SSH_PORT=22 ; # Port d'ecoute du Serveur SSH local
SMTP_PORT=25 ; # Port d'ecoute du serveur SMTP local
DNS_PORT=53 ; # Port d'ecoute du serveur DNS local
TFTP_PORT=69 ; # Port d'ecoute du serveur TFTP local
WEB_PORT=80 ; # Port d'ecoute du servur WEb local
SFTP_PORT=115 ; # Port d'ecoute du serveur SFTP local
HTTPS_PORT=443 ; # Port d'ecoute du serveur HTTPS local
POP3_PORT=110 ; # Port d'ecoute du serveur POP3 local
IMAP_PORT=143 ; # Port d'ecoute du serveur IMAP local
MMCC_PORT=5050 ; # Port d'ecoute du serveur yahoo
MSN_PORT=1863 ; # Port d'ecoute du serveur MSN
UNPRIVPORTS="1024:65535";
###########################################################################
###################Initialisation des tables###############################
# Initialise la table Filter (par defaut tout les echanges sont refuses)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Initialisation de la table NAT (par defaut tout les echanges sont actives)
iptables -t nat -F
iptables -t nat -X
# Initialisation de la table Mangle(par defaut tout les echanges sont actives)
iptables -t mangle -F
iptables -t mangle -X
# On rejete les requetes icmp du type echo-request
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 10/min -j LOG --log-prefix "rejet_paquet_ICMP"
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# On autorise le ping sur l'interface LAN du parefeu et du LAN vers l'extérieur
iptables -A INPUT -i $LAN_ETH -p icmp -j ACCEPT
iptables -A FORWARD -s $LAN_NETWORK -p icmp -j ACCEPT
# On autorise l'interface loopback à dialoguer avec elle-meme
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# On redirige les requetes en provenance de l'exterieur vers le serveur approprié
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p tcp -m multiport --dports $WEB_PORT,$FTP_DATA_PORT,$FTP_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -j DNAT --to-destination $IP_PROXY
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p udp -m multiport --dports $SSH_PORT,$DNS_PORT,$TFTP_PORT -j DNAT --to-destination $IP_PROXY
# On redirige vers le proxy les requets HTTP et FTP du LAN destinées vers l'exterieur \(sauf le proxy\)
# iptables -t nat -A PREROUTING -i $LAN_ETH -s ! $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$FTP_PORT,$FTP_DATA_PORT -j DNAT --to-destination $IP_PROXY:3128
# On accepte tous les paquets faisant partie d'une connexion déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# On autorise les nouveaux paquets à transiter par le parefeu pour les services autorisés
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p tcp -m multiport --dports $WEB_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT,$FTP_PORT,$FTP_DATA_PORT,$HTTPS_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$SMTP_PORT,$FTP_PORT,$FTP_DATA_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p udp -m multiport --dports $DNS_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p udp -m multiport --dports $DNS_PORT -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $NET_ETH -i $LAN_ETH -j ACCEPT
# On autorise le reseau local à dialoguer avec le routeur
iptables -A INPUT -s $LAN_NETWORK -j ACCEPT
# On autorise le parefeu à se connecter à l'Internet
iptables -A OUTPUT -j ACCEPT
# On active le partage de connexion
iptables -t nat -A POSTROUTING -o $NET_ETH -j MASQUERADE
# Journalisation des paquets rejetés
iptables -A INPUT -i $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "rejets_inTCP_NET"
iptables -A INPUT -i $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_inTCP_LAN"
iptables -A OUTPUT -o $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_NET"
iptables -A OUTPUT -o $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_LAN"
iptables -A FORWARD -m limit --limit 10/min -j LOG --log-prefix "Rejet_fw"