Très franchement, tu vas pas dans le bon sens.
Je vais essayer de procéder autrement.

Déja, quel est ton besoin :

1°) L'adresse de ton firewall tu l'obtiens dynamiquement (DHCP) ou c'est toi qui a donné l'adresse en fixe ?
2°) A partir de ton firewall tu veux pouvoir faire quoi vers Internet ? Vers tes postes utilisateurs ?
3°) A partir de tes postes utilisateurs, tu veux pouvoir faire quoi vers Internet ? Vers ton firewall ?
4°) A partir d'Internet, tu veux pouvoir faire quoi vers ton firewall ? Vers tes postes utilisateur ?
voici ce que je voudrai faire :

un pc F10 qui fait passerelle internet pour mon réseau (192.168.0.192/26 coté internet et 192.168.1.192/26 coté lan), je peux modifier les masques si tu préfères.

le firewall a ses adresse definies en fixes.

Ce même pc fait serveur DHCP sur l'adresse 192.168.1.251 pour mon lan.
Ce même pc fait aussi serveur DNS pour mon lan.

Ce que je veux c'est : de mon lan aller sur internet en passant par la passerelle F10.
Logiquement la passerelle F10 doit pouvoir aller sur internet (seule la carte 192.168.0.251 est reliée au modem) si je veux m'en servir comme serveur dns pour mon lan uniquement.

J'ai reussi de mon lan a aller sur internet en passant par la passerelle et par le serveur dns de la passerelle en rajoutant ceci :
iptables -t filter -A OUTPUT -o eth0 -s 192.168.0.251 -d 192.168.1.251 -p all -m state --state ! INVALID -j ACCEPT
iptables -t filter -A INPUT -i eth0 -s 192.168.1.251 -d 192.168.0.251 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
c'est bon ou passant ou pas assez restrictif comme regle ?
Pourquoi depuis la passerelle F10 je ne peux pas aller sur internet ?
J'ai toujours ce message quand je lance mon script, je ne comprends pas pourquoi :
[root@srvr ~]# sh -x /mon_script.sh
+ modprobe ip_conntrack
FATAL: Module ip_conntrack not found.
......
.....
.....
+ modprobe iptable_nat
......
ce qui veut donc dire que le module ip_conntrack n'est pas trouvé alors que l'autre oui.

Je viens de refaire tout le #14 du fil, et je ne vois pas pourquoi j'ai cette erreur.


Vous voyez pourquoi ???
je viens de relire mes réponses au #20 et je les trouve pas très claires, je les reformule donc :

1°) mes adresses sont fixes 192.168.0.251 pour la carte reliée au modem, et 192.168.1.251 pour la carte reliée au switch de mon lan.
2°) depuis mon firewall vers internet, je voudrai : interdire tout ce que je n'autorise pas, à savoir :
- vers internet
- autoriser le serveur DNS qui tourne sur la même machine et qui écoute 192.168.1.251 à resoudre les adresses d'internet
- vers mon lan
répondre aux requetes DNS et dhcp de mon lan uniquement
3°) depuis mon lan je voudrai : tout est interdit sauf qui est explicitement autorisé, à savoir :
- vers internet
autoriser le firewall à accepter les connexions initiées depuis mon lan uniquement (web, pop, et smtp uniquement) a aller sur internet
pouvoir prendre la main si besoin sur un poste distant (j'arrive pas à aider grand monde sur linux, aucun de mes amis ne veut se lancer dans
l'aventure, mais sur windows il m'arrive de les dépanner)
- vers le firewall
résoudre les adresses par le serveur dns qui tourne sur le firewall en 192.168.1.251
obtenir une adresse car le serveur dhcp tourne sur le firewall en 192.168.1.251
4°) a partir d'internet : tout est interdit sauf ce qui est autorisé, à savoir :
- vers le firewall
rien
- vers mon lan
consulter le serveur web qui est sur mon lan

j'espere que cela est plus clair et que vous voyez mieux ce que je tente de faire.

merci en tous cas pour votre aide
fredouille wrote:J'ai toujours ce message quand je lance mon script, je ne comprends pas pourquoi :
[root@srvr ~]# sh -x /mon_script.sh
+ modprobe ip_conntrack
FATAL: Module ip_conntrack not found.
......
.....
.....
+ modprobe iptable_nat
......
ce qui veut donc dire que le module ip_conntrack n'est pas trouvé alors que l'autre oui.

