Forums FUG-FR
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl
FreeBSD >> Réseau et sécurité >> firewalling sous freebsd
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl?num=1195842623

Message started by mystifs on 23. Nov 2007 at 19:30

Title: firewalling sous freebsd
Post by mystifs on 23. Nov 2007 at 19:30
Salut,
j'essai de configure un firewall pour mon desktop qui est derriere une livebox pour un securite plus efficace.

ma question :
Quel sont les regle a mettre ne place pour avoir une utilisation normal d'internet.
J'utilise pf, j'ai lu l'exemple donner sur le site d'openbsd : http://openbsd.org/faq/pf/example1.html
mais je trouve que les regles sont drolement simple par rapport a ce que j'ai pu trouver sur ipf.
http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1

Donc je voudrai savoir quelle sont les regles essentiel a mettre en place pour avoir quand meme une bonne securite.

J'ai juste besoin du http, https, pop et pops, smtp et smpts, et le ftp pour les ports (mais si il est possible de passer par http ce serai pas plus mal)
et aussi irc et jabber.
eventuellement bittorent (mais il parait que niveau secu c'est pas le top)

j'aimerai faire quelque chose d'efficace, une base pour apres l'ameliorer.

Title: Re: firewalling sous freebsd
Post by jc1 on 23. Nov 2007 at 22:38
Bonjour,

Ipf est plus compliqué au niveau de l'écriture des règles du firewall.

Voici 2 liens qui donnent des explications :
http://www.openbsd.org/faq/pf/fr/filter.html
http://www.openbsd-france.org/documentations/OpenBSD-securiser-serveur-avec-pf.html

Tu as aussi une interface graphique fwbuilder.
http://www.supinfo-projects.com/fr/2005/fwbuilder_fr/introduction/
http://perso.univ-rennes1.fr/pierre-antoine.angelini/GPL/FWBUILDER/fwbuilder-faq.html

Title: Re: firewalling sous freebsd
Post by mystifs on 23. Nov 2007 at 22:53
Voila ce que j'ai reussi a faire en me basant sur ce que j'avais deja fait pour ipf


[code]
########################################################
# Regles de filtrage de Packet Filter                  #
#______________________________________________________#
# par major_kusangi le 20/11/07                        #
########################################################

########################################################
# Definition des macros                                #
########################################################

lan="vr0"

########################################################
# Definition des options                               #
########################################################

set block-policy return
set logibterface $lan

# Autorise le trafic sur lo
set skip on lo

########################################################
# Option scrub                                         #
########################################################

scrub in

########################################################
#                                                      #
#                Regles de filtrage                    #
#                                                      #
########################################################

block in all
block out all

# Autorise le dns
pass out quick on $lan inet proto tcp from $lan to any \
    port 53 flag S/SA keep state
pass out quick on $lan inet proto udp from $lan to any \
    port 53 keep state

# Autorise le http et le https
pass out quick on $lan inet proto tcp from $lan to any \
    port http flag S/SA keep state

pass out quick on $lan inet proto tcp from $lan to any \
    port https flag S/SA keep state

# Autorise le pop et le smtp
pass out quick on $lan inet proto tcp from $lan to any \
    port pop flag S/SA keep state

pass out quick on $lan inet proto tcp from $lan to any \
    port smtp flag S/SA keep state

# Autorise le pops et le smtps pour gmail
pass out quick on $lan inet proto tcp from $lan to any \
    port 995 flag S/SA keep state

pass out quick on $lan inet proto tcp from $lan to any \
    port 465 falg S/SA keep state

################## End of pf.conf ######################
[/code]

voila,
il y a surement des omitions et autre oublis
je suis loin d'etre un expert en securité
je n'ai pas mis les regle pour le ftp

dit moi ce qu'il manque

bye
mystifs.

PS: je comprend pas ce probleme de typo avec les # pourtant dans mon emacs tout est correct.

Title: Re: firewalling sous freebsd
Post by ph11 on 23. Dec 2007 at 01:32

mystifs wrote on 23. Nov 2007 at 22:53:
Voila ce que j'ai reussi a faire en me basant sur ce que j'avais deja fait pour ipf


[code]
########################################################
# Regles de filtrage de Packet Filter                  #
#______________________________________________________#
# par major_kusangi le 20/11/07                        #
########################################################

########################################################
# Definition des macros                                #
########################################################

lan="vr0"

########################################################
# Definition des options                               #
########################################################

set block-policy return
set logibterface $lan

# Autorise le trafic sur lo
set skip on lo

########################################################
# Option scrub                                         #
########################################################

scrub in

########################################################
#                                                      #
#                Regles de filtrage                    #
#                                                      #
########################################################

block in all
block out all

# Autorise le dns
pass out quick on $lan inet proto tcp from $lan to any \
    port 53 flag S/SA keep state
pass out quick on $lan inet proto udp from $lan to any \
    port 53 keep state

# Autorise le http et le https
pass out quick on $lan inet proto tcp from $lan to any \
    port http flag S/SA keep state

pass out quick on $lan inet proto tcp from $lan to any \
    port https flag S/SA keep state

# Autorise le pop et le smtp
pass out quick on $lan inet proto tcp from $lan to any \
    port pop flag S/SA keep state

pass out quick on $lan inet proto tcp from $lan to any \
    port smtp flag S/SA keep state

# Autorise le pops et le smtps pour gmail
pass out quick on $lan inet proto tcp from $lan to any \
    port 995 flag S/SA keep state

pass out quick on $lan inet proto tcp from $lan to any \
    port 465 falg S/SA keep state

################## End of pf.conf ######################
[/code]

voila,
il y a surement des omitions et autre oublis
je suis loin d'etre un expert en securité
je n'ai pas mis les regle pour le ftp

dit moi ce qu'il manque

bye
mystifs.

PS: je comprend pas ce probleme de typo avec les # pourtant dans mon emacs tout est correct.

Je n'ai pas encore bien compris pf, mais en te lisant, tu as bloqué les entrées et les sorties et authorisé le port 53, http, https, pop3 et smtp à sortir (pass out) Et en plus, tu leur dit après d'aller de ta lan vers ton système, ce qui est redondant et un non-sens.
La variable from [source] to [destination] sert à filtrer les adresses et les protocoles. "from any to any" aurait été plus pertinent.

Tu n'es pas obligé de bloquer les sorties de ton pc. C'est même inutile tant que tu n'as pas configuré en serveur ou tant qu'il n'y a pas trop de backdoor.

Et puis tu peux lister tout tes ports en un macro: du genre
mes_ports = "{ 53, http, https, pop3, etc, etc }"

Et utiliser ensuite $mes_ports dans tes règles, ce qui permet de diminuer le volume de texte.

Je te répète, je ne suis pas un expert de pf, mais je pense que ceci aurait suffit.

#macros

lan="vr0"
mes_ports = "{ 53, http, https, pop3, autres_ports_à_ouvrir }"

#options

set block-policy return
set logibterface $lan
scrub in
set skip on lo

#tables

block in all
pass in on $lan proto tcp from any to any port $mes_ports

Title: Re: firewalling sous freebsd
Post by jc1 on 23. Dec 2007 at 02:01

ph11 wrote on 23. Dec 2007 at 01:32:
Tu n'es pas obligé de bloquer les sorties de ton pc. C'est même inutile tant que tu n'as pas configuré en serveur ou tant qu'il n'y a pas trop de backdoor.  


Pas trop d'accord avec toi, car comment tu vas le savoir s'il y a une backdoor sur ton système ?

Je viens d'XP et là, je ferme en in et en out, avec en plus un fw applicatif, donc j'ouvre un port sur un protocole pour une application dans un sens donné.

La fermeture en mode out est plus je dirai éthique que technique. Tu évites la propagation et la contamination possible d'autres machines après corruption de la tienne. Tu préserves les autres.
Enfin, c'est mon point de vue.


Il y a des fw applicatifs sous BSD ?  Je n'ai pas trouvé.
Autre chose, pas de portage en vues de pf sous linux  des fois ?

Title: Re: firewalling sous freebsd
Post by patrick on 23. Dec 2007 at 11:11

jc1 wrote on 23. Dec 2007 at 02:01:
Pas trop d'accord avec toi, car comment tu vas le savoir s'il y a une backdoor sur ton système ?

Je viens d'XP et là, je ferme en in et en out, avec en plus un fw applicatif, donc j'ouvre un port sur un protocole pour une application dans un sens donné.


Ben on n'est pas sous XP hein :-) ça ne s'installe pas comme ça une backdoor.

Quote:
La fermeture en mode out est plus je dirai éthique que technique. Tu évites la propagation et la contamination possible d'autres machines après corruption de la tienne. Tu préserves les autres.
Enfin, c'est mon point de vue.

Il n'y a pas de pare feu applicatif, dans ces conditions c'est difficile, si j'avais à faire une backdoor je ferais un truc discret qu'utilise le port 80 ou le port 25. Tu peux difficilement les bloquer en sortie...


Quote:
Il y a des fw applicatifs sous BSD ?  Je n'ai pas trouvé.


Non, je crois qu'on peut faire des trucs avec MAC (mandatory access control) pour contrôler un utilisateur / groupe.
J'ai jamais essayé...

Title: Re: firewalling sous freebsd
Post by jc1 on 23. Dec 2007 at 16:28
Bonjour,


Quote:
Ben on n'est pas sous XP hein Smiley ça ne s'installe pas comme ça une backdoor.

Même sous XP, s'il est bien configuré et avec quelques softs ...


Quote:
Il n'y a pas de pare feu applicatif, dans ces conditions c'est difficile, si j'avais à faire une backdoor je ferais un truc discret qu'utilise le port 80 ou le port 25. Tu peux difficilement les bloquer en sortie...

Oui, (pour l'instant) je trouve cela bizarre et c'est un point faible pour moi. Mais, attention, comme tu le dit pour le backdoor ...


Quote:
Non, je crois qu'on peut faire des trucs avec MAC (mandatory access control) pour contrôler un utilisateur / groupe.
J'ai jamais essayé...

Ok, merci, je vais regarder ce MAC.

Title: Re: firewalling sous freebsd
Post by ph11 on 23. Dec 2007 at 16:57
Je n'ai pas encore bien saisi la logique de pf.
Par exemple, j'avais mis dans mon pf.conf ceci:

Code (]ext_if="rl0"
ports={ 21, 22, 80, 110, 443, 1863 }

scrub in all
set skip on lo0

block in log all
pass in quick on $ext_if inet proto tcp from any to any port $ports [/code):

Et pas moyen de me connecter. Alors, j'ai appliqué les exemples de pf.conf:
[code]block in log all
pass  in  on $ext_if proto tcp from any to $ext_if port 22 keep state
pass  out on $ext_if proto { tcp, udp } all keep state
pass in on $ext_if proto { tcp, udp } from any to any port 80 keep state

Et là ça fonctionnait. Et en commentant les lignes "pass in...port 22..." et "pass in...port 80...", cela fonctionne toujours.

Étant donné que je n'ai pas mis de "block out all" comment ça se fait que la ligne commençant par "pass out" est nécessaire pour pouvoir aller sur le net? Je croyais que seules les lignes en "pass in" étaient suffisantes pour déclarer les exceptions dans pf, et aller sur le net.

Title: Re: firewalling sous freebsd
Post by jc1 on 24. Dec 2007 at 12:19
Bonjour,

Sans le port 53 (DNS) cela fonctionne ? Peut être aussi le DHCP (67-68) si tu utilises.
Le 25 pour l'email (smtp) (tu as mis le 110 pour le pop3).

Il y a firewall builder qui peut d'aider un peu :
http://perso.univ-rennes1.fr/pierre-antoine.angelini/GPL/FWBUILDER/fwbuilder-faq.html

Title: Re: firewalling sous freebsd
Post by Lenine on 02. Jan 2008 at 10:47

ph11 wrote on 23. Dec 2007 at 16:57:
Je n'ai pas encore bien saisi la logique de pf.
Par exemple, j'avais mis dans mon pf.conf ceci:

Code (]ext_if="rl0"
ports={ 21, 22, 80, 110, 443, 1863 }

scrub in all
set skip on lo0

block in log all
pass in quick on $ext_if inet proto tcp from any to any port $ports [/code):

Et pas moyen de me connecter. Alors, j'ai appliqué les exemples de pf.conf:
[code]block in log all
pass  in  on $ext_if proto tcp from any to $ext_if port 22 keep state
pass  out on $ext_if proto { tcp, udp } all keep state
pass in on $ext_if proto { tcp, udp } from any to any port 80 keep state

Et là ça fonctionnait. Et en commentant les lignes "pass in...port 22..." et "pass in...port 80...", cela fonctionne toujours.

Étant donné que je n'ai pas mis de "block out all" comment ça se fait que la ligne commençant par "pass out" est nécessaire pour pouvoir aller sur le net? Je croyais que seules les lignes en "pass in" étaient suffisantes pour déclarer les exceptions dans pf, et aller sur le net.


Il faut bien compendre qui se connect à quoi pour mettre en place les régles de firewaling.

La différence entre tes deux config c'est le "keep state", explication :
tu veux te connecter à un site web :
Ta machine,port 2045 (par exemple) -> fug-fr.org port 80
Cela veut dire que tu doit autoriser les packets a "sortir" vers le port 80 et les autoriser a entré sur le port de départ (d'ou l'interet du keep state) cela donne une regle du genre :

Code (]
block in log all
pass out on $ext_if proto tcp from any to any port 80 keep state
[/code):


Si tu ne mets pas le "keep state"  ta machine laisse sortir le packet mais n'autorise pas la réponse (à cause du block in log). (Ce qui est un peu dommage)

Après ta première config, est une config serveur (c'est toi le serveur Web etc...) et si j'ai bien compris c'est plutot le contraire.
En terme de sécurité, il vaut mieux tout bloquer et n'autorisé que ce dont tu as besoins que le contraire, c'est plus facile à controler. Donc je verrai bien une config dans ce genre :
[code]

ext_if="rl0"
ports={ 21, 22,25, 80, 110, 443,1863}

scrub in all
set skip on lo0

block log all # block tout dans tous les sens
pass out quick on $ext_if proto tcp from any to any port $ports keep state
pass out quick on $ext_if proto udp from any to any port 53 keep state #pour la resolution de nom


Après, je pense qu'il faut ajouter des pass in pour les ports concernant bittorrent.. Et verifier le fonctionnemenbt de ftp qui est toujours un bor..

Title: Re: firewalling sous freebsd
Post by Lenine on 02. Jan 2008 at 17:14
Ah oui j'avais oublier MAC, c'est un système de controle d'accès (type ACL etc...) mais qui n'a pas la même philosophie. On définis des étiquettes sur des données (label en anglais) puis les utilisateurs sont autorisé (ou non) sur les différents label.
Ce n'est pas un pare-feu "applicatif".

Enfin ceci dit, qu'est ce que vous appeler pare-feu applicatif ?? Des proxy ?

Forums FUG-FR » Powered by YaBB 2.5.2!
YaBB Forum Software © 2000-2026. All Rights Reserved.