
Tengo el siguiente escenario:
solo quiero permitir el acceso a los puertos 22, 80 y 443 y todo lo demás lo permite.
Mi iptables -L
aspecto es este:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Pero no puedo obtener el efecto deseado, e incluso desde mi servidor ya no puedo hacer ping a nada (ya no puedo conectarme a Internet).
Además, miré la opción para establecer INPUT
una política DROP
y abrir manualmente los puertos deseados, pero tampoco tuvo el efecto deseado.
¿Hay alguna diferencia entre poner la DROP
política en INPUT
cadena y abrir manualmente los puertos deseados y la forma en que lo hice eliminando todo el tráfico como última regla?
Muchas gracias,
Saludos cordiales.
Respuesta1
Su configuración actual para INPUT
la cadena permite a los clientes conectarse a su servidor en tcp 22, 80 y 443 y elTCPconexiones que inicias para ser respondido. ¡Eso es todo! NoICMP(para ping), noudp(búsquedas de DNS).
Que usted ESTABLISHED, RELATED
gobierne ALLOW
todos los protocolos, en lugar de soloTCP, debería solucionar lo anterior.
Con respecto a dejar todo usando una regla versus DROP
una política:
iptables -P INPUT DROP
Es lo mismo que tener:
iptables -A INPUT -j DROP
Como tu última regla.
Además, a menos que sepa exactamente lo que está haciendo, debe permitir plenamentebucle invertidotráfico.