Amministratore Linux - Configurazione firewall

firewalld è il controller front-end predefinito per iptables su CentOS. Il front-end firewalld ha due vantaggi principali rispetto a iptables non elaborati:

  • Utilizza zone facili da configurare e implementare per astrarre catene e regole.

  • I set di regole sono dinamici, il che significa che le connessioni stateful non vengono interrotte quando le impostazioni vengono modificate e / o modificate.

Ricorda, firewalld è il wrapper per iptables, non un sostituto. Sebbene i comandi iptables personalizzati possano essere utilizzati con firewalld , si consiglia di utilizzare firewalld per non interrompere la funzionalità del firewall.

Innanzitutto, assicuriamoci che firewalld sia avviato e abilitato.

[root@CentOS rdc]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon 
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) 
Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago 
 Docs: man:firewalld(1) 
Main PID: 712 (firewalld) 
  Memory: 34.7M 
 CGroup: /system.slice/firewalld.service 
       └─712 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Possiamo vedere, firewalld è sia attivo (per l'avvio all'avvio) che attualmente in esecuzione. Se inattivo o non avviato possiamo utilizzare -

systemctl start firewalld && systemctl enable firewalld

Ora che abbiamo configurato il nostro servizio firewalld, assicuriamoci che sia operativo.

[root@CentOS]# firewall-cmd --state 
running 
[root@CentOS]#

Possiamo vedere, il servizio firewalld è completamente funzionante.

Firewalld lavora sul concetto di zone . Una zona viene applicata alle interfacce di rete tramite Network Manager. Ne discuteremo nella configurazione della rete . Ma per ora, per impostazione predefinita, la modifica della zona predefinita cambierà tutti gli adattatori di rete rimasti nello stato predefinito di "Zona predefinita".

Diamo una rapida occhiata a ciascuna zona pronta all'uso con firewalld .

Sr.No. Zona e descrizione
1

drop

Livello di fiducia basso. Tutte le connessioni in entrata e i pacchetti vengono interrotti e solo le connessioni in uscita sono possibili tramite statefullness

2

block

Alle connessioni in entrata viene risposto con un messaggio icmp che informa l'iniziatore che la richiesta è vietata

3

public

Tutte le reti sono limitate. Tuttavia, le connessioni in entrata selezionate possono essere autorizzate esplicitamente

4

external

Configura firewalld per NAT. La rete interna rimane privata ma raggiungibile

5

dmz

Sono consentite solo alcune connessioni in entrata. Utilizzato per sistemi in isolamento DMZ

6

work

Per impostazione predefinita, fidarsi di più computer sulla rete assumendo che il sistema si trovi in ​​un ambiente di lavoro protetto

7

hone

Per impostazione predefinita, più servizi non sono filtrati. Supponendo che un sistema si trovi su una rete domestica in cui verranno utilizzati servizi come NFS, SAMBA e SSDP

8

trusted

Tutte le macchine sulla rete sono affidabili. La maggior parte delle connessioni in entrata sono consentite senza restrizioni.This is not meant for interfaces exposed to the Internet

Le zone più comuni da utilizzare sono: pubblica, drop, lavoro e casa.

Alcuni scenari in cui verrà utilizzata ciascuna zona comune sono:

  • public- È la zona più comune utilizzata da un amministratore. Ti consentirà di applicare le impostazioni personalizzate e di rispettare le specifiche RFC per le operazioni su una LAN.

  • drop- Un buon esempio di quando utilizzare drop è in una conferenza sulla sicurezza, su una rete Wi-Fi pubblica o su un'interfaccia collegata direttamente a Internet. drop presume che tutte le richieste non richieste siano dannose, inclusi i probe ICMP. Quindi qualsiasi richiesta fuori dallo stato non riceverà risposta. Lo svantaggio del drop è che può interrompere la funzionalità delle applicazioni in determinate situazioni che richiedono una rigorosa conformità RFC.

  • work- Sei su una LAN aziendale semi-sicura. Dove tutto il traffico può essere considerato moderatamente sicuro. Ciò significa che non è WiFi e forse abbiamo IDS, IPS e sicurezza fisica o 802.1x. Dovremmo anche avere familiarità con le persone che utilizzano la LAN.

  • home- Sei su una LAN domestica. Sei personalmente responsabile per ogni sistema e utente sulla LAN. Conosci ogni macchina sulla LAN e che nessuna è stata compromessa. Spesso vengono proposti nuovi servizi per la condivisione di file multimediali tra persone fidate e non è necessario dedicare tempo extra per motivi di sicurezza.

Le zone e le interfacce di rete funzionano su un livello da uno a molti. Un'interfaccia di rete può avere solo una singola zona applicata alla volta. Mentre, una zona può essere applicata a molte interfacce contemporaneamente.

Vediamo quali zone sono disponibili e quali sono le zone attualmente applicate.

[root@CentOS]# firewall-cmd --get-zones 
 work drop internal external trusted home dmz public block

[root@CentOS]# firewall-cmd --get-default-zone 
public
[root@CentOS]#

Pronto per aggiungere alcune regole personalizzate in firewalld?

Per prima cosa, vediamo come appare la nostra scatola, a un portscanner dall'esterno.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1
 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00046s latency). 
Not shown: 1023 filtered ports 
PORT   STATE SERVICE 
22/tcp open  ssh


Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds 
bash-3.2#

Consentiamo alle richieste in arrivo sulla porta 80.

Innanzitutto, controlla per vedere quale zona è applicata come predefinita.

[root@CentOs]# firewall-cmd --get-default-zone 
public
[root@CentOS]#

Quindi, impostare la regola che consente la porta 80 sulla zona predefinita corrente.

[root@CentOS]# firewall-cmd --zone=public --add-port = 80/tcp 
success
[root@CentOS]#

Ora, controlliamo la nostra casella dopo aver consentito le connessioni alla porta 80.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1

Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00053s latency). 
Not shown: 1022 filtered ports 
PORT   STATE  SERVICE 
22/tcp open   ssh 
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds 
bash-3.2#

Ora consente il traffico non richiesto a 80.

Mettiamo la zona predefinita da eliminare e vediamo cosa succede alla scansione delle porte.

[root@CentOS]# firewall-cmd --set-default-zone=drop 
success

[root@CentOS]# firewall-cmd --get-default-zone 
drop

[root@CentOs]#

Ora scansioniamo l'host con l'interfaccia di rete in una zona più sicura.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00094s latency). 
All 1024 scanned ports on centos.shared (10.211.55.1) are filtered

Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds 
bash-3.2#

Ora tutto è filtrato dall'esterno.

Come dimostrato di seguito, l'host non risponderà nemmeno alle richieste di ping ICMP quando è in caduta .

bash-3.2# ping 10.211.55.1 
PING 10.211.55.1 (10.211.55.1): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

Impostiamo nuovamente la zona predefinita su pubblica .

[root@CentOs]# firewall-cmd --set-default-zone=public 
success

[root@CentOS]# firewall-cmd --get-default-zone 
public

[root@CentOS]#

Ora controlliamo le nostre attuali regole di filtraggio in pubblico .

[root@CentOS]# firewall-cmd --zone=public --list-all 
public (active) 
target: default 
icmp-block-inversion: no 
interfaces: enp0s5 
sources:  
services: dhcpv6-client ssh 
ports: 80/tcp 
protocols:  
masquerade: no 
forward-ports:  
sourceports:  
icmp-blocks:  
rich rules:

[root@CentOS rdc]#

Come configurato, la nostra regola di filtro della porta 80 è solo nel contesto della configurazione in esecuzione. Ciò significa che una volta che il sistema viene riavviato o il servizio firewalld viene riavviato, la nostra regola verrà ignorata.

Presto configureremo un demone httpd , quindi rendiamo le nostre modifiche persistenti -

[root@CentOS]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
success

[root@CentOS]# systemctl restart firewalld

[root@CentOS]#

Ora la nostra regola della porta 80 nella zona pubblica è persistente durante i riavvii e i riavvii del servizio.

Di seguito sono riportati i comandi firewalld comuni applicati con firewall-cmd .

Comando Azione
firewall-cmd --get-zone Elenca tutte le zone che possono essere applicate a un'interfaccia
firewall-cmd: stato Restituisce lo stato corrente del servizio firewalld
firewall-cmd --get-default-zone Ottiene la zona predefinita corrente
firewall-cmd --set-default-zone = <zone> Imposta la zona predefinita nel contesto corrente
firewall-cmd --get-active-zone Ottiene le zone correnti nel contesto applicato a un'interfaccia
firewall-cmd --zone = <zone> --list-all Elenca la configurazione della zona fornita
firewall-cmd --zone = <zone> --addport = <protocollo di porta / trasporto> Applica una regola di porta al filtro di zona
--permanente Rende persistenti le modifiche alla zona. Il flag viene utilizzato in linea con i comandi di modifica

Questi sono i concetti di base dell'amministrazione e della configurazione di firewalld .

La configurazione dei servizi firewall basati su host in CentOS può essere un'attività complessa in scenari di rete più sofisticati. L'utilizzo avanzato e la configurazione di firewalld e iptables in CentOS possono richiedere un intero tutorial. Tuttavia, abbiamo presentato le basi che dovrebbero essere sufficienti per completare la maggior parte delle attività quotidiane.