Introducción
Iptables es un programa de utilidad de espacio de usuario que permite que un administrador del sistema configure las tablas proporcionadas por el firewall del kernel de Linux y las cadenas y reglas que almacena. Iptables casi siempre viene preinstalado en cualquier distribución de Linux. Tener un firewall configurado correctamente es muy importante para la seguridad general de su servidor.
En este artículo, le compartiremos los pasos para abrir los puertos en el firewall de Iptables en la distribución de Ubuntu y Centos
Requisito previo
Acceso Sudo al servidor Ubuntu o Centos con Iptable instalado.
Paso 1:Enumere las reglas actuales de Iptables
Conéctese a su servidor con acceso Sudo y para enumerar las reglas actuales que están configuradas para iptables, use el siguiente comando
sudo iptables -L
Podemos ver el resultado a continuación, que mostrará todas las reglas que están configuradas actualmente
root@e2e:~# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:1167 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:zabbix-agent Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination root@e2e:~#
Paso 2:Copia de seguridad de las IPtables
Antes de continuar con la adición de reglas en Iptable, debemos hacer una copia de seguridad de las reglas de Iptable. En caso de que haya algún problema con la configuración de Iptables, podemos restaurar las reglas desde la copia de seguridad
Utilice los siguientes comandos para guardar una regla de Iptable
iptables-save > IPtablesbackup.txt
Paso 2:Agregar/Eliminar una regla de Iptable
Una vez que conocemos las reglas que están configuradas actualmente, podemos abrir un puerto en IPtables agregando una regla usando el siguiente comando.
sudo iptables -A INPUT -p tcp --dport xxxx -j ACCEPT
Nota:Reemplace xxxx con el número de puerto requerido que desea abrir
Por ejemplo, para abrir un puerto Mysql 3306 ,Necesitamos ejecutar debajo del comando.
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Básicamente, esto le dice a Iptable que acepte la conexión a Mysql públicamente.
Puede ver lo mismo con iptables -L como se menciona en el paso 1
root@:~# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:1167 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:zabbix-agent ACCEPT tcp -- anywhere anywhere tcp dpt:mysql Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination root@:~#
Si desea eliminar la regla que se agregó recientemente, puede usar el siguiente comando
sudo iptables -D INPUT -p tcp --dport xxxx -j ACCEPT
Si no desea abrir el puerto públicamente, puede abrir el puerto para una sola IP.
Use el siguiente comando para abrir el puerto solo para una sola IP
sudo iptables -A INPUT -p tcp -s your_server_ip --dport xxxx -j ACCEPT
Nota:Por favor, reemplace your_server_ip por la IP requerida en el comando anterior y reemplace xxxx con el puerto requerido
Paso 3:Guardar la regla de Iptable
Una vez que hayamos agregado las reglas, debemos guardar las reglas y hacerlas permanentes. Si está usando Ubuntu, puede usar iptables-persistent y para Centos, use el comando iptables save
En Ubuntu 14.04 use los siguientes comandos para guardar/recargar las reglas de iptables
sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload
En Ubuntu 16.04 y Ubuntu 18.04 use los siguientes comandos
sudo netfilter-persistent save
sudo netfilter-persistent reload
Si está utilizando centos, utilice el siguiente comando
service iptables save
Paso 4:restaurar la copia de seguridad de Iptables
Si hay algún problema con su regla de configuración de Iptables, puede revertir los cambios con el siguiente comando y restaurar el archivo del que se hizo una copia de seguridad en el paso 2
iptables-restore < IPtablesbackup.txt
Conclusión
Seguir el artículo anterior lo habrá ayudado a abrir/cerrar los puertos en su sistema Linux. La implementación de un firewall adecuado iptables siempre debe considerarse de alta prioridad para su configuración, ya que permite a los administradores del sistema proteger su sistema y permitir solo los puertos requeridos públicamente o restringiéndolos a una IP particular