Aprire la porta del firewall su CentOS 7

Sto usando CentOS 7 e devo assicurarmi che le porte 2888 e 3888 siano aperte.

Ho letto questo articolo ma questo non ha funzionato perché sul sistema operativo CentOS 7 non è disponibile il comando iptables save .

Qualcuno mi ha detto che l’URL di cui sopra non è valido per CentOS 7. e dovrei seguire questo . Ma questo articolo non mi è chiaro su esattamente quale comando ho bisogno di eseguire.

Ho anche trovato

 firewall-cmd --zone=public --add-port=2888/tcp 

ma questo non sopravvive ai reboot.

Quindi, come posso aprire le porte e far sopravvivere i riavvii?

Usa questo comando per trovare la tua zona triggers (s):

 firewall-cmd --get-active-zones 

Dirà o public, dmz o qualcos’altro. Si dovrebbe applicare solo alle zone richieste.

Nel caso di prova pubblica:

 firewall-cmd --zone=public --add-port=2888/tcp --permanent 

Quindi ricorda di ricaricare il firewall affinché le modifiche abbiano effetto.

 firewall-cmd --reload 

Altrimenti, sostituisci il pubblico per la tua zona, ad esempio, se la tua zona è dmz:

 firewall-cmd --zone=dmz --add-port=2888/tcp --permanent 

La risposta di ganeshragav è corretta, ma è anche utile sapere che puoi usare:

 firewall-cmd --permanent --zone=public --add-port=2888/tcp 

ma se è un servizio conosciuto, puoi usare:

 firewall-cmd --permanent --zone=public --add-service=http 

e quindi ricaricare il firewall

 firewall-cmd --reload 

[Risposta modificata per riflettere il commento di Martin Peter, la risposta originale è stata – --permanent alla fine della riga di comando]

CentOS (RHEL) 7, ha cambiato il firewall per usare firewall-cmd che ha una nozione di zone che è come una versione Windows di reti pubbliche, domestiche e private. Dovresti cercare qui per capire quale pensi di dover usare. EL7 utilizza public per impostazione predefinita in modo che questo è ciò che utilizzano i miei esempi di seguito.

Puoi controllare quale zona stai usando con firewall-cmd --list-all e cambiarla con firewall-cmd --set-default-zone= .

Saprai quindi quale zona consentire a un servizio (o una porta) su:

firewall-cmd --permanent --zone= --add-service=http

firewall-cmd --permanent --zone= --add-port=80/tcp

È ansible verificare se la porta è stata effettivamente aperta eseguendo:

firewall-cmd --zone= --query-port=80/tcp

firewall-cmd --zone= --query-service=http

Secondo la documentazione ,

Quando si apportano modifiche alle impostazioni del firewall in modalità Permanente, la selezione avrà effetto solo quando si ricarica il firewall o il sistema si riavvia.

Puoi ricaricare le impostazioni del firewall con: firewall-cmd --reload .

Fedora, l’ha fatto tramite iptables

 sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT sudo service iptables save 

Sembra funzionare

Mentre ganeshragav e Sotsir forniscono approcci corretti e direttamente applicabili, è utile notare che è ansible aggiungere i propri servizi a /etc/firewalld/services . Per l’ispirazione, guarda /usr/lib/firewalld/services/ , dove si trovano i servizi predefiniti di firewalld.

Il vantaggio di questo approccio è che in seguito saprai perché queste porte sono aperte, come hai descritto nel file di servizio. Inoltre, ora puoi applicarlo a qualsiasi zona senza il rischio di errori di battitura. Inoltre, non è necessario applicare le modifiche al servizio a tutte le zone separatamente, ma solo al file di servizio.

Ad esempio, puoi creare /etc/firewalld/services/foobar.xml :

   FooBar  This option allows you to create FooBar connections between your computer and mobile device. You need to have FooBar installed on both sides for this option to be useful.     

(Per informazioni sulla syntax, fare man firewalld.service .)

