Solo necesita establecer la política predeterminada en DROP en las cadenas INPUT y OUTPUT.
Para permitir la entrada de SSH, necesita los siguientes comandos:
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Los dos últimos comandos permiten el tráfico de bucle invertido, ya que algunas aplicaciones lo requieren para funcionar correctamente. Puede restringir el acceso SSH desde una IP específica usando la -s source_ip
opción.
La ejecución de los comandos en el orden que se muestra arriba hará que su sesión SSH actual se bloquee. Esto se debe a que los comandos de iptables surten efecto de inmediato. Debe ejecutarlos en un script de shell para evitar perder la capacidad de conectarse a su máquina cuando los ejecuta de forma remota.
--state RELATED
en la última regla es innecesaria;--state ESTABLISHED
es suficiente. También es posible que desee permitir el tráfico de DNS, y probablemente debería permitir cualquier cosa en la interfaz de bucle invertido, o todo tipo de cosas pueden comportarse de manera muy extraña.