Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

HELP ! ipfw et natd

22 réponses
Avatar
ferdydurke
Bonjour,
je me trouve confronté à un problème avec natd et ipfw ; je me décide donc à
poster suite à plusieurs jours d'arrachage de cheveux...
Je tourne sous FreeBSD 4.8, avec deux interfaces ethernet : rl0 en DHCP
(connectée à un modem ADSL qui fait aussi serveur DHCP) et rl1 avec une IP
fixe 192.168.0.11 et qui sert de passerelle ADSL ou autre pour tout mon
réseau local. La translation d'adresse s'effectue bien, je n'ai aucun
problème de reconnexion à mon FAI, etc.
J'ai donc décidé de construire un pare-feu avec ipfw : handbook et diverses
docs de rigueur (onlamp, etc)... Ca marche bien, je suis content de mon
firewall, sauf... que je n'ai plus de connexion internet sur mon réseau
local ! plus de translation d'adresses ! plus de passerelle sur rl1 !
Quelqu'un peut m'aider ? regarder mes fichiers de configuration ci-dessous ?
Merci d'avance.

***LE RC.CONF :

gateway_enable="YES"

#firewall
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #"OPEN"
firewall_quiet="NO"
firewall_logging_enable="YES"

natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"

#extra firewalling options
log_in_vain="YES"
tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"

accounting_enable="YES"



***LE IPFW.RULES :

add 00050 divert natd all from any to any via rl0
add 00100 pass all from any to any via lo0
add 00200 deny all from any to 127.0.0.0/8
add 00300 deny ip from 127.0.0.0/8 to any

#from man 8 ipfw: allow only outbound TCP connections I've created
add 00301 check-state
add 00302 deny tcp from any to any in established
add 00303 allow tcp from any to any out setup keep-state

#allow DNS
add 00400 allow udp from 80.10.246.130 53 to any in recv rl0
add 00401 allow udp from any to any out

#allow DHCP
add 00501 allow udp from 81.249.237.84 67 to any 68 in via rl0
add 00502 allow udp from any 68 to 255.255.255.255 67 out via rl0
add 00503 allow udp from any 67 to 255.255.255.255 68 in via rl0

#allow some icmp types (codes not supported)
##########allow path-mtu in both directions
add 00600 allow icmp from any to any icmptypes 3

##########allow source quench in and out
add 00601 allow icmp from any to any icmptypes 4

##########allow me to ping out and receive response back
add 00602 allow icmp from any to any icmptypes 8 out
add 00603 allow icmp from any to any icmptypes 0 in

#########allow me to run traceroute
add 00604 allow icmp from any to any icmptypes 11 in


LES OPTIONS DU KERNEL :

options IPFIREWALL #firewall
options IPDIVERT #divert sockets
options IPFIREWALL_VERBOSE #print information about
#dropped packets
options IPFIREWALL_VERBOSE_LIMIT=10 #limit verbosity
options IPSTEALTH

10 réponses

1 2 3
Avatar
Laurent Lefevre
ferdydurke writes:

Bonjour,
je me trouve confronté à un problème avec natd et ipfw ; je me décide donc à
poster suite à plusieurs jours d'arrachage de cheveux...
Je tourne sous FreeBSD 4.8, avec deux interfaces ethernet : rl0 en DHCP
(connectée à un modem ADSL qui fait aussi serveur DHCP) et rl1 avec une IP
fixe 192.168.0.11 et qui sert de passerelle ADSL ou autre pour tout mon
réseau local. La translation d'adresse s'effectue bien, je n'ai aucun
problème de reconnexion à mon FAI, etc.
J'ai donc décidé de construire un pare-feu avec ipfw : handbook et diverses
docs de rigueur (onlamp, etc)... Ca marche bien, je suis content de mon
firewall, sauf... que je n'ai plus de connexion internet sur mon réseau
local ! plus de translation d'adresses ! plus de passerelle sur rl1 !
Quelqu'un peut m'aider ? regarder mes fichiers de configuration ci-dessous ?
Merci d'avance.


Tu n'a aucune règle pour rl1, ton firewall bloquant normalement par
défaut... plouf.

Il faudrait que tu rajoutes quelquchose comme:

ipfw add 150 allow all from any to any via rl1

Ensuite, regardes dans tes logs, il y a en clair les erreurs indiquant
ce qui ne va pas.

--
Laurent

Avatar
ferdydurke
Tu n'a aucune règle pour rl1, ton firewall bloquant normalement par
défaut... plouf.

Il faudrait que tu rajoutes quelquchose comme:

ipfw add 150 allow all from any to any via rl1

Ensuite, regardes dans tes logs, il y a en clair les erreurs indiquant
ce qui ne va pas.



Merci pour la réponse. Je viens de rajouter "add 00150 allow all from any to
any via rl1" dans mon fichier ipfw.rules, mais ça ne marche toujours pas...

C'est bien /var/log/ipfw.today qu'il faut regarder ? J'ai trois lignes là :
00200 72 4032 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65535 2 634 deny ip from any to any

Dernière chose : c'est bien ipfw.rules qui est lu même si dans mon rc.conf
j'ai :
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #"OPEN"

Avatar
Antoine Jacoutot
ferdydurke wrote:
Dernière chose : c'est bien ipfw.rules qui est lu même si dans mon rc.conf
j'ai :
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #"OPEN"


Je pense que tu devrais juste mettre:
firewall_script="/etc/ipfw.rules"

@+

Antoine

Avatar
Laurent Lefevre
ferdydurke writes:

Dernière chose : c'est bien ipfw.rules qui est lu même si dans mon rc.conf
j'ai :
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #"OPEN"


Bon... ya du boulot....

Ton fichier de conf du firewall, c'est /etc/ipfw.rules, c'est ce
fichier qui contient les regles d'ipfw.

Dans ton rc.conf, tu vires "firewall_type="/etc/ipfw.rules" #"OPEN"" ca
sort d'ou ce truc ? et tu met firewall_script="/etc/ipfw.rule" à la
place de firewall_script="/etc/rc.firewall"

il doit y avoir, hormis ta conf precedent le firewall, dans ton rc.conf:

firewall_enable="YES"
firewall_script="/etc/rc.firewall"
natd_enable="YES"
natd_program="/sbin/natd"
natd_interface="rl0"
natd_flags="-dynamic"
network_interface="tun0 rl0 rl1 lo0"

Prends le temps de lire les docs tranquillement....

Je ne crois pas qu'il y ait contradiction avec le DHCP et ce que je
raconte...

--
Laurent

Avatar
Laurent Lefevre
Laurent Lefevre writes:

il doit y avoir, hormis ta conf precedent le firewall, dans ton rc.conf:

firewall_enable="YES"
firewall_script="/etc/rc.firewall"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

natd_enable="YES"
natd_program="/sbin/natd"
natd_interface="rl0"
natd_flags="-dynamic"
network_interface="tun0 rl0 rl1 lo0"


Moi y en a deconner, c'est firewall_script="/etc/ipfw.rules" à la place
de firewall_script="/etc/rc.firewall"

--
Laurent

Avatar
Jean-Pierre PARISY
On Tue, 25 Nov 2003 16:29:18 +0100, in fr.comp.os.bsd ferdydurke
wrote:

« ***LE IPFW.RULES :
«
« add 00050 divert natd all from any to any via rl0
« add 00100 pass all from any to any via lo0
« add 00200 deny all from any to 127.0.0.0/8
« add 00300 deny ip from 127.0.0.0/8 to any

Ce fichier est un shell-script, il doit être exécutable (chmod 744) et
chaque ligne doit commencer par "/sbin/ipfw".

La première ligne du fichier devrait être :

/sbin/ipfw -f flush

pour pouvoir relancer le firewall chaque fois qu'on change une règle.

On peut aussi essayer une règle en la tapant à la console, mais c'est un
excellent moyen d'avoir un firewall qui marche bien, mais ne marchera
plus au prochain reboot !
Avatar
Jean-Pierre PARISY
On Tue, 25 Nov 2003 17:47:11 +0100, in fr.comp.os.bsd Laurent Lefevre
wrote:

« network_interface="tun0 rl0 rl1 lo0"

"tun0" ne s'impose pas en DHCP !

--
RR> Ce que je cherche à démontrer, c'est qu'il est injuste de faire
RR> l'amalgame entre du bulk mail et du courrier non-solicité très ciblé
un suppositoire non reclamé, meme tres bien ciblé, reste un suppositoire.
-+-OS in : <http://www.le-gnu.net> - Plein le cul de la pub à neuneu -+-
Avatar
Jacques Caron
On Tue, 25 Nov 2003 17:27:55 +0100, ferdydurke wrote:

C'est bien /var/log/ipfw.today qu'il faut regarder ? J'ai trois lignes
là :
00200 72 4032 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65535 2 634 deny ip from any to any


ipfw show te donnera l'état courant (le fichier indiqué donne l'état
pendant le daily run). En regardant ce qui augmente, tu verras quelle
règle bloque.

Dernière chose : c'est bien ipfw.rules qui est lu même si dans mon
rc.conf
j'ai :
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #"OPEN"


Ca devrait. Tu peux confirmer avec ipfw show.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Jacques Caron
Salut,

On Tue, 25 Nov 2003 17:47:11 +0100, Laurent Lefevre
wrote:

ferdydurke writes:

Dernière chose : c'est bien ipfw.rules qui est lu même si dans mon
rc.conf
j'ai :
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #"OPEN"


Bon... ya du boulot....

Ton fichier de conf du firewall, c'est /etc/ipfw.rules, c'est ce
fichier qui contient les regles d'ipfw.

Dans ton rc.conf, tu vires "firewall_type="/etc/ipfw.rules" #"OPEN"" ca
sort d'ou ce truc ? et tu met firewall_script="/etc/ipfw.rule" à la
place de firewall_script="/etc/rc.firewall"


Nope. Le firewall_script doit être un script shell. Il pourrait l'utiliser
si son /etc/ipfw.rule contenait des commandes shell, genre "ipfw add ceci
cela". Mais c'est un fichier script ipfw (qui doit être passé à ipfw), et
/etc/rc.firewall fait ça très bien.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/


Avatar
Jacques Caron
On Tue, 25 Nov 2003 19:39:59 +0000 (UTC), Jean-Pierre PARISY
wrote:

Ce fichier est un shell-script, il doit être exécutable (chmod 744) et
chaque ligne doit commencer par "/sbin/ipfw".


Oui s'il est référencé par firewall_script, pas par firewall_type comme
c'est le cas ici.

Pour référence, rc.firewall:

[...]

case ${firewall_type} in

[... les cas prédéfinis ...]

*)
if [ -r "${firewall_type}" ]; then
${fwcmd} ${firewall_flags} ${firewall_type}
fi
;;
esac

[...]

Par contre il faut noter que rc.firewall ajoutera un certain nombre de
règles "tout seul", en parciulier celles relatives à natd, aux interfaces
loopback, etc. Il est donc prudent de vérifier le résultat avec ipfw show.

Ou effectivement utiliser un script shell à la palce de rc.firewall dans
firewall_script, mais on y perd un certain nombre d'automatismes.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

1 2 3