Estoy usando IPTables en un servidor API para bloquear todo el tráfico entrante, excepto SSH, HTTP y HTTPS. Necesito tener acceso completo a la interfaz de bucle invertido para ejecutar, beanstalkd
entre otras cosas, y necesito acceso saliente http, https y SSH para llamadas API a otros servicios, así como extraer de github.
Creé las reglas de la siguiente manera:
iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport http -j ACCEPT
iptables -A INPUT -p tcp --dport https -j ACCEPT
iptables -A INPUT -j DROP
iptables -L
salidas:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
A pesar de esto, git pull
no puedo encontrar el servidor, hacer ping a google no funciona y mailgun no enviará. La ejecución iptables -F
corrige estos problemas, y no puedo permitirme tener un firewall que simplemente evite que mi aplicación funcione por completo ...
¿Cómo puedo lograr lo que intento hacer arriba?
-S
, no-L
, ya que el formato "amigable" omite mucha información.