[RISOLTO] Rendere impostazione firewall permanenti

La rete, Internet, configurazione di Servizi e tutto ciò che permette la comunicazione tra macchine

[RISOLTO] Rendere impostazione firewall permanenti

Messaggioda debluke » 04/07/2020, 11:05

Ciao,
Come ho già esposto nella mia precedente discussione, sono risucito alla fine ad installare due macchine debian in VMware e a farle funzionare una coma server e l'altra come client (almeno per le cose basilari). Dopo vari tentativi adesso (setup dhcp, nat ecc) adesso il client riesce via server ad accedere anche ad internet.
Il problema adesso è che le impostazioni del NAT (masquerade) sul server vengono perse ad ogni avvio e mi ritocca dare questi stessi comandi ogni volta per permettere alla macchina client di navigare:

Codice: Seleziona tutto
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
iptables -A FORWARD -i ens37 -j ACCEPT



Ovviamente ho trovato articoli e wiki che ne parlavano tipo questi due giusto per iniziare:

http://guide.debianizzati.org/index.php ... e_iptables

https://upcloud.com/community/tutorials ... es-debian/

Però vorrei essere sicuro di quello che faccio prima di procedere e rischiare di incasinare qualcosa.
Come ho già detto non conosco bene linux, e mi serve soprattutto per studiare il networking e se si vuole fare sul serio con questa materia è necessario conoscere almeno un po' linux e allo scopo ho scelto debian.

Quale sarebbe la procedura più corretta per avere quelle istruzioni riportate sopra permanenti ad ogni riavvio del server?
Grazie
Ultima modifica di debluke il 08/07/2020, 8:14, modificato 1 volta in totale.
debluke
Newbie
Newbie
 
Messaggi: 22
Iscritto il: 01/07/2020, 9:59

Re: Rendere impostazione firewall permanenti

Messaggioda Aki » 04/07/2020, 11:56

Quando parli di “server” a quale server ti riferisci ?
1) al server Debian installato in una macchina virtuale
2) al server che ospita le due macchine virtuali

In ogni caso dovresti fornire la configurazione del sotto sistema di rete.
Aki
Global Moderator
Global Moderator
 
Messaggi: 9488
Iscritto il: 27/12/2007, 16:59

Re: Rendere impostazione firewall permanenti

Messaggioda debluke » 04/07/2020, 16:33

Aki ha scritto:Quando parli di “server” a quale server ti riferisci ?
1) al server Debian installato in una macchina virtuale
2) al server che ospita le due macchine virtuali

In ogni caso dovresti fornire la configurazione del sotto sistema di rete.


La prima che hai detto. Mi riferisco ormai solo alla debian che deve funzionare come server.
Credo che, almeno per il momento, il setup delle due macchine virtuali installate sotto Vmware workstation (a sua volta installato sul mio pc fisico con Windows 10 pro) vada bene così. Mi interessa andare nel vivo del funzionamento di linux debian e il networking sotto linux.

Posto le impostazioni risultanti dall'avvio dello script scaricato? Selezione solo la voce del menu relativa alle impostazioni di rete?

Grazie
debluke
Newbie
Newbie
 
Messaggi: 22
Iscritto il: 01/07/2020, 9:59

Re: Rendere impostazione firewall permanenti

Messaggioda debluke » 05/07/2020, 10:23

Ho installato:

apt-get install iptables-persistent

che ha creato questo file in /etc/iptables/rules.v4:

Codice: Seleziona tutto
# Generated by xtables-save v1.8.2 on Sun Jul  5 11:14:12 2020
*nat
:PREROUTING ACCEPT [70:6501]
:INPUT ACCEPT [23:2501]
:POSTROUTING ACCEPT [11:1212]
:OUTPUT ACCEPT [50:4642]
-A POSTROUTING -o ens33 -j MASQUERADE
COMMIT
# Completed on Sun Jul  5 11:14:12 2020
# Generated by xtables-save v1.8.2 on Sun Jul  5 11:14:12 2020
*filter
:INPUT ACCEPT [209:26604]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [187:22829]
-A FORWARD -i ens37 -j ACCEPT
COMMIT
# Completed on Sun Jul  5 11:14:12 2020


