networking - reiniciar - mostrar iptables centos 7
¿Cómo puedo usar iptables en centos 7? (9)
Instalé CentOS 7 con una configuración mínima (herramientas os + dev). Estoy intentando abrir el puerto 80 para el servicio httpd
, pero algo está mal con mi servicio de iptables ... ¿qué hay de malo en ello? ¿Qué estoy haciendo mal?
# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: No such file or directory
# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
# sudo service iptables status
Redirecting to /bin/systemctl status iptables.service
iptables.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
# sudo service iptables start
Redirecting to /bin/systemctl start iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.
Coloque la configuración de IPtables en el archivo tradicional y se cargará después del inicio:
/ etc / sysconfig / iptables
Con RHEL 7 / CentOS 7, firewalld se introdujo para administrar iptables. En mi humilde opinión, Firewalld es más adecuado para estaciones de trabajo que para entornos de servidores.
Es posible volver a una configuración más clásica de iptables. Primero, detén y enmascara el servicio firewalld:
systemctl stop firewalld
systemctl mask firewalld
Luego, instale el paquete iptables-services:
yum install iptables-services
Habilite el servicio en el momento del arranque:
systemctl enable iptables
Administrar el servicio
systemctl [stop|start|restart] iptables
Guardar sus reglas de firewall se puede hacer de la siguiente manera:
service iptables save
o
/usr/libexec/iptables/iptables.init save
El mes pasado intenté configurar iptables en un contenedor LXC VM, pero cada vez que reiniciaba la configuración de iptables no se cargaba automáticamente.
La única forma de hacerlo funcionar fue ejecutando el siguiente comando:
yum -y install iptables-services; systemctl disable firewalld; systemctl mask firewalld; servicio de reinicio de iptables; servicio iptables guardar
Pruebe el siguiente comando iptables-save
.
Si lo hace, y está utilizando fail2ban, deberá habilitar los filtros / acciones adecuados:
Coloque las siguientes líneas en /etc/fail2ban/jail.d/sshd.local
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 5
bantime = 86400
Habilite y comience fail2ban:
systemctl enable fail2ban
systemctl start fail2ban
Referencia: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/
Tuve el problema de que reiniciar no arrancaba iptables.
Esto lo solucionó:
yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables
Y para agregar, también debería poder hacer lo mismo para ip6tables después de ejecutar el systemctl mask firewalld
:
systemctl start ip6tables.service
systemctl enable ip6tables.service
RHEL y CentOS 7 usan firewall-cmd en lugar de iptables . Deberías usar ese tipo de comando:
# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent
Entonces, puedes volver a cargar las reglas para asegurarte de que todo está bien
firewall-cmd --reload
Esto es mejor que usar iptable-save, especialmente si planea usar contenedores lxc o docker. Al iniciar los servicios del acoplador se agregarán algunas reglas que el comando iptable-save mostrará. Si guarda el resultado, tendrá muchas reglas que NO se deben guardar. Debido a que los contenedores Docker pueden cambiar las direcciones IP en el próximo reinicio.
Firewall-cmd con opción permanente es mejor para eso.
Verifique "man firewall-cmd" o consulte los documentos oficiales de firewalld para ver las opciones. Hay muchas opciones para verificar zonas, configuración, cómo funciona ... la página del manual está realmente completa.
Recomiendo encarecidamente no utilizar el servicio de iptables desde Centos 7
/etc/sysconfig/ip6tables-config
el cambio del archivo /etc/sysconfig/ip6tables-config
:
IP6TABLES_SAVE_ON_STOP="no"
A:
IP6TABLES_SAVE_ON_STOP="yes"
Y esto:
IP6TABLES_SAVE_ON_RESTART="no"
A:
IP6TABLES_SAVE_ON_RESTART="yes"
Esto pareció guardar los cambios que hice usando los comandos de iptables mediante un reinicio.