Отърви се от стандартните настройки на сървъра

Съдържанието на статията

Често, когато разполагаме сървър за нашия ресурс или конфигурираме друг софтуер, по подразбиране оставяме повечето опции в конфигурационните файлове. Тогава проектът се обраства с функционалност и конфигурациите се обръщат все по-малко внимание, превръщайки се в бомби със закъснител, които атакуващият може успешно да използва. Ето защо днес ще разгледаме параметрите за сигурност на популярния сървърен софтуер, чиято конфигурация не трябва да се отлага за неопределено време.

Нека започнем с конфигурацията на индийския, който е спечелил място на много сървъри в мрежата. Първата конфигурация, която искате да направите, е да направите невъзможно атакуващият да знае версията на Apache. За това има две директиви, които трябва да бъдат зададени на следните стойности:

Индивидуален потребител и група

Втората точка е да се уверите, че Apache работи под свой собствен потребител и група. Ако например СУБД ще работи при същия потребител, тогава в случай на компрометиране на уеб сървър, нападателят ще може да получи достъп до базата данни.

Основна директория

След това трябва да се уверите, че файловете извън основната директория не се обработват от уеб сървъра. Ако приемем, че всички сайтове на сървъра са в една и съща директория (да речем/web), конфигурацията трябва да изглежда така:

  • деактивиране на сървърната страна включва - Опции -Включва;
  • деактивирайте изпълнението на CGI - Опции -ExecCGI;
  • предотвратяват отварянето на Apache на символни връзки - Опции -FollowSymLinks .

Ресурси и DoS

За да смекчите ефекта от DoS атаки, можете да намалите стойността на времето за изчакване - Timeout 45. Като алтернатива можете също да зададете ограничение за размера на тялото на заявката, като го направите, например, равно на 1 MB - LimitRequestBody 1048576. Като цяло следните параметри ще повлияят на поведението на сървъра с повишено внимание към него от страна на ботовете: RequestReadTimeout, KeepAliveTimeout, MaxRequestWorkers, както и директиви, ограничаващи консумацията на ресурси: LimitRequestFields, LimitRequestFieldSize, LimitRequestLine и LimitXMLRequestBody

Ограничение на достъпа

Ако ресурсът, разположен на сървъра, е предназначен само за определена подмрежа, можете да ограничите достъпа до него:

сървъра

Защита на настройките

За да защитите настройките за защита, които сте направили в конфигурационния файл, и да попречите на потребителите да ги променят, можете да деактивирате поддръжката на htaccess файлове:

отърви

Повечето трудни за улавяне проблеми на уеб сървъра (които също могат да повлияят на сигурността) се дължат на неправилна конфигурация. Уебсайтът на Apache съдържа списък с типични погрешни конфигурации, с обяснение на проблема и решение.

Следващият гост на нашия преглед е уеб сървърът nginx. Първо, възможно е, както в случая с Apache, да скриете типа и версията на сървъра, това е така наречената сигурност чрез неяснота, която ще принуди нападателя да отдели допълнително време. За да направите това, променете редовете във файла src/http/ngx_http_header_filter_module.c

След това компилирайте сървъра. За да скриете версията на сървъра, добавете опцията server_tokens off в конфигурационния файл nginx.conf. Сега за нападателя няма да е толкова лесно да разбере вида на уеб сървъра и неговата версия. Което вече е добре.

Ограничаващи буфери

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

  • client_body_buffer_size определя размера на буфера за клиентската заявка;
  • client_header_buffer_size задава размера на буфера за четене на заглавката на заявката на клиента;
  • client_max_body_size - максималният размер на тялото на заявката на клиента;
  • large_client_header_buffers задава максималния брой и размер на буферите за четене на заглавка на голям клиент.

Филтриране на потребителски агенти

Конфигурационният файл nginx.conf ви позволява гъвкаво да конфигурирате уеб сървъра за себе си. Например можете да откажете достъп до определени потребителски агенти - ботове, скенери, изтеглящи: