Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è...

61
Hardening Linux Hardening Linux Igino Corona Pattern Recognition and Applications Group Dipartimento di Ingegneria Elettrica ed Elettronica Università di Cagliari 16 Aprile 2015 Corso di Sicurezza Informatica

Transcript of Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è...

Page 1: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Hardening Linux

Igino CoronaPattern Recognition and Applications Group

Dipartimento di Ingegneria Elettrica ed ElettronicaUniversità di Cagliari

16 Aprile 2015Corso di Sicurezza Informatica

Page 2: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Cos’è iptables?un firewall, spesso integrato nelle distribuzioni di Linux (es.Ubuntu)

applica delle regole per il processamento dei pacchettile regole di iptables stabiliscono l’azione daintraprendere in conseguenza di una data condizione

Page 3: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Cos’è iptables?un firewall, spesso integrato nelle distribuzioni di Linux (es.Ubuntu)applica delle regole per il processamento dei pacchetti

le regole di iptables stabiliscono l’azione daintraprendere in conseguenza di una data condizione

Page 4: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Cos’è iptables?un firewall, spesso integrato nelle distribuzioni di Linux (es.Ubuntu)applica delle regole per il processamento dei pacchettile regole di iptables stabiliscono l’azione daintraprendere in conseguenza di una data condizione

Page 5: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Funzionamento

Come funziona iptables?modulo caricato dal kernel Linux

attraverso netfilter, iptables si interfaccia con il kerneldel sistema operativonetfilter fornisce un insieme di punti di aggancio (hooks)all’interno kernel Linux, che permettono a iptables diassociare una data funzione (chiamata callback) ad unadata fase di processamento dei pacchetti secondo lo stackdei protocolli di rete

le regole vengono valutate in catena (chain)

Page 6: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Funzionamento

Come funziona iptables?modulo caricato dal kernel Linuxattraverso netfilter, iptables si interfaccia con il kerneldel sistema operativo

netfilter fornisce un insieme di punti di aggancio (hooks)all’interno kernel Linux, che permettono a iptables diassociare una data funzione (chiamata callback) ad unadata fase di processamento dei pacchetti secondo lo stackdei protocolli di rete

le regole vengono valutate in catena (chain)

Page 7: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Funzionamento

Come funziona iptables?modulo caricato dal kernel Linuxattraverso netfilter, iptables si interfaccia con il kerneldel sistema operativonetfilter fornisce un insieme di punti di aggancio (hooks)all’interno kernel Linux, che permettono a iptables diassociare una data funzione (chiamata callback) ad unadata fase di processamento dei pacchetti secondo lo stackdei protocolli di rete

le regole vengono valutate in catena (chain)

Page 8: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Funzionamento

Come funziona iptables?modulo caricato dal kernel Linuxattraverso netfilter, iptables si interfaccia con il kerneldel sistema operativonetfilter fornisce un insieme di punti di aggancio (hooks)all’interno kernel Linux, che permettono a iptables diassociare una data funzione (chiamata callback) ad unadata fase di processamento dei pacchetti secondo lo stackdei protocolli di rete

le regole vengono valutate in catena (chain)

Page 9: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Chain rules

chain rules

iptables prevede il concetto di catena (chain) di regoleapplicate ad un certo flusso del traffico

la valutazione delle regole avviene in maniera ordinata:non appena una regola risulta soddisfatta, si esegue unaazione predefinitaogni catena prevede una regola “di default” da applicarenel caso nessun altra regola della catena venga attivata

Flussi del traffico di rete

INPUT traffico in ingresso

OUTPUT traffico in uscita

FORWARD traffico instradato dal nostro computer

Page 10: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Chain rules

chain rules

iptables prevede il concetto di catena (chain) di regoleapplicate ad un certo flusso del trafficola valutazione delle regole avviene in maniera ordinata:non appena una regola risulta soddisfatta, si esegue unaazione predefinita

ogni catena prevede una regola “di default” da applicarenel caso nessun altra regola della catena venga attivata

Flussi del traffico di rete

INPUT traffico in ingresso

OUTPUT traffico in uscita

FORWARD traffico instradato dal nostro computer

Page 11: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Chain rules

chain rules

iptables prevede il concetto di catena (chain) di regoleapplicate ad un certo flusso del trafficola valutazione delle regole avviene in maniera ordinata:non appena una regola risulta soddisfatta, si esegue unaazione predefinitaogni catena prevede una regola “di default” da applicarenel caso nessun altra regola della catena venga attivata

Flussi del traffico di rete

INPUT traffico in ingresso

OUTPUT traffico in uscita

FORWARD traffico instradato dal nostro computer

Page 12: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Chain rules

chain rules

iptables prevede il concetto di catena (chain) di regoleapplicate ad un certo flusso del trafficola valutazione delle regole avviene in maniera ordinata:non appena una regola risulta soddisfatta, si esegue unaazione predefinitaogni catena prevede una regola “di default” da applicarenel caso nessun altra regola della catena venga attivata

Flussi del traffico di reteINPUT traffico in ingresso

OUTPUT traffico in uscita

FORWARD traffico instradato dal nostro computer

Page 13: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Chain rules

chain rules

iptables prevede il concetto di catena (chain) di regoleapplicate ad un certo flusso del trafficola valutazione delle regole avviene in maniera ordinata:non appena una regola risulta soddisfatta, si esegue unaazione predefinitaogni catena prevede una regola “di default” da applicarenel caso nessun altra regola della catena venga attivata

Flussi del traffico di reteINPUT traffico in ingresso

OUTPUT traffico in uscita

FORWARD traffico instradato dal nostro computer

Page 14: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Chain rules

chain rules

iptables prevede il concetto di catena (chain) di regoleapplicate ad un certo flusso del trafficola valutazione delle regole avviene in maniera ordinata:non appena una regola risulta soddisfatta, si esegue unaazione predefinitaogni catena prevede una regola “di default” da applicarenel caso nessun altra regola della catena venga attivata

Flussi del traffico di reteINPUT traffico in ingresso

OUTPUT traffico in uscita

FORWARD traffico instradato dal nostro computer

Page 15: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Opzioni

Alcune opzioni di iptables-L elenca le regole presenti in una catena-I inserisci una nuova regola in una determinata

posizione della catena-D cancella una regola presente in una certa

posizione della catena-p specifica il tipo di protocollo a cui applicare la

regola-j specifica l’azione da compiere nel caso la regola

venga attivata-i specifica l’interfaccia di rete su cui applicare la

regola��dport specifica la porta destinazione su cui applicare la

regola

Page 16: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Esempi

Visualizziamo regole della catena di INPUTsudo iptables -L INPUT

Chain INPUT ( p o l i c y DROP)t a r g e t p ro t opt source d e s t i n a t i o nDROP icmp �� anywhere anywhereDROP tcp �� anywhere anywhere tcp dpt : !wwwACCEPT tcp �� . anywhere tcp f l a g s : ! FIN ,SYN,RST,ACK/SYN

. . .

Page 17: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Esempi

Scartiamo tutti i pacchetti ICMP in ingressosudo iptables -I INPUT 1 -p icmp -j DROPad esempio ciò blocca l’identificazione dell’host tramiteping

Blocchiamo qualsiasi comunicazione in ingresso al nostroserver che non sia TCP sulla porta 443 (HTTPS) o 80 (HTTP).Supponiamo che l’interfaccia di rete collegata con l’esterno siaeth0

sudo iptables -I INPUT 1 -i eth0 -p tcp-dport 80 -j ACCEPT

sudo iptables -I INPUT 2 -i eth0 -p tcp-dport 443 -j ACCEPT

sudo iptables -I INPUT 3 -i eth0 -j DROP

Page 18: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Esempi

Scartiamo tutti i pacchetti ICMP in ingressosudo iptables -I INPUT 1 -p icmp -j DROPad esempio ciò blocca l’identificazione dell’host tramiteping

Blocchiamo qualsiasi comunicazione in ingresso al nostroserver che non sia TCP sulla porta 443 (HTTPS) o 80 (HTTP).Supponiamo che l’interfaccia di rete collegata con l’esterno siaeth0

