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


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Script firewall Ubuntu 16.04
#1
Thumbs Up 
Eccolo, l' ho fatto ed è anche molto meglio dei precedenti ..   Pinguino  funziona anche per le versioni precedenti di Ubuntu / Mint

ISTRUZIONI:
- posizionare lo script nella /home e rinominarlo ad es. Ubuntu.sh
- rendere eseguibile lo script con chmod +x Ubuntu.sh
- loggarsi al terminale con privilegi di root: sudo -s ( inserire la propria pwd )
- lanciare lo script da terminale con il comando ./Ubuntu.sh
- rispondere alle domande dello script ...

Codice:
#!/bin/bash

# Script per la configurazione e abilitazione del firewall

echo -e "\v"
echo -e "\v"
echo "                   ###############################"
echo "                   ###############################"
echo -e "\v"        
echo "                   ******  Firewall Script  ******"
echo -e "\v"
echo "                   ###############################"
echo "                   ###############################"
echo -e "\v"
echo -e "Questo script ti aiuterà ad abilitare e configurare il firewall"
echo -e "\v"
sleep 2
read -p "Desideri proteggere il sistema bloccando il traffico in entrata ? [S/n] " risposta


if [ ${risposta} == "s" ]; then
  echo -e "\n"
  echo "  OK !! CHIUDO LE PORTE ..."
  iptables -P INPUT DROP
  iptables -P FORWARD DROP
 elif [ ${risposta} == "n" ]; then
   echo -e "\n"
   echo -e  "  E' INUTILE CONTINUARE ...\n "
   exit 1
     else
       echo -e "\n"
       echo -e "  HAI PREMUTO UN TASTO CHE NON RIENTRA NELLE OPZIONI DI RISPOSTA\n  "
       exit 1
fi

sleep 3
echo -e "\n"
echo -e "Abilito il traffico sull' interfaccia di loopback per consentire il corretto funzionamento del sistema ...\n "
iptables -A INPUT -i lo -j ACCEPT


sleep 4
echo ""
read -p "Imposto il firewall per consentire tutto il traffico di rete da te richiesto, sei d'accordo ? [S/n] " risposta1


if [ ${risposta1} == "s" ]; then
  echo -e "\n"
  echo "  STO ABILITANDO ..."
  echo -e "\n"
  iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 elif [ ${risposta1} == "n" ]; then
   echo -e "\n"
   echo "  QUESTA IMPOSTAZIONE E' OBBLIGATORIA, ALTRIMENTI NON POTRESTI PIU ACCEDERE AD INTERNET."
   echo -e "\n"
   sleep 3
   echo "  ABILITO ..."
   echo -e "\n"
   iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
   sleep 2
     else
       echo -e "\n"
       echo "  HAI PREMUTO UN TASTO CHE NON RIENTRA NELLE OPZIONI "
       echo -e "\n"
       exit 1
fi

sleep 2
read -p "Applico le impostazioni anche ad ip6tables per il protocollo di rete IPV6 ? [S/n] " risposta2


if [ ${risposta2} == "s" ]; then
  echo -e "\n"
  echo -e "  IP6TABLES E' STATO ABILITATO\n "
  ip6tables -P INPUT DROP && ip6tables -P FORWARD DROP
  ip6tables -A INPUT -i lo -j ACCEPT && ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 elif [ ${risposta2} == "n" ]; then
   echo -e "\n"
   echo -e "  IP6TABLES NON VERRA' GESTITO\n "
  else
   echo -e "\n"
   echo -e "  HAI PREMUTO UN TASTO CHE NON RIENTRA NELLE OPZIONI\n "
   exit 1
fi    

sleep 2
echo ""
read -p "Desideri salvare le impostazioni per fare in modo che vengano ricaricate automaticamente all' avvio del sistema ? [S/n] " risposta3

if [ ${risposta3} == "s" -a ${risposta2} == "s" ]; then
  echo -e "\n"
  echo "  SALVO LA CONFIGURAZIONE DI IPTABLES E IP6TABLES ... "
  iptables-save > /etc/init.d/firewall && ip6tables-save > /etc/init.d/firewall1
  echo "post-up iptables-restore < /etc/init.d/firewall" >> /etc/network/interfaces
  echo "post-up ip6tables-restore < /etc/init.d/firewall1" >> /etc/network/interfaces
 elif [ ${risposta3} == "s" -a ${risposta2} == "n" ]; then
    echo -e "\n"
    echo "  SALVO LA CONFIGURAZIONE DI IPTABLES "
    iptables-save > /etc/init.d/firewall
    echo "post-up iptables-restore < /etc/init.d/firewall" >> /etc/network/interfaces
   elif [ ${risposta3} == "n" ]; then
     echo -e "\n"
     echo "  LA CONFIGURAZIONE NON VERRÀ' SALVATA "
    else
      echo -e "\n"
      echo -e "  HAI PREMUTO UN TASTO CHE NON RIENTRA  NELLE OPZIONI, LA CONFIGURAZIONE NON VERRA' SALVATA "
      echo -e "\n"
      exit 1
