Bonjour,
Depuis deux jours, impossible d'accéder depuis l'extérieur, à des machines derrière mon routeur (PC sous Debian Lenny).
Pourtant, je n'ai pas le souvenir d'avoir changé quelque chose de particulier dans mon fichier iptables.
192.168.0.1 est l'adresse du routeur.
Exemple, je veux rendre accessible 192.168.0.2 en ssh de l'extérieur. Logiquement, c'est cette règle :
Citation :
#ssh bravo
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 118 -j DNAT --to-destination 192.168.0.2:22
iptables -A FORWARD -p tcp -i eth1 --dport 118 -j ACCEPT
|
D'ailleurs, iptables -L me dit bien que la règle existe :
Citation :
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:118
|
Sauf, que si je regarde iptraf sur mon routeur, et sur l'interface connecté directement sur le net, quand j'essai de me connecter j'ai :
Citation :
hn-xx-xx.brookes.ac.uk:59699 = 2 120 S--- eth1 xxxx-x-xx-xxx-xxx-xx.fbx.proxad:118 = 0 0 ---- eth1
|
Autrement dit, ça passe pas ! Un nmap quant à lui, m'indique un état filtered.
Voici le contenu entier de mon fichier iptables :
Citation :
#!/bin/sh
start() {
# Mise en place du firewall
#vidage des chaines
iptables -F
#destruction des chaines personnelles
iptables -X
# strategie par defaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#init des tables NAT et MANGLE (pas forcement necessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
# Acceptation de toutes les connexions en local (un process avec l'autre)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# ---------------------------------------
# PORT FORWARDING:
#VNCviewer
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5900 -j DNAT --to-destination 192.168.0.5:5900
iptables -A FORWARD -p tcp -i eth1 --dport 5900 -j ACCEPT
#ssh bravo
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 118 -j DNAT --to-destination 192.168.0.2:22
iptables -A FORWARD -p tcp -i eth1 --dport 118 -j ACCEPT
#ssh echo
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 119 -j DNAT --to-destination 192.168.0.5:119
iptables -A FORWARD -p tcp -i eth1 --dport 119 -j ACCEPT
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
# regles du firewall pour cette machine
#ssh
iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT
#web
iptables -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT
#rtsp vlc
iptables -A INPUT -p udp -i eth1 --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 8080 -j ACCEPT
#vlc exterieur
iptables -A INPUT -p udp -i eth1 --dport 8081 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 8081 -j ACCEPT
#blabla
iptables -A INPUT -p tcp --destination-port 49155:49180 -j ACCEPT
iptables -A INPUT -p udp --destination-port 49155:49180 -j ACCEPT
#?
iptables -A INPUT -p tcp -i eth1 --dport 554 -j ACCEPT
# --------------------------------------------------------------------------------
#creation d'une nouvelle regle
iptables -N reglesortie
#definition de la regle : accepter les nouvelles connexions ne venant pas de l'interface internet
# et accepter toutes les connexions etablies et reliees (ex: une demande de page HTML provoque l'ouverture
# d'une connexion reliee pour acheminer cette page vers l'ordinateur)
iptables -A reglesortie -m state --state NEW -i! eth1 -j ACCEPT
iptables -A reglesortie -m state --state ESTABLISHED,RELATED -j ACCEPT
#application de la regle au partage de connexion
iptables -A INPUT -j reglesortie
iptables -A FORWARD -j reglesortie
#pour eviter intrusions sur le ssh
iptables -I INPUT -p tcp --dport 22 -i eth1 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth1 -m state --state NEW -m recent --update --seconds 300 --hitcount 8 -j DROP
# QOS : pour prio les flux, on va inserer directement dans le champs TOS (donc on MANGLE)
iptables -A PREROUTING -t mangle -p tcp --sport ssh -i eth1 -j TOS --set-tos Minimize-Delay
# --------------------------------------------------------------------------------
# activation du forwarding dans le noyau
# mise en place du partage de connexion sur le reseau local
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source **.**.**.**
}
stop() {
echo 0 >/proc/sys/net/ipv4/ip_forward
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop && start
;;
*)
echo "Usage $0 {start|stop|restart}"
exit 1
esac
exit 0
|
Je ne comprend pas pourquoi ça bloque. Bien entendu, la machine 192.168.0.2 est bien accessible en ssh depuis 192.168.0.1, une fois que j'y suis connecté.
Or, j'aurai vraiment besoin de rendre accessible directement le ssh de 192.168.0.2
Merci pour votre aide, parce que là je capte pas pourquoi ça merde (et ça fait un bout de temps que j'utilise Iptables, j'ai jamais eu ce souci)
Message édité par Plam le 09-03-2008 à 00:22:46
---------------
Spécialiste du bear metal