Proteggi il tuo server rendendo non eseguibili i binari in /tmp,/var/tmp e /dev/shm

Gran parte degli attacchi subiti ai danni di server linux avviene in questo modo:

Sfruttando una vulnerabilita' di uno script php presente su uno dei siti ospitati sul server, l'attacker pubblica in /tmp  un exploit che gli consente di effettuare una scalata di privilegi ad utente 'root'.

Inibendo quindi l'esecuzione dei binari in /tmp,/var/tmp e /dev/shm faremo fronte a molti attacchi in modo del tutto trasparente e senza dover installare alcun tipo di software!

Per far cio' andremo per prima a creare un file chiamato /secured_tmp di tipo ext2, lo monteremo ed andremo a copiare al suo interno tutti i dati attualmente presente in /tmp.
Imposteremo i corretti permessi ed editeremo il file '/etc/fstab' per far si che al prossimo riavvio del server la nostra nuova /tmp venga montata:

dd if=/dev/zero of=/secured_tmp bs=1024 count=100000
mke2fs /secured_tmp
losetup /dev/loop0 /secured_tmp
mount /dev/loop0 /mnt/
cp -R /tmp/* /mnt
umount /mnt/
losetup -d /dev/loop0
mount -o loop,rw,nosuid,noexec /secured_tmp /tmp
chmod 1777 /tmp

inserire in /etc/fstab questo:

/secured_tmp    /tmp    ext2    loop,rw,nosuid,noexec   0       0

Adesso e' il turno di /var/tmp! In questo caso creeremo solamente un link simbolico verso /tmp:

cp /var/tmp/* /tmp/ -rdap
mv /var/tmp/ /var/tmp_old
ln -s /tmp/ /var/tmp
rm -fr /var/tmp_old/

Un ultimo passaggio ed abbiamo terminato. Dobbiamo inserire in /etc/fstab questo:

none            /dev/shm        tmpfs   defaults,nosuid,noexec,rw       0      0