Sicurezza base in Linux. 26 febbraio 2007 Romano Trampus SIB SBA



Documenti analoghi
Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Iptables. Mauro Piccolo

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)

Packet Filter in LINUX (iptables)

Sicurezza nelle reti


Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Crittografia e sicurezza delle reti. Firewall

Corso avanzato di Reti e sicurezza informatica

Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla

Filtraggio del traffico IP in linux

Esercitazione 5 Firewall

! S/Key! Descrizione esercitazione! Alcuni sistemi S/Key-aware. " Windows " Linux. ! Inizializzazione del sistema. " S = prepare(passphrase, seed)

Il firewall ipfw. Introduzione ai firewall. Problema: sicurezza di una rete. Definizione di firewall. Introduzione ai firewall

(1) Network Camera

Software di gestione della stampante

Configurazione modalità autenticazione utenti sui firewall D-Link Serie NetDefend (DFL-200, DFL-700, DFL-1100)

Esercitazione 04. Sommario. Un po di background: One-time password. Un po di background. Angelo Di Iorio

CONFIGURATION MANUAL

Creare connessioni cifrate con stunnel

Plugin Single Sign-On

Introduzione a Windows XP Professional Installazione di Windows XP Professional Configurazione e gestione di account utente

Sistema Operativo di un Router (IOS Software)

Sommario. Introduzione ai firewall. Firewall a filtraggio dei pacchetti. Il firewall ipfw. Definizione e scopo Classificazione

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Reti di Telecomunicazione Lezione 7

Firewall e Abilitazioni porte (Port Forwarding)

esercizi su sicurezza delle reti maurizio pizzonia sicurezza dei sistemi informatici e delle reti

Firewall: concetti di base

Scritto da Administrator Lunedì 01 Settembre :29 - Ultimo aggiornamento Sabato 19 Giugno :28

Posta elettronica per gli studenti for the students

PACKET FILTERING IPTABLES

Transparent Firewall

Win/Mac/NFS. Microsoft Networking. Manuale dell utente del software QNAP Turbo NAS

Ethereal A cura di Donato Emma demma@napoli.consorzio-cini.it

Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet)

Guida all amministrazione VPH Webmin/Virtualmin

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Introduzione Kerberos. Orazio Battaglia

Il nuovo codice in materia di protezione dei dati personali

Contenuto del pacchetto

Indice. Indice V. Introduzione... XI

Titolo: Documento: Data di redazione: ottobre 2011 Autore: Contenuto del documento: Materiale utilizzato: Considerazioni iniziali:

SOMMARIO... 2 Introduzione... 3 Configurazione Microsoft ISA Server... 4 Microsoft ISA Server Microsoft ISA Server

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

Studi di Settore. Nota Operativa 22/4/2013

Samba: guida rapida - Guide@Debianizzati.Org

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway

La normativa italiana

Antonio Cianfrani. Extended Access Control List (ACL)

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Access Control List (I parte)

Introduzione alle applicazioni di rete

Gate Manager. Come accedere alla rete di automazione da un PC (Rete cliente) COME ACCEDERE ALLA RETE DI AUTOMAZIONE DA UN PC (RETE CLIENTE)...

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

I pacchetti: Linux. Belluno. User. Group Introduzione ai firewalls con Linux. Firestarter 1.0. Guarddog Firewall Builder 2.0.

Intel One Boot Flash Update Utility Guida dell utente

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Kerberos - autenticazione centralizzata

Sommario. Modulo 8: Applicativi. Parte 3: Terminale remoto. Premessa Telnet SSH XWindows VNC RDP. Gennaio Marzo 2007

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

BACKUP APPLIANCE. User guide Rev 1.0

Per la connessione del router 3Com Office Connect Remote 812 ad un singolo computer è sufficiente rispettare il seguente schema:

Archiviare messaggi di posta elettronica senza avere un proprio mail server

Corso amministratore di sistema Linux. Corso amministratore di sistema Linux Programma

SHAREPOINT INCOMING . Configurazione base

TeamPortal. Servizi integrati con ambienti Gestionali

Le Soluzioni Tango/04 per adempiere alla normativa sugli amministratori di sistema

Guida alla registrazione on-line di un DataLogger

-Fig.1-

FTP. Appunti a cura del prof. ing. Mario Catalano

Servizio di backup dei dati mediante sincronizzazione

Lezione n.9 LPR- Informatica Applicata

NAL DI STAGING. Versione 1.0

Uso di una procedura di autenticazione unificata per client Linux e Microsoft Windows su server Microsoft Windows.

Elementi di Sicurezza e Privatezza Laboratorio 6 - Sniffing. Chiara Braghin chiara.braghin@unimi.it

MODULO 02. Iniziamo a usare il computer

RADIUS - ACCESSO DA TELNET E DA CONSOLE

File system II. Sistemi Operativi Lez. 20

La sicurezza delle reti

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Manuale per la configurazione di AziendaSoft in rete

Maschere di sottorete a lunghezza variabile

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

INFOCOM Dept. Antonio Cianfrani. Virtual LAN (VLAN)

Ordine delle regole (1)

Acronis License Server. Manuale utente

Configurazione dell Accesso Internet AREA INFORMATICA E TELEMATICA

AGENDA.. Mission. Componenti SMC. Security Environment. Report. Eventi. Update prodotti. Faq. Achab 2009 pagina 1

filrbox Guida all uso dell applicazione DESKTOP Pag. 1 di 27

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo

Gestione degli Access Log degli Amministratori di Sistema La soluzione per ottemperare agli obblighi del Garante Privacy

Transmission Control Protocol

1) GESTIONE DELLE POSTAZIONI REMOTE

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

ACCESSO AL PORTALE VPN

POLICY DI ACCESSO INTERNET E CONTENT FILTER BASATE SU GRUPPI ACTIVE DIRECTORY (Firmware 2.20)

Sicurezza negli ambienti di testing. Grancagnolo Simone Palumbo Claudio

Inizializzazione degli Host. BOOTP e DHCP

Transcript:

Sicurezza base in Linux 26 febbraio 2007 Romano Trampus SIB SBA

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.

Sommario Breve introduzione sulla sicurezza Evoluzione della sicurezza Sicurezza in linux Linux desktop Linux server

Sicurezza?

Definizioni La sicurezza è la conoscenza che l'evoluzione di un sistema non produrrà stati indesiderati. (definizioni non formali tratte da wikipedia.org)

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)

Sicurezza In 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.

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.

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

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: IDENTIFICAZIONE VALUTAZIONE RISCHI ANALISI GESTIONE RISCHI ORDINAMENTO IN BASE ALLA PRIORITÀ PIANIFICAZIONE CONTROLLO RISCHI APPLICAZIONE DELLE AZIONI DI ATTENUAZIONE MONITORAGGIO Periodicamente si ripete il ciclo. Almeno una volta all'anno.

Attenuazione del rischio

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.

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

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à).

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.

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;

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.

Roadmap Installazione Firewall Autenticazione su AD Servizi Antivirus Accesso ai file

Non parliamo di... Sicurezza fisica Ridondanza Backup Questi sono elementi che comunque DEVONO essere presi in considerazione PRIMA di installare un server.

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à.

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.

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

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 pacchetto apt-get install nome_pacchetto dselect

Porte in ascolto Per ottenere una lista dei servizi attivi in ascolto (TCP and UDP sockets) si può usare il comando: # netstat -tulp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:auth *:* LISTEN 2328/xinetd tcp 0 LISTEN 0 localhost.localdomain:smtp *:* 2360/sendmail: acce tcp 0 0 *:ssh *:* LISTEN 2317/sshd

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

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

iptables in breve Tabella filter, catene INPUT, OUTPUT, FORWARD Decisione sul routing FORWARD INPUT OUTPUT Processi locali

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

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 accesslists. 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.

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.

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.

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

Autenticare su AD Indicare l'indirizzo del server AD:

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

Autenticare su AD AD è compatibile con LDAP v.3

# /etc/libnss-ldap.conf Autenticare su AD # 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 sambapassword nss_map_attribute gecos name nss_map_attribute uid unixname nss_map_attribute shadowlastchange pwdlastset nss_map_objectclass posixgroup group pam_filter objectclass=user pam_password crypt # Disable SASL security layers. This is needed for AD. sasl_secprops maxssf=0

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: group: shadow: files ldap files ldap files ldap

Autenticare su AD Verificare la configurazione:

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

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......

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=100 auth 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

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 session optional session optional session required pam_unix.so pam_foreground.so pam_krb5.so pam_mkhomedir.so umask=0022 skel=/etc/skel

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.so account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] pam_krb5.so

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

Autenticare su AD Infine verifichiamo il funzionamento: $ kinit 5400 5400@DS.UNITS.IT's Password: $ klist Credentials cache: FILE:/tmp/krb5cc_1000 Principal: 5400@DS.UNITS.IT Issued Expires Principal Jan 25 16:23:06 Jul 26 02:23:58 krbtgt/ds.units.it@ds.units.it

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.

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).

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

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.

Rendere sicuro SSH AllowUsers 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

Rendere sicuro SSH PasswordAuthentication 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: RhostsRSAAuthentication HostbasedAuthentication KerberosAuthentication RhostsAuthentication

Rendere sicuro SSH Protocol 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

Accesso ai file apt-get install acl Granting 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

Filtrare i servizi Utilizzando il firewall Utilizzando xinetd service 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 }

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

Display manager If 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

Apache You 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.

Proteggere la rete By 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].

Proteggere la rete This 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

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.

Tratto da: Andreasson(2001)

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 chain iptables A INPUT p icmp j DROP D chain cancella una regola dalla chain iptables D INPUT p icmp j DROP iptables D INPUT 1 R chain sostituisce una regola alla chain iptables R INPUT 1 s 192.168.0.0/16 j DROP I chain inserisce nel punto specificato una regola iptables 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 catena iptables F INPUT Z chain azzera i contatori di una catena

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.

Catene Una catena definita dall utente può essere indicata come azione (-j) per una regola INPUT regola regola regola regola regola regola tcp_packet_rule regola regola regola regola Il match con regole che delegano a un altra catena una serie di controlli non sono definitive.

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)

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 indicato iptable 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

Opzioni per p udp --sport: analogo alla stessa opzione per il tcp --dport: analogo alla stessa opazione per il tcp

Opzioni per p icmp --icmp-type #: confronta il tipo di pacchetto icmp iptables A p icmp icmp-type 8 j DROP Per sapere i tipi di pacchetti icmp si può dare il comando iptables protocol icmp -help

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 ACCEPT iptables A p tcp! syn j ACCEPT

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_log modprobe ipt_masquerade modprobe ipt_reject modprobe ip_conntrack_ftp modprobe ip_conntrack_irc

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

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, day iptables 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 tempo iptables A INPUT p tcp - syn m limit - limit-burst 5 j ACCEPT

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 intervalli iptables 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 ACCEPT iptables A INPUT p tcp m multiport -destinationport 80,8080 j ACCEPT iptables 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

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 ACCEPT iptables A INPUT p tcp m state - state ESTABLISHED j ACCEPT Con il modulo ip_conntrack_ftp è possibile accettare le connessioni relative alla connessione DATI

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

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)

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

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