7 янв. 2015 г.

Защита nginx на сервере

Защита nginx на сервере многогранна.

Одна из граней, пока у нас не увели рута или юзера с правами рута, то логи nginx нужно обогатить:

if ($request_method ~ "^POST$") {
    access_log /var/log/nginx/access-POST-$server_name.log main_post;
}
if ($request_method ~ "^(PUT|OPTIONS|HEAD|PATCH|DELETE|TRACE|CONNECT)$") {
    access_log /var/log/nginx/access-PUT-$server_name.log main_post;
}

ну и:

log_format main_post '$remote_addr [$time_local] $host "$request" '
    '$status $body_bytes_sent [$request_body] "$http_referer" '
    '"$http_user_agent"';

ну и client_body_buffer_size в /etc/nginx/nginx.conf установить как вам нужно, чтобы ваши запросы помещались, а хакерские нет :)
или наоборот, ставьте побольше, чтобы любой хакерский запрос поймать.

и защитить:

chown nginx:nginx /var/log/nginx
chmod 200 /var/log/nginx

последнее особенно удивительно для меня, самоучки, но логи пишутся, а больше убирать там нечего :)

UPDATE уже ночью
логи то пишутся, но после рестарта nginx хочет прочитать старое, чтобы добавить новое и не может.
поэтому

chmod 600 /var/log/nginx

и наблюдаем дальше...

И да, Ceterum censeo Lugansk esse delendam!

Комментариев нет: