Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Sicurezza nei servizi di Linux

Come gestire e rendere più sicuri i servizi attivi su una distribuzione Linux. Dalle regole generali ai comandi di controllo
Come gestire e rendere più sicuri i servizi attivi su una distribuzione Linux. Dalle regole generali ai comandi di controllo
Link copiato negli appunti

Introduzione

I servizi, che sui sistemi *NIX spesso sono chiamati demoni,
costituiscono una delle maggiori fonti di problemi per la sicurezza
di un sistema, sia che aprano porte di rete, sia che rimangano in
stand-by, in locale, in attesa di qualche input. I servizi
che aprono una porta di rete possono essere attaccati da remoto, gli
altri possono essere sfruttati da utenti del sistema, ad esempio,
per acquisire i privilegi di root.

L'istallazione della maggior parte delle distribuzioni Linux comporta
l'attivazione automatica di tutta una serie di servizi, in modo, se
vogliamo anche eccessivo, con l'obiettivo di non creare difficoltà
all'utente medio. Fanno eccezione quelle distribuzioni molto specialistiche,
tipo ASTARO, o quelle ultrapersonalizzabili, tipo GENTOO,
che istallano solo ciò che viene espressamente richiesto, ma in entrambe
i casi si tratta di software utilizzato, e utilizzabile, solo da esperti
(checchè ne dicano i loro estimatori più spinti).

L'istallazione e l'avvio in automatico di questi servizi è molto comoda
e solleva l'utente medio da tutti i complessi problemi di configurazione
del sistema, ma può comportare uno spreco di risorse e delle falle
di sicurezza.

Ovviamente la scelta di quali servizi usare è legata al tipo di uso
del computer che vogliamo fare. I possibili profili di utilizzo sono
quasi infiniti, per delimitare il discorso verrà preso in considerazione
il caso dell'utente medio di Linux che svolge principalmente le seguenti
attività possibili fonti di problemi di sicurezza:

  • naviga in internet
  • usa la posta elettronica
  • usa programmi peer-to-peer
  • fa qualche sito web
  • Regole generali

    Per amministrare i "servizi" è necessario agire come root,
    ma questo non significa che bisogna per forza essersi loggati come
    tali. Si può entrare nell'interfaccia grafica come utente e poi acquisire
    i poteri di root tramite il comando su - da console:

    Password: <password>

    a questo punto si avrà a disposizione un prompt da cui operare come
    amministratore.

    È bene lasciare attivi solo i servizi di cui si ha necessità, anche
    se non tutti comportano gli stessi rischi per la sicurezza. In generale
    si può dire che i più problematici sono quelli che aprono delle porte
    di rete.

    Se un servizio, che apre porte di rete, ci è necessario, lo
    si deve proteggere tramite il firewall dalle connessioni esterne.

    Avvio e arresto dei servizi

    In quasi tutte le distribuzioni Linux, con l'eccezione di Slackware
    e derivate, la gestione della fase di inizializzazione del sistema
    e di avvio dei servizi avviene tramite lo schema denominato SystemV
    (l'altro sistema è chiamato BSD). Una disamina di questi sistemi
    di avvio esula completamente dall'argomento di questo articolo, basta
    sapere che Linux può essere avviato o fermato con differenti configurazioni
    dette run level, ve ne sono 7 numerate da 0 a 6 e corrispondono:

    Spegnimento del sistema.

    1

    Avvio in modalità singolo utente, con il minimo del sistema possibile.
    Questa modalità è usata per la soluzione dei problemi e il recupero.

    2

    Avvio in modalità multiutente senza servizi di rete.

    3

    Come sopra ma con servizi di rete.

    4

    Non utilizzato. Questo livello può essere usato per impostarne
    uno personalizzato.

    5

    Avvio in modalità grafica, multiutente e con servizi di rete.

    6

    Riavvio del sistema.

    Per cui un servizio può essere avviato o fermato in relazione ad uno
    o più di questi run level

    In fase di avvio del sistema

    Per configurare la fase di avvio e arresto dei servizi, in modo automatico,
    all'accensione e spegnimento del sistema, su RedHat e derivate, si
    utilizza l'utility chkconfig.

    Per avere la lista dei servizi utilizzabili e il loro stato:


    ....

    iptables  0:off   1:off   2:off    3:on    4:on    5:on    6:off

    ....

    che ci dice che il servizio iptables
    se attivo viene arrestato) nei run level
    attivato nei run level

    Per modificare l'avvio e l'arresto:

    # chkconfig -level <run levels> <servizio> <on|off>

    Ad esempio se voglio che il servizio httpd run
    level

    Se invece voglio che non venga avviato in automatico mai devo scrivere:

    A sistema avviato

    Potremmo avere la necessità di avviare, fermare, verificare lo stato
    o riavviare un servizio a sistema già avviato. per fare ciò useremo
    l'utility service che usa la seguente sintassi:

    Il tipo di azioni possibili dipende dal servizio, l'elenco è ottenibile
    digitando:

    Le azioni più comuni sono: START, STOP, RESTART, STATUS.

    Interfaccia grafica

    RadHat mette a disposizione l'utility redhat-config-services
    che consente di effettuare quasi tutte le operazioni viste prima tramite
    un'interfaccia grafica.

    Figura 1
    Servizi di Red Hat

    Come possiamo vedere si tratta di uno strumento molto semplice, composto
    da tre quadri. Quello a sinistra dove vi è la lista dei servizi. Il
    quadro a destra in alto in cui compare una breve descrizione del servizio.
    Quello a destra in basso in cui compare lo stato del servizio. Le
    varie operazioni vengono svolte tramite i pulsanti AVVIARE,
    ARRESTARE, RIAVVIARE. Purtroppo tramite l'interfaccia grafica non
    è possibile usare le altre eventuali operazioni possibili.

    Dopo aver introdotto, nel primo articolo di questa breve serie, alcune regole generali sui servizi o demoni linux, in quest'ultima parte vediamo quali sono, come venogno gestiti e a cosa servono i principali servizi di una macchina Linux.

    Servizi critici

    Non saranno trattati tutti i servizi di Linux (sono veramente tanti),
    ma solo quelli che aprono porte di rete e che quindi sono più critici,
    e quelli fondamentali per proteggere la macchina.

    gestisce le funzioni di stampa con il moderno metodo Common
    Unix Print System, che ha sostituito il vecchio "lp".

    porta di rete:
    Printing Protocol) è in ascolto sulla porta 631, sulla quale offre
    anche un servizio di amministrazione via web.

    consigli:
    stampante in locale o in rete. In caso negativo, o nel caso che si
    utilizzi il vecchio metodo disabilitare cups, anche per chiudere la
    porta 631 su cui è in ascolto.

    httpd

    si tratta del celeberrimo Apache, cioè il webserver standard
    di Linux. Viene utilizzato sia per fornire servizi web esterni e interni,
    sia come ambiente di sviluppo per applicazioni web.

    porta di rete:
    porta 80.

    consigli:
    se non è utilizzato, se si usa solo per servizi interni o come ambiente
    di sviluppo allora è necessario impostare il firewall in modo che respinga
    qualunque tentativo di connessione dall'esterno della macchina.

    iptables

    è il servizio che gestisce il complesso sistema "netfilter"
    di protezione, reindirizzamento dei pacchetti, ecc... in altre parole
    il firewall. Questo programma si appoggia su un intero ramo di moduli
    del kernel che gli conferiscono un'efficienza elevatissima.

    porta di rete:
    ma è in grado di controllarle tutte.

    consigli:
    sia collegata ad una rete.

    lisa

    servizio che consente la navigazione tramite browser all'interno
    di un network utilizzando il protocollo TCP/IP, fornisce funzionalità
    simili a quelle di Netbios di Windows.

    porta di rete:

    consigli:
    può essere sostituito da altri molto più sicuri come Samba, nfs, ecc..

    mysqld

    servizio server del celeberrimo database RDBMS opensource
    MySQL.

    porta di rete:

    consigli:
    indiscutibili. È il più usato su internet e sta avanzando in ambito
    SOHO. Attivare il servizio solamente se lo si sta utilizzando effettivamente,
    poichè apre la porta 3306 con connessione non protetta. Se lo si usa
    in locale o come ambiente di sviluppo si consiglia di impostare il firewall
    in modo che non accetti connessioni dall'esterno su tale porta.

    named

    servizio relativo al protocollo DNS per la risoluzione dei
    nomi, basato sul celeberrimo programma BIND. È uno dei servizi necessari
    per la vita di internet, ma è uno dei più insicuri.

    porta di rete:

    consigli:
    del nome di dominio, ad esempio shishii.com, in indirizzo IP) è uno
    dei servizi essenziali per internet e qualuque rete complessa, però
    sia per le caratteristiche intrinseche del protocollo DNS, sia per
    la sua implementazione software ubiquitaria, BIND, è gravemente insicuro,
    per cui si consiglia di attivare sul proprio computer questo servizio
    solo se necessario, altrimenti è meglio ricorrere al vecchio ed affidabile
    file /etc/hosts.

    netfs

    servizio dedicato al mount dei filesystem di rete quali NFS
    (UNIX), SMB (Lan Manager/Windows), e NCP (NetWare/Novell).

    consigli:
    di rete per condividere files, altrimenti disattivare.

    nfs

    gestisce il protocollo di condivisione files in rete standard
    UNIX cioè NFS. In realtà è composto da tre servizi in collaborazione:
    rpc.mountd (gestisce il mount sul client dei volumi nfs remoti), nfsd
    (gestisce le richieste dei client), rpc.rquotad (gestisce le quote
    di spazio assegnato ai client sul server).

    porta di rete:

    consigli:

    nfslock

    gestisce le funzioni di lock sui volumi posti in share tramite
    NFS e impedisce la corruzioni di files e partizioni a causa di accessi
    concorrenti.

    consigli:
    nfs, altrimenti da disattivare.

    ntpd

    gestisce la sincronizzazione del timer del computer tramite query a dei server centrali utilizzando il protocollo NTP.

    porta di rete:

    consigli:
    precisa e continua sincronizzazione del timer della macchina, altrimenti
    è meglio evitare di avere la porta 123 aperta.

    portmap

    gestisce le connessioni RPC e quindi è necessario per l'uso
    di tutti quei protocolli che ne fanno uso come NFS, NIS, CODA, ecc.

    porta di rete:

    consigli:
    necessita. Infatti pur essendo, in tali casi, necessario è una delle
    fonti maggiori di problemi di sicurezza per un sistema in rete, basti
    dire che è una delle falle che viene cercata con maggiore "desiderio"
    da Nmap.

    postgresql

    servizio che gestisce l'avvio, il fermo e il riavvio
    del database RDBMS open source PostgreSQL.

    porta di rete:

    consigli:
    indiscutibili. È usato su internet e sta avanzando in ambito SOHO.
    Inoltre è più adatto di MySQL per grossi carichi di lavoro, anche
    se è più lento. Attivare il servizio solamente se lo si ta utilizzando
    effettivamente, poichè apre la porta 5432 con connessione non protetta.
    Se lo si usa in locale o come ambiente di sviluppo si consiglia di
    impostare il firewall in modo che non accetti connessioni dall'esterno
    su tale porta.

    sendmail

    si tratta del servizio che gestisce il serve di posta MTA più usato al mondo "sendmail", usa il protocollo SMTP.

    porta di rete:

    consigli:
    per la spedizione di posta, o come piattaforma di sviluppo per programmi
    che inviano posta, ad esempio le applicazioni web. Altrimenti disabilitare
    per evitare i molti problemi di sicurezza che sendmail si porta dietro.

    smb

    In realtà si tratta di due servizi che vengono lanciati "smbd"
    e "nmbd"
    la condivisione di files, directory, ecc. con macchine Windows.

    porta di rete:
    137, 138, 139, 445.

    consigli:
    per la condivisione con macchine Windows. In caso contrario disattivare
    i servizi che come visto aprono molte porte delicate.

    snmpd

    Gestisce il protocollo Simple Network Manager Protocol, utilizzato
    per tenere sotto controllo sistemi remoti e amministrarli.

    porta di rete:

    consigli:
    tenuti sotto controllo e, in maniera limitata, amministrati da remoto.
    Si tenga comunque presente che la versione 1 comunica in chiaro, e
    quindi è molto insicura, la versione 2 prevede la funzione di crittografia
    tramite MD5 relativamente debole. La prossima versione, 3, dovrebbe
    risolvere questi ed altri problemi.

    snmptrapd

    Gestisce la funzione "trap" del protocollo suddetto,
    tramite la quale è la macchina tenuta sotto controllo che prende l'iniziativa
    delle comunicazione.

    porta di rete:

    consigli:

    squid

    Servizio relativo al più famoso proxy server HTTP e FTP open
    source, l'omonimo "Squid".

    porta di rete:
    in genere: 3128, 8080, 8081.

    consigli:
    utile in tutti casi in cui si ha la necessità di ottimizzare e controllare
    l'accesso ad internet.

    sshd

    Si tratta di uno dei servizi fondamentali per la rete, consente di aprire shell, trasferire files, ed altro su macchine remote, in completa sicurezza, tramite comunicazioni criptate in maniera efficace.

    porta di rete:

    consigli:
    verso cui ci può essere la necessità di doversi collegare da remote
    ed aprire una shell. Si possono anche effettuare upload, download,
    amministrazione in sicurezza.

    xfs

    avvia il font server necessario per l'utilizzo dell'interfaccia
    grafica "X".

    porta di rete:
    porta 7100.

    consigli:
    Linux in modalità grafica.

    xinetd

    chiamato anche il "superdemone" serve a fare avviare
    e tenere sotto controllo tutta una serie di servizi minori e, tendenzialmente,
    poco affidabili, quali: telnet, finger, time, rlogin, rcp, ecc.

    porta di rete:
    gestire servizi minori le porte impegnate dipendono da quali vengono
    avviati.

    consigli:
    di spostare l'attenzione su quali servizi amministrati fargli avviare
    e quali no.

Ti consigliamo anche