Mi aspettavo che al riavvio venissero avviate automaticamente le regole sopra e il client potesse accedere ad internet,
invece non va. Non ho capito perché.
Come mai?

Grazie
debluke
Newbie
Newbie
 
Messaggi: 22
Iscritto il: 01/07/2020, 9:59

Re: Rendere impostazione firewall permanenti

Messaggioda Aki » 05/07/2020, 10:54

debluke ha scritto:Ho installato:
Codice: Seleziona tutto
apt-get install iptables-persistent

che ha creato questo file in /etc/iptables/rules.v4:
Codice: Seleziona tutto
# Generated by xtables-save v1.8.2 on Sun Jul  5 11:14:12 2020
*nat
:PREROUTING ACCEPT [70:6501]
:INPUT ACCEPT [23:2501]
:POSTROUTING ACCEPT [11:1212]
:OUTPUT ACCEPT [50:4642]
-A POSTROUTING -o ens33 -j MASQUERADE
COMMIT
# Completed on Sun Jul  5 11:14:12 2020
# Generated by xtables-save v1.8.2 on Sun Jul  5 11:14:12 2020
*filter
:INPUT ACCEPT [209:26604]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [187:22829]
-A FORWARD -i ens37 -j ACCEPT
COMMIT
# Completed on Sun Jul  5 11:14:12 2020

Mi aspettavo che al riavvio venissero avviate automaticamente le regole sopra e il client potesse accedere ad internet,
invece non va. Non ho capito perché.
Come mai?

In https://wiki.debian.org/it/iptables è indicato:
Una volta che si è soddisfatti del proprio insieme di regole, salvare le regole nel file di configurazione principale di iptables:
Codice: Seleziona tutto
 iptables-save > /etc/iptables.up.rules

Per assicurarsi che le regole di iptables vengano usate al prossimo riavvio, creare un nuovo file:
Codice: Seleziona tutto
 editor /etc/network/if-pre-up.d/iptables

e aggiungervi queste righe:
Codice: Seleziona tutto
 #!/bin/sh
 /sbin/iptables-restore < /etc/iptables.up.rules

Il file deve essere eseguibile, perciò cambiare i suoi permessi:
Codice: Seleziona tutto
 chmod +x /etc/network/if-pre-up.d/iptables

Naturalmente, questo implica che la configurazione di rete del server Debian è gestita dal pacchetto ifupdown e, cioè, attraverso il file /etc/network/interfaces

Un altro metodo è quello di usare il pacchetto iptables-persistent. Le regole possono essere memorizzate usando comandi del tipo:
Codice: Seleziona tutto
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

Quali verifiche hai effettuato per cui rilevi che le regole non sono caricate automaticamente al boot ?

Hai analizzato i log di sistema del server Debian per verificare cosa accade al boot rispetto al caricamento automatico delle regole del firewall ?
Aki
Global Moderator
Global Moderator
 
Messaggi: 9488
Iscritto il: 27/12/2007, 16:59

Re: Rendere impostazione firewall permanenti

Messaggioda debluke » 05/07/2020, 11:22

Aki ha scritto:Naturalmente, questo implica che la configurazione di rete del server Debian è gestita dal pacchetto ifupdown e, cioè, attraverso il file /etc/network/interfaces

Cosa avrei dovuto fare in questo file esattamente?

Quali verifiche hai effettuato per cui rilevi che le regole non sono caricate automaticamente al boot ?

Nessuna in particolare. Ho visto semplicemente che il client non navigava e pingava all'esterno. Rilanciando però i comandi
in shell:
Codice: Seleziona tutto
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
iptables -A FORWARD -i ens37 -j ACCEPT

Tutto ritornava a funzionare.
Ho lanciato poi anche:
iptables -L

Codice: Seleziona tutto
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
root@debianser:~#



Hai analizzato i log di sistema del server Debian per verificare cosa accade al boot rispetto al caricamento automatico delle regole del firewall ?


Quali log esattamente e dove li trovo? Non ho ancora pratica con la struttura di linux.
Grazie
debluke
Newbie
Newbie
 
Messaggi: 22
Iscritto il: 01/07/2020, 9:59

Re: Rendere impostazione firewall permanenti

Messaggioda Aki » 05/07/2020, 11:34

Il log di sistema li trovi in /var/log (vedi http://guide.debianizzati.org/index.php/Come_formulare_quesiti_tecnici_al_forum) secondo l’impostazione classica dei sistemi Unix.

Inoltre, i messaggi contenuti nei log di sistema in gran parte sono registrati nel journal di sistema consultabili con il comando journalctl (a partire dall’introduzione di systemd come programma di inizializzazione del sistema operativo).

Al fine di semplificarne la consultazione, alcuni utenti del forum hanno creato una guida apposita (http://guide.debianizzati.org/index.php/Creazione_automatica_di_un_file_di_log_per_inviare_quesiti_al_forum) con uno script utilizzabile per raccogliere dai log (ed altre fonti) la maggior parte delle informazioni utili, script del quale nei precedenti messaggi hai indicato di aver preso visione.

////////////////////////////////

EDIT:

Da quanto hai finora scritto, posso provare ipotizzare, con il beneficio delle verifiche da parte tua, che gli script di iptable-persistant non gestiscano questi due comandi che impartisci da terminale:
Codice: Seleziona tutto
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

Il comando modprobe iptable_nat implica il caricamento di un modulo del kernel; per automatizzarlo, puoi inserire come riga indipendente il nome del modulo (iptable_nat) in /etc/modules e, quindi, impartire come utente root il comando:
Codice: Seleziona tutto
update-initramfs -u

Il comando echo 1 > /proc/sys/net/ipv4/ip_forward non è gestito da iptable-persistant; questo comando attiva l'ip forwarding che, di default, è disattivato nella configurazione di base del kernel. Per renderlo persistente, puoi impostare come utente root il file di configurazione /etc/sys.conf /etc/sysctl.conf da:
Codice: Seleziona tutto
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
a:
Codice: Seleziona tutto
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Al successivo riavvio, non dovrebbe essere necessario reimpartire i comandi:
Codice: Seleziona tutto
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

Come verifica, per il primo comando puoi impartire come utente root il comando:
Codice: Seleziona tutto
lsmod | grep iptable_nat

Dovresti avere in output:
Codice: Seleziona tutto
root@debian:~# lsmod | grep iptable_nat
iptable_nat            16384  0
nf_nat_ipv4            16384  3 ipt_MASQUERADE,nft_chain_nat_ipv4,iptable_nat
ip_tables              28672  1 iptable_nat

Come verifica, per il secondo comando puoi impartire come utente root il comando di seguito indicato con il relativo output:
Codice: Seleziona tutto
# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
Aki
Global Moderator
Global Moderator
 
Messaggi: 9488
Iscritto il: 27/12/2007, 16:59

Re: Rendere impostazione firewall permanenti

Messaggioda debluke » 05/07/2020, 13:04

Funziona!!
I nomi dei file da te indicati erano un pochino diversi nel mio sistema (rispettivamente: /etc/modules-load.d/modules.conf e /etc/sysctl.conf)..ma vabbè.

Certo che per far funzionare adeguatamente i servizi in linux che in dispositivi commerciali come i router casalinghi o con lo stesso Windows si danno per scontati o si avviano automaticamente , ce ne vuole. Beh però era proprio quello che mi aspettavo allo scopo di consolidare e approfondire le mie conoscenze del networking (scarsine al momento :D )
Però ci stavo perdendo troppo tempo (ovviamente per colpa mia visto che linux lo conosco poco) e volevo andare avanti nella lettura di un libro su linux che ora sto seguendo.

Un ultimo paio di cose.
1) altrove parlavano pure di installare nftables e studiare e usare questo al posto di iptables direttamente, ma non voglio adesso complicarmi la vita. Che ne pensi in merito?

2)Il client, come ho detto, riesce ora a pingare e navigare; significa quindi che anche la risoluzione dei dns avviene regolarmente. Avevo installato dnsmasq. Però in quel libro che ho sopra citato si fa riferimento a bind9 che l'autore consiglia di installare, sono indeciso sul da farsi. Non vorrei modificare qualcosa che poi va a pasticciare con le impostazioni che adesso mi fanno funzionare tutto. D' altra parte però dovrei installarlo per seguire i suoi esempi e le sue spiegazioni.
Gradirei cortesemente una tua opinione in merito.
Grazie di tutto ;)
debluke
Newbie
Newbie
 
Messaggi: 22
Iscritto il: 01/07/2020, 9:59

Re: Rendere impostazione firewall permanenti

Messaggioda Aki » 05/07/2020, 16:00

debluke ha scritto:Funziona!! I nomi dei file da te indicati erano un pochino diversi nel mio sistema (rispettivamente: /etc/modules-load.d/modules.conf e /etc/sysctl.conf)..ma vabbè.

Grazie per averlo precisato. Nel caso di /etc/sysctl.conf era un errore di battitura (chiedo venia, ho corretto il post precedente evidenziando il cambiamento), ma nel caso di /etc/modules il nome è giusto:
MODULES(5) File Formats Manual MODULES(5)

NAME
/etc/modules - kernel modules to load at boot time

DESCRIPTION
The /etc/modules file contains the names of kernel modules that are to
be loaded at boot time, one per line. Arguments can be given in the
same line as the module name. Lines beginning with a '#' are ignored.

EXAMPLE
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that
# should be loaded at boot time, one per line. Lines
# beginning with "#" are ignored.

w83781d

3c509 irq=15
nf_nat_ftp

SEE ALSO
depmod(8) modprobe(8) modprobe.conf(5)

Il file /etc/modules-load.d/modules.conf è un altro e diverso file di configurazione che si può impostare per ottenere lo stesso risultato.

debluke ha scritto:Certo che per far funzionare adeguatamente i servizi in linux che in dispositivi commerciali come i router casalinghi o con lo stesso Windows si danno per scontati o si avviano automaticamente , ce ne vuole.

Stai effettuando configurazioni per niente banali, tipiche dell'ambiente server e che, di solito, gli utenti ordinari non effettuano o, se lo fanno, in Debian come in Windows, utilizzando strumenti grafici e non da riga di comando. Prova a fare la stessa configurazione in Windows da riga di comando e fammi sapere quanto ci metti... ;)

debluke ha scritto:Però ci stavo perdendo troppo tempo (ovviamente per colpa mia visto che linux lo conosco poco)

Quando è "troppo" il tempo per imparare qualcosa a cui si è molto interessati ? :)

debluke ha scritto:e volevo andare avanti nella lettura di un libro su linux che ora sto seguendo.

Quale libro stai seguendo ? Se fornisci i riferimenti potrebbe essere utile ad altri utenti.

debluke ha scritto:Un ultimo paio di cose.
1) altrove parlavano pure di installare nftables e studiare e usare questo al posto di iptables direttamente, ma non voglio adesso complicarmi la vita. Che ne pensi in merito?

nftables è il sistema di default di Debian Buster per la gestione del packet filtering (iptables è il precedente vecchio sistema, per il quale comunque al momento è mantenuto il supporto). Il pacchetto iptables-persistent, che hai installato per rendere persistenti le regole di iptables, in realtà, fornisce un set di script che è per nftables (con supporto per iptables) :
Codice: Seleziona tutto
# apt search iptables-persistent
Ordinamento... Fatto
Ricerca sul testo... Fatto
iptables-persistent/stable,stable 1.0.11 all
  caricatore all'avvio per le regole di netfiler, plugin iptables

debluke ha scritto:2)Il client, come ho detto, riesce ora a pingare e navigare; significa quindi che anche la risoluzione dei dns avviene regolarmente. Avevo installato dnsmasq. Però in quel libro che ho sopra citato si fa riferimento a bind9 che l'autore consiglia di installare, sono indeciso sul da farsi. Non vorrei modificare qualcosa che poi va a pasticciare con le impostazioni che adesso mi fanno funzionare tutto. D' altra parte però dovrei installarlo per seguire i suoi esempi e le sue spiegazioni. Gradirei cortesemente una tua opinione in merito.

bind9 è il programma “classico” di gestione dei DNS a livello server, richiede studio approfondito, non puoi pensare di imparare da un forum o da un tutorial.

debluke ha scritto:Grazie di tutto ;)

Figurati. Felice di esserti stato utile. Se non hai ulteriori richieste sull'argomento specifico, mi permetto di ricordati di contrassegnare la discussione come risolta, come indicato nel regolamento del regolamento del forum (al punto 9).
Aki
Global Moderator
Global Moderator
 
Messaggi: 9488
Iscritto il: 27/12/2007, 16:59

Re: Rendere impostazione firewall permanenti

Messaggioda debluke » 06/07/2020, 8:54

Aki ha scritto: ma nel caso di /etc/modules il nome è giusto:
Il file /etc/modules-load.d/modules.conf è un altro e diverso file di configurazione che si può impostare per ottenere lo stesso risultato.

Che strano,adesso lo vedo il file /etc/modules con dentro lo stesso parametro che avevo inserito in /etc/modules-load.d/modules.conf
..comunque

Stai effettuando configurazioni per niente banali, tipiche dell'ambiente server e che, di solito, gli utenti ordinari non effettuano o, se lo fanno, in Debian come in Windows, utilizzando strumenti grafici e non da riga di comando. Prova a fare la stessa configurazione in Windows da riga di comando e fammi sapere quanto ci metti... ;)

Si vero. Il fatto è che sto studiando e approfondendo il networking e linux allo stesso tempo. Le due cose messe insieme non sono per nulla facili. Linux ha una struttura diversa da Windows, devi sapere e ricordare quale funzione utilizzare e quale file (messo chissà dove) devi modificare, e anche come sono interconnessi.

Quando è "troppo" il tempo per imparare qualcosa a cui si è molto interessati ? :)

Hai ragione ovviamente. Mi sono reso conto infatti che dovevo fermarmi su alcuni passaggi e non potevo semplicemente "leggere" il libro, che in alcuni punti dà le cose per scontate o le salta. Non avrebbe senso studiare così. Infatti mi sono trovato in difficoltà e ho dovuto fermarmi.

Quale libro stai seguendo ? Se fornisci i riferimenti potrebbe essere utile ad altri utenti.

Mastering Linux Network Administration di Jay LaCroix. In inglese, ma perfettamente comprensibile. Ormai leggo tutorial e libri sull'argomento solo in inglese, lingua imprescindibile se vuoi trovare ampie risorse in rete.
Seguo spesso anche il suo canale youtube, fa delle cose davvero interessanti. Un suo video mi ha stimolato a provare anche Proxmox, l'hypervisor bare-metal. Ho messo su un server con OMV, Windows 10, pfSense tutti virtualizzati con Proxmox.
Non pensavo che ci sarei riuscito in così poco tempo. Però ormai sta un pochino lì a prendere polvere perché il più delle volte è scollegato dalla mia rete e lo uso, almeno per il momento, solo per sperimentare ed imparare. È stato anche grazie a questo progetto che ho capito che avevo l'assoluta necessità di capire meglio il funzionamento di linux..ed eccomi qui. :)

bind9 è il programma “classico” di gestione dei DNS a livello server, richiede studio approfondito, non puoi pensare di imparare da un forum o da un tutorial.

Mi rendo conto. Intendevo dire se (giusto per provare quei passaggi indicati dal libro) posso installarlo senza che questo in qualche modo vada in conflitto con dnsmasq.

Figurati. Felice di esserti stato utile. Se non hai ulteriori richieste sull'argomento specifico, mi permetto di ricordati di contrassegnare la discussione come risolta, come indicato nel regolamento del regolamento del forum (al punto 9).


Thread davvero interessante.
Si ok, mi ricorderò di contrassegnare la discussione come risolta.
Grazie ancora.
debluke
Newbie
Newbie
 
Messaggi: 22
Iscritto il: 01/07/2020, 9:59


Torna a Network

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti