Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva /...

78
Sicurezza base in Linux 26 febbraio 2007 – Romano Trampus – SIB SBA

Transcript of Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva /...

Page 1: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sicurezza base in Linux

26 febbraio 2007 – Romano Trampus – SIB SBA

Page 2: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Premessa

Distribuzione di riferimento: (K)Ubuntu.

TUTTE le nozioni introdotte possono essere trasportate (probabilmente con nessuno o con

minimi adeguamenti) alle altre distribuzioni.

Molti dei concetti sono applicabili a S.O. Diversi da Linux (Unix like o meno).

Le definizioni proposte non hanno pretesa di completezza e precisione.

Page 3: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sommario

● Breve introduzione sulla sicurezza● Evoluzione della sicurezza● Sicurezza in linux

– Linux desktop– Linux server

Page 4: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sicurezza

?

Page 5: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Definizioni

La sicurezza è la conoscenza che l'evoluzione di un sistema non produrrà stati indesiderati.

(definizioni non formali tratte da wikipedia.org)

Page 6: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Definizioni

La sicurezza è la conoscenza che l'evoluzione di un sistema non produrrà stati indesiderati.

Il rischio è la misura della mancanza di sicurezza ed è legato al possibile esito del verificarsi di un evento. Esso è funzione della probabilità dell'evento e della

magnitudo del danno conseguente al verificarsi dell'evento.

(definizioni non formali tratte da wikipedia.org)

Page 7: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

SicurezzaIn generale la sicurezza non è “falsificabile” (Popper). Possiamo provare con l'osservazione che

si verifica un incidente, ma non possiamo “osservare” che non c'è stato.

La sicurezza non è (non può) essere un obiettivo:la sicurezza è un metodo per raggiungere altri obiettivi.

Page 8: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sicurezza

● In informatica la sicurezza è il processo per proteggere i dati e le risorse da accessi, uso, diffusione, modificazioni, distruzione non autorizzate.

Information security is the process of protecting data (resources) from unauthorized access, use, disclosure, destruction, modification, or disruption.

Computer security is a field of computer science concerned with the control of risks related to computer use.

Page 9: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

rischio

● Rischio = probabilità x danno● Il rischio non si elimina: si riduce● Il rischio che non viene eliminato si chiama

rischio residuo

● Il danno è quantificabile, la probabilità ha una componente soggettiva

Page 10: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Rischi● Obiettivo: identificare i rischi e ridurne le eventuali perdite.● Il processo di gestione del rischio si divide in fasi e attività secondo lo

schema:

GESTIONE RISCHI

VALUTAZIONERISCHI

CONTROLLORISCHI

IDENTIFICAZIONE

ANALISI

ORDINAMENTO IN BASE ALLA PRIORITÀ

PIANIFICAZIONE

APPLICAZIONE DELLE AZIONI DI ATTENUAZIONE

MONITORAGGIO

● Periodicamente si ripete il ciclo. Almeno una volta all'anno.

Page 11: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Attenuazione del rischio

Page 12: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Analisi

● Ridurre il danno● Ridurre la probabilità● Contenere i costi

● L'analisi comprende lo studio legislativo, normativo, ambientale, personale, professionale, delle attività, dei processi, etc.

Page 13: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Tipi di sicurezza

● Le misure prevedono due grandi famiglie: quelle relative alla prevenzione e quelle relative alla protezione. Le misure possono essere attive, passive, strutturali, impiantistiche, amministrative, disciplinari, etc.

● La gestione è la parte che deve mantenere in vita la sicurezza con studi, aggiornamenti, formazione, informazione, manutenzione, verifiche, esercitazioni, piani di sicurezza, adeguamenti, etc

Page 14: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sicurezza attiva / passiva● Sicurezza passiva

● Per sicurezza passiva normalmente si intendono le tecniche e gli strumenti di tipo difensivo, ossia quel complesso di soluzioni il cui obiettivo è quello di impedire che utenti non autorizzati possano accedere a risorse, sistemi, impianti, informazioni e dati di natura riservata. Il concetto di sicurezza passiva pertanto è molto generale: ad esempio, per l'accesso a locali protetti, l'utilizzo di porte di accesso blindate, congiuntamente all'impiego di sistemi di identificazione personale, sono da considerarsi componenti di sicurezza passiva.

● Sicurezza attiva

