next up previous contents index
Next: Web server Up: Network Previous: Introduzione   Contents   Index

Subsections

Sicurezza

Entrare in rete può portare vantaggi ma anche esporsi a problematiche di sicurezza e stabilità delle proprie attività. I passi seguenti sono semplici passi per garantire un buon livello di sirezza per la vostra macchina.


Configurare inetd.conf

Il demone inetd viene chiamato il ``super server'' perchè si occupa di gestire un numero elevato di programmi su chiamate di rete. Il file /etc/inetd.conf illustra al proprio demone quali porte devono rimanere in ascolto e quali programmi si devono occupare delle singole porte.

Seguire i passi seguenti per aumentare la sicurezza della vostra macchina:

  1. Cambiare i permessi sul file di configurazione:  
     
    # chmod 600 /etc/inetd.conf 

    in modo che il vostro file abbia i permessi di lettura per il solo proprietario.
  2. Assicuratevi che il proprietario del file sia l'utente root:

    # ls -la /etc/inetd.conf 
    -rw-r-r-     1 root   root   2070 Dec 25 02:12 inetd.conf
     
    Se così non fosse digitare quanto segue: 
     
    # chown root /etc/inetd.conf

  3. Modificate il file /etc/inetd.conf commentando ogni riga relativa a servizi non necessari.

    # To re-read this file after changes, just do a 'killall -HUP inetd' 
    # 
    #echo   stream  tcp     nowait  root    internal 
    #echo   dgram   udp     wait    root    internal 
    #discard        stream  tcp     nowait  root    internal  
    #discard        dgram   udp     wait    root    internal  
    #daytime        stream  tcp     nowait  root    internal  
    #daytime        dgram   udp     wait    root    internal  
    #chargen        stream  tcp     nowait  root    internal  
    #chargen        dgram   udp     wait    root    internal  
    #time   stream  tcp     nowait  root    internal  
    #time   dgram   udp     wait    root    internal  
     
    # These are standard services.  
    # 
    #ftp    stream  tcp   nowait  root  /usr/sbin/tcpd  in.ftpd -l -a  
    #telnet stream  tcp   nowait  root  /usr/sbin/tcpd  in.telnetd 
    # 
    # Shell, login, exec, comsat and talk are BSD protocols.  
     
    #shell  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd  
    #login  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind  
    #exec  stream   tcp     nowait  root    /usr/sbin/tcpd  in.rexecd  
    #comsat dgram   udp     wait    root    /usr/sbin/tcpd  in.comsat  
    #talk   dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd  
    #ntalk   dgram  udp     wait    root    /usr/sbin/tcpd  in.ntalkd  
    #dtalk  stream  tcp     waut    nobody  /usr/sbin/tcpd  in.dtalkd 
    # 
    # Pop and imap mail services et al 
    # 
    #pop-2  stream tcp    nowait root   /usr/sbin/tcpd ipop2d 
    #pop-3  stream tcp    nowait root   /usr/sbin/tcpd  ipop3d 
    #imap   stream tcp    nowait root   /usr/sbin/tcpd  imapd 
    # 
    # The Internet UUCP service. 
    # 
    #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l 
    # 
    # Tftp service is provided primarily for booting.  Most sites 
    # run this only on machines acting as `boot servers.` Do not uncomment 
    # this unless you *need* it. 
    # 
    #tftp   dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd  
    #bootps dgram   udp     wait    root    /usr/sbin/tcpd  bootpd 
    # 
    # Finger, systat and netstat give out user information which may be 
    # valuable to potential `system crackers.` Many sites choose to disable 
    # some or all of these services to improve security. 
    # 
    #finger  stream tcp  nowait  root  /usr/sbin/tcpd in.fingerd  
    #cfinger stream tcp  nowait  root  /usr/sbin/tcpd in.cfingerd  
    #systat  stream tcp  nowait  guest /usr/sbin/tcpd /bin/ps -auwwx 
    #netstat stream tcp  nowait  guest /usr/sbin/tcpd /bin/netstat -f inet 
    # 
    # Authentication 
    # 
    #auth stream tcp nowait nobody /usr/sbin/in.identd in.identd -l -e -o 
    # 
    # End of inetd.conf 
     
    Una volta commentate le righe indicate è necessario riavviare il demone inetd digitando: 
     
    # killall -HUP inet

Una ulteriore precauzione può essere quella di rendere sicuro il nostro file di configurazione da modifiche e alterazioni. Per renderlo ``immutabile'' digitiamo:

# chattr +i /etc/inetd.conf 
 
Il comando digitato ``blocca'' il nostro file da ogni alterazione o modifica e non si possono creare link a quest'ultimo. L'unico modo per poter nuovamente apportare modifiche è utilizzare lo stesso comando precedentemente digitato con un opzione differente: 
 
# chattr -i /etc/inetd.conf
 
Per maggiori informazioni sul comando chattr andate a pagina [*].

TCP_WRAPPERS

Utilizzando TCP_WRAPPERS si può rendere maggiormente sicuro il vostro computer da intrusioni malintenzionate dall'esterno. Per applicare questi parametri di sicurezza è necessario agire su due file:

/etc/hosts.allow

/etc/hosts.deny

Una configurazione tipo può essere la seguente:

  1. Editare il file /etc/hosts.deny (utilizzando qualsiasi editor di testo, esempio vi) e aggiungere le seguenti stringhe di comandi:

    #Accesso vietato a chiunque  
    ALL:ALL@ALL, PARANOID

    Ogni servizio richiesto da qualsiasi locazione è bloccato.
  2. Editare il file /etc/hosts.allow e aggiungere:

    sshd: 193.207.49.111 host.server.org

    La configurazione è un esempio che concede unicamente all'ip indicato con risoluzione erlug.linux.it di connettersi al vostro computer utilizzando il demone sshd per le connessioni criptate.
  3. Verificate le vostre configurazioni lanciando il seguente comando: 
     
    # tcpdchk

Il file /etc/aliases

Il file relativo agli aliases può essere utilizzato per attacchi o per ottenere particolari privilegi all'interno del sistema. Per tale motivo è bene apportare alcune modifiche per garantirsi. Ecco di seguito un esempio di file /etc/aliases:

#

# @(#)aliases  8.2 (Berkeley) 3/5/94

#

# Aliases in this file will NOT be expanded in the header from

# Mail, but WILL be visible over networks or from /bin/mail.

#

#>>>>>>>>> The program `newaliases` must be run after

# >> NOTE >> this file is updated for any changes to

#>>>>>>>>> show through to sendmail.

#

# Basic system aliases - these MUST be present.

MAILER-DAEMON:  postmaster

postmaster:     root 

# General redirections for pseudo accounts.

bin:            root

daemon:         root

#games:         root     commentato o rimosso

#ingres:        root     commentato o rimosso

nobody:         root

#system:        root     commentato o rimosso

#toor:          root     commentato o rimosso

#uucp:          root     commentato o rimosso 

# Well-known aliases.

#manager:       root     commentato o rimosso

#dumper:        root     commentato o rimosso

#operator:      root     commentato o rimosso 

# trap decode to catch security attacks

#decode:        root     commentato o rimosso 

# Person who should get root's mail

#root:          marc 

le righe indicate possono essere commentate o rimosse a piacimento e limiteranno le possibilità di eventuali attacchi. Ad esempio, l'alias ``decode'' viene utilizzato per convertire eventuali file binari convertiti in ASCII con uuencode. Potete capire da voi come sia importante commentare tale voce per limitarne totalmente l'utilizzo.

Una volta terminate le modifiche è necessario lanciare il comando seguente:

# /usr/bin/newaliases

Mascherare informazioni di sistema

Per camuffare informazioni relative al proprio sistema a persone che si collegano remotamente è bene prendere alcune precauzioni. Se le uniche connessioni remote concesse sono quelle tramite telnet è necessario modificare il file ``/etc/inetd.conf'' aggiungendo alla riga seguente:

telnet stream  tcp   nowait  root  /usr/sbin/tcpd  in.telnetd

l'opzione ``-h'' come segue:

#telnet stream  tcp   nowait  root  /usr/sbin/tcpd  in.telnetd -h

Se si desidera ampliare il mascheramento a tutte le eventuali connessioni remote con servizi diversificati è bene modificare il file /etc/rc.local:

...

# This will overwrite /etc/issue at every boot. So, make any changes you

# want to make to /etc/issue here or you will lose them when you reboot.

   #echo `` > /etc/issue

   #echo `$R` >> /etc/issue

   #echo `Kernel $(uname -r) on $a $(uname -m)` >> /etc/issue

   #cp -f /etc/issue /etc/issue.net

   #echo >> /etc/issue

... 

Come si può notare le righe riportate sono state commentate con un ``#'' per evitare che venga generato il file issue e issue.net. A questo punto bisogna eliminare i seguenti file:

# rm -fr /etc/issue.net /etc/issue

I file cancellati sono i banner informativi presentati sia durante una connessione di rete che locale.

Il file /etc/securetty

Questo file permette di configurare quale device TTY è concesso all'utente root. Di seguito una configurazione tipo del file:

tty1

#tty2

#tty3

#tty4

#tty5

#tty6

#tty7

#tty8

Come potete notare sono stati commentati tutti i device TTY tranne il primo. L'utente root potrà connettersi al sistema unicamente da quest'ultimo. Se avessimo commentato ogni device sarebbe stato possibile entrare nel sistema come utenti comuni e diventare root con il comando su (pagina [*]).

FAQ

Domanda: ``Mentre sono collegato ad Internet qualcuno tenta di fare del portscanning sulla mia macchina. Come posso proteggermi?''

La parola chiave è ``firewall'' e in questo caso torna utile ipchains. L'argomento di firewalling meriterebbe libri su libri ma per rispondere alla vostra esigenza potete semplicemente digitare:

# ipchains -A input -j REJECT -s XXX.XXX.XXX.XXX -d 0/0 -p all

Dove ``XXX.XXX.XXX.XXX'' è l'indirizzo IP della macchina che vi attacca.

Domanda: "E' possibile sapere quali servizi sono attivi sulla mia macchina e controllare chi li utilizza?"

Per controllare i servizi attivi digitare:

# netstat -na | grep -i listen

Per sapere chi è connesso:

# netstat -na | grep -i established


next up previous contents index
Next: Web server Up: Network Previous: Introduzione   Contents   Index

Linux Facile - ver.4.0 - http://www.linuxfacile.org
autore: Daniele Medri <madrid@linux.it>