Mettere in sicurezza /tmp, /var/tmp e /dev/shm

A chi non è capitato di essere “bucato” e di essersi salvato per il rotto della cuffia. Piuttosto di “ringraziare la Madonna” (come dice il nostro “amatissimo” Totò Cuffaro) ecco un paio di dritte per mettere in sicurezza /tmp e /dev/shm …

Step 1: Securing /tmp

Step 1.1: Backup your fstab file

cp /etc/fstab /etc/fstab.bak

Step 1.2: Creating /tmp filesystem

cd /var
dd if=/dev/zero of=/var/tmpFS bs=1024 count=1048576
mkfs.ext3 -j /var/tmpFS

Step 1.3: Making backup of old /tmp

mkdir /tmp_backup
mv /tmp/* /tmp_backup/
mv /tmp/.* /tmp_backup/

Step 1.4: Adding new /tmp filesystem to fstab

echo “/var/tmpFS /tmp ext3 loop,rw,noexec,nosuid,nodev 0 0″ >> /etc/fstab
rm -rf /tmp
mkdir /tmp
mount /var/tmpFS
chmod 1777 /tmp

Step 1.5: Moving /tmp backup to the new /tmp filesystem

mv /tmp_backup/* /tmp/
mv /tmp_backup/.* /tmp/
rm -rf /tmp_backup

Step 2: No need for 2 tmp filesystems, so we symlink /tmp to /var/tmp

rm -rf /var/tmp/
ln -s /tmp/ /var/

Step 3: Securing /dev/shm
Remove the tmpfs /dev/shm line, and replace it with this:

tmpfs /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0

Step 4: Double Check your fstab, it should look like this:

/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/var/tmpFS /tmp ext3 loop,rw,noexec,nosuid,nodev 0 0

Check for duplicates etc, anything that may be wrong.

Link: http://www.securecentos.com/basic-security/secure-tmp/

    • Moretta
    • 14 marzo 2010

    Ciao volevo maggiori informazioni su questa messa in sicurezza.

    Ho un webserver dedicato aruba su cui girano solo siti web ad alto traffico pph-apache-mysql e la sicurezza per me e’ importante.

    Ho impostato mysql tmpdir sulla /dev/shm

    Prima di operare vorrei come verifico se questi setting di sicurezza sono stati gia’ applicati.
    Di seguito il mio /etc/fstab:

    /dev/sda1 / ext3 defaults,user_xattr 1 1
    /dev/sdb1 /var/tmp xfs rw,noexec,nosuid,noatime,nodiratime,logbufs=8,logbsize=32768b,biosize=16 0 0
    /dev/sdb2 /var/www/html xfs rw,noatime,nodiratime,logbufs=8,logbsize=32768b,biosize=16 0 0
    tmpfs /dev/shm tmpfs defaults 0 0
    devpts /dev/pts devpts gid=5,mode=620 0 0
    sysfs /sys sysfs defaults 0 0
    proc /proc proc defaults 0 0
    /dev/sda2 swap swap defaults 0 0

    • La “/var/tmp” contiene i valori: noexec,nosuid,noatime,nodiratime
      noexec = non permette l’ esecuzione dei programmi presenti nel filesystem
      nosuid = i bit di setuid e setgid non vengono presi in considerazione
      noatime = non aggiorna la data di accesso all’inode ad ogni accesso. Aumenta la velocità di accesso ai dati
      nodiratime = dovrebbe essere la stessa cosa per le directory (non so sinceramente)
      Quindi dalla tmp non è possibile eseguire programmi. Ed è cosa buona è giusta.

      In generale non mi sembra che a sicurezza sei messa male.
      Mi stranizza che la tmp di MySQL è “appoggiata” a /dev/shm e non a /var/tmp …

    • Moretta
    • 14 marzo 2010

    Volevo inoltre segnalarti il link corretto dell’articolo su secure centos:
    http://www.securecentos.com/basic-security/secure-tmp/

    l’hanno cambiato!
    :)

    • Grazie per la segnalazione. Link modificato !!!

    • Moretta
    • 14 marzo 2010

    La modifica di spostare mysql tmpdir sulla /dev/shm e’ in testing per motivi di perfomance, ho letto che sono sensibilmente migliori se faccio operazioni tali da non sforare lo spazio allocato dalla /dev/shmh.

    Articolo di rif.:
    http://openquery.com/blog/update-mysql-tmpdir-tmpfs

    Grazie per la conferma sulla situazione sicurezza della mia temp, ma creo vulnerabilita’ o problemi per mysql tmpdir su /dev/shm?

    saluti
    Paola

  1. No trackbacks yet.