Utilizzare IPTables

Lo strumento principale per gestire il firewall su Ubuntu è iptables, corredato di alcuni tool, tra cui iptables-restore, iptables-save ed iptables. Iptables permette di definire politiche di comportamento ed eventuali eccezioni, ovvero accettare o rifiutare determinati tipi di connessioni ad eccezione di alcuni specifici casi da noi definiti.
Vi sono 2 modi per utilizzare iptables:

  1. RIGA DI COMANDO

    Veloce e temporaneo, qualsiasi regola verrà dimenticata al riavvio. Si può impostare una regola o una politica per volta, quindi in alcuni casi potrebbe essere necessario concatenare più comandi per evitare di isolare il server dall’esterno.

    Definizione Politiche INPUT, FORWARD ed OUTPUT:

    Definizione regole per l’apertura o la chiusura di porte specifiche:

  2. ELENCO REGOLE SU FILE

    Pratico ed efficiente per configurazioni definitive.
    Il file può essere usato temporaneamente o definitivamente.
    Il file di configurazione deve seguire alcune regole, se si desidera specificare le politiche è necessario precedere tale elenco da *filter ed ogni voce deve essere preceduta dal due-punti (:), inoltre nell’ultima riga deve esserci COMMIT per confermare l’esecuzione delle politiche e delle regole. Il cancelletto (#) è il simbolo utilizzato per i commenti.

    Un esempio di configurazione:

    Una volta compilato il file di configurazione dovremo servirci dei seguenti comandi per poter caricare o salvare una configurazione iptables da o su file.

  3. Applicare e salvare la configurazione

    Caricare una configurazione da file:

    Salvare la configurazione su file:

    Salvare la configurazione in modo permanente (è possibile omettere il comando “sudo -i” se si è già root):

  • Configurare il firewall

    Inserire le parti di proprio interesse (oltre alle prime 3 che sono indispensabili) nel proprio file di configurazione o eseguire una serie di comandi iptables concatenati. Ricordarsi inoltre di inserire COMMIT alla fine del file di configurazione

    1. Consultare e Ripulire (LIST & FLUSH)

      Prima di iniziare potrebbe essere necessario rimuovere o verificare le regole iptables esistenti sul proprio server.

      Consultare la lista delle regole in vigore (LIST):

      Ripulire l’elenco regole (FLUSH):

    2. Politiche Filtri

      Le politiche permettono di definire il comportamento predefinito del firewall per i vari tipi di pacchetti in transito (connessioni). Una buona politica di base rifiuta (DROP) qualsiasi pacchetto in ingresso o reindirizzato (FORWARD) ed ammette tutti quelli in uscita (OUTPUT).

      Definizione delle politiche base nel file di configurazione:

      Definizione delle politiche base da riga di comando (concatenare i comandi assieme a quelli loopback, di persistenza e per l’apertura della porta SSH per evitare di restare isolati fuori dal server):

    3. LOOPBACK

      Si accettino tutti pacchetti in entrata dall’interfaccia di loopback (la porta usata dal server per dialogare con se stesso: localhost / 127.0.0.1)

    4. Persistenza connessioni (STABILITE e CORRELATE)

      Le connessioni sono di 3 tipi: Nuove, Stabilite e Correlate; è quindi necessario garantire l’accesso ai pacchetti di quelle Stabilite e Correlate in modo da autorizzare automaticamente le risposte a connessioni che partono dal server verso l’esterno o la comunicazione su ulteriori porte per servizi che usano una porta per la richiesta di connessione ed un altra, a volte casuale, per la comunicazione.

    5. SSH (indispensabile se si lavora in remoto)

      Apertura porta TCP 22 per accettare le connessioni ssh in ingresso.

    6. HTTP

      Apertura della porta TCP 80 per accettare le connessioni in ingresso al server web.

    7. HTTPS

      Apertura della porta TCP 443 per accettare le connessioni in ingresso al server web sicuro.

    8. DNS

      Apertura della porta UDP 53 per poter fornire il servizio DNS (come ad esempio bind9, puoi consultare una guida completa qui) ad altri computer della rete o verso l’esterno. Consenso richieste TCP su qualsiasi porta dalla porta di partenza 53.

    9. SAMBA

      Apertura delle porte TCP 139,445 e UDP 137,138 per rendere accessibile il servizio SAMBA

    10. FTP

      Apertura della porta TCP 21 per il server FTP

    11. SMTP

      Apertura della porta TCP 25 per il server SMTP

      Apertura della porta TCP 587 per il server SMTP

    12. IMAP

      Apertura delle porte TCP 143 per il server IMAP

    13. IMAPS

      Apertura delle porte TCP 993 per il server IMAP in modalità sicura

    14. POP3

      Apertura delle porte TCP 110 e 995 per il server POP3

    15. Hamachi

      Apertura delle porte TCP 12957,32976 e della porta UDP 17771 per permettere al servizio di tunnelling logmein-hamachi di funzionare correttamente.

    16. COMMIT (solo nel file di configurazione)

      Come precedentemente descritto, è necessario inserire tale comando alla fine del documento di configurazione; non ne è previsto l’utilizzo quando si definiscono le regole da riga di comando poiché vengono elaborate immediatamente.

Questo post è disponibile anche in: Inglese