Aller au contenu

Iptables et apt-get


Messages recommandés

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

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 !

Lien vers le commentaire
Partager sur d’autres sites

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).

Lien vers le commentaire
Partager sur d’autres sites

# 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

Lien vers le commentaire
Partager sur d’autres sites

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 :)

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Archivé

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

×
×
  • Créer...