Je viens de refaire tout le #14 du fil, et je ne vois pas pourquoi j'ai cette erreur.


Vous voyez pourquoi ???
Oui, parce que tu n'as pas compris les explications du poste #14.

Le y veut dire que le module n'est pas généré à part puisque directement dans le noyau.
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_IPV4=y
Autrement dit, tu ne peux charger de module ip_conntrack puisqu'il n'a pas été généré. Par contre, le code correspondant est bien présent dans le noyau, donc pas de problème.
Bon, ok.

Pour commencer, tu n'as pas compris une notion essentielle :
INPUT c'est ce qui rentre sur ton firewall.
OUPUT c'est ce qui sort de ton firewall.
FORWARD c'est ce qui traverse.

Quand tes postes clients doivent accéder au DNS sur ton firewall ils doivent passer en INPUT et resortir en OUTPUT sur l'interface eth1.

Quand tes poste clients doivent accèder à Internet, ils doivent TRAVERSER (FORWARD en anglais) le firewall.
Une reqûete http d'un poste client vers Internet doit passer (entrer) en FORWARD sur l'interface eth1 vers ton firewall et passer (sortir) en FORWARD sur l'interface eth0 ers Internet.
Une réponse http d'Internet vers un poste client doit passer (entrer) en FORWARD sur l'interface eth0 vers ton firewall et passer (sortir) en FORWARD sur l'interface eth1 vers ton poste client.

En espérant que ça ne te trouble pas :

Si tu as compris tu as de quoi grandement modifier ton script.
a philippe_PMA :

effectivement pour le #14, je viens de le relire :
=y veut dire que le code correspond à l'option est compilé avec le noyau, donc pas en module.
et que donc vu qu'il est compilé dans le noyau, il est donc disponible et donc pas besoin de le charger.

Je n'avais pas fais le raisonnement jusqu'au bout, :-P oups, désolé, méa culpa, i'm very very very sorry........


en effet certaines notions étaient floues (encore désolé...)
Je dois reconnaitre que je m'appuies beaucoup sur ce que je trouves sur internet, surtout quand c'est accompagné d'un tuto et de bonnes explications, et surement trop souvent je me contente d'adapter un script proposé à ma config plutot que je vouloir ré-inventer la roue.

J'en oublis trop souvent que chaque cas est unique et que ressemblance est différent identique, je ne prends donc pas assez de temps pour examiner la situation et fonce tête baissée.

Je crois que je vais tout remettre à plat et repartir avec une feuille blanche.

J'essayes de me débrouiller tout seul et je vous tiens au courant...

Merci encore à tous......

Je vous tiens au courant
fredouille wrote:...
Je n'avais pas fais le raisonnement jusqu'au bout, :-P oups, désolé, méa culpa, i'm very very very sorry........

en effet certaines notions étaient floues (encore désolé...)
Je dois reconnaitre que je m'appuies beaucoup sur ce que je trouves sur internet, surtout quand c'est accompagné d'un tuto et de bonnes explications, et surement trop souvent je me contente d'adapter un script proposé à ma config plutot que je vouloir ré-inventer la roue.

J'en oublis trop souvent que chaque cas est unique et que ressemblance est différent identique, je ne prends donc pas assez de temps pour examiner la situation et fonce tête baissée.
Je crois comprendre ce que c'est d'être un confesseur 😉
C'est bien mon enfant, tu es sur le droit chemin 😉
fredouille wrote:...
Je crois que je vais tout remettre à plat et repartir avec une feuille blanche.

J'essayes de me débrouiller tout seul et je vous tiens au courant...

Merci encore à tous......

Je vous tiens au courant
Mon conseil (ta pénitence 😉) commence par un script iptable adapté à un poste client.
En fait, tu peux faire ça sur ton futur firewall, ça sera la base.

Et une fois que c'est fait et que tu l'a bien fignolé et compris, tu passes à l'étape suivante. tu ajoutes ce qu'il faut pour en faire une passerelle Internet / firewal. A savoir le masquarade et l'utilisation de la chaine FORWARD.

Bon courage.
Tu as dit vouloir consulter ton serveur web sur ton lan à partir d'internet. Il faut donc que tu t'interresses aussi à la notion de DMZ.
Une petite recherche google devrait te donner des pistes.
Bonsoir a tous,

Je rajoute un petit post pour vous dire ou j'en suis (et aussi pour avoir vos conseils ou modifications :-D )

