Come posso usare iptables su Centos 7? [chiuso]


154

Ho installato CentOS 7 con una configurazione minima (strumenti os + dev). Sto cercando di aprire la porta 80 per il httpdservizio, ma qualcosa di sbagliato 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.

prova questo /etc/init.d/iptables save
Satya,

8
Ho la risposta qui . RHEL 7 utilizza firewalld instad di iptables
Meiblorn,

Risposte:


333

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

È possibile tornare a una configurazione iptables più classica. Innanzitutto, arrestare e mascherare il servizio firewalld:

systemctl stop firewalld
systemctl mask firewalld

Quindi, installa il pacchetto iptables-services:

yum install iptables-services

Abilita il servizio all'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

5
Non sta salvando iptables. Il riavvio del server perde tutte le modifiche.
Roosevelt,

2
Sul mio sistema gli iptables sono salvati correttamente. Ti sei assicurato che il servizio iptables sia avviato all'avvio? Puoi farlo eseguendo 'systemctl enable iptables'
Sgaduuw

1
Potresti anche avere firewalld in esecuzione che aggiungerà regole iptables aggiuntive all'elenco (ogni volta che riavvii il sistema). Per arrestare firewalld eseguire "systemctl mask firewalld"
TroodoN-Mike

Aggiunte le informazioni sul mascheramento di firewalld alla risposta, come suggerito da @ TroodoN-Mike
Sgaduuw

8
@Sgaduuw Puoi per favore approfondire il motivo per cui ritieni che fitewalld non sia / meno adatto ai server?
Alexander Groß,

98

RHEL e CentOS 7 usano firewall-cmd invece di iptables . Dovresti usare quel 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, soprattutto se si prevede di utilizzare contenitori lxc o docker. L'avvio dei servizi docker aggiungerà alcune regole richieste dal comando iptable-save. Se salvi il risultato, avrai molte regole che NON devono essere salvate. Perché i contenitori docker possono cambiarli indirizzi IP al prossimo riavvio.

Firewall-cmd con opzione permanente è meglio per questo.

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

Consiglio vivamente di non utilizzare iptables-service da Centos 7


1
Grande spiegazione - ha funzionato perfettamente per me. Grazie!
digitalformula,

1
firewall-cmd --reload non funziona. Ho dovuto riavviare utilizzando "systemctl restart firewalld" per rendere effettive le modifiche.
Basil Musa,

"Poiché firewalld è dinamico, è possibile apportare modifiche alla sua configurazione in qualsiasi momento e implementarle immediatamente. Nessuna parte del firewall deve essere ricaricata, quindi non si verificano interruzioni involontarie delle connessioni di rete esistenti" - dai documenti ufficiali di firewalld
yicone,

Efficiente e pulito. Grazie mille
Vaibhav

17

Ho avuto il problema che il riavvio non avvierebbe iptables.

Questo risolto:

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

Su CentOS 7 non funziona: # systemctl start iptablesFailed to start iptables.service: Unit not found.e # systemctl start ip6tablesFailed to start ip6tables.service: Unit not found.
PKHunter il


5

Ho modificato il /etc/sysconfig/ip6tables-configfile cambiando:

IP6TABLES_SAVE_ON_STOP="no"

Per:

IP6TABLES_SAVE_ON_STOP="yes"

E questo:

IP6TABLES_SAVE_ON_RESTART="no"

Per:

IP6TABLES_SAVE_ON_RESTART="yes"

Questo sembrava salvare le modifiche che ho fatto usando i comandi iptables attraverso un riavvio.


1

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

/ Etc / sysconfig / iptables


1

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 eseguendo il comando seguente:

yum -y installa iptables-services; systemctl disabilita firewalld; systemctl mask firewalld; riavvio del servizio iptables; servizio iptables save


0

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

    systemctl start ip6tables.service
    systemctl enable ip6tables.service

0

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

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.