Siamo arrivati alla quarta puntata dei nostri articoli su come realizzare,
con una macchina Linux, un sistema che possa proteggere la nostra rete locale da
attacchi provenienti da Internet. A tutt’oggi non abbiamo parlato di come,
effettivamente, tradurre in realtà il firewall, non abbiamo tuttora trattato
delle politiche di restrizione, ma abbiamo dato molta importanza su come rendere
l’intero sistema sicuro. Spenderemo ancora un articolo su questo tema per poi
passare, nel prossimo, a parlare di ipchains , il fulcro dell’intero
firewall.
Normalmente molte distribuzioni Linux non permettono l’accesso all’utente root
attraverso telnet o ssh. Questa scelta rappresenta un’ottima politica di
sicurezza, vediamo in dettaglio cosa bisogna fare per attuarla. Editate il file /etc/securetty
e commentate con una # tutte le righe che presentano una occorrenza del
tipo ttypn , dove n è un numero. Ecco un esempio:
$>cat /etc/securetty
tty1
tty2
tty3
tty4
tty5
tty6
#ttyp0
#ttyp1
#ttyp2
Resta inteso che continuerà ad essere possibile diventare super user
attraverso il comando su : vedere a tal proposito il man di tale comando.
Anche l’accesso ftp per l’utente root può rappresentare una falla per la
sicurezza. Per evitare che il super utente possa accedere dobbiamo inserire nel
file /etc/ftpusers la parola root, in altri termini in questo file sono
elencati tutti gli utenti che non devono avere accesso al servizio di ftp.
#/etc/ftpusers
at
bin
daemon
games
gnats
lp
man
mdom
news
nobody
root
uucp
# End.
I diritti del file system
Potrebbe sembrare paranoico, ma anche i diritti che vengono dati ai file
presenti sul nostro sistema non possono essere dati a caso. Basti pensare che un
file può essere un mezzo di "informazione" per l’utente finale o per
l’hacker. Se dessimo la possibilità di leggere a tutti i nostri utenti, il file
/etc/shadow , contenente le password criptate, tutti potrebbero facilmente
effettuare accessi non autorizzati al sistema. Ancora peggio andrebbe se
rendessimo il file shadow riscrivibile a tutti gli utenti: occorrerebbe ben poco
per impostare una password nulla per l’utente root e quindi per entrare
indisturbati nel sistema con i privilegi di super utente. Proprio per evitare
spiacevoli conseguenze vi consiglio di controllare i diritti del file system o
se volete, potete copiare e incollare lo script riportato di seguito, in modo da
dare, velocemente, i giusti diritti ai file del vostro sistema.
# Files in /bin
chmod 750 /bin/mount
chmod 750 /bin/mt
chmod 750 /bin/rpm
chmod 750 /bin/setserial
chmod 750 /bin/umount
# Files in /sbin
chmod 750 /sbin/accton
chmod 750 /sbin/badblocks
chmod 750 /sbin/debugfs
chmod 750 /sbin/depmod
chmod 750 /sbin/dhcpcd
chmod 750 /sbin/dump*
chmod 750 /sbin/fdisk
chmod 750 /sbin/fsck*
chmod 750 /sbin/ftl*
chmod 750 /sbin/getty
chmod 750 /sbin/halt
chmod 750 /sbin/hdparm
chmod 750 /sbin/hwclock
chmod 750 /sbin/ide_info
chmod 750 /sbin/if*
chmod 750 /sbin/init
chmod 750 /sbin/insmod
chmod 750 /sbin/ipfwadm
chmod 750 /sbin/ipx*
chmod 750 /sbin/isapnp
chmod 750 /sbin/kerneld
chmod 750 /sbin/killall*
chmod 750 /sbin/klogd
chmod 750 /sbin/lilo
chmod 750 /sbin/mgetty
chmod 750 /sbin/mingetty
chmod 750 /sbin/mk*
chmod 750 /sbin/mod*
chmod 750 /sbin/netreport
chmod 750 /sbin/pam*
chmod 750 /sbin/pcinitrd
chmod 750 /sbin/pnpdump
chmod 750 /sbin/portmap
chmod 750 /sbin/quotaon
chmod 750 /sbin/restore
chmod 750 /sbin/runlevel
chmod 750 /sbin/stinit
chmod 750 /sbin/syslogd
chmod 750 /sbin/swapon
chmod 750 /sbin/tune2fs
chmod 750 /sbin/uugetty
chmod 750 /sbin/vgetty
# Files in /usr/bin
chmod 750 /usr/bin/eject
chmod 750 /usr/bin/glint
chmod 750 /usr/bin/gnome*
chmod 750 /usr/bin/gpasswd
chmod 750 /usr/bin/ipx*
# Stampanti
chmod 755 /usr/bin/lp*
chmod 4755 /usr/bin/lpr
chmod 750 /usr/bin/mformat
chmod 750 /usr/bin/minicom
chmod 750 /usr/bin/mtools
chmod 750 /usr/bin/netcfg
chmod 750 /usr/bin/rusers
chmod 750 /usr/bin/rwall
chmod 750 /usr/bin/uucp
# Files in /usr/sbin
chmod 750 /usr/sbin/am*
chmod 750 /usr/sbin/at*
chmod 750 /usr/sbin/automount
chmod 750 /usr/sbin/bootp*
chmod 750 /usr/sbin/crond
chmod 750 /usr/sbin/dhc*
chmod 750 /usr/sbin/dip
chmod 750 /usr/sbin/dump*
chmod 750 /usr/sbin/edquota
chmod 750 /usr/sbin/exportfs
chmod 750 /usr/sbin/fixmount
chmod 750 /usr/sbin/ftpshut
chmod 750 /usr/sbin/gated
chmod 750 /usr/sbin/group*
chmod 750 /usr/sbin/grp*
chmod 750 /usr/sbin/imapd
chmod 750 /usr/sbin/in.*
chmod 750 /usr/sbin/inetd
chmod 750 /usr/sbin/ipop*
chmod 750 /usr/sbin/klogd
chmod 750 /usr/sbin/logrotate
chmod 750 /usr/sbin/lp*
chmod 755 /usr/sbin/lsof
chmod 750 /usr/sbin/makemap
chmod 750 /usr/sbin/mk-amd-map
chmod 750 /usr/sbin/mouseconfig
chmod 750 /usr/sbin/named*
chmod 750 /usr/sbin/nmbd
chmod 750 /usr/sbin/newusers
chmod 750 /usr/sbin/ntp*
chmod 750 /usr/sbin/ntsysv
chmod 750 /usr/sbin/pppd
chmod 750 /usr/sbin/pnpprobe
chmod 750 /usr/sbin/pw*
chmod 750 /usr/sbin/quota*
chmod 750 /usr/sbin/rdev
chmod 750 /usr/sbin/rdist
chmod 750 /usr/sbin/repquota
chmod 750 /usr/sbin/rhbackup
chmod 750 /usr/sbin/rotatelogs
chmod 750 /usr/sbin/rpc*
chmod 750 /usr/sbin/rwhod
chmod 750 /usr/sbin/samba
chmod 750 /usr/sbin/setup
chmod 750 /usr/sbin/showmount
chmod 750 /usr/sbin/smb*
chmod 750 /usr/sbin/sndconfig
chmod 750 /usr/sbin/snmp*
chmod 750 /usr/sbin/squid
chmod 750 /usr/sbin/syslogd
chmod 750 /usr/sbin/taper
chmod 750 /usr/sbin/tcpd*
chmod 750 /usr/sbin/time*
chmod 750 /usr/sbin/tmpwatch
chmod 750 /usr/sbin/tunelp
chmod 750 /usr/sbin/user*
chmod 750 /usr/sbin/uu*
chmod 750 /usr/sbin/vi*
chmod 750 /usr/sbin/wire-test
chmod 750 /usr/sbin/xntp*
X-Windows
Negli ultimi tempi sono stati trovati alcuni exploit in X-Windows. Per sicurezza
conviene eseguire i seguenti comandi:
rm -rf /tmp/.X11-unix
mkdir -p -m 1777 /tmp/.X11-unix
chmod o+t /tmp/.X11-unix
Per questa settimana abbiamo terminato: la prossima parleremo di Masquerading
e politiche di restrizione.