Aller au contenu

Iptables et apt-get


Messages recommandés

Posté(e)

Salut,

Mon problème est le suivant : je travaille sur une machine A, debian testing. depuis celle-ci, je me ssh sur une machine B, debian testing.

Je lance un ping google.ch :

tnorth@B:~$ping google.ch -> OK !

je ping debian.org -> OK !

Par contre, maintenant : apt-get update :

# apt-get update
Err ftp://ftp.tux.org sarge/non-free Packages
 Could not connect to ftp.tux.org:21 (66.142.39.208), connection timed out
Err http://abridgegame.org woody/ Packages
 Could not connect to abridgegame.org:80 (66.142.39.208), connection timed out
Err ftp://ftp.fr.debian.org testing/non-US/main Packages
 Could not connect to ftp.fr.debian.org:21 (66.142.39.208), connection timed out
Err ftp://mirror.switch.ch testing/main Packages

Alors que ça marche depuis chez moi (quasi même config apt)

Voyons le fichier iptables :

Je veux seulement ssh ainsi que le web :

#on vire tout
iptables -X
iptables -F

#toutes les chaines pointent sur DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#idem nat & mangle
#iptables -t nat -F
#iptables -t nat -X
#m'en fous, rien à forwarder

#on accepte ce qui vient d'ici
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#on remet tout en place
iptables -A INPUT -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -i eth0 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT


iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A OUTPUT -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -o lo -j ACCEPT
iptables -A OUTPUT -s 192.168.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -o eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT

#éventuellement le ftp
iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT

Une erreur ?

Posté(e)

Essaye peut etre avec ca ?

# J`accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Posté(e)

Non ça ne fonctionne pas :(

J'espère que ce n'est pas un autre problème, non lié à iptables, masi ça me parait étrange....

Merci du conseil !

Posté(e)

Il y a pas mal de trucs bizarres dans ton script:

Déjà, pas besoin de "-m tcp".

Ensuite, si j'ai bien compris, c'est la machine B qui sert de passerelle, puique tu utilises la chaine FORWARD. Poutant, tu n'as qu'une interface réseau (eth0).

Sinon, ton problème vient du fait que tu n'autorises que le trafic qur le port 21, mais le protocole ftp utilise au moins 2 ports!

#éventuellement le ftp
iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT

Danger! Tu acceptes le trafic vers ton (éventuel) serveur ftp!

Essaie avec:

#le ftp
iptables -P OUTPUT -p tcp --sport 1025:65634 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED --dport 1025:65634 -j ACCEPT

A la limite, tu peux remplacer :

iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED --dport 1025:65634 -j ACCEPT

par

iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED --sport 20 --dport 1025:65634 -j ACCEPT

Pour être sûr qu'il s'agit de ftp.

Si cela ne marche pas, flushe tout le scripte

iptables -F

iptables -X

et essaie.

Dis-moi si ça marche, et si tu veux, je te fais un script.

neo

Posté(e)

Ou tu fais simplement un

iptables -P INPUT ACCEPT le temps de faire l'apt-get et puis tu le remet en DROP une fois que c'est fait, pourquoi se casser la nenette.

  • 2 semaines après...
Posté(e)

Quelques détails :

:/home/tnorth# apt-get update

0% [Connecting to mirror.switch.ch (2001:620:0:8:203:baff:fe52:38e5)] [Connecti

gdj-server:/home/tnorth# ping mirror.switch.ch

PING mirror.switch.ch (32.1.6.32) 56(84) bytes of data.

--- mirror.switch.ch ping statistics ---

2 packets transmitted, 0 received, 100% packet loss, time 999ms

Pinger google fonctionne pourtant. Ainsi que les pings vers tout les autres site !

Posté(e)
Quelques détails :

Pinger google fonctionne pourtant. Ainsi que les pings vers tout les autres site !

Ben peut etre tout simplement que ce site est down :)

Posté(e)

Non ce n'est pas le problème, une seconde machine fonctionne parfaitement avec ces sources !

J'ai essayé apt-setup, évidement déja, et même en passant par http, ftp sur plusieurs serveurs, rien à faire !

Posté(e)

Essaye en mettant le meme fichier d'iptables que ta machine A.

Relance le reseau et regarde voir.

Moi perso, j'accepte toute connexion sortante, donc j'ai pas de probleme. Essaye sans le OUTPUT DROP juste pour voir :)

Posté(e)

Ton script est très bizarroïde, y'a plein de trucs en trop, mais bon. Essaye en ajoutant le tracking de connexions:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Si ça marche pas, passe ta policy de INPUT et OUTPUT à REJECT et non pas DROP, comme ça tu sauras si le problème vient du iptables de ta machine B ou d'un autre iptables entre B et le serveur debian (genre ta passerelle).

Posté(e)

# Yop

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT

je crois qu il y a une erreur la .

c est pas plustot :

# on autorise l interface eth0 a faire du ssh et du web .

iptables -A OUTPUT -o eth0 -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT

Posté(e)
taiwan, je crois pas, c'est le retour de ses paquets qu'il a codé (option -o eth0 = output sur eth0). Avec le tracking, y'en a plus besoin

Bah d apres se que je vois il a mal autoriser ca machine a faire du web et du ssh et il fait justement les mise a jour en web .

Enfin on verra bien :)

Posté(e)

Rahh je ne comprends plus rien avec iptables !

Voila mon script actuel, sortit de vos conseils :

LAN=192.168.1.0/24     # plage d'adresses du LAN
DEB=mirror.switch.ch  # miroir Debian


# autorise le trafic E/S sur l'interface de loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# autorise le trafic E/S appartenant ou relatif aux connexions etablies
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# chaines utilisateur pour les nouvelles connexions sur eth0
iptables -N in_new
iptables -N out_new
iptables -A INPUT -i eth0 -m state --state NEW -j in_new
iptables -A OUTPUT -o eth0 -m state --state NEW -j out_new


# autorise le trafic E/S avec le LAN
iptables -A in_new -s $LAN -j ACCEPT
iptables -A out_new -d $LAN -j ACCEPT


# autorise les connexions HTTP(S) en entree
iptables -A in_new -p tcp --dport 80 -j ACCEPT
iptables -A in_new -p tcp --dport 443 -j ACCEPT


# autorise les connexions SSH en entree
iptables -A in_new -p tcp --dport 22 -j ACCEPT


# autorise le ping en entree avec limite a 5/s
iptables -A in_new -p icmp --icmp-type echo-request \
  -m limit --limit 5/s -j ACCEPT


# autorise les requêtes DNS en sortie
iptables -A out_new -p udp --dport 53 -j ACCEPT
iptables -A out_new -p tcp --syn --dport 53 -j ACCEPT


# autorise les connexions HTTP en sortie vers le miroir Debian
iptables -A out_new -d $DEB -p tcp --syn --dport 80 -j ACCEPT


# rejette les autres paquets NEW en entree avec limite a 5/s
iptables -A in_new -m limit --limit 5/s -j REJECT


# bloque le reste (paquets invalides ou depassant la limite)
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

je répète ce dont j'ai besoin : accès SSH de l'extérieur, Web de l'extérieur (port 81 et ptet 443).

La machine est derrière un routeur, elle ne route personne.

Merci !

p.S dsl du temps de réaction, mais j'ai plein de boulot, exas en vue !

Posté(e)

Euh je ne sais pas c'est pas chez moi, mais c'est chez un ami.

Y a juste le 81 et le 22 de forwardés dessus.

En général, le reste marche non ? Chez moi y a un routeur tout con avec aucun port forwardé sur la machine, et tout roule....

De plus je rappelle que je peux pinger google.com

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...