El Jueves 27/10/2016, Fernando Romero escribió:
Hola como estan, estoy empezando con iptables y quiero crear una regla que bloquee todo las conexiones que vengan de afuera menos alguna ip que si quiero que se conecten sin restrincciones y permitir conexion al puerto ssh, el puerto ssh lo tengo en el 42300
Estuve buscando y cree algo asi
Aca rechazo todo el trafico de entrada a menos que hay una regla que permita
iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT
Aca creo las reglas para permitir
iptables -A INPUT -s 201.216.230.56 -j ACCEPT (donde x.x.x.x es la ip a la que le quiero permitir todo)
iptables -A INPUT -p tcp -m state --state NEW --dport 42300 -j ACCEPT (aca permito el acceso a ssh a todos, el puerto 42300 es el que tengo definido en el sshd_config)
Esta configuracion esta bien para lo que quiero hacer arriba?
Gracias y saludos
Las reglas REJECT (o DROP) para bloquear debes ponerlas a lo ultimo, ej:
iptables -A INPUT -s 201.216.230.56 -j ACCEPT iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT
Esto es asi ya que en general en iptables aplica la primera regla que coincida, si pones primero la de bloqueo nunca se evaluaran las siguientes.
Una alternativa muy utilizada es, en lugar de bloquear todo al final, configurar la politica por defecto con REJECT/DROP y luego si las ACCEPT, ej:
iptables -P INPUT -j REJECT iptables -P FORWARD -j REJECT iptables -A INPUT -s 201.216.230.56 -j ACCEPT
Otras reglas basicas a considerar son:
# Permitir conexiones locales (interfaz loopback, 127.0.0.1) iptables -A INPUT -i lo -j ACCEPT
# Permitir conexiones relacionadas (la "vuelta" de las que realizamos) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Te dejo unos sitios con ejemplos por si interesan:
https://wiki.centos.org/HowTos/Network/IPTables http://www.cyberciti.biz/tips/linux-iptables-examples.html https://help.ubuntu.com/community/IptablesHowTo
Saludos,