Así que comencé a usar mi VPS (Debian 10) ((2021-09-29) (Linux 4.19.0-18-amd64 #1 SMP x86_64)), que también es mi servidor VPN (IKEV2 (strongswan) y (PPTP)) para instalar OMV y docker, porque antes ese VPS estaba casi inactivo sirviéndome solo como servidor VPN.
El problema es que mi página de administrador de OMV y los contenedores de Docker están expuestos a internet, aunque uso contraseñas muy fuertes, pero dado que es HTTP, creo que no hay mucha diferencia, así que cualquiera que ingrese a miIP pública:81 en sus navegadores podrá abrir mi OMV.
Entonces, ¿debo hacer que solo sea accesible a través de la VPN, excepto para SSH (puerto 22)?
No sé mucho sobre iptables y firewall en sistemas Linux, así que agradecería mucho una solución simple y una explicación.
No creo que esto pueda hacerse sin reglas de iptables\firewall.
La más simple sería ufw.
ADVERTENCIA: si te conectas por ssh podrías perder la conexión si no se hace correctamente. Y no lo he probado.
Es muy simple si conoces los nombres de las interfaces. Solo estableces las reglas en orden y la primera que coincida se aplica, por ejemplo:
Primero elimina todas las reglas previas
iptables -F
Primero acepta todo en la interfaz de loopback:
iptables -A INPUT -i lo -j ACCEPT
Luego permite conexiones entrantes al puerto ssh (no importa en qué interfaz):
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
Luego permite conexiones salientes desde el puerto ssh (la conexión debe ser bidireccional):
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Permite entrada y salida para la interfaz VPN (suponiendo que sea tun0)
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
Finalmente bloquea todo lo demás usando la política predeterminada:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
Cuando llega un paquete, pasa por las reglas en orden. La primera que coincide se aplica y se detiene. Si no hay coincidencias, sigue la política por defecto.
Recuerda que estos cambios no son persistentes tras reiniciar, debes guardarlos con iptables-save.