22.4. Настройка разрешений и принадлежности файлов Apache

Проблема
Требуется задать файловые разрешения для установки Apache.
Решение
Сначала убедитесь в том, что двоичный файл httpd принадлежит только root,
защищен от записи и не может читаться непривилегированными пользовате лями!
# chown root:root /usr/sbin/httpd
# chmod 511 /usr/sbin/httpd
Затем создайте непривилегированного пользователя специально для httpd:
# useradd -с "httpd owner" -d /dev/null -s /bin/false -u httpd
Откройте файл /etc/httpd/conf/httpd.conf и настройте httpd на запуск с права ми этого пользователя (секция 2):
User httpd
Затем создайте уникального пользователя и группу, которым будут принадле жать каталоги веб-страниц (в следующем примере web):
# groupadd -g 60 web
# useradd -с "Web Server" -d /var/www/ -g web -s /bin/false -u web
# chown -R web:web /var/www/http
# chmod -R 755 /var/www/http
He забудьте включить в группу web пользователей, которым разрешено редак тирование веб-страниц. Перезапустите Apache:
# apachectl restart
Комментарий
Двоичный файл httpd принадлежит root, но работает с разрешениями root столько
времени, сколько необходимо для запуска производных процессов, запускаемых
с правами пользователя с минимальными привилегиями. Httpd вообще не работа ет с сетью; вся работа выполняется производными процессами. По умолчанию
используется учетная запись nobody, но делать этого не стоит — она используется
слишком часто и является излюбленным объектом для атак. Никогда не исполь зуйте существующие системные учетные записи; всегда создавайте для демонов
и серверов уникальных пользователей.
При помощи разрешений файловой системы Linux можно управлять тем, кому
из пользователей будет разрешен доступ к подкаталогам и файлам веб-страниц.
Apache — надежно защищенное приложение. Как правило, для атак чаще все го используются слабости операционной системы, а также дефекты, связанные
с добавлением сценариев на стороне сервера, добавлением веб-форм и генериро ванием динамического контента в PHP, Perl, Python и т. д.
см. также
http://httpd.apache/org/docs-2.0/misc/securi ty_tips.html.