Welcome, Guest. Please Login
FUG-FR logo
 
  HomeHelpSearchLogin  
 
firewalling sous freebsd (Read 4804 times)
mystifs
YaBB Newbies
*
Offline


I Love BSD!

Posts: 30
firewalling sous freebsd
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.
Back to top
 
mystifs  
IP Logged
 
jc1
God Member
*****
Offline


BSD For Ever !!

Posts: 845
Un coin en France
Gender: male
Re: firewalling sous freebsd
Reply #1 - 23. Nov 2007 at 22:38
 
Back to top
 

"Ils ignoraient que c'était impossible, alors ils l'ont fait" Marc Twain
"Do or do not. There is no try" Yoda Senseï
WWW WWW jc1  
IP Logged
 
mystifs
YaBB Newbies
*
Offline


I Love BSD!

Posts: 30
Re: firewalling sous freebsd
Reply #2 - 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 ######################
 



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.
Back to top
 
mystifs  
IP Logged
 
ph11
YaBB Newbies
*
Offline


Go Fug Yourself

Posts: 46
Brussels
Gender: male
Re: firewalling sous freebsd
Reply #3 - 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 ######################
 



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
Back to top
 
WWW WWW  
IP Logged
 
jc1
God Member
*****
Offline


BSD For Ever !!

Posts: 845
Un coin en France
Gender: male
Re: firewalling sous freebsd
Reply #4 - 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 ?
Back to top
 

"Ils ignoraient que c'était impossible, alors ils l'ont fait" Marc Twain
"Do or do not. There is no try" Yoda Senseï
WWW WWW jc1  
IP Logged
 
patrick
Senior Member
****
Offline


Les pixels au peuple

Posts: 398
Re: firewalling sous freebsd
Reply #5 - 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 Smiley ç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é...
Back to top
 
 
IP Logged
 
jc1
God Member
*****
Offline


BSD For Ever !!

Posts: 845
Un coin en France
Gender: male
Re: firewalling sous freebsd
Reply #6 - 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.
Back to top
 

"Ils ignoraient que c'était impossible, alors ils l'ont fait" Marc Twain
"Do or do not. There is no try" Yoda Senseï
WWW WWW jc1  
IP Logged
 
ph11
YaBB Newbies
*
Offline


Go Fug Yourself

Posts: 46
Brussels
Gender: male
Re: firewalling sous freebsd
Reply #7 - 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  


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.
Back to top
 
WWW WWW  
IP Logged
 
jc1
God Member
*****
Offline


BSD For Ever !!

Posts: 845
Un coin en France
Gender: male
Re: firewalling sous freebsd
Reply #8 - 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...
Back to top
« Last Edit: 24. Dec 2007 at 12:33 by jc1 »  

"Ils ignoraient que c'était impossible, alors ils l'ont fait" Marc Twain
"Do or do not. There is no try" Yoda Senseï
WWW WWW jc1  
IP Logged
 
[BSDf]Lenine
Full Member
***
Offline


I Love BSD!

Posts: 180
Quelque part dans l'univers...
Gender: male
Re: firewalling sous freebsd
Reply #9 - 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  


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
 


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..
Back to top
 

Moi j'ai plein d'amis: les ports, man et google !
 
IP Logged
 
[BSDf]Lenine
Full Member
***
Offline


I Love BSD!

Posts: 180
Quelque part dans l'univers...
Gender: male
Re: firewalling sous freebsd
Reply #10 - 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 ?
Back to top
 

Moi j'ai plein d'amis: les ports, man et google !
 
IP Logged