Una volta creato questo file, puoi firewall-cmd --reload per renderlo disponibile e quindi aggiungerlo permanentemente ad alcune zone con

 firewall-cmd --permanent --zone= --add-service=foobar 

seguito con firewall-cmd --reload per renderlo attivo subito.

Per visualizzare le porte aperte, utilizzare il seguente comando.

 firewall-cmd --list-ports 

Usiamo il seguente per vedere i servizi le cui porte sono aperte.

 firewall-cmd --list-services 

Usiamo il seguente per vedere i servizi le cui porte sono aperte e vedere le porte aperte

 firewall-cmd --list-all 

Per aggiungere un servizio al firewall, usiamo il seguente comando, nel qual caso il servizio utilizzerà qualsiasi porta da aprire nel firewall.

 firewall-cmd --add-services=ntp 

Affinché questo servizio sia aperto in modo permanente, utilizziamo il seguente comando.

 firewall-cmd -add-service=ntp --permanent 

Per aggiungere una porta, utilizzare il seguente comando

 firewall-cmd --add-port=132/tcp --permanent 

Per eseguire il firewall deve essere ricaricato utilizzando il seguente comando.

 firewall-cmd --reload 

Ya Ali

Le risposte migliori qui funzionano, ma ho trovato qualcosa di più elegante nella risposta di Michael Hampton a una domanda correlata. L’opzione “new” (firewalld-0.3.9-11 +) --runtime-to-permanent per firewall-cmd consente di creare regole di runtime e testarle prima di renderle permanenti:

 $ firewall-cmd --zone= --add-port=2888/tcp  $ firewall-cmd --runtime-to-permanent 

O per annullare le modifiche di solo runtime:

 $ firewall-cmd --reload 

Vedi anche il commento di Antony Nguyen . Apparentemente firewall-cmd –reload potrebbe non funzionare correttamente in alcuni casi in cui le regole sono state rimosse. In tal caso, suggerisce di riavviare il servizio firewalld:

 $ systemctl restart firewalld 

Per visualizzare le porte aperte, utilizzare il seguente comando.

firewall-cmd –list-ports Utilizziamo i seguenti servizi per vedere i servizi con porte aperte.

firewall-cmd –list-services Utilizziamo i seguenti servizi per vedere i servizi le cui porte sono aperte e vedere le porte aperte

firewall-cmd –list-all Per aggiungere un servizio al firewall, usiamo il seguente comando, nel qual caso il servizio utilizzerà qualsiasi porta da aprire nel firewall.

firewall-cmd –add-services = ntp Affinché questo servizio sia aperto in modo permanente, utilizziamo il seguente comando.

firewall-cmd -add-service = ntp –permanent Per aggiungere una porta, utilizzare il seguente comando

firewall-cmd –add-port = 132 / tcp –permanent

Se si ha familiarità con il servizio iptables come in centos 6 o precedenti, è comunque ansible utilizzare il servizio iptables con l’installazione manuale:

fase 1 => installa epel repo

yum installa epel-release

fase 2 => installa il servizio iptables

yum installa iptables-services

fase 3 => interrompi il servizio firewalld

systemctl stop firewalld

step 4 => disabilita il servizio firewalld all’avvio

systemctl disable firewalld

fase 5 => avvia il servizio iptables

systemctl avvia iptables

fase 6 => triggers iptables all’avvio

systemctl abilita iptables

finalmente ora puoi modificare la tua configurazione di iptables in / etc / sysconfig / iptables.

Quindi -> modifica regola -> ricarica / riavvio.

fare come centri più anziani con la stessa funzione come firewalld.

Firewalld è un po ‘non intuitivo per il veterano di iptables. Per coloro che preferiscono un firewall basato su iptables con syntax simile a iptables in un albero facilmente configurabile, provare a sostituire firewalld con fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ e quindi Fare quanto segue:

  echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule systemctl reload fwtree