OVH Cloud OVH Cloud

[FreeBSD] NAT et Firewall

9 réponses
Avatar
Gerald Niel
Bonjour,

Je tente de mettre en place un firewall sur ma passerelle freebsd
toute neuve... Mais je coince.

J'ai essayé d'appliquer ce qui est exposé ici:
http://www.freebsd-fr.org/doc/fr/books/dialup-firewall/article.html

Mais dans ce cas si le dialogue est possible entre les machine,
impossible d'accèder à l'exterieur depuis une machine du réseau (mon
linux en l'occurence) même les requettes sur des ip (sans passer par
le dns) échouent.

J'ai aussi parcouru les archives sur Google où je suis tombé sur des
articles disant que ppp pouvait se charger du firewall. J'utilise
actuellement ppp pour la nat.
Mais je n'ai très franchement pas tout compris...

Dans un premier temps, je veux juste permettre au machines d'acceder à
internet et interdire l'accès de l'exterieur. Eventuellement un peu
plus tard, lorsque j'aurrais correctement assimilé la chose ouvrir
quelques services ou les rediriger (80 et 119).
Quant-au port 22 j'aimerais le rediriger (depuis l'exterieur du
réseau) vers ma machine linux.

Je suis preneur de quelques indications ou précision me permettant de
résoudre mon problème et surtout de comprendre le mécanisme.
Bref... bizarre car il semble que l'article dont je fait référence a
été utilisé avec succès d'après les archives de ce groups sur google.
Je dois donc faire une erreur quelque part.

Autre chose, concernant la localisation (voir mon article sur le
sujet) si vous avez des liens ou des indications sur la façon de
configurer la console pour les caractères iso-8859-15 ainsi que la
façon d'automatiser ça proprement. J'ai parcouru le chapitre à ce
sujet dans le Handbook mais il y a encore quelques zone d'ombre.
Ah... et précision, j'accede à la passerelle depuis un xterm sous
Linux... au cas où.

@+
--
> Ce message est le premier appel appel à discussion en vue de la
> création de la hiérarchie fr.internet.*
fr.comp.os.linux.internet.* ou fr.internet.comp.os.linux.*?
-+- Arnaud in guide du linuxien pervers - "Bien configurer fr.*"

9 réponses

Avatar
Gerald Niel
Le dimanche 20 juillet 2003 à 12:35 GMT, Yann LEBAS écrivait sur
fr.comp.os.bsd :

Salut

kel version de Freebsd tu ultilises et kel firewall deamon tu utilises
egalement


4.8

Pour l'instant... pas de firewall, c'est bien ça le problème.

met un extrait de tes regles firewall , c plus evident pour la reponse :)


Bah... j'avais essayer le script dont j'ai donné l'url (ipfw) mais à
priori je foire un truc.

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="<nom du provider>"


Idem chez moi.

# DNS et routage IP
named_enable="YES"


Ça c'est pour faire tourner un serveur DNS ?
À priori pas besoin dans un premier temps, si ?

gateway_enable="YES"


J'ai aussi

# firewall
ipfilter_enable="YES"


Je vais essayer...

c dans le cadre de l'utilisation d'ipfilter :)
apres sa il ne reste plus k'a mettre tes regles firewall dans /etc/ipf.rules

