/tmp in een file Mede dank aan Unixboy
Veel exploits gebruiken /tmp als bootstrap voor een hackers shell, om zo toegang te krijgen tot een server. Veelal wordt dit gedaan door gebruik te maken van lekke PHP scripts.
Om ervoor te zorgen dat de geuploade shell niet kan worden uitgevoerd, en zo een hoop exploits dus niet meer hun werk kunnen doen, kun je de /tmp map op een andere partitie zetten en mounten met de opties noexec en nosuid.
Helaas komt het vaak voor dat /tmp geen aparte partitie is. De oplossing hiervoor is het mounten van een file als 'virtuele partitie'. Dit gaat als volgt:
Maak een file aan ter grootte van de virtuele partitie:
De 51200 in dit geval geeft aan dat de partitie ca 512Mb moet zijn.Code:cd /dev dd if=/dev/zero of=tmpMnt bs=1024 count=512000 mke2fs /dev/tmpMnt
Backup de huidige /tmp map:
Mount de file als nieuwe partitie en zet de oude files terug en verwijder het kopie:Code:cp -a /tmp /tmp2
Om ervoor te zorgen dat de partitie ook na een reboot wordt gemount, moet de volgende regel aan het eind van /etc/fstab worden gezet:Code:mount -o loop,noexec,nosuid,rw /dev/tmpMnt /tmp chmod 777 /tmp cp -a /tmp2/* /tmp rm -rf /tmp2
Om te testen of uw poging geslaagd is, kun je echo naar /tmp copieren een uitvoeren:Code:/dev/tmpMnt /tmp ext2 loop,noexec,nosuid,rw 0 0
Uw output zou nu moeten zijn:Code:cp /bin/echo /tmp /tmp/echo test
Slaap lekker!Code:bash: /tmp/echo: Permission denied