Welcome, Guest. Please Login
FUG-FR logo
 
  HomeHelpSearchLogin  
 
[Résolu] Fichier /etc/hosts.deny absent (Read 6737 times)
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
[Résolu] Fichier /etc/hosts.deny absent
23. Sep 2007 at 00:30
 
Bonjour,
j'ai remarqué que le fichier hosts.deny était absent et qu'on devait dorénavent regroupé tout dans hosts.allow
Mais le problème c'est que j'ai regroupé une liste d'adresse ip bannie que je récupère grace à un script dans le fichier /var/log/auth.log et ensuite l'inclus dans /var/log/blacklist.log et envoi tout dans /etc/hosts.deny

Mais alors comment faire pour indiquer au fichier hosts.allow de faire un deny sur le fichier /var/log/blacklist.log ?

Merci de votre aide.
Back to top
« Last Edit: 23. Sep 2007 at 20:11 by dexinou »  

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: Fichier /etc/hosts.deny absent
Reply #1 - 23. Sep 2007 at 14:26
 
dexinou wrote on 23. Sep 2007 at 00:30:
j'ai remarqué que le fichier hosts.deny était absent et qu'on devait dorénavent regroupé tout dans hosts.allow

Heu... où tu as vu ça ? Je viens de vérifier pour 6.2 et CURRENT, et hosts_access(5) dit plutôt ça:
Quote:
A  non-existing      access      control file is treated as if it were an empty file. Thus, access control can be turned off  by  providing  no access        control files.


dexinou wrote on 23. Sep 2007 at 00:30:
Mais le problème c'est que j'ai regroupé une liste d'adresse ip bannie que je récupère grace à un script dans un fichier /var/log/blacklist.log et ce script devrais envoyer tout dans /etc/hosts.deny.

Mais alors comment faire pour indiquer au fichier hosts.allow de faire un deny sur le fichier /var/log/blacklist.log ?

Je suis peut-être passé à côté, mais je crois pas qu'il existe de mécanisme d'inclusion pour sourcer un autre fichier depuis /etc/hosts.{allow,deny}.
Mais sur le principe, le script a quand même l'avantage d'intercaler quelques vérifications avant de balancer des adresses prises dans un log vers un dispositif de contrôle d'accès.
Back to top
 
 
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: Fichier /etc/hosts.deny absent
Reply #2 - 23. Sep 2007 at 19:36
 
Effectivement, je sais plus ou j'avais lu ça mais vu que mon fichier /etc/hosts.deny était absent de mon système j'en avais déduit qu'il n'existait pas dans freebsd 6.2

Je te montre le script que j'utilise sur un autre serveur basé sur Debian GNU/Linux et qui fonctionne parfaitement:

Code:
#!/bin/sh
#on commence par récupérer l'ip des vilains méchants a partir du log, et on la met dans un fichier

cat /var/log/auth.log | grep "Failed" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >/var/log/blacklist.log
cat /var/log/auth.log | grep "Illegal" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >>/var/log/blacklist.log

#pour chaque ip on compte combien il y a eu d'erreurs d'authentification
for i in `cat /var/log/blacklist.log` ; do
  nberreurs1=`cat /var/log/auth.log | grep "Failed" | grep $i | wc -l`
  nberreurs2=`cat /var/log/auth.log | grep "Illegal" | grep $i | wc -l`
  let nberreurs=$nberreurs1+$nberreurs2

#s'il y a eu plus de 3 erreurs et que l'ip n'est pas déjà blacklistée et bien on la blackliste !
if [ "$nberreurs" -ge "3" ]
    then
    if [ "`cat /etc/hosts.deny | grep $i`" = "" ]
	then
	echo "ALL: $i" >>/etc/hosts.deny
    fi
  fi
done 



je te montre enfin le fichier /etc/hosts.deny de la distribe une fois le script lancé:

Code:
#			See the manual pages hosts_access(5), hosts_options(5)
#			and /usr/doc/netbase/portmapper.txt.gz
#
# Example:    ALL: some.host.name, .some.domain
#		 ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper. See portmap(8)
# and /usr/doc/portmap/portmapper.txt.gz for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.

# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOID
ALL: 201.14.47.146
ALL: 202.54.130.157
ALL: 211.66.128.125
ALL: 216.47.142.239
ALL: 217.117.141.179
ALL: 217.20.175.55
ALL: 217.73.102.225
ALL: 218.189.207.134
ALL: 62.68.203.206
ALL: 70.85.166.250
ALL: 71.180.57.79
ALL: 74.86.131.195
ALL: 77.92.146.10 



Mais en discutant ici je pense avoir trouver l'astuce:

remplacer ça:
Code:
if [ "`cat /etc/hosts.deny | grep $i`" = "" ]
	then
	echo "ALL: $i" >>/etc/hosts.deny 



par ça:

Code:
if [ "`cat /etc/hosts.allow | grep $i`" = "" ]
	then
	echo "ALL : $i : deny" >>/etc/hosts.allow 



Et remplacer "Illegal" par "Invalid" et rajout de 'invalid"

Voici donc le script final si ça intéresse:

Code:
#!/bin/sh
#on commence par récupérer l'ip des vilains méchants a partir du log, et on met dans un fichier

cat /var/log/auth.log | grep "illegal" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >/var/log/blacklist.log
cat /var/log/auth.log | grep "invalid" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >>/var/log/blacklist.log
cat /var/log/auth.log | grep "Invalid" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >/var/log/blacklist.log

#pour chaque ip on compte combien il y a eu d'erreurs d'authentification
for i in `cat /var/log/blacklist.log` ; do
  nberreurs1=`cat /var/log/auth.log | grep "illegal" | grep $i | wc -l`
  nberreurs2=`cat /var/log/auth.log | grep "invalid" | grep $i | wc -l`
  nberreurs3=`cat /var/log/auth.log | grep "Invalid" | grep $i | wc -l`
  let nberreurs=$nberreurs1+$nberreurs2+$nberreurs3

#si il y a eu plus de 3 erreurs et que l'ip n'est pas déjà blacklistée et bien on la blackliste !
if [ "$nberreurs" -ge "3" ]
    then
    if [ "`cat /etc/hosts.allow | grep $i`" = "" ]
	then
	echo "ALL : $i : deny" >>/etc/hosts.allow
    fi
  fi
done
 



J'aimerais avoir votre avis.
Back to top
« Last Edit: 24. Sep 2007 at 14:00 by dexinou »  

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: Fichier /etc/hosts.deny absent
Reply #3 - 23. Sep 2007 at 19:54
 
Bon je viens de tester, il m'affiche bien les ip Invalid et Failed dans la console mais il ne les envois pas dans le fichier /etc/hosts.allow

[Edit] Erreur de syntaxe de ma part , ça marche.

Code:
cat /etc/hosts.allow:
ALL : 122.153.173.xxx : deny
ALL : 210.6.68.xxx : deny
ALL : 212.116.140.xxx : deny
ALL : 221.8.79.xxx : deny
ALL : 70.102.115.xxx : deny
ALL : 86.107.58.xxx : deny 



Code:
cat /var/log/blacklist.log
122.153.173.xxx
210.6.68.xxx
212.116.140.xxx
221.8.79.xxx
70.102.115.xxx
86.107.58.xxx 



J'aimerais avoir votre avis sur ça svp
Est-ce une bonne idée ? ou on pourrais faire autrement ?

Ne vaut-il pas mieux créer le fichier /etc/hosts.deny et faire l'inclusion dedans?

Merci
Back to top
« Last Edit: 23. Sep 2007 at 20:05 by dexinou »  

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
[BSDf]Lenine
Full Member
***
Offline


I Love BSD!

Posts: 180
Quelque part dans l'univers...
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #4 - 23. Sep 2007 at 20:11
 
Si c'est pour faire du blocage sur du brut force de type ssh ou autre vaut mieux mettre en place un firewall, notament PF qui te permet d'avoir des tables que tu peux charger dynamiquement via ce genre de mécanisme.
Back to top
 

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


BSD forever

Posts: 139
/home/web
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #5 - 23. Sep 2007 at 20:15
 
[BSDf]Lenine wrote on 23. Sep 2007 at 20:11:
Si c'est pour faire du blocage sur du brut force de type ssh ou autre vaut mieux mettre en place un firewall, notament PF qui te permet d'avoir des tables que tu peux charger dynamiquement via ce genre de mécanisme.


PF est activé mais comme je suis hypernewbie sur freebsd et encore plus sur PF j'ai pris ce que j'avais sous la main.
Mais si tu connais un bon tuto du comment créer des tables et les charger dynamiquemen sur PF je suis preneur et ça m'intéresse beaucoup.


Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
Dumpy
Senior Member
****
Offline



Posts: 313
GEMENOS
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #6 - 23. Sep 2007 at 22:26
 
Un bon début, une petite lecture sur PF et les tables

Bonne chance Smiley

Back to top
 

Dumpy
 
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #7 - 23. Sep 2007 at 23:55
 
Soit dit en pasant, les régles allow deny ne sont pas trop dures
Avec un peu d'imagination on peut assez facilement construire un mechanisme simple pour résoudre ce genre de problème.

Faut aussi dire que je ne comprends pas le problème de base, généralement on n'autorise pas l'acces à tout le monde sauf michel de chamigny sur oise,
sur un aspect purement sécurité c'est un raisonement faible .

La meilleure régle consistant à *TOUJOURS* connaitre ses amis.
Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #8 - 24. Sep 2007 at 10:27
 
En passant, il y a déjà BruteForceBlocker, dispo dans les ports. En Perl, ça peux servir de base pour étendre à d'autres services qu'SSH, si besoin était.
Mais je suis bien d'accord avec ros: pourquoi ne pas partir sur une politique "default deny" et whitelister seulement les quelques IPs "amies" ?
Back to top
 
 
IP Logged
 
[BSDf]Lenine
Full Member
***
Offline


I Love BSD!

Posts: 180
Quelque part dans l'univers...
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #9 - 24. Sep 2007 at 10:32
 
A confirmer par dexinou, mais visiblement, il n'a pas d'IP Static dont ca complique un peu les choses. Mais il faut regarder du coté de Pfauth à ce moment là.
Back to top
 

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


BSD forever

Posts: 139
/home/web
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #10 - 24. Sep 2007 at 14:04
 
[BSDf]Lenine wrote on 24. Sep 2007 at 10:32:
A confirmer par dexinou, mais visiblement, il n'a pas d'IP Static dont ca complique un peu les choses. Mais il faut regarder du coté de Pfauth à ce moment là.


Je n'ai pas d'ip statique mais en fait c'est un ip qui peu restée inchangée pendant des mois mais on redirige via dyndns.
C'est juste une petit PME de 5 personnes donc on a décidé de ne pas payer en plus pour une vrai ip statique.

Je vais regarder du côté de pfauth.

Je voudrais souligner que j'ai testé iptables sur linux et j'essayais de trouver un moyen d'enrichir le pare-feu dynamiquement sans succès mais apparemment PF le fait grâce à ses tables ce qui est formidable.
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
[BSDf]Lenine
Full Member
***
Offline


I Love BSD!

Posts: 180
Quelque part dans l'univers...
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #11 - 24. Sep 2007 at 14:53
 
dexinou wrote on 24. Sep 2007 at 14:04:
Je n'ai pas d'ip statique mais en fait c'est un ip qui peu restée inchangée pendant des mois mais on redirige via dyndns.
C'est juste une petit PME de 5 personnes donc on a décidé de ne pas payer en plus pour une vrai ip statique.


Je ne veux pas faire de la pub mais Free c'est bien pour un PME de 5 personnes pour peu que tu sois dans une zone dégroupée. IP Statique, bon débit avec une machine en BSD comme passerelles et t'as un accès comme les gros Wink
Back to top
 

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


BSD forever

Posts: 139
/home/web
Gender: male
Re: [Résolu] Fichier /etc/hosts.deny absent
Reply #12 - 24. Sep 2007 at 16:02
 
[BSDf]Lenine wrote on 24. Sep 2007 at 14:53:
Je ne veux pas faire de la pub mais Free c'est bien pour un PME de 5 personnes pour peu que tu sois dans une zone dégroupée. IP Statique, bon débit avec une machine en BSD comme passerelles et t'as un accès comme les gros Wink


Free serait l'idéale effectivement.
Mais pour ça il faudrait habiter en France.  Undecided
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged