Bonjour a tous.
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Bonjour a tous.
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Bonjour a tous.
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Bonjour a tous.
Tout d'abord, je tiens à préciser que je suis autodidacte en termes de
gestion réseau.
Je vais essayer de faire bref mais concis. Voici la configuration adoptée :
@$IPEXT
|
|
$IPFIXE
(ROUTEUR ADSL)
$IPROUTEUR
|
|
$IPFWEXT
eth1
(MACHINE LINUX)
(FIREWALL FILTRANT)
(IPTABLES)
eth0
$IPFWINT
|
|
(SWITCH)
|
|
$IPLOC
(LAN LOCAL)
En bref, je voudrais router ce qui arrive d'internet sur le port 2323 à
partir d'une machine dont l'ip est définie, vers une machine particulière
du réseau : $IPLOC sur le port 23
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Je ne met pas tout le filtrage IP, ce serai un peu long, mais le principe
est : Je bloque tout, puis je laisse passer que ce que je veux. (FORWARD)
(Méthode classique, me semble-t-il)
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
A+ GIllot
Bonjour a tous.
Tout d'abord, je tiens à préciser que je suis autodidacte en termes de
gestion réseau.
Je vais essayer de faire bref mais concis. Voici la configuration adoptée :
@internet@-----$IPEXT
|
|
$IPFIXE
(ROUTEUR ADSL)
$IPROUTEUR
|
|
$IPFWEXT
eth1
(MACHINE LINUX)
(FIREWALL FILTRANT)
(IPTABLES)
eth0
$IPFWINT
|
|
(SWITCH)
|
|
$IPLOC
(LAN LOCAL)
En bref, je voudrais router ce qui arrive d'internet sur le port 2323 à
partir d'une machine dont l'ip est définie, vers une machine particulière
du réseau : $IPLOC sur le port 23
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Je ne met pas tout le filtrage IP, ce serai un peu long, mais le principe
est : Je bloque tout, puis je laisse passer que ce que je veux. (FORWARD)
(Méthode classique, me semble-t-il)
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
A+ GIllot
Bonjour a tous.
Tout d'abord, je tiens à préciser que je suis autodidacte en termes de
gestion réseau.
Je vais essayer de faire bref mais concis. Voici la configuration adoptée :
@$IPEXT
|
|
$IPFIXE
(ROUTEUR ADSL)
$IPROUTEUR
|
|
$IPFWEXT
eth1
(MACHINE LINUX)
(FIREWALL FILTRANT)
(IPTABLES)
eth0
$IPFWINT
|
|
(SWITCH)
|
|
$IPLOC
(LAN LOCAL)
En bref, je voudrais router ce qui arrive d'internet sur le port 2323 à
partir d'une machine dont l'ip est définie, vers une machine particulière
du réseau : $IPLOC sur le port 23
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Je ne met pas tout le filtrage IP, ce serai un peu long, mais le principe
est : Je bloque tout, puis je laisse passer que ce que je veux. (FORWARD)
(Méthode classique, me semble-t-il)
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
A+ GIllot
Ca, c'est du routage,
rien à voir avec netfilter (iptables)
qui est du firewalling (filtrage).
Cordialement.
Ca, c'est du routage,
rien à voir avec netfilter (iptables)
qui est du firewalling (filtrage).
Cordialement.
Ca, c'est du routage,
rien à voir avec netfilter (iptables)
qui est du firewalling (filtrage).
Cordialement.
Bonjour a tous.
Tout d'abord, je tiens à préciser que je suis autodidacte en termes de
gestion réseau.
Je vais essayer de faire bref mais concis. Voici la configuration adoptée
:
@$IPEXT
|
|
$IPFIXE
(ROUTEUR ADSL)
$IPROUTEUR
|
|
$IPFWEXT
eth1
(MACHINE LINUX)
(FIREWALL FILTRANT)
(IPTABLES)
eth0
$IPFWINT
|
|
(SWITCH)
|
|
$IPLOC
(LAN LOCAL)
En bref, je voudrais router ce qui arrive d'internet sur le port 2323 à
partir d'une machine dont l'ip est définie, vers une machine particulière
du réseau : $IPLOC sur le port 23
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Je ne met pas tout le filtrage IP, ce serai un peu long, mais le principe
est : Je bloque tout, puis je laisse passer que ce que je veux. (FORWARD)
(Méthode classique, me semble-t-il)
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
Bonjour a tous.
Tout d'abord, je tiens à préciser que je suis autodidacte en termes de
gestion réseau.
Je vais essayer de faire bref mais concis. Voici la configuration adoptée
:
@internet@-----$IPEXT
|
|
$IPFIXE
(ROUTEUR ADSL)
$IPROUTEUR
|
|
$IPFWEXT
eth1
(MACHINE LINUX)
(FIREWALL FILTRANT)
(IPTABLES)
eth0
$IPFWINT
|
|
(SWITCH)
|
|
$IPLOC
(LAN LOCAL)
En bref, je voudrais router ce qui arrive d'internet sur le port 2323 à
partir d'une machine dont l'ip est définie, vers une machine particulière
du réseau : $IPLOC sur le port 23
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Je ne met pas tout le filtrage IP, ce serai un peu long, mais le principe
est : Je bloque tout, puis je laisse passer que ce que je veux. (FORWARD)
(Méthode classique, me semble-t-il)
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
Bonjour a tous.
Tout d'abord, je tiens à préciser que je suis autodidacte en termes de
gestion réseau.
Je vais essayer de faire bref mais concis. Voici la configuration adoptée
:
@$IPEXT
|
|
$IPFIXE
(ROUTEUR ADSL)
$IPROUTEUR
|
|
$IPFWEXT
eth1
(MACHINE LINUX)
(FIREWALL FILTRANT)
(IPTABLES)
eth0
$IPFWINT
|
|
(SWITCH)
|
|
$IPLOC
(LAN LOCAL)
En bref, je voudrais router ce qui arrive d'internet sur le port 2323 à
partir d'une machine dont l'ip est définie, vers une machine particulière
du réseau : $IPLOC sur le port 23
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Je ne met pas tout le filtrage IP, ce serai un peu long, mais le principe
est : Je bloque tout, puis je laisse passer que ce que je veux. (FORWARD)
(Méthode classique, me semble-t-il)
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
Gillot wrote:Bonjour a tous.
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
extrait du man de iptables :
<<
DNAT
This target is only valid in the nat table, in the PREROUTING
and OUTPUT chains,>>
Donc ca semble mal partit
Avec PREROUTING au lieu de POSTROUTING ca marche.
A+
Gillot wrote:
Bonjour a tous.
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
extrait du man de iptables :
<<
DNAT
This target is only valid in the nat table, in the PREROUTING
and OUTPUT chains,>>
Donc ca semble mal partit
Avec PREROUTING au lieu de POSTROUTING ca marche.
A+
Gillot wrote:Bonjour a tous.
Je veux juster que ce qui arrive sur eth1 en port 23 soit redirigé vers le
poste $IPLOC en port 23 :
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
extrait du man de iptables :
<<
DNAT
This target is only valid in the nat table, in the PREROUTING
and OUTPUT chains,>>
Donc ca semble mal partit
Avec PREROUTING au lieu de POSTROUTING ca marche.
A+
Il manque des informations.
Les paquets de la machine sur le LAN qui a l'IP $IPLOC appartenant au réseau
que je vais appeller $NETINT à destination de $IPEXT arrive dans un premier
temps sur la passerelle Linux.
Mais cette passerelle Linux :
- 1er cas : se contente-t-elle juste de forwarder ces paquets vers le
routeur, ce dernier se chargeant alors de nater $IPLOC en l'IP Internet
$IPFIXE et connaissant la route à prendre pour joindre le réseau
$NETINT,
- 2ème cas : ou bien nate-t-elle l'IP source $IPLOC de ces paquets en l'IP
$IPFWEXT appartenant au réseau que je vais appeller $NETEXT, et forwarde
alors ces paquets natés vers le routeur, ce dernier alors renatant ces
paquets qu'ils voient venir de l'IP $IPFWEXT, en l'IP Internet $IPFIXE et
connaissant la route à prendre pour joindre $IPFWEXT vu qu'il appartient au
même réseau $NETEXT.
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Il le nate vers quelle IP, $IPFWEXT (3ème cas) ou $IPLOC (4ème cas) ? (voir
$IPFWINT ?)
Si on avait eu tout, on aurait déjà une idée du cas qui correspond au votre.
:)
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Elle ne fonctionne pas car la syntaxe est incorecte, la chaine POSTROUTING
ne correspond pas à ce qu'on doit faire.
Pour la bonne règle, je vais donc envisager le cas le plus probant au vu de
ce que vous avez tenté avec votre ligne de commande, c'est-à-dire celui qui
combine le cas 2 avec le cas 3. (Si les règles concernant les autres cas
vous intéressent, je vous les donnerai par la suite.)
Je suppose auparavant que l'IP forwarding a été activé sur le système
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23 -s
$IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23 -s
$IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
Une règle par poste distant ou bien une règle commune s'ils appartiennent au
même réseau.
Il manque des informations.
Les paquets de la machine sur le LAN qui a l'IP $IPLOC appartenant au réseau
que je vais appeller $NETINT à destination de $IPEXT arrive dans un premier
temps sur la passerelle Linux.
Mais cette passerelle Linux :
- 1er cas : se contente-t-elle juste de forwarder ces paquets vers le
routeur, ce dernier se chargeant alors de nater $IPLOC en l'IP Internet
$IPFIXE et connaissant la route à prendre pour joindre le réseau
$NETINT,
- 2ème cas : ou bien nate-t-elle l'IP source $IPLOC de ces paquets en l'IP
$IPFWEXT appartenant au réseau que je vais appeller $NETEXT, et forwarde
alors ces paquets natés vers le routeur, ce dernier alors renatant ces
paquets qu'ils voient venir de l'IP $IPFWEXT, en l'IP Internet $IPFIXE et
connaissant la route à prendre pour joindre $IPFWEXT vu qu'il appartient au
même réseau $NETEXT.
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Il le nate vers quelle IP, $IPFWEXT (3ème cas) ou $IPLOC (4ème cas) ? (voir
$IPFWINT ?)
Si on avait eu tout, on aurait déjà une idée du cas qui correspond au votre.
:)
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Elle ne fonctionne pas car la syntaxe est incorecte, la chaine POSTROUTING
ne correspond pas à ce qu'on doit faire.
Pour la bonne règle, je vais donc envisager le cas le plus probant au vu de
ce que vous avez tenté avec votre ligne de commande, c'est-à-dire celui qui
combine le cas 2 avec le cas 3. (Si les règles concernant les autres cas
vous intéressent, je vous les donnerai par la suite.)
Je suppose auparavant que l'IP forwarding a été activé sur le système
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23 -s
$IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23 -s
$IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
Une règle par poste distant ou bien une règle commune s'ils appartiennent au
même réseau.
Il manque des informations.
Les paquets de la machine sur le LAN qui a l'IP $IPLOC appartenant au réseau
que je vais appeller $NETINT à destination de $IPEXT arrive dans un premier
temps sur la passerelle Linux.
Mais cette passerelle Linux :
- 1er cas : se contente-t-elle juste de forwarder ces paquets vers le
routeur, ce dernier se chargeant alors de nater $IPLOC en l'IP Internet
$IPFIXE et connaissant la route à prendre pour joindre le réseau
$NETINT,
- 2ème cas : ou bien nate-t-elle l'IP source $IPLOC de ces paquets en l'IP
$IPFWEXT appartenant au réseau que je vais appeller $NETEXT, et forwarde
alors ces paquets natés vers le routeur, ce dernier alors renatant ces
paquets qu'ils voient venir de l'IP $IPFWEXT, en l'IP Internet $IPFIXE et
connaissant la route à prendre pour joindre $IPFWEXT vu qu'il appartient au
même réseau $NETEXT.
A savoir que le routeur prends le port entrant 2323 et le "nate" en port
23 à la sortie du routeur(j'espère m'être bien fait comprendre).
Il le nate vers quelle IP, $IPFWEXT (3ème cas) ou $IPLOC (4ème cas) ? (voir
$IPFWINT ?)
Si on avait eu tout, on aurait déjà une idée du cas qui correspond au votre.
:)
# iptables /sbin/iptables -t nat -A POSTROUTING -p tcp -s $IPEXP --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Or, cette règle ne fonctionne pas et je ne comprends pas pourquoi. Si
quelqu'un peut m'expliquer et par la même occasion, me donner la réponse,
je lui en serai trés reconnaissant.
Elle ne fonctionne pas car la syntaxe est incorecte, la chaine POSTROUTING
ne correspond pas à ce qu'on doit faire.
Pour la bonne règle, je vais donc envisager le cas le plus probant au vu de
ce que vous avez tenté avec votre ligne de commande, c'est-à-dire celui qui
combine le cas 2 avec le cas 3. (Si les règles concernant les autres cas
vous intéressent, je vous les donnerai par la suite.)
Je suppose auparavant que l'IP forwarding a été activé sur le système
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23 -s
$IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23 -s
$IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Sachant qu'a l'avenir, je voudrais pouvoir autoriser cet accés à plusieurs
postes distants simultanément (normalement ça devrait être possible)
Comment procèderiez-vous ???
Une règle par poste distant ou bien une règle commune s'ils appartiennent au
même réseau.
Je suppose auparavant que l'IP forwarding a été activé sur le système
Evident, sinon, internet ne fonctionnerai pas pour le réseau local...
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23 -s
$IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport
23 -s
$IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
=========================================================================== ======== > /etc/rc.d/rc.firewall
=========================================================================== ======== >
#!/bin/bash
# Annulation du firewall
echo Arret du firewall
# Je vide les regles qui restent
/sbin/iptables -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -t nat -X
# Je remet les regles par déaut
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
# Polices par defaut
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# Insertion des modules de gestion réseau, tunneling etc...
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_gre
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_pptp
# Paramètres IP/ethernet
IPEXT=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPFIXE=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPROUTEUR2.168.100.111
INTEXT=eth1
IPFWEXT2.168.100.1
INTLOC=eth0
IPFWINT2.168.1.112
IPLOC2.168.1.254
if [ "$1" == "on" ]; then
echo Mise en route du firewall
# Pas de spoofing
if [ -e "/proc/sys/net/ipv4/conf/*/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
echo Je rajoute deux règles pour 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
/sbin/iptables -N LOG_ACCEPT
/sbin/iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES
ACCEPT] : '
/sbin/iptables -A LOG_ACCEPT -j ACCEPT
# Pour un filtrage efficace, d'abord, on refuse tout, et ensuite
on laisse
# passer que ce qu'on veut.
echo D'abord, J'interdit tout
# =========================== > /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
echo J'accepte tout sur le loopback de la machine locale
# ====================================================== > /sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
echo J'accepte ce qui se passe sur le reseau local
# ================================================ > /sbin/iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
echo J'accepte les résolutions de nom
# =================================== > /sbin/iptables -A INPUT -i $INTEXT --protocol udp --source-port
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
udp --destination-port 53 -j ACCEPT
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 53 -j ACCEPT
echo J'accepte le traffic Web
# =========================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
80 -m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
echo J'accepte la reception d emails
# ================================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
110 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 110 -j LOG_ACCEPT
echo J'accepte l'envoi d'emails
# ============================= > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
25 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 25 -j LOG_ACCEPT
echo J'accepte le passage des News
# ================================ > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
119 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 119 -j LOG_ACCEPT
echo Je redirige le port 23 sur l AS400.
# ======================================= > #
# ***************** NE FONCTIONNE PAS ************************************
#
/sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
echo J'accepte le ftp
# =================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
21 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 21 -j LOG_ACCEPT
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
20 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 20 -j LOG_ACCEPT
/sbin/iptables -A INPUT -i $INTEXT -m state --state
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT -m state --state
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT -p tcp --dport 21 -m
state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 21 -j LOG_ACCEPT
echo Je accepte le passage du VPN
# =========================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
1723 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 1723 -j LOG_ACCEPT
echo Je determine un fichier de log des rejets
# ======================================== > /sbin/iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] :'
/sbin/iptables -A LOG_DROP -j DROP
echo Autoriser le traffic internet du réseau local vers internet
# ========================================================== > /sbin/iptables -A FORWARD -i $INTLOC -o $INTEXT -j ACCEPT
/sbin/iptables -A FORWARD -i $INTEXT -o $INTLOC -j ACCEPT
/sbin/iptables -A INPUT -i $INTLOC -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTLOC -j ACCEPT
echo Tout ce qui n est pas accepté par le firewall est rejeté
silencieusement et mis en logs
#
=========================================================================== ============= > /sbin/iptables -A FORWARD -j LOG_DROP
/sbin/iptables -A INPUT -j LOG_DROP
/sbin/iptables -A OUTPUT -j LOG_DROP
fi
# Activer le forwarding IP
echo 1 > /proc/sys/net/ipv4/ip_forward
# Activation du masquerading
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0.0.0.0/0 -o
$INTEXT -j MASQUERADE
# A la fin, j'affiche une liste des règles iptables :
/sbin/iptables -L
Je suppose auparavant que l'IP forwarding a été activé sur le système
Evident, sinon, internet ne fonctionnerai pas pour le réseau local...
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23 -s
$IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport
23 -s
$IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
=========================================================================== ======== > /etc/rc.d/rc.firewall
=========================================================================== ======== >
#!/bin/bash
# Annulation du firewall
echo Arret du firewall
# Je vide les regles qui restent
/sbin/iptables -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -t nat -X
# Je remet les regles par déaut
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
# Polices par defaut
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# Insertion des modules de gestion réseau, tunneling etc...
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_gre
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_pptp
# Paramètres IP/ethernet
IPEXT=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPFIXE=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPROUTEUR2.168.100.111
INTEXT=eth1
IPFWEXT2.168.100.1
INTLOC=eth0
IPFWINT2.168.1.112
IPLOC2.168.1.254
if [ "$1" == "on" ]; then
echo Mise en route du firewall
# Pas de spoofing
if [ -e "/proc/sys/net/ipv4/conf/*/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
echo Je rajoute deux règles pour 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
/sbin/iptables -N LOG_ACCEPT
/sbin/iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES
ACCEPT] : '
/sbin/iptables -A LOG_ACCEPT -j ACCEPT
# Pour un filtrage efficace, d'abord, on refuse tout, et ensuite
on laisse
# passer que ce qu'on veut.
echo D'abord, J'interdit tout
# =========================== > /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
echo J'accepte tout sur le loopback de la machine locale
# ====================================================== > /sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
echo J'accepte ce qui se passe sur le reseau local
# ================================================ > /sbin/iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
echo J'accepte les résolutions de nom
# =================================== > /sbin/iptables -A INPUT -i $INTEXT --protocol udp --source-port
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
udp --destination-port 53 -j ACCEPT
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 53 -j ACCEPT
echo J'accepte le traffic Web
# =========================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
80 -m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
echo J'accepte la reception d emails
# ================================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
110 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 110 -j LOG_ACCEPT
echo J'accepte l'envoi d'emails
# ============================= > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
25 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 25 -j LOG_ACCEPT
echo J'accepte le passage des News
# ================================ > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
119 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 119 -j LOG_ACCEPT
echo Je redirige le port 23 sur l AS400.
# ======================================= > #
# ***************** NE FONCTIONNE PAS ************************************
#
/sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
echo J'accepte le ftp
# =================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
21 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 21 -j LOG_ACCEPT
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
20 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 20 -j LOG_ACCEPT
/sbin/iptables -A INPUT -i $INTEXT -m state --state
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT -m state --state
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT -p tcp --dport 21 -m
state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 21 -j LOG_ACCEPT
echo Je accepte le passage du VPN
# =========================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
1723 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 1723 -j LOG_ACCEPT
echo Je determine un fichier de log des rejets
# ======================================== > /sbin/iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] :'
/sbin/iptables -A LOG_DROP -j DROP
echo Autoriser le traffic internet du réseau local vers internet
# ========================================================== > /sbin/iptables -A FORWARD -i $INTLOC -o $INTEXT -j ACCEPT
/sbin/iptables -A FORWARD -i $INTEXT -o $INTLOC -j ACCEPT
/sbin/iptables -A INPUT -i $INTLOC -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTLOC -j ACCEPT
echo Tout ce qui n est pas accepté par le firewall est rejeté
silencieusement et mis en logs
#
=========================================================================== ============= > /sbin/iptables -A FORWARD -j LOG_DROP
/sbin/iptables -A INPUT -j LOG_DROP
/sbin/iptables -A OUTPUT -j LOG_DROP
fi
# Activer le forwarding IP
echo 1 > /proc/sys/net/ipv4/ip_forward
# Activation du masquerading
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0.0.0.0/0 -o
$INTEXT -j MASQUERADE
# A la fin, j'affiche une liste des règles iptables :
/sbin/iptables -L
Je suppose auparavant que l'IP forwarding a été activé sur le système
Evident, sinon, internet ne fonctionnerai pas pour le réseau local...
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23 -s
$IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport
23 -s
$IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
=========================================================================== ======== > /etc/rc.d/rc.firewall
=========================================================================== ======== >
#!/bin/bash
# Annulation du firewall
echo Arret du firewall
# Je vide les regles qui restent
/sbin/iptables -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -t nat -X
# Je remet les regles par déaut
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
# Polices par defaut
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# Insertion des modules de gestion réseau, tunneling etc...
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_gre
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_pptp
# Paramètres IP/ethernet
IPEXT=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPFIXE=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPROUTEUR2.168.100.111
INTEXT=eth1
IPFWEXT2.168.100.1
INTLOC=eth0
IPFWINT2.168.1.112
IPLOC2.168.1.254
if [ "$1" == "on" ]; then
echo Mise en route du firewall
# Pas de spoofing
if [ -e "/proc/sys/net/ipv4/conf/*/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
echo Je rajoute deux règles pour 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
/sbin/iptables -N LOG_ACCEPT
/sbin/iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES
ACCEPT] : '
/sbin/iptables -A LOG_ACCEPT -j ACCEPT
# Pour un filtrage efficace, d'abord, on refuse tout, et ensuite
on laisse
# passer que ce qu'on veut.
echo D'abord, J'interdit tout
# =========================== > /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
echo J'accepte tout sur le loopback de la machine locale
# ====================================================== > /sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
echo J'accepte ce qui se passe sur le reseau local
# ================================================ > /sbin/iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
echo J'accepte les résolutions de nom
# =================================== > /sbin/iptables -A INPUT -i $INTEXT --protocol udp --source-port
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
udp --destination-port 53 -j ACCEPT
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 53 -j ACCEPT
echo J'accepte le traffic Web
# =========================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
80 -m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
echo J'accepte la reception d emails
# ================================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
110 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 110 -j LOG_ACCEPT
echo J'accepte l'envoi d'emails
# ============================= > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
25 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 25 -j LOG_ACCEPT
echo J'accepte le passage des News
# ================================ > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
119 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 119 -j LOG_ACCEPT
echo Je redirige le port 23 sur l AS400.
# ======================================= > #
# ***************** NE FONCTIONNE PAS ************************************
#
/sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
echo J'accepte le ftp
# =================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
21 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 21 -j LOG_ACCEPT
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
20 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 20 -j LOG_ACCEPT
/sbin/iptables -A INPUT -i $INTEXT -m state --state
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT -m state --state
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT -p tcp --dport 21 -m
state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 21 -j LOG_ACCEPT
echo Je accepte le passage du VPN
# =========================== > /sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port
1723 -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port 1723 -j LOG_ACCEPT
echo Je determine un fichier de log des rejets
# ======================================== > /sbin/iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] :'
/sbin/iptables -A LOG_DROP -j DROP
echo Autoriser le traffic internet du réseau local vers internet
# ========================================================== > /sbin/iptables -A FORWARD -i $INTLOC -o $INTEXT -j ACCEPT
/sbin/iptables -A FORWARD -i $INTEXT -o $INTLOC -j ACCEPT
/sbin/iptables -A INPUT -i $INTLOC -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTLOC -j ACCEPT
echo Tout ce qui n est pas accepté par le firewall est rejeté
silencieusement et mis en logs
#
=========================================================================== ============= > /sbin/iptables -A FORWARD -j LOG_DROP
/sbin/iptables -A INPUT -j LOG_DROP
/sbin/iptables -A OUTPUT -j LOG_DROP
fi
# Activer le forwarding IP
echo 1 > /proc/sys/net/ipv4/ip_forward
# Activation du masquerading
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0.0.0.0/0 -o
$INTEXT -j MASQUERADE
# A la fin, j'affiche une liste des règles iptables :
/sbin/iptables -L
Je suppose auparavant que l'IP forwarding a été activé sur le système
Evident, sinon, internet ne fonctionnerai pas pour le réseau local...
Dans l'absolu, rien n'indiquait que le réseau local devait accéder à
Internet. :)
======== > /etc/rc.d/rc.firewall
========# Paramètres IP/ethernet
IPEXT=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPFIXE=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
Vous n'avez pas confiance en la sécurité de votre système ? :)
IPROUTEUR2.168.100.111
INTEXT=eth1
IPFWEXT2.168.100.1
INTLOC=eth0
IPFWINT2.168.1.112
IPLOC2.168.1.254
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le trafic
Web et pas pour vos autres règles de trafic ?
echo Je redirige le port 23 sur l AS400.
# ======================================= >> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe et
le port 2323 et redirige-t-il ensuite cette connexion ?
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder, ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j ACCEPT
uniquement sur -s 192.168.1.0/24).
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Je suppose auparavant que l'IP forwarding a été activé sur le système
Evident, sinon, internet ne fonctionnerai pas pour le réseau local...
Dans l'absolu, rien n'indiquait que le réseau local devait accéder à
Internet. :)
======== > /etc/rc.d/rc.firewall
========
# Paramètres IP/ethernet
IPEXT=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPFIXE=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
Vous n'avez pas confiance en la sécurité de votre système ? :)
IPROUTEUR2.168.100.111
INTEXT=eth1
IPFWEXT2.168.100.1
INTLOC=eth0
IPFWINT2.168.1.112
IPLOC2.168.1.254
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le trafic
Web et pas pour vos autres règles de trafic ?
echo Je redirige le port 23 sur l AS400.
# ======================================= >> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe et
le port 2323 et redirige-t-il ensuite cette connexion ?
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder, ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j ACCEPT
uniquement sur -s 192.168.1.0/24).
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Je suppose auparavant que l'IP forwarding a été activé sur le système
Evident, sinon, internet ne fonctionnerai pas pour le réseau local...
Dans l'absolu, rien n'indiquait que le réseau local devait accéder à
Internet. :)
======== > /etc/rc.d/rc.firewall
========# Paramètres IP/ethernet
IPEXT=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
IPFIXE=(Vous croyez pas que je vais mettre l'adresse Internet, non ???)
Vous n'avez pas confiance en la sécurité de votre système ? :)
IPROUTEUR2.168.100.111
INTEXT=eth1
IPFWEXT2.168.100.1
INTLOC=eth0
IPFWINT2.168.1.112
IPLOC2.168.1.254
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le trafic
Web et pas pour vos autres règles de trafic ?
echo Je redirige le port 23 sur l AS400.
# ======================================= >> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe et
le port 2323 et redirige-t-il ensuite cette connexion ?
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder, ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j ACCEPT
uniquement sur -s 192.168.1.0/24).
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Je propose de se focaliser sur le problème initilal : faire passer la
liaison à partir de $IPEXT par le port 2323 depuis le routeur jusqu'au
poste $IPLOC sur le port 23
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le
trafic
Web et pas pour vos autres règles de trafic ?
Euh ... c'est quoi le match state ??? (Aie .. pas les dents...)
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port 80
-m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port
80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
echo Je redirige le port 23 sur l AS400.
# ======================================= >>> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe
et
le port 2323 et redirige-t-il ensuite cette connexion ?
J'avais fait des essais, c'est pour ça que ce n'est pas indentique au post
inital.
En fait, le routeur reçoit bien par le port 2323, et nate en port 23. ça
fonctionne, puisque depuis chez moi, j'accède par internet au serveur
linux grâce à un telnet. (c'est comme ça que je fais des essais...)
En schéma (exemple):
10.158.78.23:2323
|
|
(ROUTEUR ADSL)
|
|
10.158.78.23:23
(Machine Linux)
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au
noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder,
ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j
ACCEPT
uniquement sur -s 192.168.1.0/24).
Donc, si je rajoute :
/sbin/iptables -A FORWARD -s $IPEXT -j ACCEPT
... ça devrait suffire, n'est-ce pas ???
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Je commence à comprendre ce que vous dites, mais la, j'ai un souci de
syntaxe :
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
BAD ARGUMENT 'DNAT'
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
BAD ARGUMENT 'state'
Pourtant j'ai jeté un oeil dans le man de iptables, et ça devrait passer !
Je propose de se focaliser sur le problème initilal : faire passer la
liaison à partir de $IPEXT par le port 2323 depuis le routeur jusqu'au
poste $IPLOC sur le port 23
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le
trafic
Web et pas pour vos autres règles de trafic ?
Euh ... c'est quoi le match state ??? (Aie .. pas les dents...)
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port 80
-m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port
80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
echo Je redirige le port 23 sur l AS400.
# ======================================= >>> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe
et
le port 2323 et redirige-t-il ensuite cette connexion ?
J'avais fait des essais, c'est pour ça que ce n'est pas indentique au post
inital.
En fait, le routeur reçoit bien par le port 2323, et nate en port 23. ça
fonctionne, puisque depuis chez moi, j'accède par internet au serveur
linux grâce à un telnet. (c'est comme ça que je fais des essais...)
En schéma (exemple):
10.158.78.23:2323
|
|
(ROUTEUR ADSL)
|
|
10.158.78.23:23
(Machine Linux)
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au
noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder,
ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j
ACCEPT
uniquement sur -s 192.168.1.0/24).
Donc, si je rajoute :
/sbin/iptables -A FORWARD -s $IPEXT -j ACCEPT
... ça devrait suffire, n'est-ce pas ???
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Je commence à comprendre ce que vous dites, mais la, j'ai un souci de
syntaxe :
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
BAD ARGUMENT 'DNAT'
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
BAD ARGUMENT 'state'
Pourtant j'ai jeté un oeil dans le man de iptables, et ça devrait passer !
Je propose de se focaliser sur le problème initilal : faire passer la
liaison à partir de $IPEXT par le port 2323 depuis le routeur jusqu'au
poste $IPLOC sur le port 23
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le
trafic
Web et pas pour vos autres règles de trafic ?
Euh ... c'est quoi le match state ??? (Aie .. pas les dents...)
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port 80
-m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port
80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
echo Je redirige le port 23 sur l AS400.
# ======================================= >>> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe
et
le port 2323 et redirige-t-il ensuite cette connexion ?
J'avais fait des essais, c'est pour ça que ce n'est pas indentique au post
inital.
En fait, le routeur reçoit bien par le port 2323, et nate en port 23. ça
fonctionne, puisque depuis chez moi, j'accède par internet au serveur
linux grâce à un telnet. (c'est comme ça que je fais des essais...)
En schéma (exemple):
10.158.78.23:2323
|
|
(ROUTEUR ADSL)
|
|
10.158.78.23:23
(Machine Linux)
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au
noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder,
ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j
ACCEPT
uniquement sur -s 192.168.1.0/24).
Donc, si je rajoute :
/sbin/iptables -A FORWARD -s $IPEXT -j ACCEPT
... ça devrait suffire, n'est-ce pas ???
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Je commence à comprendre ce que vous dites, mais la, j'ai un souci de
syntaxe :
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
BAD ARGUMENT 'DNAT'
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
BAD ARGUMENT 'state'
Pourtant j'ai jeté un oeil dans le man de iptables, et ça devrait passer !
Dans l'article news:,
Gillot écrivait :Je propose de se focaliser sur le problème initilal : faire passer la
liaison à partir de $IPEXT par le port 2323 depuis le routeur jusqu'au
poste $IPLOC sur le port 23
Notez quand même qu'il ne faut pas non plus trop se focaliser trop sur une
règle, car dans la majorité des cas les règles sont dépendantes des
précédentes et des suivantes. Cf ma remarque dans mon précédent post sur les
règles redondantes ou les règles qui en annulaient d'autres.
Si vous voulez vous focaliser sur une règle pour en comprendre bien son
fonctionnement, je vous conseille de l'essayer en ayant supprimer les autres
règles et en ne mettant dans un premier temps une police à ACCEPT puis
ensuite à DROP.Ok. Juste une remarque, pourquoi utilisez vous le match state pour le
traficWeb et pas pour vos autres règles de trafic ?
Euh ... c'est quoi le match state ??? (Aie .. pas les dents...)
C'est le match '-m state' que vous avez utilisez dans la règle suivante :/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port 80
-m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
Ce match permet d'appliquer la règle qu'aux paquets dont l'état correspond à
une nouvelle connexion (NEW), une connexion déjà établie (ESTABLISHED), une
connexion suivie par le module conntrack (RELATED).echo Je redirige le port 23 sur l AS400.
# ======================================= >>>> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe
etle port 2323 et redirige-t-il ensuite cette connexion ?
J'avais fait des essais, c'est pour ça que ce n'est pas indentique au post
inital.
En fait, le routeur reçoit bien par le port 2323, et nate en port 23. ça
fonctionne, puisque depuis chez moi, j'accède par internet au serveur
linux grâce à un telnet. (c'est comme ça que je fais des essais...)
Oui, mais ça ne répond pas exactement à ma question.
Je vous conseille quand même fortement d'utiliser tcpdump pour voir ce qui
se passe sur chacune des interfaces ainsi que comment sont natés les
paquets.En schéma (exemple):
10.158.78.23:2323
|
|
(ROUTEUR ADSL)
|
|
10.158.78.23:23
(Machine Linux)
Il serait quand même plus simple de donner concrètement les bonnes IP, parce
que là dans votre exemple, on a deux IP qui sont identiques et on ne sait
même plus si c'est normal ou pas. ;)Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au
noyaucomment nater cette connexion, il faut aussi l'autoriser à la forwarder,
cequi n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j
ACCEPTuniquement sur -s 192.168.1.0/24).
Donc, si je rajoute :
/sbin/iptables -A FORWARD -s $IPEXT -j ACCEPT
... ça devrait suffire, n'est-ce pas ???
Suffire pour quoi faire exactement ?
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
BAD ARGUMENT 'DNAT'
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
BAD ARGUMENT 'state'
Dans l'article news:pan.2004.02.12.01.25.33.894889@free.fr,
Gillot <pascalgilles@free.fr> écrivait :
Je propose de se focaliser sur le problème initilal : faire passer la
liaison à partir de $IPEXT par le port 2323 depuis le routeur jusqu'au
poste $IPLOC sur le port 23
Notez quand même qu'il ne faut pas non plus trop se focaliser trop sur une
règle, car dans la majorité des cas les règles sont dépendantes des
précédentes et des suivantes. Cf ma remarque dans mon précédent post sur les
règles redondantes ou les règles qui en annulaient d'autres.
Si vous voulez vous focaliser sur une règle pour en comprendre bien son
fonctionnement, je vous conseille de l'essayer en ayant supprimer les autres
règles et en ne mettant dans un premier temps une police à ACCEPT puis
ensuite à DROP.
Ok. Juste une remarque, pourquoi utilisez vous le match state pour le
trafic
Web et pas pour vos autres règles de trafic ?
Euh ... c'est quoi le match state ??? (Aie .. pas les dents...)
C'est le match '-m state' que vous avez utilisez dans la règle suivante :
/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port 80
-m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port
80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
Ce match permet d'appliquer la règle qu'aux paquets dont l'état correspond à
une nouvelle connexion (NEW), une connexion déjà établie (ESTABLISHED), une
connexion suivie par le module conntrack (RELATED).
echo Je redirige le port 23 sur l AS400.
# ======================================= >>>> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe
et
le port 2323 et redirige-t-il ensuite cette connexion ?
J'avais fait des essais, c'est pour ça que ce n'est pas indentique au post
inital.
En fait, le routeur reçoit bien par le port 2323, et nate en port 23. ça
fonctionne, puisque depuis chez moi, j'accède par internet au serveur
linux grâce à un telnet. (c'est comme ça que je fais des essais...)
Oui, mais ça ne répond pas exactement à ma question.
Je vous conseille quand même fortement d'utiliser tcpdump pour voir ce qui
se passe sur chacune des interfaces ainsi que comment sont natés les
paquets.
En schéma (exemple):
10.158.78.23:2323
|
|
(ROUTEUR ADSL)
|
|
10.158.78.23:23
(Machine Linux)
Il serait quand même plus simple de donner concrètement les bonnes IP, parce
que là dans votre exemple, on a deux IP qui sont identiques et on ne sait
même plus si c'est normal ou pas. ;)
Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au
noyau
comment nater cette connexion, il faut aussi l'autoriser à la forwarder,
ce
qui n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j
ACCEPT
uniquement sur -s 192.168.1.0/24).
Donc, si je rajoute :
/sbin/iptables -A FORWARD -s $IPEXT -j ACCEPT
... ça devrait suffire, n'est-ce pas ???
Suffire pour quoi faire exactement ?
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
BAD ARGUMENT 'DNAT'
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23
-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
BAD ARGUMENT 'state'
Dans l'article news:,
Gillot écrivait :Je propose de se focaliser sur le problème initilal : faire passer la
liaison à partir de $IPEXT par le port 2323 depuis le routeur jusqu'au
poste $IPLOC sur le port 23
Notez quand même qu'il ne faut pas non plus trop se focaliser trop sur une
règle, car dans la majorité des cas les règles sont dépendantes des
précédentes et des suivantes. Cf ma remarque dans mon précédent post sur les
règles redondantes ou les règles qui en annulaient d'autres.
Si vous voulez vous focaliser sur une règle pour en comprendre bien son
fonctionnement, je vous conseille de l'essayer en ayant supprimer les autres
règles et en ne mettant dans un premier temps une police à ACCEPT puis
ensuite à DROP.Ok. Juste une remarque, pourquoi utilisez vous le match state pour le
traficWeb et pas pour vos autres règles de trafic ?
Euh ... c'est quoi le match state ??? (Aie .. pas les dents...)
C'est le match '-m state' que vous avez utilisez dans la règle suivante :/sbin/iptables -A INPUT -i $INTEXT --protocol tcp --source-port 80
-m state --state ESTABLISHED -j LOG_ACCEPT
/sbin/iptables -A OUTPUT -o $INTEXT --protocol
tcp --destination-port80 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
Ce match permet d'appliquer la règle qu'aux paquets dont l'état correspond à
une nouvelle connexion (NEW), une connexion déjà établie (ESTABLISHED), une
connexion suivie par le module conntrack (RELATED).echo Je redirige le port 23 sur l AS400.
# ======================================= >>>> /sbin/iptables -t nat -A PREROUTING -p tcp -s $IPROUTEUR --dport
23 -i $INTEXT -j DNAT --to-destination $IPLOC:23
Je remarque ici que l'IP source de votre règle est celle du routeur (dans
votre post initial la règle était avec l'IP source de la machine qui a
initié la connexion au port 2323) et il me vient une question : votre
routeur forwarde-t-il la connexion sur votre IP fixe sur le port 2323 en
natant l'IP et le port de destination ou bien écoute-t-il sur l'IP fixe
etle port 2323 et redirige-t-il ensuite cette connexion ?
J'avais fait des essais, c'est pour ça que ce n'est pas indentique au post
inital.
En fait, le routeur reçoit bien par le port 2323, et nate en port 23. ça
fonctionne, puisque depuis chez moi, j'accède par internet au serveur
linux grâce à un telnet. (c'est comme ça que je fais des essais...)
Oui, mais ça ne répond pas exactement à ma question.
Je vous conseille quand même fortement d'utiliser tcpdump pour voir ce qui
se passe sur chacune des interfaces ainsi que comment sont natés les
paquets.En schéma (exemple):
10.158.78.23:2323
|
|
(ROUTEUR ADSL)
|
|
10.158.78.23:23
(Machine Linux)
Il serait quand même plus simple de donner concrètement les bonnes IP, parce
que là dans votre exemple, on a deux IP qui sont identiques et on ne sait
même plus si c'est normal ou pas. ;)Sinon, vour en revenir à votre règle, il ne suffit pas d'indiquer au
noyaucomment nater cette connexion, il faut aussi l'autoriser à la forwarder,
cequi n'est pas le cas dans votre script (-P FORWARD DROP et FORWARD -j
ACCEPTuniquement sur -s 192.168.1.0/24).
Donc, si je rajoute :
/sbin/iptables -A FORWARD -s $IPEXT -j ACCEPT
... ça devrait suffire, n'est-ce pas ???
Suffire pour quoi faire exactement ?
iptables -t nat -A PREROUTING -p tcp -i eth1 -d $IPFWEXT --dport 23
-s $IPEXP -j DNAT --to-destination $IPLOC:23
BAD ARGUMENT 'DNAT'
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -d $IPLOC --dport 23-s $IPEXP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
BAD ARGUMENT 'state'