J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net.
Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.
Merci de vos commentaire.
Christophe
###############################################################################
# REMISE à ZERO des règles de filtrage
###############################################################################
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
###############################################################################
# Logs
###############################################################################
# LOG de tout paquet DROPpé que l'on veut logué
iptables -N log_input_wan_drop
iptables -A log_input_wan_drop -j LOG --log-prefix '[IpTables INPUT WAN DROP]'
iptables -A log_input_wan_drop -j DROP
iptables -N log_output_wan_drop
iptables -A log_output_wan_drop -j LOG --log-prefix '[IpTables OUTPUT WAN DROP]'
iptables -A log_output_wan_drop -j DROP
iptables -N log_input_lan_drop
iptables -A log_input_lan_drop -j LOG --log-prefix '[IpTables INPUT LAN DROP]'
iptables -A log_input_lan_drop -j DROP
iptables -N log_output_lan_drop
iptables -A log_output_lan_drop -j LOG --log-prefix '[IpTables OUTPUT LAN DROP]'
iptables -A log_output_lan_drop -j DROP
# LOG de tout paquet ACEPTé que l'on veut logué
iptables -N log_input_wan_accept
iptables -A log_input_wan_accept -j LOG --log-prefix '[IpTables INPUT WAN ACCEPT]'
iptables -A log_input_wan_accept -j ACCEPT
iptables -N log_output_wan_accept
iptables -A log_output_wan_accept -j LOG --log-prefix '[IpTables OUTPUT WAN ACCEPT]'
iptables -A log_output_wan_accept -j ACCEPT
iptables -N log_input_lan_accept
iptables -A log_input_lan_accept -j LOG --log-prefix '[IpTables INPUT LAN ACCEPT]'
iptables -A log_input_lan_accept -j ACCEPT
iptables -N log_output_lan_accept
iptables -A log_output_lan_accept -j LOG --log-prefix '[IpTables OUTPUT LAN ACCEPT]'
iptables -A log_output_lan_accept -j ACCEPT
###############################################################################
# DEBUT des politiques par défaut
###############################################################################
# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP
# Je veux que les connexions destinées à être forwardées soient acceptées par défaut
iptables -P FORWARD ACCEPT
# Je veux que les connexions sortantes soient bloquées par défaut
iptables -P OUTPUT DROP
###############################################################################
# FIN des politiques par défaut
###############################################################################
# INPUT
###############################################################################
# ppp0
###############################################################################
# Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée !
# Une variante de 'no-spoofing' !
iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback
iptables -A INPUT -i ppp+ -s 10.0.0.0/8 -j log_input_wan_drop # adr Class A privée
iptables -A INPUT -i ppp+ -s 169.254.0.0/16 -j log_input_wan_drop # adr Link Local Network
iptables -A INPUT -i ppp+ -s 172.16.0.0/12 -j log_input_wan_drop # adr Class B privée
iptables -A INPUT -i ppp+ -s 192.0.2.0/24 -j log_input_wan_drop # adr TEST-NET
iptables -A INPUT -i ppp+ -s 192.168.0.0/24 -j log_input_wan_drop # adr Class C Privée
iptables -A INPUT -i ppp+ -s 224.0.0.1/4 -j log_input_wan_drop # adr Class D MultiCast
iptables -A INPUT -i ppp+ -s 240.0.0.0/4 -j log_input_wan_drop # adr Class E Réservée
# lo
###############################################################################
# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT
# eth0
###############################################################################
# J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept
# general
###############################################################################
# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept
# pour le reste on supprime
iptables -A INPUT -i eth0 -j log_input_lan_drop
iptables -A INPUT -i ppp+ -j log_input_wan_drop
###############################################################################
# OUTPUT
###############################################################################
# lo
###############################################################################
# Pas de filtrage sur l'interface de "loopback"
iptables -A OUTPUT -o lo -j ACCEPT
# ppp0
###############################################################################
# J'accepte les packets sortants pour internet :
iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data
iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp
iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp
iptables -A OUTPUT -o ppp+ -p tcp --dport 53 -m state --state ! INVALID -j log_output_wan_accept # DNS
iptables -A OUTPUT -o ppp+ -p tcp --dport 80 -m state --state ! INVALID -j log_output_wan_accept # http
iptables -A OUTPUT -o ppp+ -p tcp --dport 110 -m state --state ! INVALID -j log_output_wan_accept # pop3
iptables -A OUTPUT -o ppp+ -p tcp --dport 443 -m state --state ! INVALID -j log_output_wan_accept # https
iptables -A OUTPUT -o ppp+ -p tcp --dport 1863 -m state --state ! INVALID -j log_output_wan_accept # msn
iptables -A OUTPUT -o ppp+ -p tcp --dport 6667 -m state --state ! INVALID -j log_output_wan_accept # irc
# J'accepte les packets sortants relatifs à des connexions déjà établies
# iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept
# eth0
###############################################################################
# J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh
# general
###############################################################################
# pour le reste on supprime
iptables -A OUTPUT -o eth0 -j log_output_lan_drop
iptables -A OUTPUT -o ppp+ -j log_output_wan_drop
###############################################################################
# DEBUT des règles pour le PARTAGE DE CONNEXION
###############################################################################
# Je veux que mon système fasse office de "serveur NAT"
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
# Si la connexion que vous partagez est une connexion ADSL, vous
# serez probablement confronté au fameux problème du MTU. En résumé,
# le problème vient du fait que le MTU de la liaison entre votre
# fournisseur d'accès et le serveur NAT est un petit peu inférieur au
# MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui
# sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne
# suivante et remplaçez "eth0" par le nom de l'interface connectée à
# Internet.
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp+ --clamp-mss-to-pmtu
###############################################################################
# FIN des règles pour le PARTAGE DE CONNEXION
###############################################################################
# ACCES exterieur au serveur LAN
###############################################################################
# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées
# à la machine dont l'IP est 192.168.0.3 sur son port 80
# (la réponse à la requête sera forwardée au client)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
###############################################################################
---------------------------------
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.
--0-366740112-1141829133=:66615
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
<div>Bonjour,</div> <div> </div> <div>J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net.</div> <div>Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.</div> <div> </div> <div>Merci de vos commentaire.</div> <div> </div> <div>Christophe</div> <div> </div> <div>###############################################################################<BR># REMISE à ZERO des règles de filtrage<BR>###############################################################################</div> <div>iptables -F<BR>iptables -X<BR>iptables -t nat -F<BR>iptables -t nat -X</div> <div>###############################################################################<BR># Logs<BR>###############################################################################</div> <div># LOG de tout paquet DROPpé que l'on veut logué</div> <div>iptables -N log_input_wan_drop<BR>iptables
-A log_input_wan_drop -j LOG --log-prefix '[IpTables INPUT WAN DROP]'<BR>iptables -A log_input_wan_drop -j DROP</div> <div>iptables -N log_output_wan_drop<BR>iptables -A log_output_wan_drop -j LOG --log-prefix '[IpTables OUTPUT WAN DROP]'<BR>iptables -A log_output_wan_drop -j DROP</div> <div>iptables -N log_input_lan_drop<BR>iptables -A log_input_lan_drop -j LOG --log-prefix '[IpTables INPUT LAN DROP]'<BR>iptables -A log_input_lan_drop -j DROP</div> <div>iptables -N log_output_lan_drop<BR>iptables -A log_output_lan_drop -j LOG --log-prefix '[IpTables OUTPUT LAN DROP]'<BR>iptables -A log_output_lan_drop -j DROP</div> <div># LOG de tout paquet ACEPTé que l'on veut logué</div> <div>iptables -N log_input_wan_accept<BR>iptables -A log_input_wan_accept -j LOG --log-prefix '[IpTables INPUT WAN ACCEPT]'<BR>iptables -A log_input_wan_accept -j ACCEPT</div> <div>iptables -N log_output_wan_accept<BR>iptables -A log_output_wan_accept -j LOG --log-prefix '[IpTables OUTPUT WAN
ACCEPT]'<BR>iptables -A log_output_wan_accept -j ACCEPT</div> <div>iptables -N log_input_lan_accept<BR>iptables -A log_input_lan_accept -j LOG --log-prefix '[IpTables INPUT LAN ACCEPT]'<BR>iptables -A log_input_lan_accept -j ACCEPT</div> <div>iptables -N log_output_lan_accept<BR>iptables -A log_output_lan_accept -j LOG --log-prefix '[IpTables OUTPUT LAN ACCEPT]'<BR>iptables -A log_output_lan_accept -j ACCEPT</div> <div>###############################################################################<BR># DEBUT des politiques par défaut<BR>###############################################################################<BR># Je veux que les connexions entrantes soient bloquées par défaut</div> <div>iptables -P INPUT DROP</div> <div># Je veux que les connexions destinées à être forwardées soient acceptées par défaut</div> <div>iptables -P FORWARD ACCEPT</div> <div># Je veux que les connexions sortantes soient bloquées par défaut</div> <div>iptables -P OUTPUT DROP</div>
<div>###############################################################################<BR># FIN des politiques par défaut<BR>###############################################################################</div> <div># INPUT <BR>###############################################################################</div> <div># ppp0<BR>###############################################################################</div> <div># Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée !<BR># Une variante de 'no-spoofing' !</div> <div>iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback<BR>iptables -A INPUT -i ppp+ -s 10.0.0.0/8 -j log_input_wan_drop # adr Class A privée<BR>iptables -A INPUT -i ppp+ -s 169.254.0.0/16 -j log_input_wan_drop # adr Link Local Network<BR>iptables -A INPUT -i ppp+ -s 172.16.0.0/12 -j log_input_wan_drop # adr Class B privée<BR>iptables -A INPUT -i ppp+
-s 192.0.2.0/24 -j log_input_wan_drop # adr TEST-NET<BR>iptables -A INPUT -i ppp+ -s 192.168.0.0/24 -j log_input_wan_drop # adr Class C Privée<BR>iptables -A INPUT -i ppp+ -s 224.0.0.1/4 -j log_input_wan_drop # adr Class D MultiCast<BR>iptables -A INPUT -i ppp+ -s 240.0.0.0/4 -j log_input_wan_drop # adr Class E Réservée</div> <div># lo<BR>###############################################################################</div> <div># Pas de filtrage sur l'interface de "loopback"</div> <div>iptables -A INPUT -i lo -j ACCEPT</div> <div># eth0<BR>###############################################################################</div> <div># J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0"<BR># (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)</div> <div>iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept</div> <div>#
general<BR>###############################################################################</div> <div># J'accepte les packets entrants relatifs à des connexions déjà établies</div> <div>iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept<BR>iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept</div> <div># pour le reste on supprime</div> <div>iptables -A INPUT -i eth0 -j log_input_lan_drop<BR>iptables -A INPUT -i ppp+ -j log_input_wan_drop</div> <div>###############################################################################<BR># OUTPUT <BR>###############################################################################</div> <div># lo<BR>###############################################################################</div> <div># Pas de filtrage sur l'interface de "loopback"<BR>iptables -A OUTPUT -o lo -j ACCEPT</div> <div>#
ppp0<BR>###############################################################################</div> <div># J'accepte les packets sortants pour internet : </div> <div>iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 53 -m state --state ! INVALID -j log_output_wan_accept # DNS<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 80 -m state --state ! INVALID -j log_output_wan_accept # http<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 110 -m state --state ! INVALID -j log_output_wan_accept # pop3<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 443 -m state --state ! INVALID -j
log_output_wan_accept # https<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 1863 -m state --state ! INVALID -j log_output_wan_accept # msn<BR>iptables -A OUTPUT -o ppp+ -p tcp --dport 6667 -m state --state ! INVALID -j log_output_wan_accept # irc</div> <div># J'accepte les packets sortants relatifs à des connexions déjà établies</div> <div># iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept</div> <div># eth0<BR>###############################################################################</div> <div># J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0"<BR># (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)</div> <div>iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh</div> <div># general<BR>###############################################################################</div>
<div># pour le reste on supprime</div> <div>iptables -A OUTPUT -o eth0 -j log_output_lan_drop<BR>iptables -A OUTPUT -o ppp+ -j log_output_wan_drop</div> <div>###############################################################################<BR># DEBUT des règles pour le PARTAGE DE CONNEXION<BR>###############################################################################<BR># Je veux que mon système fasse office de "serveur NAT"</div> <div>iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE</div> <div># Si la connexion que vous partagez est une connexion ADSL, vous<BR># serez probablement confronté au fameux problème du MTU. En résumé,<BR># le problème vient du fait que le MTU de la liaison entre votre<BR># fournisseur d'accès et le serveur NAT est un petit peu inférieur au<BR># MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui<BR># sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne<BR># suivante et remplaçez "eth0" par le nom de l'interface
connectée à<BR># Internet.</div> <div>iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp+ --clamp-mss-to-pmtu</div> <div><BR>###############################################################################<BR># FIN des règles pour le PARTAGE DE CONNEXION</div> <div>###############################################################################<BR># ACCES exterieur au serveur LAN<BR>###############################################################################<BR># Je veux que les requêtes TCP reçues sur le port 80 soient forwardées<BR># à la machine dont l'IP est 192.168.0.3 sur son port 80<BR># (la réponse à la requête sera forwardée au client)</div> <div>iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80</div> <div>###############################################################################</div><p>
<hr size=1> Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.
<a href="http://us.rd.yahoo.com/messenger/mail_taglines/default/*http://fr.beta.messenger.yahoo.com">Téléchargez</a> la version beta.
--0-366740112-1141829133=:66615--
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé Hounzandji
Christophe Delcenserie a écrit :
Bonjour,
J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net. Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.
Merci de vos commentaire.
Dis nous stp si ton script génère des erreurs et si oui quelles erreurs ? sinon Franchement, je pense que c'est pas facile de se retrouver dans ton script (il faut prendre du temps et chacun de nous a un boulot). . Je te propose d'aller sur le lien http://ceyquem.free.fr/www/articles/passerelle_freebox/passerelle_freebox.htm
Et tu verras que tout se passera très bien.
Christophe
############################################################################### # REMISE à ZERO des règles de filtrage ############################################################################### iptables -F iptables -X iptables -t nat -F iptables -t nat -X ############################################################################### # Logs ############################################################################### # LOG de tout paquet DROPpé que l'on veut logué iptables -N log_input_wan_drop iptables -A log_input_wan_drop -j LOG --log-prefix '[IpTables INPUT WAN DROP]' iptables -A log_input_wan_drop -j DROP iptables -N log_output_wan_drop iptables -A log_output_wan_drop -j LOG --log-prefix '[IpTables OUTPUT WAN DROP]' iptables -A log_output_wan_drop -j DROP iptables -N log_input_lan_drop iptables -A log_input_lan_drop -j LOG --log-prefix '[IpTables INPUT LAN DROP]' iptables -A log_input_lan_drop -j DROP iptables -N log_output_lan_drop iptables -A log_output_lan_drop -j LOG --log-prefix '[IpTables OUTPUT LAN DROP]' iptables -A log_output_lan_drop -j DROP # LOG de tout paquet ACEPTé que l'on veut logué iptables -N log_input_wan_accept iptables -A log_input_wan_accept -j LOG --log-prefix '[IpTables INPUT WAN ACCEPT]' iptables -A log_input_wan_accept -j ACCEPT iptables -N log_output_wan_accept iptables -A log_output_wan_accept -j LOG --log-prefix '[IpTables OUTPUT WAN ACCEPT]' iptables -A log_output_wan_accept -j ACCEPT iptables -N log_input_lan_accept iptables -A log_input_lan_accept -j LOG --log-prefix '[IpTables INPUT LAN ACCEPT]' iptables -A log_input_lan_accept -j ACCEPT iptables -N log_output_lan_accept iptables -A log_output_lan_accept -j LOG --log-prefix '[IpTables OUTPUT LAN ACCEPT]' iptables -A log_output_lan_accept -j ACCEPT ############################################################################### # DEBUT des politiques par défaut ############################################################################### # Je veux que les connexions entrantes soient bloquées par défaut iptables -P INPUT DROP # Je veux que les connexions destinées à être forwardées soient acceptées par défaut iptables -P FORWARD ACCEPT # Je veux que les connexions sortantes soient bloquées par défaut iptables -P OUTPUT DROP ############################################################################### # FIN des politiques par défaut ############################################################################### # INPUT ############################################################################### # ppp0 ############################################################################### # Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée ! # Une variante de 'no-spoofing' ! iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback iptables -A INPUT -i ppp+ -s 10.0.0.0/8 -j log_input_wan_drop # adr Class A privée iptables -A INPUT -i ppp+ -s 169.254.0.0/16 -j log_input_wan_drop # adr Link Local Network iptables -A INPUT -i ppp+ -s 172.16.0.0/12 -j log_input_wan_drop # adr Class B privée iptables -A INPUT -i ppp+ -s 192.0.2.0/24 -j log_input_wan_drop # adr TEST-NET iptables -A INPUT -i ppp+ -s 192.168.0.0/24 -j log_input_wan_drop # adr Class C Privée iptables -A INPUT -i ppp+ -s 224.0.0.1/4 -j log_input_wan_drop # adr Class D MultiCast iptables -A INPUT -i ppp+ -s 240.0.0.0/4 -j log_input_wan_drop # adr Class E Réservée # lo ############################################################################### # Pas de filtrage sur l'interface de "loopback" iptables -A INPUT -i lo -j ACCEPT # eth0 ############################################################################### # J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept # general ############################################################################### # J'accepte les packets entrants relatifs à des connexions déjà établies iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept # pour le reste on supprime iptables -A INPUT -i eth0 -j log_input_lan_drop iptables -A INPUT -i ppp+ -j log_input_wan_drop ############################################################################### # OUTPUT ############################################################################### # lo ############################################################################### # Pas de filtrage sur l'interface de "loopback" iptables -A OUTPUT -o lo -j ACCEPT # ppp0 ############################################################################### # J'accepte les packets sortants pour internet : iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp iptables -A OUTPUT -o ppp+ -p tcp --dport 53 -m state --state ! INVALID -j log_output_wan_accept # DNS iptables -A OUTPUT -o ppp+ -p tcp --dport 80 -m state --state ! INVALID -j log_output_wan_accept # http iptables -A OUTPUT -o ppp+ -p tcp --dport 110 -m state --state ! INVALID -j log_output_wan_accept # pop3 iptables -A OUTPUT -o ppp+ -p tcp --dport 443 -m state --state ! INVALID -j log_output_wan_accept # https iptables -A OUTPUT -o ppp+ -p tcp --dport 1863 -m state --state ! INVALID -j log_output_wan_accept # msn iptables -A OUTPUT -o ppp+ -p tcp --dport 6667 -m state --state ! INVALID -j log_output_wan_accept # irc # J'accepte les packets sortants relatifs à des connexions déjà établies # iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept # eth0 ############################################################################### # J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh # general ############################################################################### # pour le reste on supprime iptables -A OUTPUT -o eth0 -j log_output_lan_drop iptables -A OUTPUT -o ppp+ -j log_output_wan_drop ############################################################################### # DEBUT des règles pour le PARTAGE DE CONNEXION ############################################################################### # Je veux que mon système fasse office de "serveur NAT" iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE # Si la connexion que vous partagez est une connexion ADSL, vous # serez probablement confronté au fameux problème du MTU. En résumé, # le problème vient du fait que le MTU de la liaison entre votre # fournisseur d'accès et le serveur NAT est un petit peu inférieur au # MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui # sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne # suivante et remplaçez "eth0" par le nom de l'interface connectée à # Internet. iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp+ --clamp-mss-to-pmtu
############################################################################### # FIN des règles pour le PARTAGE DE CONNEXION ############################################################################### # ACCES exterieur au serveur LAN ############################################################################### # Je veux que les requêtes TCP reçues sur le port 80 soient forwardées # à la machine dont l'IP est 192.168.0.3 sur son port 80 # (la réponse à la requête sera forwardée au client) iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80 ###############################################################################
------------------------------------------------------------------------ Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez <http://us.rd.yahoo.com/messenger/mail_taglines/default/*http://fr.beta.messenger.yahoo.com> la version beta.
-- Hervé Hounzandji Dsi-Dae - Rectorat Nancy-Metz tél : 03 83 86 27 66 www.ac-nancy-metz.fr ---------------------------------------------- "Prenez soin de Vous. Chaque jour est une Vie"
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Christophe Delcenserie a écrit :
Bonjour,
J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et
que les machines dans mon lan puissent aller sur le net.
Je souhaite la sortie que de quelques ports et que de l'exterieur, on
n'accepte pas a mon lan.
Merci de vos commentaire.
Dis nous stp si ton script génère des erreurs et si oui quelles erreurs ?
sinon Franchement, je pense que c'est pas facile de se retrouver dans
ton script (il faut prendre du temps et chacun de nous a un boulot). .
Je te propose d'aller sur le lien
http://ceyquem.free.fr/www/articles/passerelle_freebox/passerelle_freebox.htm
Et tu verras que tout se passera très bien.
Christophe
###############################################################################
# REMISE à ZERO des règles de filtrage
###############################################################################
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
###############################################################################
# Logs
###############################################################################
# LOG de tout paquet DROPpé que l'on veut logué
iptables -N log_input_wan_drop
iptables -A log_input_wan_drop -j LOG --log-prefix '[IpTables INPUT
WAN DROP]'
iptables -A log_input_wan_drop -j DROP
iptables -N log_output_wan_drop
iptables -A log_output_wan_drop -j LOG --log-prefix '[IpTables OUTPUT
WAN DROP]'
iptables -A log_output_wan_drop -j DROP
iptables -N log_input_lan_drop
iptables -A log_input_lan_drop -j LOG --log-prefix '[IpTables INPUT
LAN DROP]'
iptables -A log_input_lan_drop -j DROP
iptables -N log_output_lan_drop
iptables -A log_output_lan_drop -j LOG --log-prefix '[IpTables OUTPUT
LAN DROP]'
iptables -A log_output_lan_drop -j DROP
# LOG de tout paquet ACEPTé que l'on veut logué
iptables -N log_input_wan_accept
iptables -A log_input_wan_accept -j LOG --log-prefix '[IpTables INPUT
WAN ACCEPT]'
iptables -A log_input_wan_accept -j ACCEPT
iptables -N log_output_wan_accept
iptables -A log_output_wan_accept -j LOG --log-prefix '[IpTables
OUTPUT WAN ACCEPT]'
iptables -A log_output_wan_accept -j ACCEPT
iptables -N log_input_lan_accept
iptables -A log_input_lan_accept -j LOG --log-prefix '[IpTables INPUT
LAN ACCEPT]'
iptables -A log_input_lan_accept -j ACCEPT
iptables -N log_output_lan_accept
iptables -A log_output_lan_accept -j LOG --log-prefix '[IpTables
OUTPUT LAN ACCEPT]'
iptables -A log_output_lan_accept -j ACCEPT
###############################################################################
# DEBUT des politiques par défaut
###############################################################################
# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP
# Je veux que les connexions destinées à être forwardées soient
acceptées par défaut
iptables -P FORWARD ACCEPT
# Je veux que les connexions sortantes soient bloquées par défaut
iptables -P OUTPUT DROP
###############################################################################
# FIN des politiques par défaut
###############################################################################
# INPUT
###############################################################################
# ppp0
###############################################################################
# Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip
celles d'une classe privée !
# Une variante de 'no-spoofing' !
iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr
de Loopback
iptables -A INPUT -i ppp+ -s 10.0.0.0/8 -j log_input_wan_drop # adr
Class A privée
iptables -A INPUT -i ppp+ -s 169.254.0.0/16 -j log_input_wan_drop #
adr Link Local Network
iptables -A INPUT -i ppp+ -s 172.16.0.0/12 -j log_input_wan_drop #
adr Class B privée
iptables -A INPUT -i ppp+ -s 192.0.2.0/24 -j log_input_wan_drop # adr
TEST-NET
iptables -A INPUT -i ppp+ -s 192.168.0.0/24 -j log_input_wan_drop #
adr Class C Privée
iptables -A INPUT -i ppp+ -s 224.0.0.1/4 -j log_input_wan_drop # adr
Class D MultiCast
iptables -A INPUT -i ppp+ -s 240.0.0.0/4 -j log_input_wan_drop # adr
Class E Réservée
# lo
###############################################################################
# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT
# eth0
###############################################################################
# J'autorise les connexions TCP entrantes sur le port 22 uniquement
sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept
# general
###############################################################################
# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j
log_input_lan_accept
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j
log_input_wan_accept
# pour le reste on supprime
iptables -A INPUT -i eth0 -j log_input_lan_drop
iptables -A INPUT -i ppp+ -j log_input_wan_drop
###############################################################################
# OUTPUT
###############################################################################
# lo
###############################################################################
# Pas de filtrage sur l'interface de "loopback"
iptables -A OUTPUT -o lo -j ACCEPT
# ppp0
###############################################################################
# J'accepte les packets sortants pour internet :
iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state !
INVALID -j log_output_wan_accept # ftp data
iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state !
INVALID -j log_output_wan_accept # ftp
iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state !
INVALID -j log_output_wan_accept # smtp
iptables -A OUTPUT -o ppp+ -p tcp --dport 53 -m state --state !
INVALID -j log_output_wan_accept # DNS
iptables -A OUTPUT -o ppp+ -p tcp --dport 80 -m state --state !
INVALID -j log_output_wan_accept # http
iptables -A OUTPUT -o ppp+ -p tcp --dport 110 -m state --state !
INVALID -j log_output_wan_accept # pop3
iptables -A OUTPUT -o ppp+ -p tcp --dport 443 -m state --state !
INVALID -j log_output_wan_accept # https
iptables -A OUTPUT -o ppp+ -p tcp --dport 1863 -m state --state !
INVALID -j log_output_wan_accept # msn
iptables -A OUTPUT -o ppp+ -p tcp --dport 6667 -m state --state !
INVALID -j log_output_wan_accept # irc
# J'accepte les packets sortants relatifs à des connexions déjà établies
# iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j
log_output_wan_accept
# eth0
###############################################################################
# J'autorise les connexions TCP sortantes sur le port 22 uniquement
sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state !
INVALID -j log_output_lan_accept # ssh
# general
###############################################################################
# pour le reste on supprime
iptables -A OUTPUT -o eth0 -j log_output_lan_drop
iptables -A OUTPUT -o ppp+ -j log_output_wan_drop
###############################################################################
# DEBUT des règles pour le PARTAGE DE CONNEXION
###############################################################################
# Je veux que mon système fasse office de "serveur NAT"
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
# Si la connexion que vous partagez est une connexion ADSL, vous
# serez probablement confronté au fameux problème du MTU. En résumé,
# le problème vient du fait que le MTU de la liaison entre votre
# fournisseur d'accès et le serveur NAT est un petit peu inférieur au
# MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui
# sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne
# suivante et remplaçez "eth0" par le nom de l'interface connectée à
# Internet.
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp+
--clamp-mss-to-pmtu
###############################################################################
# FIN des règles pour le PARTAGE DE CONNEXION
###############################################################################
# ACCES exterieur au serveur LAN
###############################################################################
# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées
# à la machine dont l'IP est 192.168.0.3 sur son port 80
# (la réponse à la requête sera forwardée au client)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT
--to-destination 192.168.0.3:80
###############################################################################
------------------------------------------------------------------------
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les
tarifs exceptionnels pour appeler la France et l'international.
Téléchargez
<http://us.rd.yahoo.com/messenger/mail_taglines/default/*http://fr.beta.messenger.yahoo.com>
la version beta.
--
Hervé Hounzandji
Dsi-Dae - Rectorat Nancy-Metz
tél : 03 83 86 27 66
www.ac-nancy-metz.fr
----------------------------------------------
"Prenez soin de Vous. Chaque jour est une Vie"
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net. Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.
Merci de vos commentaire.
Dis nous stp si ton script génère des erreurs et si oui quelles erreurs ? sinon Franchement, je pense que c'est pas facile de se retrouver dans ton script (il faut prendre du temps et chacun de nous a un boulot). . Je te propose d'aller sur le lien http://ceyquem.free.fr/www/articles/passerelle_freebox/passerelle_freebox.htm
Et tu verras que tout se passera très bien.
Christophe
############################################################################### # REMISE à ZERO des règles de filtrage ############################################################################### iptables -F iptables -X iptables -t nat -F iptables -t nat -X ############################################################################### # Logs ############################################################################### # LOG de tout paquet DROPpé que l'on veut logué iptables -N log_input_wan_drop iptables -A log_input_wan_drop -j LOG --log-prefix '[IpTables INPUT WAN DROP]' iptables -A log_input_wan_drop -j DROP iptables -N log_output_wan_drop iptables -A log_output_wan_drop -j LOG --log-prefix '[IpTables OUTPUT WAN DROP]' iptables -A log_output_wan_drop -j DROP iptables -N log_input_lan_drop iptables -A log_input_lan_drop -j LOG --log-prefix '[IpTables INPUT LAN DROP]' iptables -A log_input_lan_drop -j DROP iptables -N log_output_lan_drop iptables -A log_output_lan_drop -j LOG --log-prefix '[IpTables OUTPUT LAN DROP]' iptables -A log_output_lan_drop -j DROP # LOG de tout paquet ACEPTé que l'on veut logué iptables -N log_input_wan_accept iptables -A log_input_wan_accept -j LOG --log-prefix '[IpTables INPUT WAN ACCEPT]' iptables -A log_input_wan_accept -j ACCEPT iptables -N log_output_wan_accept iptables -A log_output_wan_accept -j LOG --log-prefix '[IpTables OUTPUT WAN ACCEPT]' iptables -A log_output_wan_accept -j ACCEPT iptables -N log_input_lan_accept iptables -A log_input_lan_accept -j LOG --log-prefix '[IpTables INPUT LAN ACCEPT]' iptables -A log_input_lan_accept -j ACCEPT iptables -N log_output_lan_accept iptables -A log_output_lan_accept -j LOG --log-prefix '[IpTables OUTPUT LAN ACCEPT]' iptables -A log_output_lan_accept -j ACCEPT ############################################################################### # DEBUT des politiques par défaut ############################################################################### # Je veux que les connexions entrantes soient bloquées par défaut iptables -P INPUT DROP # Je veux que les connexions destinées à être forwardées soient acceptées par défaut iptables -P FORWARD ACCEPT # Je veux que les connexions sortantes soient bloquées par défaut iptables -P OUTPUT DROP ############################################################################### # FIN des politiques par défaut ############################################################################### # INPUT ############################################################################### # ppp0 ############################################################################### # Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée ! # Une variante de 'no-spoofing' ! iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback iptables -A INPUT -i ppp+ -s 10.0.0.0/8 -j log_input_wan_drop # adr Class A privée iptables -A INPUT -i ppp+ -s 169.254.0.0/16 -j log_input_wan_drop # adr Link Local Network iptables -A INPUT -i ppp+ -s 172.16.0.0/12 -j log_input_wan_drop # adr Class B privée iptables -A INPUT -i ppp+ -s 192.0.2.0/24 -j log_input_wan_drop # adr TEST-NET iptables -A INPUT -i ppp+ -s 192.168.0.0/24 -j log_input_wan_drop # adr Class C Privée iptables -A INPUT -i ppp+ -s 224.0.0.1/4 -j log_input_wan_drop # adr Class D MultiCast iptables -A INPUT -i ppp+ -s 240.0.0.0/4 -j log_input_wan_drop # adr Class E Réservée # lo ############################################################################### # Pas de filtrage sur l'interface de "loopback" iptables -A INPUT -i lo -j ACCEPT # eth0 ############################################################################### # J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept # general ############################################################################### # J'accepte les packets entrants relatifs à des connexions déjà établies iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept # pour le reste on supprime iptables -A INPUT -i eth0 -j log_input_lan_drop iptables -A INPUT -i ppp+ -j log_input_wan_drop ############################################################################### # OUTPUT ############################################################################### # lo ############################################################################### # Pas de filtrage sur l'interface de "loopback" iptables -A OUTPUT -o lo -j ACCEPT # ppp0 ############################################################################### # J'accepte les packets sortants pour internet : iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp iptables -A OUTPUT -o ppp+ -p tcp --dport 53 -m state --state ! INVALID -j log_output_wan_accept # DNS iptables -A OUTPUT -o ppp+ -p tcp --dport 80 -m state --state ! INVALID -j log_output_wan_accept # http iptables -A OUTPUT -o ppp+ -p tcp --dport 110 -m state --state ! INVALID -j log_output_wan_accept # pop3 iptables -A OUTPUT -o ppp+ -p tcp --dport 443 -m state --state ! INVALID -j log_output_wan_accept # https iptables -A OUTPUT -o ppp+ -p tcp --dport 1863 -m state --state ! INVALID -j log_output_wan_accept # msn iptables -A OUTPUT -o ppp+ -p tcp --dport 6667 -m state --state ! INVALID -j log_output_wan_accept # irc # J'accepte les packets sortants relatifs à des connexions déjà établies # iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept # eth0 ############################################################################### # J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh # general ############################################################################### # pour le reste on supprime iptables -A OUTPUT -o eth0 -j log_output_lan_drop iptables -A OUTPUT -o ppp+ -j log_output_wan_drop ############################################################################### # DEBUT des règles pour le PARTAGE DE CONNEXION ############################################################################### # Je veux que mon système fasse office de "serveur NAT" iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE # Si la connexion que vous partagez est une connexion ADSL, vous # serez probablement confronté au fameux problème du MTU. En résumé, # le problème vient du fait que le MTU de la liaison entre votre # fournisseur d'accès et le serveur NAT est un petit peu inférieur au # MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui # sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne # suivante et remplaçez "eth0" par le nom de l'interface connectée à # Internet. iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp+ --clamp-mss-to-pmtu
############################################################################### # FIN des règles pour le PARTAGE DE CONNEXION ############################################################################### # ACCES exterieur au serveur LAN ############################################################################### # Je veux que les requêtes TCP reçues sur le port 80 soient forwardées # à la machine dont l'IP est 192.168.0.3 sur son port 80 # (la réponse à la requête sera forwardée au client) iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80 ###############################################################################
------------------------------------------------------------------------ Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez <http://us.rd.yahoo.com/messenger/mail_taglines/default/*http://fr.beta.messenger.yahoo.com> la version beta.
-- Hervé Hounzandji Dsi-Dae - Rectorat Nancy-Metz tél : 03 83 86 27 66 www.ac-nancy-metz.fr ---------------------------------------------- "Prenez soin de Vous. Chaque jour est une Vie"
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Pascal Hambourg
Salut,
J'ai ajouté "iptables" dans le sujet afin qu'il soit plus explicite.
Christophe Delcenserie a écrit :
J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net. Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.
Il faudrait que tu précises quelques points : - à quelle machine est destiné ce script ? la passerelle internet ? - où est le serveur web ? sur une machine du LAN ?
[...]
# Je veux que les connexions destinées à être forwardées soient acceptées par défaut iptables -P FORWARD ACCEPT
Ça commence mal si tu veux restreindre le trafic entre internet et ton LAN !
############################################################################### # INPUT ############################################################################### # ppp0 ############################################################################### # Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée ! # Une variante de 'no-spoofing' ! iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback
[etc.]
Tu fais comme tu veux, mais à quoi cela va-t-il te servir de logger des paquets dont l'adresse source est spoofée ?
[...]
# J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept
Encore une fois tu fais comme tu veux, mais est-il vraiment souhataible de logger *tous* les paquets des connexions SSH provenant du LAN ? Le premier, je ne dis pas - et encore, il y a déjà les logs de sshd - mais les suivants ?
# J'accepte les packets entrants relatifs à des connexions déjà établies iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept
Ces règles devraient être placées en tête de la chaîne pour un maximum d'efficacité. Je pose à nouveau la question de l'opportunité de logger *tous* les paquets entrants acceptés.
# pour le reste on supprime iptables -A INPUT -i eth0 -j log_input_lan_drop iptables -A INPUT -i ppp+ -j log_input_wan_drop
Brutal, expéditif, et contraire aux normes. En un mot, mauvais. Je me permets de citer l'excellente réponse faite aujourd'hui par un contributeur dans le forum Usenet news:fr.comp.os.linux.configuration :
"Dans un soucis de transparence (la sécurité par l'obscurantisme n'existe pas), de respect des normes (RFC), de courtoisie (répondre poliment à une connexion erronée) et de confort (répondre au lieu de faire attendre inutilement ; timeout), un firewall avec une bonne politique devrait répondre à ces deux principes :
- Ne devraient être bloqués/ignorés (DROP) que les paquets dont l'état est INVALID, dont l'adresse est usurpée ou dont le type est suspicieux. - Devraient être rejetés (REJECT), avec le bon message (TCP RST pour TCP, ICMP port unreachable pour UDP, ICMP protocol unreachable pour un protocole autre, ...), les paquets dont l'état est valide (! INVALID) mais qu'on ne veut pas accepter.
Enfin, comme je le sous-entendais précédemment, pour limiter les attaques qui pourraient conduire à un trafic montant important, on peut utiliser le match limit d'iptables afin de limiter le nombre de REJECT émis."
[...]
############################################################################### # J'accepte les packets sortants pour internet : iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data
Si c'est pour du FTP actif, cette règle est inutile si le module de suivi FTP ip_conntrack_ftp est chargé.
iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp
[etc.]
Quelle lourdeur ! Pourquoi ne pas commencer par une règle qui bloque les paquets invalides ? Après, on n'en parle plus. On peut aussi utiliser une chaîne utilisateur pour regrouper des règles ayant des paramètres communs. Je réitère mon interrogation sur l'intérêt de tout logger.
# J'accepte les packets sortants relatifs à des connexions déjà établies # iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept
Comme précédemment, cette règle devrait se trouver en début de chaîne.
[...]
# J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh
Si tu veux que le serveur SSH puisse répondre, il faut accepter le port *source* 22 (--sport), pas le port destination. Accessoirement, cette règle acceptera n'importe quel paquet valide pourvu qu'il ait le port source 22. Pas terrible. Je sais bien que c'est un port privilégié et que sshd écoute déjà dessus, mais pas terrible quand même dans le principe. Le suivi de connexion sert justement à éviter ce genre de choses.
# pour le reste on supprime iptables -A OUTPUT -o eth0 -j log_output_lan_drop
Et dans "le reste", il y a des messages ICMP utiles dont le blocage peut causer des désagréments. Une règle acceptant les paquets appartenant ou relatifs aux connexions établies, comme pour ppp+ et dans INPUT, serait préférable. De plus elle rendrait inutile la règle acceptant les paquets émis par le serveur SSH.
[...]
# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées # à la machine dont l'IP est 192.168.0.3 sur son port 80 # (la réponse à la requête sera forwardée au client) iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
Rappel : il n'y a aucune règle de filtrage ni de log dans la chaîne FORWARD et la politique par défaut est ACCEPT : cela signifie que *tout* le trafic dans les deux sens entre internet et le LAN (y compris les adresses sources spoofées, les paquets invalides...) est accepté sans trace. J'espère au moins que chaque machine du LAN dispose de son propre jeu de règles de filtrage.
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Salut,
J'ai ajouté "iptables" dans le sujet afin qu'il soit plus explicite.
Christophe Delcenserie a écrit :
J'aimerais que de l'exterieur on puisse acceder a mon serveur web,
et que les machines dans mon lan puissent aller sur le net.
Je souhaite la sortie que de quelques ports et que de l'exterieur,
on n'accepte pas a mon lan.
Il faudrait que tu précises quelques points :
- à quelle machine est destiné ce script ? la passerelle internet ?
- où est le serveur web ? sur une machine du LAN ?
[...]
# Je veux que les connexions destinées à être forwardées soient acceptées par défaut
iptables -P FORWARD ACCEPT
Ça commence mal si tu veux restreindre le trafic entre internet et ton LAN !
###############################################################################
# INPUT
###############################################################################
# ppp0
###############################################################################
# Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée !
# Une variante de 'no-spoofing' !
iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback
[etc.]
Tu fais comme tu veux, mais à quoi cela va-t-il te servir de logger des
paquets dont l'adresse source est spoofée ?
[...]
# J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept
Encore une fois tu fais comme tu veux, mais est-il vraiment souhataible
de logger *tous* les paquets des connexions SSH provenant du LAN ?
Le premier, je ne dis pas - et encore, il y a déjà les logs de sshd -
mais les suivants ?
# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept
iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept
Ces règles devraient être placées en tête de la chaîne pour un maximum
d'efficacité.
Je pose à nouveau la question de l'opportunité de logger *tous* les
paquets entrants acceptés.
# pour le reste on supprime
iptables -A INPUT -i eth0 -j log_input_lan_drop
iptables -A INPUT -i ppp+ -j log_input_wan_drop
Brutal, expéditif, et contraire aux normes. En un mot, mauvais.
Je me permets de citer l'excellente réponse faite aujourd'hui par un
contributeur dans le forum Usenet news:fr.comp.os.linux.configuration :
"Dans un soucis de transparence (la sécurité par l'obscurantisme
n'existe pas), de respect des normes (RFC), de courtoisie (répondre
poliment à une connexion erronée) et de confort (répondre au lieu de
faire attendre inutilement ; timeout), un firewall avec une bonne
politique devrait répondre à ces deux principes :
- Ne devraient être bloqués/ignorés (DROP) que les paquets dont
l'état est INVALID, dont l'adresse est usurpée ou dont le type est
suspicieux.
- Devraient être rejetés (REJECT), avec le bon message (TCP RST pour
TCP, ICMP port unreachable pour UDP, ICMP protocol unreachable pour un
protocole autre, ...), les paquets dont l'état est valide (! INVALID)
mais qu'on ne veut pas accepter.
Enfin, comme je le sous-entendais précédemment, pour limiter les
attaques qui pourraient conduire à un trafic montant important, on peut
utiliser le match limit d'iptables afin de limiter le nombre de REJECT
émis."
[...]
###############################################################################
# J'accepte les packets sortants pour internet :
iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data
Si c'est pour du FTP actif, cette règle est inutile si le module de
suivi FTP ip_conntrack_ftp est chargé.
iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp
iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp
[etc.]
Quelle lourdeur ! Pourquoi ne pas commencer par une règle qui bloque les
paquets invalides ? Après, on n'en parle plus. On peut aussi utiliser
une chaîne utilisateur pour regrouper des règles ayant des paramètres
communs.
Je réitère mon interrogation sur l'intérêt de tout logger.
# J'accepte les packets sortants relatifs à des connexions déjà établies
# iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept
Comme précédemment, cette règle devrait se trouver en début de chaîne.
[...]
# J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0"
# (pour que mon serveur Ssh soit joignable depuis mon LAN seulement)
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh
Si tu veux que le serveur SSH puisse répondre, il faut accepter le port
*source* 22 (--sport), pas le port destination.
Accessoirement, cette règle acceptera n'importe quel paquet valide
pourvu qu'il ait le port source 22. Pas terrible. Je sais bien que c'est
un port privilégié et que sshd écoute déjà dessus, mais pas terrible
quand même dans le principe. Le suivi de connexion sert justement à
éviter ce genre de choses.
# pour le reste on supprime
iptables -A OUTPUT -o eth0 -j log_output_lan_drop
Et dans "le reste", il y a des messages ICMP utiles dont le blocage peut
causer des désagréments. Une règle acceptant les paquets appartenant ou
relatifs aux connexions établies, comme pour ppp+ et dans INPUT, serait
préférable. De plus elle rendrait inutile la règle acceptant les paquets
émis par le serveur SSH.
[...]
# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées
# à la machine dont l'IP est 192.168.0.3 sur son port 80
# (la réponse à la requête sera forwardée au client)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
Rappel : il n'y a aucune règle de filtrage ni de log dans la chaîne
FORWARD et la politique par défaut est ACCEPT : cela signifie que *tout*
le trafic dans les deux sens entre internet et le LAN (y compris les
adresses sources spoofées, les paquets invalides...) est accepté sans
trace. J'espère au moins que chaque machine du LAN dispose de son propre
jeu de règles de filtrage.
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
J'ai ajouté "iptables" dans le sujet afin qu'il soit plus explicite.
Christophe Delcenserie a écrit :
J'aimerais que de l'exterieur on puisse acceder a mon serveur web, et que les machines dans mon lan puissent aller sur le net. Je souhaite la sortie que de quelques ports et que de l'exterieur, on n'accepte pas a mon lan.
Il faudrait que tu précises quelques points : - à quelle machine est destiné ce script ? la passerelle internet ? - où est le serveur web ? sur une machine du LAN ?
[...]
# Je veux que les connexions destinées à être forwardées soient acceptées par défaut iptables -P FORWARD ACCEPT
Ça commence mal si tu veux restreindre le trafic entre internet et ton LAN !
############################################################################### # INPUT ############################################################################### # ppp0 ############################################################################### # Detruit les connexions sur ppp0 <- Internet qui aurait pour adr_ip celles d'une classe privée ! # Une variante de 'no-spoofing' ! iptables -A INPUT -i ppp+ -s 127.0.0.0/8 -j log_input_wan_drop # adr de Loopback
[etc.]
Tu fais comme tu veux, mais à quoi cela va-t-il te servir de logger des paquets dont l'adresse source est spoofée ?
[...]
# J'autorise les connexions TCP entrantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A INPUT -p tcp -i eth0 --dport ssh -j log_input_lan_accept
Encore une fois tu fais comme tu veux, mais est-il vraiment souhataible de logger *tous* les paquets des connexions SSH provenant du LAN ? Le premier, je ne dis pas - et encore, il y a déjà les logs de sshd - mais les suivants ?
# J'accepte les packets entrants relatifs à des connexions déjà établies iptables -A INPUT -m state --state RELATED,ESTABLISHED -i eth0 -j log_input_lan_accept iptables -A INPUT -m state --state RELATED,ESTABLISHED -i ppp+ -j log_input_wan_accept
Ces règles devraient être placées en tête de la chaîne pour un maximum d'efficacité. Je pose à nouveau la question de l'opportunité de logger *tous* les paquets entrants acceptés.
# pour le reste on supprime iptables -A INPUT -i eth0 -j log_input_lan_drop iptables -A INPUT -i ppp+ -j log_input_wan_drop
Brutal, expéditif, et contraire aux normes. En un mot, mauvais. Je me permets de citer l'excellente réponse faite aujourd'hui par un contributeur dans le forum Usenet news:fr.comp.os.linux.configuration :
"Dans un soucis de transparence (la sécurité par l'obscurantisme n'existe pas), de respect des normes (RFC), de courtoisie (répondre poliment à une connexion erronée) et de confort (répondre au lieu de faire attendre inutilement ; timeout), un firewall avec une bonne politique devrait répondre à ces deux principes :
- Ne devraient être bloqués/ignorés (DROP) que les paquets dont l'état est INVALID, dont l'adresse est usurpée ou dont le type est suspicieux. - Devraient être rejetés (REJECT), avec le bon message (TCP RST pour TCP, ICMP port unreachable pour UDP, ICMP protocol unreachable pour un protocole autre, ...), les paquets dont l'état est valide (! INVALID) mais qu'on ne veut pas accepter.
Enfin, comme je le sous-entendais précédemment, pour limiter les attaques qui pourraient conduire à un trafic montant important, on peut utiliser le match limit d'iptables afin de limiter le nombre de REJECT émis."
[...]
############################################################################### # J'accepte les packets sortants pour internet : iptables -A OUTPUT -o ppp+ -p tcp --dport 20 -m state --state ! INVALID -j log_output_wan_accept # ftp data
Si c'est pour du FTP actif, cette règle est inutile si le module de suivi FTP ip_conntrack_ftp est chargé.
iptables -A OUTPUT -o ppp+ -p tcp --dport 21 -m state --state ! INVALID -j log_output_wan_accept # ftp iptables -A OUTPUT -o ppp+ -p tcp --dport 25 -m state --state ! INVALID -j log_output_wan_accept # smtp
[etc.]
Quelle lourdeur ! Pourquoi ne pas commencer par une règle qui bloque les paquets invalides ? Après, on n'en parle plus. On peut aussi utiliser une chaîne utilisateur pour regrouper des règles ayant des paramètres communs. Je réitère mon interrogation sur l'intérêt de tout logger.
# J'accepte les packets sortants relatifs à des connexions déjà établies # iptables -A OUTPUT -o ppp+ -m state --state RELATED,ESTABLISHED -j log_output_wan_accept
Comme précédemment, cette règle devrait se trouver en début de chaîne.
[...]
# J'autorise les connexions TCP sortantes sur le port 22 uniquement sur l'interface "eth0" # (pour que mon serveur Ssh soit joignable depuis mon LAN seulement) iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state ! INVALID -j log_output_lan_accept # ssh
Si tu veux que le serveur SSH puisse répondre, il faut accepter le port *source* 22 (--sport), pas le port destination. Accessoirement, cette règle acceptera n'importe quel paquet valide pourvu qu'il ait le port source 22. Pas terrible. Je sais bien que c'est un port privilégié et que sshd écoute déjà dessus, mais pas terrible quand même dans le principe. Le suivi de connexion sert justement à éviter ce genre de choses.
# pour le reste on supprime iptables -A OUTPUT -o eth0 -j log_output_lan_drop
Et dans "le reste", il y a des messages ICMP utiles dont le blocage peut causer des désagréments. Une règle acceptant les paquets appartenant ou relatifs aux connexions établies, comme pour ppp+ et dans INPUT, serait préférable. De plus elle rendrait inutile la règle acceptant les paquets émis par le serveur SSH.
[...]
# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées # à la machine dont l'IP est 192.168.0.3 sur son port 80 # (la réponse à la requête sera forwardée au client) iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
Rappel : il n'y a aucune règle de filtrage ni de log dans la chaîne FORWARD et la politique par défaut est ACCEPT : cela signifie que *tout* le trafic dans les deux sens entre internet et le LAN (y compris les adresses sources spoofées, les paquets invalides...) est accepté sans trace. J'espère au moins que chaque machine du LAN dispose de son propre jeu de règles de filtrage.
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact