Si estamos utilizando un servidor externo y utilizamos el comando SSH para acceder al sistema, entonces deberemos tener presente la seguridad del servicio a través del puerto 22. A continuación se comentarán algunas recomendaciones de cómo configurar el firewall de Linux para aumentar la seguridad de los accesos por SSH.
Permitir todo SSH entrante
Permite a todas las conexiones SSH entrantes acceder al sistema:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
El segundo comando, permite el tráfico saliente de las conexiones SSH establecidas, solo es necesario si la política de OUTPUT no está configurada como ACCEPT.
Permitir SSH entrante desde una dirección IP específica o subred
Para permitir conexiones SSH entrantes desde una dirección IP (tenemos una IP dedicada) o subred específica, debemos especificar la fuente. Por ejemplo, si deseamos permitir toda la subred 15.14.15.0/24:
iptables -A INPUT -p tcp -s 15.14.15.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
El segundo comando, permite el tráfico saliente de las conexiones SSH establecidas, solo es necesario si la política de OUTPUT no está configurada como ACCEPT.
Permitir SSH saliente
Si la política de OUTPUT del firewall no está configurada como ACCEPT, y se desea permitir conexiones SSH salientes (ee servidor inicia una conexión SSH a otro servidor):
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Permitir Rsync entrante desde una dirección IP específica o subred
Rsync, se ejecuta en el puerto 873, se puede utilizar para transferir archivos de un ordenador a otro.
Para permitir las conexiones rsync entrantes desde una dirección IP o subred específica, es necesario indicar la dirección IP de origen y el puerto de destino. Por ejemplo, si se desea permitir que toda la subred 15.14.15.0/24 pueda sincronizar el servidor, ejecute estos comandos:
iptables -A INPUT -p tcp -s 15.14.15.0/24 --dport 873 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 873 -m conntrack --ctstate ESTABLISHED -j ACCEPT
El segundo comando, permite el tráfico saliente de las conexiones SSH establecidas, solo es necesario si la política de OUTPUT no está configurada como ACCEPT.