J'ai suivi les bons conseils de philippe_PMA (de commencer à configurer la future passerelle/parefeu comme un poste client) et j'ai repris une page blanche et bricolé ceci :
#!/bin/sh

# RAZ table FILTER
iptables -t filter -F
iptables -t filter -X

# POLITIQUE table FILTER
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP

# RAZ table NAT
iptables -t nat -F
iptables -t nat -X

# POLITIQUE table NAT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# Désactivation du NAT
echo 0 > /proc/sys/net/ipv4/ip_forward

# Règles pour Localhost
iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT
iptables -t filter -A INPUT -i lo -p all -j ACCEPT

# Règles pour carte LAN
iptables -t filter -A OUTPUT -o eth1 -s 192.168.1.251 -d 192.168.1.192/26 -p all -j ACCEPT
iptables -t filter -A INPUT -i eth1 -s 192.168.1.192/26 -d 192.168.1.251 -p all -j ACCEPT

# Règles pour carte WAN
# Chargement du module de SUIVI de CONNEXION
#modprobe ip_conntrack # Chargement désactivé car module inclu dans kernel

#iptables -t filter -A OUTPUT -o eth0 -s 192.168.0.251 -d 192.168.0.192/26 -p all -m state --state ! INVALID -j ACCEPT
#iptables -t filter -A INPUT -i eth0 -s 192.168.0.192/26 -d 192.168.0.251 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -s 192.168.0.251 -d 0.0.0.0/0 -p all -m state --state ! INVALID -j ACCEPT
iptables -t filter -A INPUT -i eth0 -s 0.0.0.0/0 -d 192.168.0.251 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT

# Règles pour IP MASQUERADING
# Chargement du module NAT
modprobe iptable_nat

iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.192/26 -d 192.168.0.192/26 -p all -m state --state ! INVALID -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 192.168.0.192/26 -d 192.168.1.192/26 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.192/26 -d 192.169.0.192/26 -p all -j MASQUERADE

# Activation du NAT
echo 1 > /proc/sys/net/ipv4/ip_forward

# sauvegarde les regles
service iptables save

# redemarrage du service
service iptables restart
J'ai du apporté quelques modifs à ma machine car c'est elle qui faisait serveur DNS, j'ai modifié également la config pour la carte WAN (je pense que c'est parce qu'il y a le modem entre le pc et internet et surtout que les adresses internet ne font pas parties de mon réseau privé 192.168.0.192/26 sur lequel est le modem ; c'est la conclusion que j'en ai déduit).

Je continu dans ma lancée pour la suite de ma config iptables, si des fois et par envie vous vouliez bien jeter un petit coup d'oeil à mon script et le critiquer, me dire (si vous le voulez bien), ce que je pourrai mieux faire comme règle ou que je fais mal, merci d'avance à vous.

Voici le résultat de la commande # nmap mon_pc.com -g 80 -PO
1710 ports closed
# nmap mon_pc.com -g 80 -PO
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
80/tcp filtered http
la meme chose depuis mon réseau
# nmap 192.168.0.251 -g 80 -PO
1714 ports closed
1 IP address (1 host up) scanned in 36.251 seconds
J'en déduis que cette différence pour la même commande vient du simple fait que ma connexion internet passe par un modem qui a sa propre configuration (pourtant aucune), j'ai essayé en ouvrant ces ports sur le modem, mais nmap me dit simplement qu'ils sont ouverts.
Vous auriez une idée pour confirmer ces résultats ?

Enfin www.pcflank me donne ceci comme résultat de scan quick test
Results of the test:

Check for vulnerabilities of your computer system to remote attacks
Safe

Trojan horse check
Safe

Browser privacy check
Danger!
Vous auriez une explication ?


Je ferai un autre post quand la prochaine évolution fonctionnera.

Dernier petit point, y-a-t-il des types de paquets icmp que l'on doit laisser passer pour internet (ou autre), ou je peux tout bloquer ?

Encore merci à vous
fredouille wrote:...

# Règles pour IP MASQUERADING
# Chargement du module NAT
modprobe iptable_nat

iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.192/26 -d 192.168.0.192/26 -p all -m state --state ! INVALID -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 192.168.0.192/26 -d 192.168.1.192/26 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.192/26 -d 192.169.0.192/26 -p all -j MASQUERADE

# Activation du NAT
echo 1 > /proc/sys/net/ipv4/ip_forward

...
En regardant vite fait ça a l'air d'aller.
Par contre, les lignes ci-dessus c'est pour une passerelle.
Juste pour être sûr que tu as bien compris.
fredouille wrote:...
Voici le résultat de la commande # nmap mon_pc.com -g 80 -PO
1710 ports closed
# nmap mon_pc.com -g 80 -PO
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
80/tcp filtered http
la meme chose depuis mon réseau
# nmap 192.168.0.251 -g 80 -PO
1714 ports closed
1 IP address (1 host up) scanned in 36.251 seconds
J'en déduis que cette différence pour la même commande vient du simple fait que ma connexion internet passe par un modem qui a sa propre configuration (pourtant aucune), j'ai essayé en ouvrant ces ports sur le modem, mais nmap me dit simplement qu'ils sont ouverts.
Vous auriez une idée pour confirmer ces résultats ?
Dans les deux cas tu as 1714 (1710 closed + 4 filtered) qui sont "protégé" : tout vas bien.
fredouille wrote:Enfin www.pcflank me donne ceci comme résultat de scan quick test
Results of the test:

Check for vulnerabilities of your computer system to remote attacks
Safe

Trojan horse check
Safe

Browser privacy check
Danger!
Vous auriez une explication ?
Il me semble que cela concerne les coockies que ton navigateurs web autorise. Ces petites friandises sont donc consultables ...
a philippe_PMA :

Oui tu as raison,
# Règles pour IP MASQUERADING

# Chargement du module NAT

modprobe iptable_nat

iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.192/26 -d 192.168.0.192/26 -p all -m state --state ! INVALID -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 192.168.0.192/26 -d 192.168.1.192/26 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.192/26 -d 192.169.0.192/26 -p all -j MASQUERADE

# Activation du NAT

echo 1 > /proc/sys/net/ipv4/ip_forward
est bien pour la passerelle que je souhaite monter, je travaillais déjà sur ce point quand j'ai posté mon script.

D'ailleurs ca fonctionne très bien, merci encore pour ton aide......

Pour les cookies web, je ne vais pas être gêné si je les interdis dans mes navigateurs ???

Ou il y a une possibilité pour interdire qu'ils soient consultés depuis internet (je dirai que non)?


J'ai également rajouté ceci dans mon script afin de logger toutes les entrées / sorties non autorisées
iptables -t filter -A INPUT -p all -j ULOG --ulog-prefix=DEPUIS_INTERNET
iptables -t filter -A OUTPUT -p all -j ULOG --ulog-prefix=DEPUIS_LAN
En voici le résultat :
LOG JUSTE :
Jun 8 10:19:00 srvr Depuis_INTERNET IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:18:de:23:18:61:08:00 SRC=192.168.0.252 DST=192.168.0.255 LEN=96 TOS=00 PREC=0x00 TTL=128 ID=26130 PROTO=UDP SPT=137 DPT=137 LEN=76
LOG FAUX (provient du LAN) :
Jun 8 10:22:59 srvr Depuis_INTERNET IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:13:d4:8d:a3:03:08:00 SRC=192.168.1.253 DST=192.168.1.255 LEN=229 TOS=00
.......
LOG juste :
Jun 8 12:10:25 srvr Depuis_LAN IN= OUT=eth0 MAC= SRC=192.168.0.251 DST=204.16.252.79 LEN=52 TOS=00 PREC=0x00 TTL=64 ID=16049 DF PROTO=TCP SPT=54785 DPT=8245 SEQ=3164569187 ACK=3263572691 WINDOW=108 ACK FIN URGP=0
.......
LOG faux (provient du LAN) :
Jun 8 13:22:54 srvr Depuis_INTERNET IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:13:d4:8d:a3:03:08:00 SRC=192.168.1.253 DST=192.168.1.255 LEN=229 TOS=00 PREC=0x00 TTL=128 ID=6450 PROTO=UDP SPT=138 DPT=138 LEN=209
LOG juste :
Jun 8 08:54:51 srvr Depuis_LAN IN= OUT=eth1 MAC= SRC=192.168.1.195 DST=224.0.0.251 LEN=134 TOS=00 PREC=0x00 TTL=255 ID=0 DF PROTO=UDP SPT=5353 DPT=5353 LEN=114
Je me suis aperçu que ces règles de Log ne sont pas assez précises et mal définies (pour les Logs que je voudrai).

Je souhaiterai logger tous les paquets sortants de eth0 vers internet non souhaités et logger tous les paquets entrants depuis internet sur eth0 non souhaités.

Enfin comment être sur que les paquets provenants de mon lan (ou il y a un poste qui tourne sous windows) ne finissent pas sur internet du fait que les paquets sont forwardés ?
fredouille wrote:...
Pour les cookies web, je ne vais pas être gêné si je les interdis dans mes navigateurs ???

Ou il y a une possibilité pour interdire qu'ils soient consultés depuis internet (je dirai que non)?
...
Ca dépend des sites ...
Tu peux configurer ton navigateur pour qu'ils soient effacés quand tu fermes le navigateur.

En fait, c'est juste pour éviter qu'après avoir visiter un site, un autre site ne puisse détecter tes centres d'intérêts et donc cibler sa publiciter / spam à ton encontre ...
fredouille wrote:iptables -t filter -A INPUT -p all -j ULOG --ulog-prefix=DEPUIS_INTERNET
iptables -t filter -A OUTPUT -p all -j ULOG --ulog-prefix=DEPUIS_LAN
iptables -t filter -A INPUT -i eth0 -p all -j ULOG --ulog-prefix=DEPUIS_INTERNET
iptables -t filter -A INPUT -i eth1 -p all -j ULOG --ulog-prefix=DEPUIS_LAN
iptables -t filter -A OUTPUT -i eth0 -p all -j ULOG --ulog-prefix=VERS_INTERNET
iptables -t filter -A OUTPUT -i eth1 -p all -j ULOG --ulog-prefix=VERS_LAN
a philippe_PMA :

C'est excellent, j'étais en train de modifier mon script, que j'ai à peine le temps de le tester et que tu me proposes ce que je venais de taper.

Pour ce qui est des forwards des lignes de FORWARD pour la passerelle entre mon LAN et internet,
on ne contrôle pas ce que vont faire les stations sur le net.

Si je veux interdire des connexions depuis mon lan vers internet sur certains ports ou tout simplement voir ce que font mes stations clients, je dois obligatoirement modifier les lignes de forward en les limitant à certains ports. c'est bien ca ??
fredouille wrote:a philippe_PMA :
...

Si je veux interdire des connexions depuis mon lan vers internet sur certains ports ou tout simplement voir ce que font mes stations clients, je dois obligatoirement modifier les lignes de forward en les limitant à certains ports. c'est bien ca ??
Tu connais le jeux où l'on indique la proximité de l'objet recherché en disant CHAUD / FROID ?
Hé bah là, c'est BRULANT 😉
a tous et particulièrement philippe_PMA :

Merci à tous pour votre coup de main, iptables fonctionne à merveille sur ma passerelle ainsi que pour mon LAN.

Merci encore pour votre patience ainsi que vos bons conseils.
Please HELP.....

depuis l'un des clients, j'accède sans problème au forum, et je peux poster si besoin, mais pas depuis le serveur.

J'accède pourtant bien au forum ainsi qu'aux fils, mais dès que je tapes une réponses et l'envois au serveur, il y a un gros temps d'attente, jusqu'à me retrouver devant une page blanche.

Quelqu'un aurait une idée d'ou cela peut venir ?????
fredouille wrote:Please HELP.....

depuis l'un des clients, j'accède sans problème au forum, et je peux poster si besoin, mais pas depuis le serveur.

J'accède pourtant bien au forum ainsi qu'aux fils, mais dès que je tapes une réponses et l'envois au serveur, il y a un gros temps d'attente, jusqu'à me retrouver devant une page blanche.

Quelqu'un aurait une idée d'ou cela peut venir ?????
Ce que tu appeles le serveur c'est ton firewall ?

Mon petit doigt me dit que c'est plutot coté navigateur qu'il faudrait regarder.
Est-ce que par hasard tu n'aurais pas invalider les cookies sur le navigateur de ton firewall et pas sur celui de ton client ? Car beaucoup de site nécessite les cookies ...

Pour vérifier que ce n'est pas un problème d'iptable, il faut que partout où tu drop tu fasses une log avant de dropper.
Et il faut ajouter aussi des log pour tenir compte des drop de tes politiques par défaut, ce doit être les dernières règles INPUT et OUTPUT.

Tu peux aussi utiliser un sniffer pour voir ce qu'il se passe.