6 votos

Son mi iptables seguro?

Tengo esto en mi rc.local en mi nuevo servidor de Ubuntu:

iptables -F

iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --dport 9418 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 9418 -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --dport 5000 -m state --state NEW,ESTABLISHED -j ACCEPT # Heroku
iptables -A INPUT -i eth0 -p tcp --sport 5000 -m state --state ESTABLISHED -j ACCEPT # Heroku

iptables -A INPUT -p udp -s 74.207.242.5/32 --source-port 53 -d 0/0 --destination-port 1024:65535 -j ACCEPT
iptables -A INPUT -p udp -s 74.207.241.5/32 --source-port 53 -d 0/0 --destination-port 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

iptables -P INPUT DROP
iptables -P FORWARD DROP

9418 es Git del puerto. 5000 es un puerto que se utiliza para administrar Heroku aplicaciones. Y 74.207.242.5 y 74.207.241.5 son nuestros servidores de DNS.

¿Cree usted que esto es seguro? Puede ver los agujeros aquí?

Actualización: ¿por Qué es importante bloque de SALIDA? Esta máquina va a ser utilizado sólo por mí.

10voto

Brad Puntos 3206

La única gran agujero que puedo ver es IPv6. Usted necesitará ip6tables para que. Si alguno de sus servicios escuchar en IPv6 (y muchos de ellos, incluyendo ssh, escuchar en IPv6 por defecto), entonces un atacante puede utilizar para puentear totalmente todas las reglas que tienen por encima. Redes de uso de IPv6 en la preferencia de IPv4 cuando está disponible.

Asumiendo que su OUTPUT política DROP, se han restringido IPv4 bastante bien.

Saltarse el RELATED opción podría significar que usted consigue de tiempo de espera en lugar de instantánea rechaza cuando un servicio se cae y deja de escuchar como yo lo entiendo TCP RST paquetes no son ni NEW o ESTABLISHED en este contexto.


Para responder a la actualización en tu pregunta: Para cuando no sólo se utiliza por usted.

No importa lo cuidadoso que estamos todos, siempre queda la posibilidad de que nos hemos perdido algo o que momentáneamente descuidado y permitimos que alguien alguna medida de control sobre nuestra caja. La primera cosa que un atacante va a hacer una vez que tienen un dedo del pie-es descargar una escalada de privilegios en kit, un rootkit, su sistema de mando y control y lo que realmente se desea ejecutar en el cuadro. La restricción de las conexiones de salida significa que no se puede descargar esa escalada de privilegios kit de significado que están atrapados se ejecuta como el usuario de Apache o el Git de usuario, o lo que atacamos. Sin privilegios de root, no se pueden esconder y que no puede modificar el firewall. Esto no va a detener a un atacante para siempre, pero se puede dejar de él durante el tiempo suficiente para que se den cuenta de que él está allí o frustrar lo suficiente como para que él se da por vencido y se va a un lugar más fácil.

Las reglas por encima de la media que un archivo remoto inclusión de ataque sólo funcionará si el archivo remoto es alojado en SSL. Si pones un servidor proxy entre este cuadro y el internet y sólo se permiten ciertos patrones de URL, puede dejar de RFI en sus pistas, mientras que todavía permite el funcionamiento normal. Esta es la defensa en profundidad.

4voto

Khaled Puntos 21517

Además de los comentarios publicados por los otros chicos acerca de la falta de OUTPUT de la cadena y repetido ESTABLISHED reglas, puede restringir los protocolos como SSH (TCP/puerto 22) a determinadas IPs si es aplicable.

Para comprobar la configuración, usted puede tratar de NMAP para comprobar los puertos abiertos. Esto puede ser más útil en el caso de que las reglas del firewall se vuelve más complicado.

2voto

stew Puntos 5826

Debe ejecutar la secuencia de comandos de un pre-línea en /etc/network/interfaces (ver man 5 interfaces), de modo que las reglas de firewall están en su lugar ANTES de que la red está disponible y se inician los servicios. rc.el local es lo último que se ejecute, por lo que no es necesario un periodo de tiempo en que las cosas no están protegidos.

También es importante tener en cuenta que este tipo de cosa que usted está haciendo no es una especie de varita mágica. Si hay otros servicios que están mirando, pero están tratando de impedir el acceso a, no debe ser puesta en el primer lugar. Si la idea es prevenir el acceso a los servicios que usted no tiene intención de empezar, esto es lo que implica que no son de poca confianza de las personas que ya están haciendo cosas en tu máquina? En el que caso de que usted ya ha perdido, y su seguro asumir que en el punto en que han de usuarios malintencionados ejecución de código en el cuadro, que las reglas del firewall también podría ser manipulados.

1voto

bmaeser Puntos 284

yo de código abierto iptables-repetitivo en github hace algunos días. su básicamente una buena conjunto predefinido de iptable-reglas y es extensivly comentó.

tal vez el uso y la lectura puede ayudar a usted

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: