Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Script firewall Ubuntu
#1
Ho realizzato un semplice script per Debian, Ubuntu e derivate ( NO su Ubuntu 15.04 in avanti - NO Deepin ) che permette di configurare iptables ed ip6tables ( il firewall di linux ) in modo da poter avere una protezione avanzata del sistema. Per utilizzarlo su Debian occorre avere installato il comando sudo. Potete tranquillamente aprire un file di testo con il vostro editor, gedit su Ubuntu, mousepad su Xubuntu, pluma su Linux mint ecc. ecc. e copiarci lo script quì sotto, quindi salvate e chiudete l' editor.

Questo script è destinato a tutti coloro che hanno la necessità d' avere un sistema estremamente sicuro.

Codice:
#!/bin/sh
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables-save > .firewall
sudo cp /home/nomeutente/.firewall /etc/init.d/firewall
sudo sh -c 'echo "post-up iptables-restore < /etc/init.d/firewall" >> /etc/network/interfaces'
sudo ip6tables -P INPUT DROP
sudo ip6tables -P FORWARD DROP
sudo ip6tables -A INPUT -i lo -j ACCEPT
sudo ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo ip6tables-save > .firewall1
sudo cp /home/nomeutente/.firewall1 /etc/init.d/firewall1
sudo sh -c 'echo "post-up ip6tables-restore < /etc/init.d/firewall1" >> /etc/network/interfaces'

Ma cosa fa questo script ?

Questo script blocca per default tutte le connessioni in entrata impedendo così ad eventuali hackers di intrufolarsi nel nostro sistema, consentendo però tutte le connessioni che sono state da noi richieste, quindi potremo navigare tranquillamente in internet senza dover aprire e lasciare costantemente aperta la porta 80, potremo scaricare files dal nostro Browser ed anche scaricare torrent ( testato con Transmission ), inviare e ricevere posta tramite Thunderbird ed utilizzare tutti questi servizi che vengono avviati dietro una nostra esplicita richiesta, altrimenti le porte rimarranno chiuse e l' accesso non autorizzato al nostro sistema verrà impedito.
IMPORTANTE: per fare in modo che lo script lavori con la configurazione del vostro sistema dobbiamo modificare le seguenti stringhe sostituendo a "nomeutente" il vero nome del nostro account, quindi salvare le modifiche effettuate.


Codice:
sudo cp /home/nomeutente/.firewall /etc/init.d/firewall
sudo cp /home/nomeutente/.firewall1 /etc/init.d/firewall1

Nel mio caso ho sostituito "nomeutente" con "math" come si può vedere quì sotto:


Codice:
sudo cp /home/math/.firewall /etc/init.d/firewall
sudo cp /home/math/.firewall1 /etc/init.d/firewall1





A questo punto è necessario cliccare con il tasto destro sullo script, selezionare "proprietà" e cliccare sulla linguetta "permessi", quindi mettere la spunta su "consenti l'esecuzione del file come programma" ( vedi immagine quì sotto )

[Immagine: http://i61.tinypic.com/2dhviu9.pnghttp://]

Per poter rendere eseguibile lo script su Ubuntu 14.04 è necessario inotrel seguire queste istruzioni:

http://www.istitutomajorana.it/index.php...&Itemid=33

Adesso siamo pronti per poter lanciare lo script, clicchiamoci sopra due volte e nella finestra che si apre selezioniamo "esegui nel terminale", quindi si aprirà il terminale e ci verrà chiesto di inserire la nostra password, la inseriamo e premiamo "invio" e a questo punto il vostro firewall è configurato. Se avete interfacce grafiche per la configurazione del firewall abilitate ( Gufw, Firestartes... ) , disattivatele prima di lanciare lo script e ripulite le regole impartendo al terminale i seguenti comandi :

sudo iptables -F
sudo iptables --delete-chain
sudo ip6tables -F
sudo ip6tables --delete-chain

In seguito non sarà più necessario riattivare le interfacce grafiche. Lo script inoltre configura il firewall in modo che le impostazioni non vadano perse allo spegnimento del sistema operativo, le regole verranno infatti caricate in automatico all' avvio del sistema.



Metto in allegato lo script in formato .txt per chi volesse scaricarlo senza dover fare un copia\incola Smile


Allegati
.txt   firewall.txt (Dimensione: 720 byte / Download: 46)
[Immagine: http://i61.tinypic.com/migwsz.jpg]  [Immagine: http://i65.tinypic.com/2rp9u80.jpgGrazie al cielo esiste Linux
Cita messaggio
Grazie da: carlo3
#2
Buongiorno, premetto di essere un utente già iscritto al forum 1, percui non mi dilungo in presentazioni visto anche che seguo il majorana da quando è nato e da voi ho imparato tutto
di quello che so ora su linux, anche se mi reputo un linuxiano molto svogliato.
Ho trovato lo script per il salvataggio della configurazione di iptables molto interessante ed ho
eseguito quanto spiegato da Teo.

Volevo chiedere:

1) Avendo sul pc un utente “normale” oltre a quello amministratore è necessario impostare
iptables anche nell'utente “normale” ? E se la risposta è affermativa, lo si fa da amministratore,
inserendo nello script – utente normale- il nome dell'utente a cui si desidera cambiare le
impostazioni del firewall?

2) Si dice che prima di eseguire lo script, bisogna disattivare altri eventuali firewall con interfaccia
grafica (gufw o firestarter), ma da quello che ho visto l'impostazione di questi rimane in
terminale anche dopo disattivati e quindi ho cercato di riportare le impostazioni di iptables a
quelle in origine.
Quindi col comando iptables –help che mi ha dato le opzioni dei comandi iptables, ho eseguito:

sudo iptables -F (invio ) e quindi sudo iptables --delete-chain (invio) e devo dire per pura
fortuna mi sono ritrovato alle impostazioni originali, quindi ho eseguito lo script ed è andato
tutto a buon fine....a dimenticavo anche sudo ip6tables -F (invio) e sudo ip6tables –delete- chain(invio)...prima di lanciare lo script naturalmente.

3) Ultima cosa se mi diceste qual'è il risultato finale del comando sudo iptables -L e sudo ip6tables
-L .

grazie
Cita messaggio
Grazie da:
#3
1- se sei su Ubuntu e derivate lanci tranquillamente lo script da utente normale, il terminale ti chiede comunque la pwd per poter compiere le operazioni che richiedono i privilegi d'amministratore. Se invece sei su una distro che ha l'account di root allora lo puoi eseguire dall' account di quest' ultimo (in questo caso togliendo i vari sudo davanti alle stringhe ) e le impostazioni saranno valide anche per tutti gli altri account, non occorre ripetere lo script per ogni account

2- Si hai ragione, disattivando l' interfaccia grafica le impostazioni rimangono ed occorre ripulire le regole come hai fatto tu prima di lanciare lo script, quindi:

sudo iptables -F
sudo iptables --delete-chain
sudo ip6tables -F
sudo ip6tables –delete-chain

Ti ringrazio molto per avermelo ricordato At ( ho modificato il primo post grazie alla tua segnalazione )

3- L' output di iptables -L e  ip6tables -L
Codice:
math@pc:~$ sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

Codice:
math@pc:~$ sudo ip6tables -L
Chain INPUT (policy DROP)
target     prot opt source               destination        
ACCEPT     all      anywhere             anywhere            
ACCEPT     all      anywhere             anywhere             state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[Immagine: http://i61.tinypic.com/migwsz.jpg]  [Immagine: http://i65.tinypic.com/2rp9u80.jpgGrazie al cielo esiste Linux
Cita messaggio
Grazie da:
#4
bene, il risultato corrisponde a quello che mi hai postato....l'operazione l'ho eseguita su una mint 17.1.

grazie
Cita messaggio
Grazie da:
#5
vorrei usare lo script in ubuntu 14.04 plus remix , ma mi viene un dubbio ,
se una volta eseguito qualcosa andasse storto e avessi problemi di accesso in rete ,
sarebbe possibile disinstallare il tutto e tornare all'origine senza problemi ?
Cita messaggio
Grazie da:
#6
Certo, è sufficiente dare questi comandi:

sudo rm /etc/init.d/firewall


sudo rm /etc/init.d/firewall1

Poi bisogna aprire il file /etc/network/interfaces, su Ubuntu con gedit,  ed eliminare  due stringhe:

sudo gedit /etc/network/interfaces

Rimuovere queste 2 stringhe :


post-up iptables-restore

post-up ip6tables-restore

Salvare , chiudere l'editor e riavviare.
[Immagine: http://i61.tinypic.com/migwsz.jpg]  [Immagine: http://i65.tinypic.com/2rp9u80.jpgGrazie al cielo esiste Linux
Cita messaggio
Grazie da:
#7
Firewall configurato, grazie.
Una domanda:
E' necessario configurare iptables per ogni utente (creando firewall e firewall1 sulle rispettive homes),
o questi si prendono
i file firewall e firewall1 presenti su etc/init.d ?
Perchè l'output iptables -L che viene fuori da ogni utente è
con firewall configurato , ossia uguale a quello che hai postato.
Cita messaggio
Grazie da:
#8
Esattamente , le impostazioni vengono caricate all'avvio prendendole da /etc/init.d ( firewall \ firewall1 ). Quindi trovandosi nella partizione di root ( / ) vengono impostate per tutti gli utenti. Tongue Anche per eventuali utenti che andremo a creare in futuro.
[Immagine: http://i61.tinypic.com/migwsz.jpg]  [Immagine: http://i65.tinypic.com/2rp9u80.jpgGrazie al cielo esiste Linux
Cita messaggio
Grazie da:
#9
Grazie Teo, gek, utente22 e girolamo, domande e risposte che ho trovato nei vostri interventi   At
Aspettare che gli altri facciano il proprio dovere è il miglior alibi per non fare il nostro.

--Roberto Gervaso--
Cita messaggio
Grazie da:
#10
Ciao @Teo,


questa guida

http://www.istitutomajorana.it/forum/Thr...-terminale

potrebbe andare bene anche per pclinuxos?
Marilù
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)