apache symlink protection for cPanel
Привет,
Днес ще пиша за един наболял за мен проблем свързан с толкова омразното apache и проблема му със symlink защитита. Оказва се че при apache 2.2 такава защита по подразбиране няма. Има опция която може да се пусне : -FollowSymLinks , но тя лесно може да бъде заобиколена, от слагането на един прост .htaccess файл със следните неща:
Options all Options +Indexes Options +FollowSymLinks DirectoryIndex Sux.html AddType text/plain .php AddHandler server-parsed .php AddType text/plain .html AddHandler txt .html Require None Satisfy Any
Проблемът:
А проблема в случая е следния. Имаме cpanel сървър и много умрели Joomla и wordpress сайтове пълни с какви ли не стари и по-стари темплейти и плугини.
Някой псевдо хакер намира дупка в тях, и качва така накеченият експлойт (по-долу ще го покажа)
След като го стартира, самият експлойт прави symlink на всички home директории и на главната / . С опциите пуснати по-горе (+Indexes и +FollowSymLinks) хакерът вече може съвсем спокойно да си разцъка из директориите на другите потребители и да разгледа техните конфиг файлове на сайтовете. Тук е ясно какви могат да бъдат последствията.
Аз много съжалявам, че на тези наши сървъри apache-то още работи, но докато от Cpanel.net не накарат WHM/Cpanel да работят изцяло с nginx и php5-fpm примерно, ще имаме тези проблеми. Само да вметна , че за nginx има една проста опция :
disable_symlinks on;
която оправя този проблем…. но когато използваме nginx пред apache само за прокси, трябва да търсим решение на проблема в самото apache.
Решението:
Решението се оказа доста просто, но беше необходимо време докато го намеря.
Изпълнява се следният код :
wget http://layer1.rack911.com/before_apache_make -O /scripts/before_apache_make chmod 700 /scripts/before_apache_make /scripts/easyapache
След това може да се тества и да се види, че проблема вече не съществува! 🙂
Ето линк с експлойт-а , като тук искам да подчертая, че го качвам само за да се тества, не да се правят злонамерени неща с него!
Успех!