sudo iptables -I INPUT 1 -i eth0 -p tcp-dport 80 -j ACCEPT

sudo iptables -I INPUT 2 -i eth0 -p tcp-dport 443 -j ACCEPT

sudo iptables -I INPUT 3 -i eth0 -j DROP

Page 19: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)

Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori info

man iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 20: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)

Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori info

man iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 21: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori info

man iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 22: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori info

man iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 23: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori info

man iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 24: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori info

man iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 25: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori infoman iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 26: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

iptables

Salvataggio e ripristino delle regole

save and restoresalvataggio sudo iptables-save > /etc/fw.rules

ripristino sudo iptables-restore -c/etc/fw.rules

Ripristino automatico all’avvio (Ubuntu)Creiamo uno script di shell set-fw-rules.sh contenente:#!/bin/shiptables-restore -c /etc/fw.rules

chmod +x set-fw-rules.sh

sudo cp set-fw-rules.sh /etc/init.d/

sudo update-rc.d set-fw-rules.sh defaults

Maggiori infoman iptables

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-7.html

Page 27: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Secure SHell (SSH). . . perché ce ne occupiamo?SSH è largamente utilizzato per consentire la gestione dei sistemi linux daremoto. La cosa più semplice per un attaccante in cerca di sistemi accessibili daremoto è quindi cercare di accedere a tale servizio secondo le impostazionistandard

Modificando queste impostazioni possiamo rendere più difficile l’accesso aquesto servizio da parte di utenti non autorizzati

Considereremo come riferimento openssh

sudo apt-get installopenssh-server

il file di configurazione è di solito su/etc/ssh/sshd_config

less /etc/ssh/sshd_config

Page 28: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Secure SHell (SSH). . . perché ce ne occupiamo?SSH è largamente utilizzato per consentire la gestione dei sistemi linux daremoto. La cosa più semplice per un attaccante in cerca di sistemi accessibili daremoto è quindi cercare di accedere a tale servizio secondo le impostazionistandardModificando queste impostazioni possiamo rendere più difficile l’accesso aquesto servizio da parte di utenti non autorizzati

Considereremo come riferimento openssh

sudo apt-get installopenssh-server

il file di configurazione è di solito su/etc/ssh/sshd_config

less /etc/ssh/sshd_config

Page 29: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Secure SHell (SSH). . . perché ce ne occupiamo?SSH è largamente utilizzato per consentire la gestione dei sistemi linux daremoto. La cosa più semplice per un attaccante in cerca di sistemi accessibili daremoto è quindi cercare di accedere a tale servizio secondo le impostazionistandardModificando queste impostazioni possiamo rendere più difficile l’accesso aquesto servizio da parte di utenti non autorizzati

Considereremo come riferimento openssh

sudo apt-get installopenssh-server

il file di configurazione è di solito su/etc/ssh/sshd_config

less /etc/ssh/sshd_config

Page 30: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure basesudo nano /etc/ssh/sshd_config

Modifica della porta convenzionale di ascolto dalla 22 aduna oltre la 1024 (max 65535)

es. Port 44532

Forzare l’utilizzo esclusivo del protocollo versione 2Protocol 2

Non permettere l’accesso come root da remoto (si potràcomunque lavorare come root successivamente

attraverso il comando su root)PermitRootLogin no

Page 31: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure basesudo nano /etc/ssh/sshd_configModifica della porta convenzionale di ascolto dalla 22 aduna oltre la 1024 (max 65535)

es. Port 44532

Forzare l’utilizzo esclusivo del protocollo versione 2Protocol 2

Non permettere l’accesso come root da remoto (si potràcomunque lavorare come root successivamente

attraverso il comando su root)PermitRootLogin no

Page 32: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure basesudo nano /etc/ssh/sshd_configModifica della porta convenzionale di ascolto dalla 22 aduna oltre la 1024 (max 65535)

es. Port 44532

Forzare l’utilizzo esclusivo del protocollo versione 2Protocol 2

Non permettere l’accesso come root da remoto (si potràcomunque lavorare come root successivamente

attraverso il comando su root)PermitRootLogin no

Page 33: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure basesudo nano /etc/ssh/sshd_configModifica della porta convenzionale di ascolto dalla 22 aduna oltre la 1024 (max 65535)

es. Port 44532

Forzare l’utilizzo esclusivo del protocollo versione 2Protocol 2

Non permettere l’accesso come root da remoto (si potràcomunque lavorare come root successivamente

attraverso il comando su root)PermitRootLogin no

Page 34: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure baseUtilizzare l’autenticazione a chiave pubblica

Occorre la generazione di una chiave pubblica e una privataper ogni client. Da riga di comando del client, eseguire:

ssh-keygen -t rsache genera ⇠/.ssh/id_rsa.pub (chiave pubblica)⇠/.ssh/id_rsa (chiave privata)

Copiare la chiave pubblica del client nel server, in una rigaall’interno del file ⇠/.ssh/authorized_keysModificare le impostazioni del server SSH

PubkeyAuthentication yesPasswordAuthentication no

Page 35: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure baseAbilitare l’accesso da remoto solo a specifici utenti

es. AllowUsers davide, roberto

Abilitare l’accesso da remoto solo a specifici utenti daspecifici indirizzi IP

es. AllowUsers [email protected],[email protected]

Cambiare il messaggio all’ accesso di openssh server:bisogna rimuovere/modificare/aggiungere gli scriptall’interno di

/etc/update-motd.d/

maggiori dettagli su http://www.openssh.com

Page 36: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure baseAbilitare l’accesso da remoto solo a specifici utenti

es. AllowUsers davide, roberto

Abilitare l’accesso da remoto solo a specifici utenti daspecifici indirizzi IP

es. AllowUsers [email protected],[email protected]

Cambiare il messaggio all’ accesso di openssh server:bisogna rimuovere/modificare/aggiungere gli scriptall’interno di

/etc/update-motd.d/

maggiori dettagli su http://www.openssh.com

Page 37: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure baseAbilitare l’accesso da remoto solo a specifici utenti

es. AllowUsers davide, roberto

Abilitare l’accesso da remoto solo a specifici utenti daspecifici indirizzi IP

es. AllowUsers [email protected],[email protected]

Cambiare il messaggio all’ accesso di openssh server:bisogna rimuovere/modificare/aggiungere gli scriptall’interno di

/etc/update-motd.d/

maggiori dettagli su http://www.openssh.com

Page 38: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Configurare openSSH server

Configurare openSSH server, misure baseAbilitare l’accesso da remoto solo a specifici utenti

es. AllowUsers davide, roberto

Abilitare l’accesso da remoto solo a specifici utenti daspecifici indirizzi IP

es. AllowUsers [email protected],[email protected]

Cambiare il messaggio all’ accesso di openssh server:bisogna rimuovere/modificare/aggiungere gli scriptall’interno di

/etc/update-motd.d/

maggiori dettagli su http://www.openssh.com

Page 39: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

fail2ban

Cos’è fail2ban?sudo apt-get install fail2ban

è un tool in grado di impostare iptables per bloccare gli IPdegli host che hanno fornito credenziali d’accesso errate (per N

volte entro un certo intervallo di tempo T )fail2ban può leggere il file di log di sshd (server SSH), allaricerca di tentativi falliti di connessionesudo nano /etc/fail2ban/jail.conf[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6

può essere utilizzato per proteggere molti altriservizi (es. server web apache) da attacchiautomatici

Page 40: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

fail2ban

Cos’è fail2ban?sudo apt-get install fail2ban

è un tool in grado di impostare iptables per bloccare gli IPdegli host che hanno fornito credenziali d’accesso errate (per N

volte entro un certo intervallo di tempo T )

fail2ban può leggere il file di log di sshd (server SSH), allaricerca di tentativi falliti di connessionesudo nano /etc/fail2ban/jail.conf[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6

può essere utilizzato per proteggere molti altriservizi (es. server web apache) da attacchiautomatici

Page 41: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

fail2ban

Cos’è fail2ban?sudo apt-get install fail2ban

è un tool in grado di impostare iptables per bloccare gli IPdegli host che hanno fornito credenziali d’accesso errate (per N

volte entro un certo intervallo di tempo T )fail2ban può leggere il file di log di sshd (server SSH), allaricerca di tentativi falliti di connessione

sudo nano /etc/fail2ban/jail.conf[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6

può essere utilizzato per proteggere molti altriservizi (es. server web apache) da attacchiautomatici

Page 42: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

fail2ban

Cos’è fail2ban?sudo apt-get install fail2ban

è un tool in grado di impostare iptables per bloccare gli IPdegli host che hanno fornito credenziali d’accesso errate (per N

volte entro un certo intervallo di tempo T )fail2ban può leggere il file di log di sshd (server SSH), allaricerca di tentativi falliti di connessionesudo nano /etc/fail2ban/jail.conf[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6

può essere utilizzato per proteggere molti altriservizi (es. server web apache) da attacchiautomatici

Page 43: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Cos’è il port knocking?una tecnica elegante che prevedel’apertura di una porta di connessione inrisposta ad una corretta “bussata”(knocking) su una o più porte

La bussata avviene nel caso più sempliceattraverso la spedizione di pacchetti TCP(o UDP) su determinate porte, in un certoordine, entro un certo intervallo di tempoAd es. la porta TCP 22 è chiusa echiunque cerchi di connettersi al serverSSH riceve un TCP RESET.

Se però spedisco la sequenza di pacchetti(protocollo:porta) UDP:4536, TCP:1234,TCP:21, viene aggiunta una regola nel firewall,per accettare pacchetti provenienti dallo stessoindirizzo IP sulla porta TCP 22L’ host con tale indirizzo IP potrà oraconnettersi al server SSH

Il concetto non è certo nuovo. . .

Page 44: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Cos’è il port knocking?una tecnica elegante che prevedel’apertura di una porta di connessione inrisposta ad una corretta “bussata”(knocking) su una o più porteLa bussata avviene nel caso più sempliceattraverso la spedizione di pacchetti TCP(o UDP) su determinate porte, in un certoordine, entro un certo intervallo di tempo

Ad es. la porta TCP 22 è chiusa echiunque cerchi di connettersi al serverSSH riceve un TCP RESET.

Se però spedisco la sequenza di pacchetti(protocollo:porta) UDP:4536, TCP:1234,TCP:21, viene aggiunta una regola nel firewall,per accettare pacchetti provenienti dallo stessoindirizzo IP sulla porta TCP 22L’ host con tale indirizzo IP potrà oraconnettersi al server SSH

Il concetto non è certo nuovo. . .

Page 45: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Cos’è il port knocking?una tecnica elegante che prevedel’apertura di una porta di connessione inrisposta ad una corretta “bussata”(knocking) su una o più porteLa bussata avviene nel caso più sempliceattraverso la spedizione di pacchetti TCP(o UDP) su determinate porte, in un certoordine, entro un certo intervallo di tempoAd es. la porta TCP 22 è chiusa echiunque cerchi di connettersi al serverSSH riceve un TCP RESET.

Se però spedisco la sequenza di pacchetti(protocollo:porta) UDP:4536, TCP:1234,TCP:21, viene aggiunta una regola nel firewall,per accettare pacchetti provenienti dallo stessoindirizzo IP sulla porta TCP 22L’ host con tale indirizzo IP potrà oraconnettersi al server SSH

Il concetto non è certo nuovo. . .

Page 46: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Cos’è il port knocking?una tecnica elegante che prevedel’apertura di una porta di connessione inrisposta ad una corretta “bussata”(knocking) su una o più porteLa bussata avviene nel caso più sempliceattraverso la spedizione di pacchetti TCP(o UDP) su determinate porte, in un certoordine, entro un certo intervallo di tempoAd es. la porta TCP 22 è chiusa echiunque cerchi di connettersi al serverSSH riceve un TCP RESET.

Se però spedisco la sequenza di pacchetti(protocollo:porta) UDP:4536, TCP:1234,TCP:21, viene aggiunta una regola nel firewall,per accettare pacchetti provenienti dallo stessoindirizzo IP sulla porta TCP 22L’ host con tale indirizzo IP potrà oraconnettersi al server SSH

Il concetto non è certo nuovo. . .

Page 47: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

https://help.ubuntu.com/community/PortKnockingsudo apt-get install knockd

Come funziona knockd?un client knock per l’invio di una sequenza di portknocking

Un server knockd che sta in ascolto su una interfaccia direte in attesa di sequenze di knocking per l’esecuzione diun comando (es. impostare una regola su iptables)Sia per client che per server, le sequenze possono esserememorizzate in un file di configurazione

Page 48: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

https://help.ubuntu.com/community/PortKnockingsudo apt-get install knockd

Come funziona knockd?un client knock per l’invio di una sequenza di portknockingUn server knockd che sta in ascolto su una interfaccia direte in attesa di sequenze di knocking per l’esecuzione diun comando (es. impostare una regola su iptables)

Sia per client che per server, le sequenze possono esserememorizzate in un file di configurazione

Page 49: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

https://help.ubuntu.com/community/PortKnockingsudo apt-get install knockd

Come funziona knockd?un client knock per l’invio di una sequenza di portknockingUn server knockd che sta in ascolto su una interfaccia direte in attesa di sequenze di knocking per l’esecuzione diun comando (es. impostare una regola su iptables)Sia per client che per server, le sequenze possono esserememorizzate in un file di configurazione

Page 50: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Configurazione /etc/knockd.conf[options]

logfile = /var/log/knockd.log

[openSSH]sequence = 7000,8000,9000seq_timeout = 10tcpflags = syncommand = /sbin/iptables -I INPUT 1 -s %IP% -p tcp

--dport 22 -j ACCEPT

[closeSSH]sequence = 9000,8000,7000seq_timeout = 10tcpflags = syncommand = /sbin/iptables -D INPUT -s %IP% -p tcp

--dport 22 -j ACCEPT

Page 51: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Configurazione /etc/default/knockd################################################## knockd’s default file, for generic sys config#################################################

# control if we start knockd at init or not# 1 = start# anything else = don’t start## PLEASE EDIT /etc/knockd.conf BEFORE ENABLINGSTART_KNOCKD=1

# command line options## impostare l’interfaccia di rete dove sono## in ascolto i servizi da proteggere:## nel nostro usiamo lo (loopback) per sperimentare...KNOCKD_OPTS="-i lo"

sudo service knockd start

Page 52: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Regola di default: DROPsudo iptables -I INPUT 1 -p tcp -dport 22 -jDROP

Questa regola ci assicura che il servizio SSH sia visibile eaccessibile solo da indirizzi IP che hanno inviato la sequenzacorretta di knock

Page 53: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Utilizzo di knockAbilitiamo l’accesso al server SSH

knock -v 127.0.0.1 7000 8000 9000

Rimuoviamo la regola che abilita il nostro IP all’accessoSSH

knock -v 127.0.0.1 9000 8000 7000

Altro software per il portknocking

Vi sono altre versioni più sofisticate per il portknocking, perovviare all’eventuale sniffing dei pacchetti di knock lungo iltragittoUna delle più interessanti è rappresentata dal tool fwknophttp://cipherdyne.org/fwknop/

Page 54: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Utilizzo di knockAbilitiamo l’accesso al server SSH

knock -v 127.0.0.1 7000 8000 9000

Rimuoviamo la regola che abilita il nostro IP all’accessoSSH

knock -v 127.0.0.1 9000 8000 7000

Altro software per il portknocking

Vi sono altre versioni più sofisticate per il portknocking, perovviare all’eventuale sniffing dei pacchetti di knock lungo iltragittoUna delle più interessanti è rappresentata dal tool fwknophttp://cipherdyne.org/fwknop/

Page 55: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Utilizzo di knockAbilitiamo l’accesso al server SSH

knock -v 127.0.0.1 7000 8000 9000

Rimuoviamo la regola che abilita il nostro IP all’accessoSSH

knock -v 127.0.0.1 9000 8000 7000

Altro software per il portknockingVi sono altre versioni più sofisticate per il portknocking, perovviare all’eventuale sniffing dei pacchetti di knock lungo iltragitto

Una delle più interessanti è rappresentata dal tool fwknophttp://cipherdyne.org/fwknop/

Page 56: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Utilizzo di knockAbilitiamo l’accesso al server SSH

knock -v 127.0.0.1 7000 8000 9000

Rimuoviamo la regola che abilita il nostro IP all’accessoSSH

knock -v 127.0.0.1 9000 8000 7000

Altro software per il portknockingVi sono altre versioni più sofisticate per il portknocking, perovviare all’eventuale sniffing dei pacchetti di knock lungo iltragittoUna delle più interessanti è rappresentata dal tool fwknop

http://cipherdyne.org/fwknop/

Page 57: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

Utilizzo di knockAbilitiamo l’accesso al server SSH

knock -v 127.0.0.1 7000 8000 9000

Rimuoviamo la regola che abilita il nostro IP all’accessoSSH

knock -v 127.0.0.1 9000 8000 7000

Altro software per il portknockingVi sono altre versioni più sofisticate per il portknocking, perovviare all’eventuale sniffing dei pacchetti di knock lungo iltragittoUna delle più interessanti è rappresentata dal tool fwknophttp://cipherdyne.org/fwknop/

Page 58: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

ConclusioniAbbiamo discusso di alcune tecniche e strumenti utili perrafforzare la protezione di attacchi contro servizi cheutilizzano sistemi Linux

Esistono molti altri strumenti che possono essere usati perrafforzare la sicurezza dei servizi, spesso in pochi stepL’aspetto chiave è che una configurazione “di default” (es.quella impostata nell’installazione) rappresenta la tipicacausa di violazioni di sicurezzaÈ bene personalizzare i servizi e utilizzare funzionalitàaggiuntive per far fronte agli attacchi informatici, dai piùsemplici sino a quelli più complessi, in funzione del livellodi sicurezza da raggiungere

Page 59: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

ConclusioniAbbiamo discusso di alcune tecniche e strumenti utili perrafforzare la protezione di attacchi contro servizi cheutilizzano sistemi LinuxEsistono molti altri strumenti che possono essere usati perrafforzare la sicurezza dei servizi, spesso in pochi step

L’aspetto chiave è che una configurazione “di default” (es.quella impostata nell’installazione) rappresenta la tipicacausa di violazioni di sicurezzaÈ bene personalizzare i servizi e utilizzare funzionalitàaggiuntive per far fronte agli attacchi informatici, dai piùsemplici sino a quelli più complessi, in funzione del livellodi sicurezza da raggiungere

Page 60: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

ConclusioniAbbiamo discusso di alcune tecniche e strumenti utili perrafforzare la protezione di attacchi contro servizi cheutilizzano sistemi LinuxEsistono molti altri strumenti che possono essere usati perrafforzare la sicurezza dei servizi, spesso in pochi stepL’aspetto chiave è che una configurazione “di default” (es.quella impostata nell’installazione) rappresenta la tipicacausa di violazioni di sicurezza

È bene personalizzare i servizi e utilizzare funzionalitàaggiuntive per far fronte agli attacchi informatici, dai piùsemplici sino a quelli più complessi, in funzione del livellodi sicurezza da raggiungere

Page 61: Hardening Linux - Home - people.unica.it · 2016-01-22 · Hardening Linux iptables Cos’è iptables? un firewall, spesso integrato nelle distribuzioni di Linux (es. Ubuntu) applica

Hardening Linux

Secure SHell - SSH

Port Knocking

ConclusioniAbbiamo discusso di alcune tecniche e strumenti utili perrafforzare la protezione di attacchi contro servizi cheutilizzano sistemi LinuxEsistono molti altri strumenti che possono essere usati perrafforzare la sicurezza dei servizi, spesso in pochi stepL’aspetto chiave è che una configurazione “di default” (es.quella impostata nell’installazione) rappresenta la tipicacausa di violazioni di sicurezzaÈ bene personalizzare i servizi e utilizzare funzionalitàaggiuntive per far fronte agli attacchi informatici, dai piùsemplici sino a quelli più complessi, in funzione del livellodi sicurezza da raggiungere