extrait ( ou tunX est l'interface adsl et epX ton interface reseau) :


C'est là que je fais peut être confusion...
tun0 est l'interface adsl
et chez moi la carte réseau relié au switch est rl0 (rl1 au modem).

Question: quand on parle de l'interface réseau, on parle bien de
l'interface reliè au réseau local ?

block in all
block out all


Ok, ça je comprend.

block in on tunX
block in quick on tunX from 192.168.0.0/16 to any
block in quick on tunX from 172.16.0.0/12 to any
block in quick on tunX from 10.0.0.0/8 to any
block in quick on tunX from 127.0.0.0/8 to any
block in quick on tunX from 0.0.0.0/8 to any


Là je veux bien quelques explications... on bloque le traffic entrant
sur l'interface adsl depuis le réseau local vers l'exterieur, c'est ça ?
N'est-ce pas redondant avec la première règle ?
Que signifie quick ?

(entre temps je vais probablement chercher...)

block out on tunX


Là je crois comprendre.

pass in quick on epX all
pass out quick on epX all

pass in quick on lo0 all
pass out quick on lo0 all

pass out quick on tunX proto udp from any to any keep state
pass out quick on tunX proto tcp from any to any flags S keep state

pass in quick on tunX proto tcp from any to any port = 1723 flags S keep
state
pass in quick on tunX proto gre from any to any keep state
pass out quick on tunX proto gre from any to any keep state


Là je veux bien quelques explications aussi histoire de pas copier
bettement et comprendre.

voila ton router est pret normalement, il ne reste plus k'a mettre l'adresse
de ton router en passerelle sur les machines clientes.


Le nat est déjà fonctionnel, pas le firewall, c'est ça le problème.

PS. t'as un problème avec le clavier ? ;o)

@+
--
HB: Quant à Linux [..] trés bon système d'exploitation, mais difficile
HB: à implanter en entreprise, pour des raisons non techniques.
Dont celle-ci : Le singe préfère la voiture rouge.
-+- MB, in Guide du linuxien pervers - "Bien configurer son singe" -+-

Avatar
Benoit Izac
Bonjour,

le 20/07/2003 à 16:11, Gerald Niel a écrit
dans le message :

# DNS et routage IP
named_enable="YES"


Ça c'est pour faire tourner un serveur DNS ?
À priori pas besoin dans un premier temps, si ?


Non.

[...]
extrait ( ou tunX est l'interface adsl et epX ton interface reseau) :


C'est là que je fais peut être confusion...
tun0 est l'interface adsl
et chez moi la carte réseau relié au switch est rl0 (rl1 au modem).

Question: quand on parle de l'interface réseau, on parle bien de
l'interface reliè au réseau local ?


Ici oui, c'est ce qu'il veut dire.

block in all
block out all


Ok, ça je comprend.

block in on tunX
block in quick on tunX from 192.168.0.0/16 to any
block in quick on tunX from 172.16.0.0/12 to any
block in quick on tunX from 10.0.0.0/8 to any
block in quick on tunX from 127.0.0.0/8 to any
block in quick on tunX from 0.0.0.0/8 to any


Là je veux bien quelques explications... on bloque le traffic entrant
sur l'interface adsl depuis le réseau local vers l'exterieur, c'est
ça ? N'est-ce pas redondant avec la première règle ? Que signifie
quick ?


block in on tunX
celle-ci ne sert à rien.

En revanche, les autres avec « quick » servent. Lorsque tu utilises
« quick » si une des règles correspond, le filtre est appliqué et les
autres règle ne sont pas évaluées.

C'est à dire que si tu as un paquet qui dit provenir d'une adresse
privée, par exemple 192.168.0.1, celui-ci va faire ce chemin :
block in all -> devra être rejeté
block out all -> ne correspond pas
block in on tunX -> devra être rejeté
block in quick on tunX from 192.168.0.0/16 to any -> rejeté et on arrête
d'évaluer, on passe au paquet suivant.

block out on tunX



Ne sert à rien.

pass in quick on epX all
pass out quick on epX all



on laisse tout passer sur le reseau interne.


pass in quick on lo0 all
pass out quick on lo0 all



même chose sur l'interface local (127.0.0.1)

pass out quick on tunX proto udp from any to any keep state
pass out quick on tunX proto tcp from any to any flags S keep state



On laisse passer tout ce qui sort sur tunX en protocol TCP ou UDP et on
garde l'état (stateful).
flags S veut dire que l'on regarde si le le flag SYN est mis.

pass in quick on tunX proto tcp from any to any port = 1723 flags S keep
state



on accepte les paquets TCP avec le flag SYN sur tunX de n'importe où sur
le port 1723 et on garde l'état.

pass in quick on tunX proto gre from any to any keep state
pass out quick on tunX proto gre from any to any keep state



on laisse passer tout ce qui est en protocole gre sur tunX et on garde
l'état.

--
Benoit Izac


Avatar
Benoit Izac
Bonjour,

le 20/07/2003 à 17:09, Gerald Niel a écrit
dans le message :

Ok. donc je peux commencer comme ça:

block in all
block out all

block in quick on tunX from 192.168.0.0/16 to any
block in quick on tunX from 127.0.0.0/8 to any
block in quick on tunX from 0.0.0.0/8 to any

sachant que mon réseau est en 192.168.0.*, est-ce utile que je filtre
sur 10.0.0.0/8 (rl1 qui est connecté au modem adsl a pour ip 10.0.0.1)
ainsi que 127.0.0.0/8 (ça je suppose que c'est pour ce qui sort de la
machine elle même) ?


# tun0 est ton interface sur Internet, c'est différent de rl1. Tu dois
# laisser tout passer entre rl1 et le modem :
pass in quick on rl1
pass out quick on rl1

# 10/8, 172.16/12 et 192.168/16 sont réservés pour les réseaux privés,
# ces adresses ne doivent en aucun cas arriver d'Internet :
block in quick on tun0 from 10.0.0.0/8 to any
block in quick on tun0 from 172.16.0.0/12 to any
block in quick on tun0 from 192.168.0.0/16 to any

[...]
Mmmm... première fois que j'entend parler de /gre/, qu'est-ce ?


RTFM ;) man gre(4)

--
Benoit Izac

Avatar
Gerald Niel
Le dimanche 20 juillet 2003 à 15:46 GMT, Benoit Izac écrivait sur
fr.comp.os.bsd :

[snip]

Merci.

[...]
Mmmm... première fois que j'entend parler de /gre/, qu'est-ce ?


RTFM ;) man gre(4)


