Script IpTables, rien ne marche :(

Script IpTables, rien ne marche :( - Multimédia - Linux et OS Alternatifs

Marsh Posté le 01-06-2002 à 23:21:49    

J'ai récupéré le script de lea linux, je l'ai adapté à mon installation mais rien ne marche...
 
Je possède donc un pc sur linux avec modem ppp0 et une carte rézo eth0 pour mon lan.
 
Voila le script :
 
#!/bin/sh
 
# script /etc/firewall.sh
 
# Firewall d'exemple a but pédagogique
# Arnaud de Bermingham
# duracell@apinc.org
 
# Activation du forwarding
# C'est pas pour faire joli, on aura des règles
# de forward et il faut bien que les paquets
# traversent la machine, donc on met ce fichier à 1
 
echo 1 > /proc/sys/net/ipv4/ip_forward
 
# Alors la, on va appliquer quelques astuces
# pour empêcher les attaques de type spoofing
# et bloquer les réponses ICMP du firewall,
# comme ça c'est très propre. Attention, le
# fait de bloquer le trafic ICMP sur
# le firewall bloque les pings.
 
# Je veux pas de spoofing
 
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
  for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
  do
    echo 1 > $filtre
  done
fi
 
# pas de icmp
 
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 
# On va utiliser iptables. Si on l'a compilé en module
# dans le kernel, il faut charger le module ip_tables.
 
/sbin/modprobe ip_tables
 
# on va charger quelques modules supplémentaires pour
# gérer la translation d'adresse, l'IRC et le FTP
# Tu me fait 4 pompes. Chef oui chef !
 
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
 
# Pour faire bien, on va vider toutes les règles
# avant d'appliquer les nouvelles règles de firewall
 
/sbin/iptables -F
/sbin/iptables -X
 
# On va rajouter 2 nouvelles chaînes.
# Ceci permettra d'ajouter des nouvelles cibles qui
# auront la possibilité de loguer ce qui se passe.
 
# La on logue et on refuse le paquet,
# on rajoute un préfixe pour pouvoir
# s'y retrouver dans les logs
/sbin/iptables -N LOG_DROP
/sbin/iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
/sbin/iptables -A LOG_DROP -j DROP
 
# ici, on logue et on accepte le paquet,
# on rajoute un préfixe pour pouvoir
# s'y retrouver dans les logs
/sbin/iptables -N LOG_ACCEPT
/sbin/iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
/sbin/iptables -A LOG_ACCEPT -j ACCEPT
 
# On veut faire un firewall efficace,
# donc la politique a appliquer est de tout
# refuser par défaut et rajouter une a une
# les règles que l'on autorise.
# Bien sur, on a RTFM un peu et on a vu que
# l'option -P permet de définir
# la cible par défaut
 
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
 
# Pour éviter les problèmes, on va tout accepter sur
# la machine en local (interface lo).
# Je déconseille de retirer cette règle car
# ça pose pas mal de problèmes et ça peut
# faire perdre la main sur la machine
 
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
 
# Bon, la partie initialisation et préparation est
# terminée, passons aux choses sérieuses
 
# Comme on l'a dit dans la présentation de
# l'architecture réseau, le firewall fait
# également office de proxy grâce par exemple
# à un squid installé dessus. On va donc
# accepter que le proxy ait une connexion
# internet directe. Tant qu'à faire, on va
# mettre des états pour que ça soit bien sécurisé
 
/sbin/iptables -A OUTPUT -o ppp0 -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT  -i ppp0 -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT
 
# Maintenant, on va faire en sorte que le
# proxy soit totalement transparent pour le LAN
# bénéficiant de la connexion internet.
# L'astuce consiste a rediriger toutes les
# requêtes ayant un port de destination 80
# vers le port 3128 du proxy, ici c'est le
# firewall (qui est sur le firewall et qui
# a l'adresse IP 192.168.2.1 ).
# Une règle de NAT suffira largement pour faire ça.
 
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
 
# Bon, c'est pas trop compliqué ! Maintenant
# on sait que l'on a un serveur web sur la DMZ
# (la machine d'adresse IP 192.168.1.2) sur
# le port 80. On souhaite que toutes les requêtes
# provenant d'internet arrivant sur l'adresse IP
# publique du serveur ( ici 42.42.42.42 ) soit
# redirigées sur le serveur web de la DMZ.
# Rien de bien compliqué. Dans l'exemple,
# on peut retirer le :80 de la target
# --to-destination
 
#/sbin/iptables -t nat -A PREROUTING -d 42.42.42.42 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:80
 
# C'est bien tout ça ! mais le problème c'est
# que les chaînes de la table FILTER sont toutes
# à DENY, donc tout ceci ne fait rien du tout.
# On va donc passer a la configuration du
# firewall proprement dit.
 
# On va quand même accepter les connexions ssh
# (port 22) provenant d'une machine (la votre en
# l'occurrence, on va dire 192.168.2.42) vers le
# firewall pour pouvoir modifier les règles
# facilement pour bien surveiller, on vas quand
# même loguer les connexions provenant de mon IP
# et à destination du ssh du firewall
 
/sbin/iptables -A INPUT -i eth0 -s 192.168.0.2 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o eth0 -d 192.168.0.2 -m state --state ESTABLISHED -p tcp --sport 22 -j LOG_ACCEPT
 
# On veut que le LAN connecté à l'interface
# eth1 ait un accès complet à internet.
# La règle de NAT qui permettait d'avoir
# un proxy transparent sera automatiquement
# appliqué. L'interface correspondant
# à la connexion internet est ici ppp0
 
/sbin/iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
/sbin/iptables -A FORWARD -o eth0 -i ppp0 -j ACCEPT
 
# Maintenant on donne le droit au LAN de
# consulter les pages web du serveur de la DMZ
 
#/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -state --state NEW,ESTABLISHED -j ACCEPT
#/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 80 -state --state ESTABLISHED -j ACCEPT
 
# Maintenant il n'y a plus qu'à dire au firewall
# d'autoriser à transmettre des paquets TCP à
# destination du port 80 provenant de l'adresse
# IP publique (i.e. d'internet) vers le serveur
# web de la DMZ que nous avons naté précédemment.
 
/sbin/iptables -A FORWARD -i ppp0 -o eth0 -p tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -o ppp0 -i eth0 -p tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
 
# Maintenant il ne reste plus grand chose à faire !
 
# Il faut permettre à l'ensemble du LAN de dialoguer
# sur internet avec la même adresse IP sinon, bien
# évidemment ça ne marchera pas (à moins que vous
# ayez 30 adresses ip !).
# Une petite règle de NAT avec un -j MASQUERADE
# suffira (masquerade = dialoguer avec l'adresse
# IP publique sur firewall)
 
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.2/24 -j MASQUERADE
 
# Il faut également que le serveur web de la DMZ
# soit masqueradé sinon, le serveur
# dialoguera sur internet avec son IP privée
 
#/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
 
# Toutes les règles qui n'ont pas passé les
# règles du firewall seront refusées et loguées...
# facile :
 
/sbin/iptables -A FORWARD -j LOG_DROP
/sbin/iptables -A INPUT -j LOG_DROP
/sbin/iptables -A OUTPUT -j LOG_DROP
 
# Pour faire zoli
echo " [Termine]"
 
# c'est enfin fini
 
J'ai de plus des messages d'erreur :
 
J'ai 3 "commandes not found"
$filtre: ambiguous redirect
iptables: No chain/target/match by that name
 
Merci de votre aide ! :)

 

[jfdsdjhfuetppo]--Message édité par Kyle le 01-06-2002 à 23:23:49--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-06-2002 à 23:21:49   

Reply

Marsh Posté le 01-06-2002 à 23:25:33    

mouarf !
on peut dire qu'ils nous ont fait un putain de script sur ce coup là didonc !
 
primo : ça marche bien sans le script (je parle du rezo) ?
secundo : tu veux faire quoi avec iptables, y-a certainement moyen d'y arriver sans ce gros truc compliqué

Reply

Marsh Posté le 01-06-2002 à 23:28:06    

Le rezo marche bien, car je surf sur mon client, mais dès que je met ce script, plus rien :(
Sinon, je n'ai pas acces au ftp, irc, ...
 
Donc, je veux un script pour transferer les ports + un minimum de protection :)

Reply

Marsh Posté le 01-06-2002 à 23:33:23    

voila ce que j'ai :
ça devrait faire tout ce que tu demandes (sauf la connexion en actif sur des serveur ftp, ainsi que le dl de fichier sous irc; mais ça doit pas être bien compliquer à rajouter)
donc le miens, il fait masquerading, firewall, et forwarding de port ftp (t'as plus qu'a modifier selon tes besoins, et hésite pas a demander) :
 
 

Citation :

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
 
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
 
## Partie pour le serveur ftp
# Forward the port
iptables -A PREROUTING -t nat -i ppp0 -p tcp --dport 20:21 -j DNAT --to 192.168.0.2
# Accept connection on tcp port 21
iptables -A FORWARD -i ppp0 -p tcp --dport 20:21 -d 192.168.0.2 -j ACCEPT  
 
# iptables -A INPUT -j DROP
# iptables -A OUTPUT -j DROP
 
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A block -j DROP
 
iptables -A INPUT -j block
iptables -A FORWARD -j block
 
echo 1 > /proc/sys/net/ipv4/ip_forward


 
 
PS : moi aussi, j'ai le net sur ppp0 et mon lan sur eth0
passerelle sur 192.168.0.1 et serveur ftp sur 192.168.0.2

 

[jfdsdjhfuetppo]--Message édité par djoh le 01-06-2002 à 23:34:41--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-06-2002 à 23:36:16    

merci, je teste ca !

Reply

Marsh Posté le 01-06-2002 à 23:44:40    

Ca marche pour le http mais le ftp, nada...
Mon soft ftp me dit : Can't resolve...

Reply

Marsh Posté le 01-06-2002 à 23:47:34    

Kyle a écrit a écrit :

Ca marche pour le http mais le ftp, nada...
Mon soft ftp me dit : Can't resolve...  




 
 
le serveur ou le client ?  :heink:

 

[jfdsdjhfuetppo]--Message édité par djoh le 01-06-2002 à 23:48:03--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-06-2002 à 23:48:51    

Ben en fait j'ai pas de serveur chez moi, je veux me connecter pour up les pages de mon site par ex.

Reply

Marsh Posté le 01-06-2002 à 23:50:18    

Kyle a écrit a écrit :

Ben en fait j'ai pas de serveur chez moi, je veux me connecter pour up les pages de mon site par ex.  




ben faut que tu force ton client a utiliser le mode passif ...
 
m'enfin, can't resolve , ça doit pas venir de là ...
le ftp où tu veux te connecter, tu peux le pinguer ?

Reply

Marsh Posté le 01-06-2002 à 23:52:30    

Je l'ai pinger et il ne trouve pas l'hote

Reply

Marsh Posté le 01-06-2002 à 23:52:30   

Reply

Marsh Posté le 01-06-2002 à 23:56:14    

Y a comme un prob je crois !
 
J'ai pinger du client (192.168.0.2) vers le serveur (192.168.0.1) et il ne le trouve pas.
 
Alors qu'a l'inverse, du serveur vers le client, ca passe !
 
 :heink:

Reply

Marsh Posté le 01-06-2002 à 23:56:32    

Kyle a écrit a écrit :

Je l'ai pinger et il ne trouve pas l'hote  




 
ben voilà
le serveur est down ou tu t'es gourré dans l'url  :)

