it-swarm.it

Come posso usare iptables su CentOS 7?

Ho installato CentOS 7 con una configurazione minima (os + dev tools). Sto cercando di aprire 80 porte per il servizio httpd, ma qualcosa non va nel mio servizio iptables ... cosa c'è che non va? Che cosa sto facendo di sbagliato?

# 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.
138
Meiblorn

Con RHEL 7/CentOS 7, firewalld è stato introdotto per gestire iptables. IMHO, firewalld è più adatto per le workstation che per gli ambienti server.

È possibile tornare a una configurazione di iptables più classica. Per prima cosa, interrompi e maschera il servizio firewalld:

systemctl stop firewalld
systemctl mask firewalld

Quindi, installa il pacchetto iptables-services:

yum install iptables-services

Abilita il servizio al momento dell'avvio:

systemctl enable iptables

Gestire il servizio

systemctl [stop|start|restart] iptables

Il salvataggio delle regole del firewall può essere eseguito come segue:

service iptables save

o

/usr/libexec/iptables/iptables.init save
316
Sgaduuw

RHEL e CentOS 7 usano firewall-cmd invece di iptables . Dovresti usare questo tipo di comando:

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

Quindi, puoi ricaricare le regole per essere sicuro che tutto sia a posto

firewall-cmd --reload

Questo è meglio che usare iptable-save, specialmente se si prevede di usare container lxc o docker. L'avvio dei servizi di finestra mobile aggiungerà alcune regole che il comando iptable-save richiederà. Se salvi il risultato, avrai un sacco di regole che NON dovrebbero essere salvate. Poiché i contenitori docker possono cambiarli al prossimo riavvio.

Firewall-cmd con opzione permanente è meglio per questo.

Controlla "man firewall-cmd" o controlla i documenti ufficiali firewalld per vedere le opzioni. Ci sono molte opzioni per controllare zone, configurazione, come funziona ... la pagina man è veramente completa.

Consiglio vivamente di non usare iptables-service da Centos 7

89
Metal3d

Ho avuto il problema che il riavvio non avrebbe avviato iptables.

Questo l'ha risolto:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables
15
par

Prova il seguente comando iptables-save.

9
João Chambel

Ho modificato il file /etc/sysconfig/ip6tables-config cambiando:

IP6TABLES_SAVE_ON_STOP="no"

A:

IP6TABLES_SAVE_ON_STOP="yes"

E questo:

IP6TABLES_SAVE_ON_RESTART="no"

A:

IP6TABLES_SAVE_ON_RESTART="yes"

Questo sembrava salvare le modifiche apportate usando i comandi iptables attraverso un riavvio.

4
Dug

Il mese scorso ho provato a configurare iptables su un contenitore LXC VM, ma ogni volta dopo il riavvio la configurazione di iptables non veniva caricata automaticamente.

L'unico modo per farlo funzionare era eseguire il seguente comando:

yum -y installa iptables-services; systemctl disable firewalld; systemctl mask firewalld; servizio iptables restart; servizio iptables salvare

1
BVB Media

Inserisci la configurazione di IPtables nel file tradizionale e verrà caricata dopo l'avvio:

/ Etc/sysconfig/iptables

1
BVB Media

E per aggiungere, dovresti essere in grado di fare lo stesso per ip6tables dopo aver eseguito il comando systemctl mask firewalld:

    systemctl start ip6tables.service
    systemctl enable ip6tables.service
0
jman594

Se lo fai, e stai usando fail2ban, dovrai abilitare i filtri/le azioni corretti:

Inserisci le seguenti righe in /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

Abilita e avvia fail2ban:

systemctl enable fail2ban
systemctl start fail2ban

Riferimento: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/

0
Sebas