Je reviens abvec mon pb de visibilité de machines
| |
[A]192.168.3.1<->192.168.3.2(eth1)|B|
| |(eth0)192.168.0.1<->192.168.0.2[C]
Je veux faire du scp de C vers A sans rien n'accepter de A vers C.
iptables semble la solution malheureusement:
- je ne sais pas comment fonctionne le protocole en détail,
- je fais mes premiers pas en iptables ;-)
Par ex, quand C vers une requete sur le port 22 vers A, sur quel port
attend-il un retour:
Sur la machine B, je mettrais bien uniquement les règles suivantes:
Pour le retour une règle de type suivante suffit-elle (sans avoir
d'effet de bord):
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED
-j ACCEPT
faut-il spécifier le port ?
Pour l'initiation, je proposerais bien:
iptables -A FORWARD -i eth0 -o eth1 --dport 22 -m state --state NEW -j
ACCEPT
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
Pascal
Salut,
Je reviens abvec mon pb de visibilité de machines | | [A]192.168.3.1<->192.168.3.2(eth1)|B| | |(eth0)192.168.0.1<->192.168.0.2[C]
Je veux faire du scp de C vers A sans rien n'accepter de A vers C. iptables semble la solution malheureusement: - je ne sais pas comment fonctionne le protocole en détail, - je fais mes premiers pas en iptables ;-)
Par ex, quand C vers une requete sur le port 22 vers A, sur quel port attend-il un retour:
Sur le port que A a utilisé comme port source pour sa requête. Dans les paquets retour, les ports source et destination sont permutés par rapport aux paquets aller.
Sur la machine B, je mettrais bien uniquement les règles suivantes:
Pour le retour une règle de type suivante suffit-elle (sans avoir d'effet de bord):
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Oui.
faut-il spécifier le port ?
Non, ce n'est pas nécessaire. Il suffit de spécifier les contraintes dans la règle qui traite les paquets qui sont dans l'état NEW.
Pour l'initiation, je proposerais bien:
iptables -A FORWARD -i eth0 -o eth1 --dport 22 -m state --state NEW -j ACCEPT
Il manque la correspondance du protocole TCP : -p tcp Aussi, cette règle accepte le premier paquet aller (NEW) mais pas les paquets aller suivants. Il faut donc une autre règle pour accepter ces derniers, similaire à celle qui accepte les paquets retour dans l'autre sens :
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Tu peux encore durcir la règle en spécifiant les plages d'adresses source et destination autorisées : -s <ip_B> -d <ip_C> et en spécifiant que le paquet doit être de type SYN : --syn
Et ne pas oublier : - de régler la politique par défaut de la chaîne FORWARD à DROP :
iptables -P FORWARD DROP
- les règles pour accepter le ping (ICMP echo request) dans les deux sens, utile pour le test de la connectivité IP :
- l'avant-dernière règle pour rejeter les paquets dans un état valide mais non autorisés :
iptables -A FORWARD -m state NEW,ESTABLISHED,RELATED -j REJECT
- la dernière règle pour bloquer les paquets dans un état invalide :
iptables -A FORWARD -j DROP
Salut,
Je reviens abvec mon pb de visibilité de machines
| |
[A]192.168.3.1<->192.168.3.2(eth1)|B|
| |(eth0)192.168.0.1<->192.168.0.2[C]
Je veux faire du scp de C vers A sans rien n'accepter de A vers C.
iptables semble la solution malheureusement:
- je ne sais pas comment fonctionne le protocole en détail,
- je fais mes premiers pas en iptables ;-)
Par ex, quand C vers une requete sur le port 22 vers A, sur quel port
attend-il un retour:
Sur le port que A a utilisé comme port source pour sa requête. Dans les
paquets retour, les ports source et destination sont permutés par
rapport aux paquets aller.
Sur la machine B, je mettrais bien uniquement les règles suivantes:
Pour le retour une règle de type suivante suffit-elle (sans avoir
d'effet de bord):
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED
-j ACCEPT
Oui.
faut-il spécifier le port ?
Non, ce n'est pas nécessaire. Il suffit de spécifier les contraintes
dans la règle qui traite les paquets qui sont dans l'état NEW.
Pour l'initiation, je proposerais bien:
iptables -A FORWARD -i eth0 -o eth1 --dport 22 -m state --state NEW -j
ACCEPT
Il manque la correspondance du protocole TCP : -p tcp
Aussi, cette règle accepte le premier paquet aller (NEW) mais pas les
paquets aller suivants. Il faut donc une autre règle pour accepter ces
derniers, similaire à celle qui accepte les paquets retour dans l'autre
sens :
iptables -A FORWARD -i eth0 -o eth1
-m state --state ESTABLISHED,RELATED -j ACCEPT
Tu peux encore durcir la règle en spécifiant les plages d'adresses
source et destination autorisées : -s <ip_B> -d <ip_C>
et en spécifiant que le paquet doit être de type SYN : --syn
Et ne pas oublier :
- de régler la politique par défaut de la chaîne FORWARD à DROP :
iptables -P FORWARD DROP
- les règles pour accepter le ping (ICMP echo request) dans les deux
sens, utile pour le test de la connectivité IP :
Je reviens abvec mon pb de visibilité de machines | | [A]192.168.3.1<->192.168.3.2(eth1)|B| | |(eth0)192.168.0.1<->192.168.0.2[C]
Je veux faire du scp de C vers A sans rien n'accepter de A vers C. iptables semble la solution malheureusement: - je ne sais pas comment fonctionne le protocole en détail, - je fais mes premiers pas en iptables ;-)
Par ex, quand C vers une requete sur le port 22 vers A, sur quel port attend-il un retour:
Sur le port que A a utilisé comme port source pour sa requête. Dans les paquets retour, les ports source et destination sont permutés par rapport aux paquets aller.
Sur la machine B, je mettrais bien uniquement les règles suivantes:
Pour le retour une règle de type suivante suffit-elle (sans avoir d'effet de bord):
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Oui.
faut-il spécifier le port ?
Non, ce n'est pas nécessaire. Il suffit de spécifier les contraintes dans la règle qui traite les paquets qui sont dans l'état NEW.
Pour l'initiation, je proposerais bien:
iptables -A FORWARD -i eth0 -o eth1 --dport 22 -m state --state NEW -j ACCEPT
Il manque la correspondance du protocole TCP : -p tcp Aussi, cette règle accepte le premier paquet aller (NEW) mais pas les paquets aller suivants. Il faut donc une autre règle pour accepter ces derniers, similaire à celle qui accepte les paquets retour dans l'autre sens :
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Tu peux encore durcir la règle en spécifiant les plages d'adresses source et destination autorisées : -s <ip_B> -d <ip_C> et en spécifiant que le paquet doit être de type SYN : --syn
Et ne pas oublier : - de régler la politique par défaut de la chaîne FORWARD à DROP :
iptables -P FORWARD DROP
- les règles pour accepter le ping (ICMP echo request) dans les deux sens, utile pour le test de la connectivité IP :