Reply

Marsh Posté le 01-06-2002 à 23:57:31    

Kyle a écrit a écrit :

Y a comme un prob je crois !
 
J'ai pinger du client (192.168.0.2) vers le serveur (192.168.0.1) et il ne le trouve pas.
 
Alors qu'a l'inverse, du serveur vers le client, ca passe !
 
 :heink:  




 
ah !?
autant pour moi j'avais pas compris
donc attend je vérifie mais je crois que c'est normal

Reply

Marsh Posté le 01-06-2002 à 23:58:36    

bon ... en fait c'est pas normal
c'est un windaub ton client ?

Reply

Marsh Posté le 01-06-2002 à 23:59:13    

yep XP

Reply

Marsh Posté le 02-06-2002 à 00:04:53    

Kyle a écrit a écrit :

yep XP  




 
ben voila, t'as la reponse  :D
 
non, plus serieusement, il faut que tu parametre XP (ip_fixe,ip_passerelle, dns ...)

Reply

Marsh Posté le 02-06-2002 à 00:07:25    

J'ai tout configurer sauf les DNS donc :
 
IP : 192.168.0.2
Masque : 255.255.255.0
Passerelle : 192.168.0.1

Reply

Marsh Posté le 02-06-2002 à 00:15:59    

Bon, j'ai tous rebooter :D et maintenant le ping vers le serveur est ok !
Mais tjrs pas de ftp :(

Reply

Marsh Posté le 02-06-2002 à 00:19:47    

Kyle a écrit a écrit :

Bon, j'ai tous rebooter :D et maintenant le ping vers le serveur est ok !
Mais tjrs pas de ftp :(  




 
t'as mis quoi dans le dns ?
tu ping ta passerelle, tu ping pas le serveur (qui est sur le net, si j'a bien compris), mais arrives tu a le pinger depuis ta passerelle ?

Reply

Marsh Posté le 02-06-2002 à 00:23:25    

Dans le DNS, il n'y a rien !
 
Dis moi, le serveur = passerelle non ?
 
Ma connexion internet est sur le serveur.
 
Sinon, j'arrive a pinger dans les 2 sens.

Reply

Marsh Posté le 02-06-2002 à 00:30:43    

Kyle a écrit a écrit :

Dans le DNS, il n'y a rien !
 
Dis moi, le serveur = passerelle non ?
 
Ma connexion internet est sur le serveur.
 
Sinon, j'arrive a pinger dans les 2 sens.  




 
euh.. non, une passerelle est une passerelle
elle ne devient serveur que lorsqu'elle fait serveur de qq'chose (serveur web, ftp, mail ...)
donc quand je dis serveur, je parle du ftp sur lequel tu tente de te connecter

Reply

Marsh Posté le 02-06-2002 à 00:32:10    

ok, donc je ne peux pas pinger depuis ma passerelle vu que c'est un ftp chez OVH...

Reply

Marsh Posté le 02-06-2002 à 00:38:17    

Kyle a écrit a écrit :

ok, donc je ne peux pas pinger depuis ma passerelle vu que c'est un ftp chez OVH...  




 
pourquoi ?  :heink:
il t'appartient ou non ce compte ?  :o

Reply

Marsh Posté le 02-06-2002 à 00:41:58    

heu oui, mais comment je fais alors ?

Reply

Marsh Posté le 02-06-2002 à 00:53:44    

Kyle a écrit a écrit :

heu oui, mais comment je fais alors ?  




 
ben si il t'appartient, tu peux te connecter, non ?
je comprends pas ton pb  :/

Reply

Marsh Posté le 02-06-2002 à 01:01:32    

Ben je peux seulement me connecter a ce serveur ftp avec mon soft ftp.
Mais puisque le pc sous linux ayant la connexion internet ne laisse pas passer le port 21 (apparement) et bien, je ne peut pas me connecter.

Reply

Marsh Posté le 02-06-2002 à 01:08:26    

Kyle a écrit a écrit :

Ben je peux seulement me connecter a ce serveur ftp avec mon soft ftp.
Mais puisque le pc sous linux ayant la connexion internet ne laisse pas passer le port 21 (apparement) et bien, je ne peut pas me connecter.  




 
 
raaaah !   :o
 
écoute : si tu as repris mon script, tu doit pouvoir pinguer le ftp
d'ailleurs, il bloque pas le port  21, ton firewall, puisque de toute façon, seule le serveur est sur le port 21, le client ftp n'est jamais sur le port 21
 
si t'arrive pas à pinguer, de nul part, ton ftp, c'est parce que ovh bloque les ping (pour éviter les attaques de branleur qui s'amuserait à les flooder)
donc, essaie ça, et dis moi ce que ça donne :
> ping www.hardware.fr     (depuis ta passerelle)
> ping www.hardware.fr     (depuis ton pc client sous xp)
> ftp <ton_compte_ovh>     (depuis ta passerelle)
> ftp <ton_compte_ovh>     (depuis ton pc client sous xp)

Reply

Marsh Posté le 02-06-2002 à 01:13:39    

Alors :
 
ping hardware.fr passerelle : OK
ping hardware.fr client XP : PAS OK
ftp passerelle : OK
ftp client XP : PAS OK

Reply

Marsh Posté le 02-06-2002 à 01:14:46    

mes les dns la où il faut sous XP  :o

 

[jfdsdjhfuetppo]--Message édité par djoh le 02-06-2002 à 01:15:10--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 02-06-2002 à 01:18:36    

ceux de wanadoo ?

Reply

Marsh Posté le 02-06-2002 à 01:20:56    

Kyle a écrit a écrit :

ceux de wanadoo ?  




 
ben oui pardi :pt1cable:  :sarcastic:

Reply

Marsh Posté le 02-06-2002 à 01:25:34    

Idem, j'ai tjrs le mm probleme...

Reply

Marsh Posté le 02-06-2002 à 01:26:50    

Kyle a écrit a écrit :

Idem, j'ai tjrs le mm probleme...  




 
ah ben merde, c'est la meilleur celle là !   :/
 
essaie ça :
ping 212.43.221.155
depuis ta passerelle et ton client

Reply

Marsh Posté le 02-06-2002 à 01:28:57    

alors depuis la passerelle, c'est ok mais pas depuis le client :(

Reply

Marsh Posté le 02-06-2002 à 01:38:47    

Kyle a écrit a écrit :

alors depuis la passerelle, c'est ok mais pas depuis le client :(  




 
 
:/
et tu ping ta passerelle ...
donc c'est le routage qui marche pas  :/
 
ta bien laissé la ligne commençant par echo, dans le script que je t'es filé ?

Reply

Marsh Posté le 02-06-2002 à 01:44:26    

Ben ouai, on a le mm script, les mm ip, enfin tous qui correspond quoi...
 
Dis moi, squid n'a rien a voir la dedans ?

Reply

Marsh Posté le 02-06-2002 à 01:47:52    

Kyle a écrit a écrit :

Ben ouai, on a le mm script, les mm ip, enfin tous qui correspond quoi...
 
Dis moi, squid n'a rien a voir la dedans ?  




 
c'est pas un proxy ça ?
si c'est le cas, c'est clair qu'il faut mieux le desactiver quand tu veux faire du nat   :o

Reply

Marsh Posté le 02-06-2002 à 01:56:35    

En effet, c'est un proxy mais meme en le désactivant, ca ne marche pas...

Reply

Marsh Posté le 02-06-2002 à 01:57:38    

Kyle a écrit a écrit :

En effet, c'est un proxy mais meme en le désactivant, ca ne marche pas...  




 
c'est quoi ta distrib ?
ton noyau, c'est celui d'origine ?

Reply

Marsh Posté le 02-06-2002 à 02:00:57    

C'est la mandrake 8.2, noyau d'origine, oui

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed