Puede habilitar UFW y luego emitir estos comandos:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
Esto seguramente permitirá ssh . Si le gusta la configuración, puede escribir estas dos líneas dentro del archivo /etc/rc.local , y se aplicarán en el arranque (no es necesario sudo , en este caso).
EDITAR
Básicamente, hay tres archivos de importancia, en / etc / ufw: sysctl.conf, after.rules, before.rules. Los archivos restantes se refieren a reglas para IPv6 (after6 | before6.rules), las definiciones del puerto utilizado por un puñado de aplicaciones (en el subdirectorio ./applications.d ) y el archivo para iniciar ufw , ufw.conf .
sysctl.conf reemplaza completamente /etc/sysctl.conf, por lo tanto, es solo un duplicado. Contiene información para el núcleo destinada a ser un conjunto de medidas de seguridad.
Las reglas se separan antes y después (las líneas ingresadas desde la línea de comando), porque el orden es importante: al leer una serie de reglas, el firewall aplicará la primera regla que sea relevante, ya sea ACEPTAR, DROP o lo que sea ; las reglas restantes ni siquiera se leen . Se sigue que las reglas muy específicas preceden a las reglas generales.
Las reglas anteriores son simples: permiten loopback e ICMP (= pings), descartan paquetes NO VÁLIDOS, permiten el paso de paquetes si la conversación ya ha comenzado (el equivalente de mi regla 1 anterior), permiten DHCP y el tráfico local, que es absolutamente esencial para el funcionamiento de la LAN, es decir , especialmente el descubrimiento de redes, multidifusión y difusión.
Las reglas posteriores solo evitan el registro de puertos que producen demasiado material.
Una sola regla se puede leer de la siguiente manera:
-A ufw-before-input -p udp --sport 67 --dport 68 -j ACCEPT
Esto agrega (-A) a la tabla antes de ingresar la regla que ACEPTA los paquetes de protocolo UDP que se originaron (sport = puerto de origen) desde el puerto 67 y que están destinados al puerto 68 (dport = puerto de destino). Esta tabla se lee en INPUT, por lo que se ignora cada vez que el kernel está tratando con un paquete OUTPUT o FORWARD (ambos tipos de paquetes están saliendo, pero los paquetes OUTPUT se originaron en esta máquina, mientras que los paquetes FORWARD se originaron en otro lugar y se están moviendo a su destino final).