fi    
   
sleep 3
echo -e "\n"
echo "  ABBIAMO FINITO, DIGITA ' exit ' PER USCIRE DA ROOT ... "
echo -e "\n"
exit 0


Allegati
.txt   Ubuntu.txt (Dimensione: 3,66 KB / Download: 42)
[Immagine: http://i61.tinypic.com/migwsz.jpg]  [Immagine: http://i65.tinypic.com/2rp9u80.jpgGrazie al cielo esiste Linux
Cita messaggio
#2
Grande! grazie..
"Affermare che non si è interessati al diritto alla privacy perché non si ha nulla da nascondere è come dire che non si è interessati alla libertà di parola perché non si ha nulla da dire!" Edward Snowden  Tongue
Cita messaggio
Grazie da:
#3
Questa è la mia configurazione e adesso provo a spiegarla: è una semplice configurazione di rete per la navigazione, allo scopo di bloccare qualsiasi porta sia in ingresso e uscita.
Ogni funzione di connessione di rete, richiede una specifica porta per un servizio: wikipedia torna utile, ma devi sapere come funziona la trasmissione dei dati che ti interessa: https://it.wikipedia.org/wiki/Lista_di_porte_standard
La configurazione che uso blocca blocca ogni possibile accesso, tranne la chiamata e uscita di specifiche porte per il collegamento ai siti che navighiamo normalmente come google (porta 80 in ingresso e 443 per l'uscita), connessione di rete ip ( porta 53), connessione di rete dns (porta 47)
Se tuo vuoi collegarti alla semplice rete internet, con questa mia configurazione sei protetto da qualsiasi controllo dall'esterno, tipo ssh (porta 22) in quanto il kernel non chiedo la chiamata.
In compenso puoi anche non configurare Iptables perchè le porte sono già bloccate dal tuo router di default come t'ho mostrato adesso, ma per una ulteriore sicurezza le riporto anche in uno script per il kernel.
Se tu volessi aprire la porta 22 per il servizio ssh, devi aprire la connessione di rete nel tuo router e consentire al kernel linux di comunicare sia in ingresso e uscita con questa porta.
Ho fatto il pignolo bloccandole, per mio sfizio, affinchè non abbia possibili controlli dall'interno all'esterno del mio pc.
Per una semplice configurazione puoi aprire le porte esterne al tuo pc (OUTPUT), in quanto sei tu che avvii una "chiamata", ma tu devi bloccare l'ingresso INPUT (consentire il collegamento dal tuo pc verso la rete esterna).
Una configurazione semplice poteva essere:
iptables -A INPUT -j DROP
iptables -A OUTPUT -j ACCEPT
iptables -A FORDWARE -j ACCEPT
iptables -A INPUT -m state --state, ESTABLISHED,RELATED -j ACCEPT
Facendo questa semplice configurazione dovevi solo aprire le porte dal tuo pc verso l'esterno (INPUT) per accedere e smistare i dati di trasmissione con l'ip interessato, ma devi aggiungere il "consenso" di stabilire una connessione di risposta "stabilita (ESTABLISHED)", "relativa (RELATED)" .
Non deve essere impostata una regola NEW (nuova connessione) per non accettare qualsiasi nuova connessione possibile senza sicurezza: sarebbe inutile impostare una regola NEW, in quanto la politica "police INPUT -J DROP", blocca già le connessione nuove non da te consentite.
Mettere "NEW" non avrebbe senso e il kernel nel medesimo blocca e accetta nuove connessione: non avresti la connessione ugualmente per la Policy DROP.
Si è costretti mettere NEW in OUTPUT per consentire a te qualsiasi chiamata, siccome ho messo DROP come politica IPTABLES -A OUPUT -j DROP.
Se avessi messo IPTABLES -A OUTPUT -j ACCEPT, non serve mettere una politica "m-state --state"


Iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT - p tcp --dport 80 -j ACCEPT
iptables -A INPUT - p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 47 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 47 -j ACCEPT
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: