[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]> > Creanlo o no, FireStarter, http://firestarter.sourceforge.net , una > pequeña aplicación para Gnome, realmente funciona. De lo mejor que he > visto de aplicaciones amigables,, y de lo mejor para usuarios novatos. > ...... Pues sí, es muy fácil de usar, eso es cierto, pero a mí la verdad no me gustó (en parte porque estoy acostumbrado a configurar manualmente los firewall, odio los wizards y todo lo que se le parezca :-) ) > > .... > > El puse a prueba el programa accediendo a > http://grc.com/x/ne.dll?rh1ck2l2 y para mi sorpresa, el examen de > escaneado de puertos fue extremadametne favorable, ya que esta página > reportó, en los resultados individuales de cada puerto, que tal vez ni > siquiera había una PC en mi IP (dinámico). Todos mis puertos se > reportaron como Stealth =) Claro, cierra todo, pero tiene sus detallitos, por ejemplo, no sirve sistemas que usan IP-masquerading. Además, en tu caso probablemente lo instalaste sin ningún servicio, eso está bien para usuarios de computadoras personales que no requieren diversos servicios como FTP, HTTP, DNS, etc... pero si la máquina de pruebas hubiera sido un servidor, los resultados hubieran sido muy distintos; generlamente, ese es el problema con todos los firewalls: que eventualmente deben de dejar pasar cierto tipo de tráfico para que los servidores puedan atender peticiones en algunos puertos (no necesitas más que una puerta abierta para estar expuesto a un ataque). En general, el firestarter es una especie de solución de firewall para computadoras personales pero nada más. > El resumen que me dió al final http://grc.com/x/ne.dll?rh1ck2l2 fue el > siguiente: If all of the tested ports were shown to have stealth status, > then for all intents and purposes your computer doesn't exist to > scanners on the Internet! > > Esto me ha agradado batante, ya que superó mi benchmark anterior con > Portsentry, quien solo bloqueo el IP pero permitió ver que había algunos > puertos abiertos. > > Conclusión: Una excelente seguridad. Si a esto le agregamos el > Portsentry (que quedaría de más), tenemos un sistema a prueba de > intrusos (o casi). > No es que sea mejor que portsentry, portsentry trabaja de una forma distinta: * Firestarter cierra puertos * PortSentry abre puertos para escuchar quién trata de entrar por ahí Dependiendo de cómo esté configurado PortSentry, si tú corres una prueba con las herramientas de la página te va a decir que todo está mal (todos los servicios abiertos) y no es así necesariamente, por ejemplo, yo corro PortSentry con -tcp y -udp (creo una instancia con cada parámetro, no utilizo el modo stealth), y verifico varios servicios que realmente no tengo instalados (FTP, HTTP, RPC, Netbios y Telnet, entre otros), además lo configuré para fortalecer el sistema automáticamente con ipchains (firestarter también utiliza ipchains para implementar reglas de acceso), con esto yo bloqueo direcciones IP que traten de accesar alguno de estos puertos, es decir, se pueden conectar la primera vez al servicio (p.e. a FTP) pero para el segundo intento ya existe una regla que bloquea cualquier tráfico desde ese sitio. De hecho, no tiene mucho sentido instalar firestarter y portsentry, a menos que abras los servicios en firestarter que vayas a vigilar (que no son muchos, y todos son servicios comúnes como SMTP y HTTP), las reglas implementadas por Firestarter para ipchains vana bloquear los puertos en los que escuche PortSentry, así que en realidad no va a escuchar nada. > Me interesa someter esto a una prueba más ruda y necesito voluntarios > que acepten tratar de hackear mi PC a fin de obtener un resultado > absoluto. Utilizo IP dinámico, así qeu tendríamos que ponernos de > acuerdo. No necesitas más que analizar las reglas que te genera la herramienta, mira, a continuación te muestro el script que generó firestarter en mi máquina (sin habilitar servicios), incluso te incluye todos los comentarios: ---- inicia script ---- #!/bin/sh IPC=/sbin/ipchains IF=ppp0 IP=`/sbin/ifconfig $IF | grep inet | cut -d : -f 2 | cut -d \ -f 1` MASK=`/sbin/ifconfig $IF | grep Mas | cut -d : -f 4` NET=$IP/$MASK #Delete user made chains. Flush and zero the chains. $IPC -X $IPC -F $IPC -Z #Allow all traffic on the loopback interface $IPC -A input -i lo -s 0/0 -d 0/0 -j ACCEPT $IPC -A output -i lo -s 0/0 -d 0/0 -j ACCEPT #Allow connections with the ack bit set $IPC -A input ! -y -p tcp -s 0/0 -d $NET -j ACCEPT #Turn on source address verification in kernel if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] then for f in /proc/sys/net/ipv4/conf/*/rp_filter do echo 2 > $f done fi #Turn on syn cookies protection in kernel if [ -e /proc/sys/net/ipv4/tcp_syncookies ] then echo 1 > /proc/sys/net/ipv4/tcp_syncookies fi #Turn on dynamic TCP/IP address hacking if [ -e /proc/sys/net/ipv4/ip_dynaddr ] then echo 1 > /proc/sys/net/ipv4/ip_dynaddr fi #Block nonroutable IPs $IPC -A input -j DENY -s 127.0.0.0/8 -d $NET -i $IF $IPC -A input -j DENY -s 172.16.0.0/12 -d $NET -i $IF $IPC -A input -j DENY -s 192.168.0.0/16 -d $NET -i $IF #Block Back Orifice $IPC -A input -p tcp -s 0/0 -d $NET 31337 -j DENY -l $IPC -A input -p udp -s 0/0 -d $NET 31337 -j DENY -l #Block NetBus $IPC -A input -p tcp -s 0/0 -d $NET 12345:12346 -j DENY -l $IPC -A input -p udp -s 0/0 -d $NET 12345:12346 -j DENY -l #Block Trin00 $IPC -A input -p tcp -s 0/0 -d $NET 1524 -j DENY -l $IPC -A input -p tcp -s 0/0 -d $NET 27665 -j DENY -l $IPC -A input -p udp -s 0/0 -d $NET 27444 -j DENY -l $IPC -A input -p udp -s 0/0 -d $NET 31335 -j DENY -l #Block Multicast $IPC -A input -s 224.0.0.0/8 -d 0/0 -j DENY $IPC -A input -s 0/0 -d 224.0.0.0/8 -j DENY #Allow ICMP $IPC -A input -p icmp -s 0/0 -d $NET -j ACCEPT $IPC -A output -p icmp -s $NET -d 0/0 -j ACCEPT #Open ports for established connections $IPC -A input -p tcp -s 0/0 -d $NET 1023:65535 -j ACCEPT $IPC -A input -p udp -s 0/0 -d $NET 1023:65535 -j ACCEPT #Deny everything not let through earlier $IPC -A output -j ACCEPT $IPC -A input -j DENY -l --- termina script --- Como habrás notado, las reglas, en general hacen lo siguiente: 1) acepta cualquier tráfico de salida 2) rechaza cualquier tráfico de entrada que no esté explícitamente permitido 3) permite cualquier tráfico en icmp, tcp y udp hacia cualquier puerto arriba de 1023 4) bloquea explícitamente algunos puertos de caballos de Troya conocidos (p.e. NetBus y BackOriffice) 5) bloquea direcciones no ruteables Ahora, solo para que veas cómo la mercadotecnia puede hacer magia (en la página te muestran a Firestarter como la 8va maravilla, yo sé que no lo venden... pero ahorita demostramos que no es la 8va maravilla). Fíjate en el punto 3) te dice que permite cualquier tráfico arriba del puerto 1023, esto es porque en general los servicios estándares se encuentran en los puertos 1 al 1023 (p.e. 7 = echo, 25 = SMTP 110 = POP3, 80 = HTTP, 443 = HTTPS, etcétera). Eso está bien, sin embargo, una aplicación con tanto enfoque hacia Linux debería considerar que: Existen puertos como el 3306 (default para mysql) y el 5432 (default para Postgres), además, el puerto 6000 se utiliza para el primer display en X (aunque por default viene configurado para no aceptar conexiones remotas). Si tu instalas una aplicación que corra en estos puertos (Postgres es común) ¿te va a proteger el Firewall? La herramienta de http://grc.com/x/ne.dll?rh1ck2l2 está enfocada a analizar puertos de Windows, no de Unix (menos de aplicaciones comunes en Linux); no te revisan estos servicios (de hecho, quién en su sano juicio querría netbios en un Linux - puerto 139), por supuesto que todo te lo va a marcar de maravilla. Peor aún, te voy a poner un ejemplo más concreto... ¿quién defiende a tus programas cliente?... cuando instalas por ejemplo un clon de ICQ, o los mismos web browsers, éstos van a tomar un puerto arriba del 1023 para la conexión de salida (y de hecho se van incrementando para cada conexión). Alguien te corre un escaneo de puertos del 1023 al 65535 y te encuentra por ahí un clon de ICQ que responde y te inundan de mensajes (un clásico ataque de negación de servicio) y pues aquí ni firestarter ni portsentry te salvan. Realmente aquí hay un dilema muy grande sobre todo con los famosos firewalls personales, que se supone que se instalan en computadoras personales para usarios que, en general, solo utilizan aplicaciones cliente y el hecho es que, para las actividades normales de una máquina de estas características, la mayoría de estos firewalls te sirven para 2 cosas. En realidad, lo que necesitas no es un firewall sino un detector de intrusos y un detector de ataques de red (la inundación de paquetes tiene un patrón definido, la mayoría de los firewalls comerciales pueden detectar inundación de paquetes por el número recibido en cierto tiempo, pero para otro tipo de ataques en donde se aprovecha una vulnerabilidad con el envío de un solo paquete, los firewalls no ayudan mucho). Moralejas: No todo lo que brilla es oro Si quieres algo bien hecho, hazlo tu mismo Pero bueno, en resumen, Firestarter si es fácil de usar, te activa algunas monerías de seguridad (que para mi gusto deberían de estar ya activadas desde la distribución) pero realmente no te van a garantizar la seguridad al estar conectado en Internet. En fin, de algo sirve, es peor no contar con nada... tal vez sería bueno que se agregue a la distribución de PPP realmente sí es fácil de usar, sobre todo para los recién iniciados en Linux (no es trivial manejar ipchains, no porque sea difícil la sintaxis, sino por el conocimiento de redes y seguridad que se debe de tener para poder generar las reglas adecuadas) En fin, espero que sirva (si no, cuando menos me sirve para desquitarme por todo el tiempo que no he podido participar en la lista ...) Saludos Omar Herrera --------------------------------- Consultoría en Seguridad Informática INSYS S.A. de C.V. (www.insys-corp.com.mx) omarh en insys-corp com mx --------------------------------------------------------------------- Lista de soporte de LinuxPPP Reglas de la lista en http://pepe.net.mx/reglas.html