● Per sicurezza attiva si intendono, invece, le tecniche e gli strumenti mediante i quali le informazioni ed i dati di natura riservata sono resi intrinsecamente sicuri, proteggendo gli stessi sia dalla possibilità che un utente non autorizzato possa accedervi (confidenzialità), sia dalla possibilità che un utente non autorizzato possa modificarli (integrità).

Page 15: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Legge sulla privacy

Art. 31

Obblighi di sicurezza

1. I dati personali oggetto di trattamento sono custoditi e controllati, anche in relazione alle conoscenze acquisite in base al progresso tecnico, alla natura dei dati e alle specifiche caratteristiche del trattamento, in modo da ridurre al minimo, mediante l'adozione di idonee e preventive misure di sicurezza, i rischi di distruzione o perdita, anche accidentale, dei dati stessi, di accesso non autorizzato o di trattamento non consentito o non conforme alle finalità della raccolta.

Page 16: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Legge sulla privacy

Art. 34

Trattamenti con strumenti elettronici

1. Il trattamento di dati personali effettuato con strumenti elettronici è consentito solo se sono adottate, nei modi previsti dal disciplinare tecnico contenuto nell'allegato B), le seguenti misure minime:

a) autenticazione informatica;

b) adozione di procedure di gestione delle credenziali di autenticazione;

c) utilizzazione di un sistema di autorizzazione;

d) aggiornamento periodico dell'individuazione dell'ambito del trattamento consentito ai singoli incaricati e addetti alla gestione o alla manutenzione degli strumenti elettronici;

Page 17: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Legge sulla privacy

e) protezione degli strumenti elettronici e dei dati rispetto a trattamenti illeciti di dati, ad accessi non consentiti e a determinati programmi informatici;

f) adozione di procedure per la custodia di copie di sicurezza, il ripristino della disponibilità dei dati e dei sistemi;

g) tenuta di un aggiornato documento programmatico sulla sicurezza;

h) adozione di tecniche di cifratura o di codici identificativi per determinati trattamenti di dati idonei a rivelare lo stato di salute o la vita sessuale effettuati da organismi sanitari.

Page 18: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Roadmap

● Installazione● Firewall● Autenticazione su AD● Servizi● Antivirus● Accesso ai file

Page 19: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Non parliamo di...

● Sicurezza fisica● Ridondanza● Backup

● Questi sono elementi che comunque DEVONO essere presi in considerazione PRIMA di installare un server.

Page 20: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Prima

● Presumiamo che PRIMA di installare un server siano stati definiti gli obiettivi e sia stato valutato il rapporto costi / benefici (inclusa manutenzione).

● Principio di necessità.

Page 21: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Installazione

● Ci sono due “filosofie” di installazione:– Installare il minimo indispensabile per il

funzionamento del sistema e aggiungere solo i pacchetti relativi ai servizi che verranno erogati.

– Installare un sistema completo e rimuovere successivamente i pacchetti non necessari

● Per i server si dovrebbe prediligere la prima opzione. Molte distribuzioni producono una versione specifica per i server.

Page 22: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Installazione

● Di norma i seguenti pacchetti / servizi dovrebbero essere disattivati:– Tutti i servizi normalmente attivati in /etc/inetd.conf,

in particolare: telnet, ftp, finger, discard, echo, daytime, ... Meglio disattivare inetd/xinetd.

– Stampanti (cups) se non si devono gestire code di stampa.

– dns e mail server– dhcp server

Page 23: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Rimuovere pacchetti non indispensabili

● Per avere la lista di tutti i pacchetti installati:dpkg --list● Per identificare il pacchetto che ha prodotto il

file chiamato foo si esegua uno dei comandi:dpkg --search nomefile● Per installare un pacchettoapt-get install nome_pacchetto● dselect

Page 24: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Porte in ascolto

● Per ottenere una lista dei servizi attivi in ascolto (TCP and UDP sockets) si può usare il comando:

# netstat -tulpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address

State PID/Program nametcp 0 0 *:auth *:*

LISTEN 2328/xinetdtcp 0 0 localhost.localdomain:smtp *:*

LISTEN 2360/sendmail: accetcp 0 0 *:ssh *:*

LISTEN 2317/sshd

Page 25: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Porte in ascolto

● Comando alternativo:# lsof -i -n | egrep 'COMMAND|LISTEN|UDP'COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEsshd 2317 root 3u IPv6 6579 TCP *:ssh (LISTEN)xinetd 2328 root 5u IPv4 6698 TCP *:auth (LISTEN)sendmail 2360 root 3u IPv4 6729 TCP 127.0.0.1:smtp

(LISTEN)

Page 26: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Firewall

● Tutte le distribuzioni di linux implementano un firewall (iptables).

● In generale un firewall sull'host deve essere considerato complementare a un firewall di rete.

● Iptables lavora su tre tabelle: filter, nat, mangle. Ciscuna ha al suo internet diverse catene: INPUT, OUTPUT, FORWARD, .....

● Ciascuna catena ha una POLICY di default DENY/ACCEPT

Page 27: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

iptables in breve

● Tabella filter, catene INPUT, OUTPUT, FORWARD

Decisione sulrouting FORWARD

INPUT OUTPUT

Processi locali

Page 28: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

iptables in breve

1) Impostare la policy di default:iptables -P INPUT DROP....

2) Svuotare il contenuto delle catene:iptables -F INPUT....

3)Creare nuove catene:iptables -N nome catena

4)Impostare le regole:iptables -A INPUT -p tcp –-dport 80 -d 192.168.1.1/32 -j ACCEPT

Page 29: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Iptables GUI

● Sono disponibili frontend grafici per le iptables. ● firestarter, a GNOME application oriented towards end-users that includes

a wizard useful to quickly setup firewall rules. The application includes a GUI to be able to monitor when a firewall rule blocks traffic

● fwbuilder, an object oriented GUI which includes policy compilers for various firewall platforms including Linux' netfilter, BSD's pf (used in OpenBSD, NetBSD, FreeBSD and MacOS X) as well as router's access-lists. It is similar to enterprise firewall management software. Complete fwbuilder's functionality is also available from the command line.

● shorewall, a firewall configuration tool which provides support for IPsec as well as limited support for traffic shaping as well as the definition of the firewall rules. Configuration is done through a simple set of files that are used to generate the iptables rules

● guarddog, a KDE based firewall configuration package oriented both to novice and advanced users.

Page 30: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Iptables GUI● knetfilter, a KDE GUI to manage firewall and NAT rules for iptables

(alternative/competitor to the guarddog tool although slightly oriented towards advanced users)

● bastille, this hardening applicatio. One of the hardening steps that the administrator can configure is a definition of the allowed and disallowed network traffic that is used to generate a set of firewall rules that the system will execute on startup.

Page 31: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticazione● L'autenticazione consiste nell'identificazione di un utente

tramite credenziali (in genere username / password).● Successivamente al processo di autenticazione, le

operazioni effettuate dall'utente sono tracciate in file di log.

Page 32: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD

● Si può configurare linux per autenticare gli utenti su AD utilizzando Kerberos + LDAP.

● LDAP è utitlizzato per recuperare le informazioni sugli utenti.

● Kerberos è utilizzato per la fase di autenticazione

1) $ sudo apt-get install libnss-ldap

Page 33: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD● Indicare l'indirizzo del server AD:

Page 34: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD● Indicare il base dn per la ricerca degli utenti:

Page 35: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD● AD è compatibile con LDAP v.3

Page 36: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD# /etc/libnss-ldap.conf

# Your LDAP server. Must be resolvable without using LDAP.# Multiple hosts may be specified, each separated by a# space. How long nss_ldap takes to failover depends on# whether your LDAP client library supports configurable# network or connect timeouts (see bind_timelimit).host 172.30.46.1

# The distinguished name of the search base.base dc=ds,dc=units,dc=it

# The LDAP version to use (defaults to 3# if supported by client library)ldap_version 3

# RFC 2307 (AD) mappings# <to> <from>nss_map_attribute userPassword sambaPasswordnss_map_attribute gecos namenss_map_attribute uid unixNamenss_map_attribute shadowLastChange pwdLastSetnss_map_objectclass posixGroup grouppam_filter objectclass=Userpam_password crypt

# Disable SASL security layers. This is needed for AD.sasl_secprops maxssf=0

Page 37: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch

functionality.# If you have the `glibc-doc' and `info' packages

installed, try:# `info libc "Name Service Switch"' for information about

this file.

passwd: files ldapgroup: files ldapshadow: files ldap

Page 38: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD● Verificare la configurazione:

Page 39: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD

● Adesso che ci sono le informazioni sugli utenti su può configurare il processo di autenticazione.

● L'autenticazione si basa su Kerberos 5, quindi bisogna installare il modulo PAM kerberos 5

$ sudo apt-get-install heimdal-clients libpam-heimdal

Page 40: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD

In /etc/krb5.conf[libdefaults] default_realm = DS.UNITS.IT

[realms] DS.UNITS.IT = { kdc = 172.30.46.1:88 }........[domain_realm] .ds.units.it = DS.UNITS.IT ds.units.it = DS.UNITS.IT........

Page 41: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD## /etc/pam.d/common-auth - authentication settings common to all services## This file is included from other service-specific PAM config files,# and should contain a list of the authentication modules that define# the central authentication scheme for use on the system# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the# traditional Unix authentication mechanisms.#

# prompt user "Password for <principal>: " (warning: no l18n)auth sufficient pam_krb5.so minimum_uid=100auth required pam_unix.so nullok_secure

# use password from pam_unix prompt#auth sufficient pam_unix.so nullok_secure#auth sufficient pam_krb5.so minimum_uid=1000 use_first_pass

Page 42: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD## /etc/pam.d/common-session - session-related modules common to all services## This file is included from other service-specific PAM config files,# and should contain a list of modules that define tasks to be performed# at the start and end of sessions of *any* kind (both interactive and# non-interactive). The default is pam_unix.#

session required pam_unix.sosession optional pam_foreground.sosession optional pam_krb5.so

session required pam_mkhomedir.so umask=0022 skel=/etc/skel

Page 43: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD## /etc/pam.d/common-account - authorization settings common to all services## This file is included from other service-specific PAM config files,# and should contain a list of the authorization modules that define# the central access policy for use on the system. The default is to# only deny service to users whose accounts are expired in /etc/shadow.#account required pam_unix.soaccount [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] pam_krb5.so

Page 44: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD

● Affinché i ticket di Kerberos siano validi è necessario che Linux abbia l'orologio sincronizzato con AD:

$ sudo apt-get install ntpdate

$ sudo ntpdate ntp.units.it

25 Jan 16:22:06 ntpdate[8158]: step time server 82.211.81.145 offset 402569.951826 sec

$ sudo apt-get install ntp-simple

Page 45: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare su AD

● Infine verifichiamo il funzionamento:$ kinit 5400

[email protected]'s Password:

$ klist

Credentials cache: FILE:/tmp/krb5cc_1000

Principal: [email protected]

Issued Expires Principal

Jan 25 16:23:06 Jul 26 02:23:58 krbtgt/[email protected]

Page 46: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Autenticare applicazioni web

● Per autenticare utenti di applicazioni web su AD non è necessario installare tutto il sistema di autenticazione ma è sufficiente fare il bind dell'utente su LDAP di AD.

Page 47: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Accesso interattivo al sistema

● Il sistema può essere utilizzato accedendo con due modalità:– Accesso all'ambiente grafico.– Accesso ad una console (linea di comando)

● Per i server è preferibile non installare l'ambiente grafico (a meno che non sia un terminal server).

Page 48: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Accesso SSH

● L'accesso alla console dovrebbe avvenire esclusivamente tramite protocollo SSH2.

● Il file di configurazione è /etc/ssh/sshd_config● Su alcune distribuzioni il server ssh è opzionale● E' importante controllare all'installazione alcuni

parametri

Page 49: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Rendere sicuro SSH ListenAddress 192.168.0.1

Imposta il server per ascoltare solo su una determinata interfaccia (nel caso che il sistema ne abbia più di una.

PermitRootLogin no

Blocca l'accesso dell'utente root. Se l'utente deve diventare root deve utilizzare su o sudo. In questo modo la password di root non può essere ottenuta con un bute-force.

Port 666 o ListenAddress 192.168.0.1:666

Cambia la porta di ascolto.

PermitEmptyPasswords no

Non permette l'accesso ad utenti senza password.

Page 50: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Rendere sicuro SSHAllowUsers alex ref me@somewhere

Permette l'accesso solo ad alcuni utenti. E' possibile limitare l'accesso solo da alcuni host.

AllowGroups wheel admin

Permette l'accesso solo agli utenti di determinati gruppi.AllowGroups e AllowUsers hanno direttive equivalenti per proibire l'accesso ad utenti o gruppi di utenti:

DenyUsers user

DenyGroups user

Page 51: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Rendere sicuro SSHPasswordAuthentication yes

Permette l'accesso con autenticazione basata su password. L'alternativa è l'accesso basato su credenziali che devono essere salvate in

~/.ssh/authorized_keys

E' opportuno disabilitare le forme di autenticazione che non servono, per esempio:RhostsRSAAuthenticationHostbasedAuthenticationKerberosAuthenticationRhostsAuthentication

Page 52: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Rendere sicuro SSHProtocol 2

Disabilita il protocollo versione 1, che possiede problemi di sicurezza per come è disegnato.

Banner /etc/some_file

Specifica un banner che verrà visualizzato dopo l'accesso. In alcuni paesi aspetti legali impongono che l'utente sia informato sulla possibilità che le sue azioni siano monitorate.

E' possibile controllare l'accesso tramite ssh anche configurando PAM, utilizzando pam_listfile oppure pam_wheel. Ad esempio si possono autorizzare all'accesso solo gli utenti elencati in /etc/loginusers aggiungendo in /etc/pam.d/ssh:

auth required pam_listfile.so sense=allow onerr=fail item=user file=/etc/loginusers

Page 53: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Accesso ai file

● apt-get install aclGranting an additional user read access

setfacl -m u:lisa:r file

Revoking write access from all groups and all named users (using the effective rights mask)

setfacl -m m::rx file

Removing a named group entry from a file's ACL

setfacl -x g:staff file

Page 54: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Filtrare i servizi

● Utilizzando il firewall● Utilizzando xinetdservice nntp { socket_type = stream protocol = tcp wait = no user = news group = news server = /usr/bin/env server_args = POSTING_OK=1

PATH=/usr/sbin/:/usr/bin:/sbin/:/bin +/usr/sbin/snntpd logger -p news.info bind = 127.0.0.1 }

Page 55: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Limitare l'ambiente grafico

● Se non è necessario connettersi dall'esterno all'ambiente grafico:

$ startx -- -nolisten tcp

● Se si usa Xfree 3.3.6:#!/bin/sh exec /usr/bin/X11/X -dpi 100 -nolisten tcp

● Se si usa XDM bisogna impostare in /etc/X11/xdm/Xservers

:0 local /usr/bin/X11/X vt7 -dpi 100 -nolisten tcp

● Se si usa Gdm bisogna impostare in /etc/gdm/gdm.conf

DisallowTCP=true

Page 56: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Display managerIf you only want to have a display manager installed for local usage (having a

nice graphical login, that is), make sure the XDMCP (X Display Manager Control Protocol) stuff is disabled. In XDM you can do this with this line in /etc/X11/xdm/xdm-config:

DisplayManager.requestPort: 0

For GDM there should be in your gdm.conf:

[xdmcp]

Enable=false

Normally, all display managers are configured not to start XDMCP

Page 57: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

ApacheYou can limit access to the Apache server if you only want to use it internally (for testing

purposes, to access the doc-central archive, etc.) and do not want outsiders to access it. To do this use the Listen or BindAddress directives in /etc/apache/http.conf.

Using Listen:

Listen 127.0.0.1:80

Using BindAddress:

BindAddress 127.0.0.1

Then restart apache with /etc/init.d/apache restart and you will see that it is only listening on the loopback interface.

Page 58: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Proteggere la reteBy entering /sbin/sysctl -A you can see what you can configure and what the options are, and it can be modified running /sbin/sysctl -w variable=value (see sysctl(8)). For example:

net/ipv4/icmp_echo_ignore_broadcasts = 1

This is a Windows emulator because it acts like Windows on broadcast ping if this option is set to 1. That is, ICMP echo requests sent to the broadcast address will be ignored. Otherwise, it does nothing.

If you want to prevent you system from answering ICMP echo requests, just enable this configuration option:

net/ipv4/icmp_echo_ignore_all = 1

To log packets with impossible addresses (due to wrong routes) on your network use:

/proc/sys/net/ipv4/conf/all/log_martians = 1

For more information on what things can be done with /proc/sys/net/ipv4/* read /usr/src/linux/Documentation/filesystems/proc.txt. All the options are described thoroughly under /usr/src/linux/Documentation/networking/ip-sysctl.txt [34].

Page 59: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Proteggere la reteThis option is a double-edged sword. On the one hand it protects your system against syn packet flooding; on the other hand it violates defined standards (RFCs). (/etc/sysctl.conf)

net/ipv4/tcp_syncookies = 1

If you want to change this option each time the kernel is working you need to change it in /etc/network/options by setting syncookies=yes. This will take effect when ever /etc/init.d/networking is run (which is typically done at boot time) while the following will have a one-time effect until the reboot:

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

This option will only be available if the kernel is compiled with the CONFIG_SYNCOOKIES. All Debian kernels are compiled with this option builtin but you can verify it running:

$ sysctl -A |grep syncookies net/ipv4/tcp_syncookies = 1

Page 60: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Antivirus

● Anche su Linux si possono installare antivirus.● Ad esempio Sophos antivirus.● A differenza di alcuni anni fa, gli antivirus su

linux fanno la scansione all'accesso dei file come su windows.

Page 61: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Tratto da: Andreasson(2001)

Page 62: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sintassi● Iptable [-t table] command action● Se [-t table] non è specificata si applica la tabella filter● I comandi possono essere:

– A chain aggiunge una regola in coda alla chainiptables –A INPUT –p icmp –j DROP

– D chain cancella una regola dalla chainiptables –D INPUT –p icmp –j DROPiptables –D INPUT 1

– R chain sostituisce una regola alla chainiptables –R INPUT 1 –s 192.168.0.0/16 –j DROP

– I chain inserisce nel punto specificato una regolaiptables –I INPUT 1 –s 192.168.1.0/24 –j ACCEPT

– L chain visualizza la catena (-n per non risolvere i nomi)iptables –t nat –L –n

– F chain cancella le regole da una catenaiptables –F INPUT

– Z chain azzera i contatori di una catena

Page 63: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Sintassi– N chain_name crea una nuova catena

iptables –N tcp_packet_rule– X chain_name cancella una catena

iptbales –X tcp_packet_rule– P chain imposta le policy di default per una catena

iptables –P INPUT DROP– E chain rinomina una catena

iptables –E tcp_packet_rule tcp_packets

● Le policy di default possono essere solo ACCEPT o DROP. REJECT è un modulo che deve essere caricato e quindi non può essere una policy per una catena.

● Possono essere cancellate solo le catene definite dall’utente.● Per cancellare una catena questa deve essere vuota.● Quando si specifica come azione una catena definita dall’utente questa

deve essere prima creata.

Page 64: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Catene● Una catena definita dall’utente può essere indicata come azione (-j) per

una regola

● Il match con regole che delegano a un’altra catena una serie di controlli non sono definitive.

regolaregolaregola

regolaregola

regola

INPUT

regola

regolaregolaregola

tcp_packet_rule

Page 65: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Matches

● A ogni tipo di regola sono associate delle opzioni specifiche.

● Le opzioni possono essere implicite o esplicite. Se sono esplicite richiedono l’indicazione del modulo che le supporta.

● Le opzioni implicite che vengono riconosciute sono quelle associate ai principali protocolli (tcp, udp, icmp)

Page 66: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Opzioni per –p tcp● --sport: indica la porta sorgente della connessione● --dport: indica la porta di destinazione della connessione● --tcp-flags gruppo flag: indica quale flag deve essere

impostato tra un gruppo di flag indicatoiptable –A INPUT –p tcp –tcp-flags SYN,ACK,FIN SYN –j DROP(rifiuta i tentativi di connessione)

● --syn: shortcut per –tcp-flags SYN,ACK,FIN SYN● --tcp-option #: confronta il campo option del pacchetto

Page 67: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Opzioni per –p udp

● --sport: analogo alla stessa opzione per il tcp● --dport: analogo alla stessa opazione per il tcp

Page 68: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Opzioni per –p icmp

● --icmp-type #: confronta il tipo di pacchetto icmpiptables –A –p icmp –icmp-type 8 –j DROP

● Per sapere i tipi di pacchetti icmp si può dare il comandoiptables –protocol icmp -help

Page 69: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Negazioni

● Tutti i parametri delle regole (sia di quelle implicite che di quelle esplicite) possono essere negati con il !

iptables –A –p tcp –s ! 192.168.0.0/24 –j ACCEPTiptables –A –p tcp ! –syn –j ACCEPT

Page 70: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Regole esplicite (moduli)

● Per usarli è necessario che siano anch’essi compilati nel kernel o che siano disponibili per il caricamento dinamico

● Per verificare se sono disponibili uso il comando modprobe:modprobe ipt_LOGmodprobe ipt_MASQUERADEmodprobe ipt_REJECT

modprobe ip_conntrack_ftpmodprobe ip_conntrack_irc

Page 71: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Regole esplicite: MAC match

● -mac-source: confronta il MAC del pacchetto che deve essere espresso nella forma xx:xx:xx:xx:xx:xx

● Si applica solo alle tabelle di PREROUTING, FORWARD e INPUT

iptables –A INPUT –mac-source 00:0a:43:bf:ee:12 –i eth0 –j ACCEPT

Page 72: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Regole esplicite: limit

● --limit: specifica la quantità massima di pacchetti su cui operare la regole in n/t dove t può essere second, minute, hour, dayiptables –A INPUT –p tcp -–syn –m limit -–limit 5/minute –j ACCEPT(accetta solo 5 connessioni al minuto)

● --limit-burst: specifica il numero massimo di connessioni accettate in una unità di tempoiptables –A INPUT –p tcp -–syn –m limit -–limit-burst 5 –j ACCEPT

Page 73: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Regole esplicite: multiport● Le opzioni –sport e –dport implicite nei protocolli tcp e udp consentono di

indicare, oltre all’indicazione di una singola porta, anche intervalliiptables –A INPUT –p tcp –-sport 20:25 –j ACCEPT

● Se invece voglio specificare un elenco di porte devo usare il modulo multiport:iptables –A INPUT –p tcp –m multiport -–source-port 20,21,22,80,8080 –j ACCEPTiptables –A INPUT –p tcp –m multiport –-destination-port 80,8080 –j ACCEPTiptables –A INPUT –p udp –m multiport -–port 53 –j ACCEPT

● Con l’opzione –-port il match viene fatto sia sulla porta sorgente che sulla porta destinazione

● E’ possibile specificare al massimo 15 porte come opzione

Page 74: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Regole esplicite: state● Il modulo state tiene traccia dello stato delle connessioni.

Queste possono assumere i valori NEW, ESTABLISHED, RELATED, INVALID.

● E’ importante notare che per definire NEW lo stato di una connessione il modulo NON si basa sui flag dei pacchetti (SYN)

iptables –A INPUT –p tcp –-syn –m state -–state NEW –j ACCEPTiptables –A INPUT –p tcp –m state -–state ESTABLISHED –j ACCEPT

● Con il modulo ip_conntrack_ftp è possibile accettare le connessioni relative alla connessione DATI

Page 75: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

Strategie nello scrivere le regole

● Raggrupparle in catene semplici, da richiamare nelle catene di default

● Vantaggi:– si evita di riscrivere le stesse regole in catene

diverse– si ottimizza il parsing delle catene da parte del

kernel

Page 76: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

NAT

● SNAT: quando viene modificato l’indirizzo sorgente del primo pacchetto

● DNAT: quando viene modificato l’indirizzo di destinazione del primo pacchetto

● Le catene vengono ispezionate solo per il primo pacchetto. Poi sono i moduli di connection tracking si occupano di applicare le modifiche ai pacchetti successivi.

● Il nat avviene nel PREROUTING (DNAT) e nel POSTROUTING (SNAT)

Page 77: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

SNAT

● si può usare l’opzione –o interface● esempiiptables –nat –A POSTROUTING –s 10.0.0.2 –o eth0 –j SNAT -–to 140.105.9.1-140.105.9.10iptables –nat –A POSTROUTING –s 10.0.0.2 –o eth0 –j SNAT –-to 192.168.176.1:1-1023

Page 78: Sicurezza base in Linux - units.it Documents/Modulo 4... · 2007. 3. 15. · Sicurezza attiva / passiva Sicurezza passiva Per sicurezza passiva normalmente si intendono le tecniche

DNAT

● si può usare l’opzione –i interface● esempi

iptables –t nat –A PREROUTING –p tcp -–dport 80 –i eth2 –j DNAT –-to 140.105.48.16:8080