El lun, 24-03-2008 a las 12:29 -0300, ciracusa escribió: > Buenas nuevamente Lista, hoy quiero dedicarle un tiempo a mejorar la > seguridad de mis hosts y estoy preguntón!!! > > :) > > Les consulto, dado un host en el cual implemente tcpwrappers y denyhosts > tengo algo como esto (solo son pruebas y esto no pretende ser la > configuración de un hosts de la NASA): > > /etc/hosts.allow > ALL: 127.0.0.1 > sshd: 192.168.1.100 > > /etc/hosts.deny > ALL:ALL EXCEPT localhost:DENY > > En el /etc/denyhosts.conf he determinado -entre otras cosas- que cuando > un usuario conocido se autentique erroneamente mas de 3 veces este sea > baneado. > > Ahora, el tema es este: > > Si desde la pc 192.168.1.100 (que tengo permitida en /etc/hosts.allow) > simulo intentos fallidos, esta ip es agregada en /etc/hosts.deny, pero > como figura en hosts.allow sigue permitiéndole loguearse. > > Es correcto esto?
Si > Las pruebas las estoy haciendo desde dentro de mi red para evitar > ataques y/o pruebas de algunos hosts internos (dudosos). > > Será que en hosts.allow debo permitir rangos de ips y no ips concretas y > entonces al agregarse en hosts.deny -mediante acción de denyhosts- les > evitará conectarse? No Si permites un rango en el allow, y la ip que mete denyhosts en el .deny, está dentro de ese rango permitido, siempre podrá entrar. El orden en el que se leen esos fichero es: 1) Si un host, dirección o subred aparece en el .allow, gana el acceso 2) Si _no_ aparece en el allow y aparece en el deny, deniega acceso 3) Si no aparece en ninguno de los dos, gana el acceso Es decir, si en el allow pones 192.168.1.100, siempre tendrá acceso. Si pones 192.168.1.0/255.255.255.0 también tendrá siempre acceso, aunque aparezca en el deny en cualquiera de los dos casos, porque la definición de esa red, incluye a la 192168.1.100, por lo tanto "aparece" en el allow. Se supone que si utilizas esta técnica, los hosts/subredes que pongas en el .allow son de confianza y _siempre_ pueden acceder. La filosofía de denyhosts, es circunstancial, no es estática como una definición manual. Si quieres implementar un filtrado más fino, que permita a toda una subred acceder o a una máquina, pero si falla tres veces le deniege la conexión se suele utilizar iptables: iptables -I INPUT -p tcp --dport 22 -i eth0 \ -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -i eth0 \ -m state --state NEW -m recent --update --seconds 60 --hitcount 3 \ -j DROP Con eso le deniegas el ssh a quien haga más de 3 intentos de conexión en el plazo de un minuto. Es decir... si te equivocas dos veces con la password, mejor que esperes 59 segundos... jeje Si no, siempre puedes utilizar fail2ban, que es más o menos lo mismo que denyhosts pero utiliza iptables en vez de tcpwrappers: http://www.fail2ban.org Ambos, tanto denyhosts como fail2ban, son altamente configurables y conviene repasar a fondo su fichero de configuración. Saludos -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]