LOL !

Par contre je viens de faire une tentative...

ipfstat -hio
open: Device not configured

ipf -Fa -f /etc/ipf.rules
open device: Device not configured
ioctl(SIOCIPFFL): Bad file descriptor
open device: Device not configured

J'ai loupé un truc ?

@+
--
Ben non, c'est tout de meme un sport très intéressant et original. ET
fr.rec.neige permet aussi de parler de la reproduction des pingouins,
ce qui concerne pas mal de participants de ce groupe.
-+- YP in Guide du linuxien pervers - "Oui à fr.comp.os.linux.snowboard !"


Avatar
Gerald Niel
Le dimanche 20 juillet 2003 à 15:46 GMT, Benoit Izac écrivait sur
fr.comp.os.bsd :

Mmmm... première fois que j'entend parler de /gre/, qu'est-ce ?


RTFM ;) man gre(4)


Il me semble que ce ne me soit pas utile, je me trompe ?

@+
--
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me
disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que
vous teniez vous même la tronçonneuse" (traduction libre)
NC in Guide du linuxien pervers : "Bien configurer sa tronçonneuse."



Avatar
Gerald Niel
Le dimanche 20 juillet 2003 à 18:39 GMT, Gerald Niel écrivait sur
fr.comp.os.bsd :

Question con avant le make install
compilation avec les options IPFILTER IPFILTER_LOG
IPFILTER_DEFAULT_BLOCK obligé ?


Et bien il semble que oui.

Il ne me reste plus qu'a trouver comment rediriger...
Rien trouvé à ce propos dans le ipf howto.
Est-ce avec le nat de ppp ?

En faisant:
nat port tcp 192.168.0.2:http http

(par exemple) dans ppp.conf

Et je suppose qu'il faut ensuite autoriser les paquets sur le port 80 ?

@+
--
je sais pas di il y a quelqu'un sur internet à 1h48 mais j'aimerais bien
parler!
bisous
-+- poisson des iles In: Guide du linuxien pervers - "Bavardage..." -+-

Avatar
Benoit Izac
Bonjour,

le 20/07/2003 à 20:40, Gerald Niel a écrit
dans le message :

Mmmm... première fois que j'entend parler de /gre/, qu'est-ce ?


RTFM ;) man gre(4)


Il me semble que ce ne me soit pas utile, je me trompe ?


Non.

--
Benoit Izac



Avatar
Benoit Izac
Bonjour,

le 20/07/2003 à 22:56, Gerald Niel a écrit
dans le message :

Il ne me reste plus qu'a trouver comment rediriger...
Rien trouvé à ce propos dans le ipf howto.


Voir la page de manuel de ipf(8) :
| SEE ALSO
| ipftest(1), mkfilters(1), ipf(4), ipl(4), ipf(5), ipfstat(8),
| ipmon(8), _ipnat(8)_

Bref, man ipnat(8)

Est-ce avec le nat de ppp ?

En faisant:
nat port tcp 192.168.0.2:http http

(par exemple) dans ppp.conf

Et je suppose qu'il faut ensuite autoriser les paquets sur le port
80 ?


Je n'ai jamais utilisé le NAT de ppp.

--
Benoit Izac

Avatar
Gerald Niel
Le jeudi 24 juillet 2003 à 20:59 GMT, Benoit Izac écrivait sur
fr.comp.os.bsd :

Voir la page de manuel de ipf(8) :
| SEE ALSO
| ipftest(1), mkfilters(1), ipf(4), ipl(4), ipf(5), ipfstat(8),
| ipmon(8), _ipnat(8)_

Bref, man ipnat(8)


Je vais aller regarder de ce coté.

Je n'ai jamais utilisé le NAT de ppp.


À l'occas je vais essayer pour voir. Pas un besoin vital pour le
moment. Et pour le partage de connexion, ppp s'en sort bien.

Quant-à ipf, j'en ai compris le principal pour mes besoins.

@+
--
SYBEX ORIGINAL SOFTWARE
NOUVEAU KIT LINUX REDHAT 5.2 POUR WIN 95/98
-+- Sybex in Guide du linuxien pervers - "L'incompétance en action" -+-