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/

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 …
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 !!!
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