Apache HTTP

Как да защитите вашия Apache сървър

Как да защитите вашия Apache сървър
Apache е популярен уеб сървър с отворен код, достъпен както за Linux, така и за Windows системи. Позволява конфигуриране за разнообразен набор от случаи на употреба, от HTML уеб страници до HyperText Preprocessor (PHP) динамично съдържание на уеб приложения.Apache предоставя сигурна и стабилна платформа за разполагане на вашите уеб приложения. Все пак е важно да инсталирате най-новите корекции за сигурност и да конфигурирате сървъра правилно, за да създадете защитена среда за вашите уеб приложения.
В тази статия ще намерите някои съвети и трикове за подобряване на конфигурациите на вашия Apache Web Server и подобряване на общата сигурност.

Непривилегирован потребителски акаунт

Целта на потребителския акаунт, който не е root или не е привилегирован, е да ограничи потребителя от ненужен достъп до определени задачи в системата. В контекста на уеб сървър на Apache това означава, че той трябва да работи в ограничена среда само с необходимите разрешения. По подразбиране Apache работи с привилегии на демонен акаунт. Можете да създадете отделен некоренски потребителски акаунт, за да избегнете заплахи в случай на уязвимости в сигурността.

Освен това, ако apache2 и MySQL са с едни и същи потребителски идентификационни данни, всеки проблем в процеса на веднъж услугата ще има влияние върху другия. За да промените привилегиите на потребителя и групата за уеб сървъра, отидете на / etc / apache2, отворете файла envvars и задайте потребителя и групата на нов непривилегирован потребител на акаунт, да речем „apache“ и запазете файла.

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars
... изрязване ..
експортиране APACHE_RUN_USER = apache
експортирайте APACHE_RUN_GROUP = apache
... изрязване ..

Можете също да използвате следната команда, за да промените собствеността на инсталационната директория на новия потребител без root.

ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2
Издайте следната команда, за да запазите промените:
ubuntu @ ubuntu ~: $ sudo service apache2 рестартиране

Поддържайте Apache актуален

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

За да актуализирате apache с помощта на apt, въведете следното:

ubuntu @ ubuntu ~: $ sudo apt-get update
ubuntu @ ubuntu ~: $ sudo apt-get upgrade

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

Конфигурацията по подразбиране на Apache Server разкрива много подробности за сървъра и неговите настройки. Например активирани директиви ServerSignature и ServerTokens в / etc / apache2 / apache2.conf добавете допълнителен заглавие към HTTP отговора, който излага потенциално чувствителна информация. Тази информация включва подробности за настройките на сървъра, като версия на сървъра и хостинг ОС, които могат да помогнат на нападателя в процеса на разузнаване. Можете да деактивирате тези директиви, като редактирате apache2.conf чрез vim / nano и добавете следната директива:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.конф
... изрязване ..
Подпис на сървъра е изключен
... изрязване ..
ServerTokens Prod
... изрязване ..

Рестартирайте Apache, за да актуализирате промените.

Деактивирайте списъците със сървърни директории

Списъкът с директории показва цялото съдържание, запазено в основната папка или поддиректории. Файловите директории могат да включват поверителна информация, която не е предназначена за публично показване, като PHP скриптове, конфигурационни файлове, файлове, съдържащи пароли, регистрационни файлове и т.н.
За да забраните списъците с директории, променете конфигурационния файл на сървъра на Apache, като редактирате apache2.conf файл като:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.конф
... изрязване ..

Опции -Индекси

... изрязване ..

ИЛИ

... изрязване ..

Опции -Индекси

... изрязване ..

Можете също да добавите тази директива в .htaccess файл на основната директория на уебсайта ви.

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

The .htaccess файлът е удобна и мощна функция, която позволява конфигуриране извън основния apache2.conf файл. Въпреки това, в случаите, когато потребителят може да качва файлове на сървъра, това може да бъде използвано от нападател, за да качи своя собствена “.htaccess ”файл със злонамерени конфигурации. Така че, ако не използвате тази функция, можете да деактивирате .htaccess директива, т.е.д.:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.конф
... изрязване ..
#AccessFileName .htaccess
... изрязване ..

ИЛИ
Деактивирайте .htaccess, с изключение на специално активираните директории чрез редактиране на apache2.conf файл и превръщане на директивата AllowOverRide в None;

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.конф
... изрязване ..

AllowOverride Няма

... изрязване ..

Защитете директориите с удостоверяване

Можете да създадете потребителски идентификационни данни, за да защитите всички или някои от директориите, използвайки помощната програма htpasswd. Отидете в папката на вашия сървър и използвайте следната команда, за да създадете .htpasswd файл за съхраняване на хешове на пароли за идентификационните данни, дадени на, да речем, потребител на име dev.

[имейл защитен] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd dev

Горната команда ще поиска нова парола и потвърждение на паролата. Можете да видите котката ./ htpasswd файл за проверка на хеш за съхранените потребителски идентификационни данни.

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

ubuntu @ ubuntu ~: $ sudo nano / var / www / your_website /.htaccess
... изрязване ..
AuthType Basic
AuthName "Добавяне на подкана за диалогов прозорец"
AuthUserFile / etc / apache2 / потребителско име / име на домейн /.htpasswd
Изисквайте валиден потребител
... изрязване ..

Не забравяйте да добавите пътя според вашия.

Стартирайте необходимите модули

Конфигурацията на Apache по подразбиране включва активирани модули, които може дори да не са ви необходими. Тези предварително инсталирани модули отварят врати за проблеми със сигурността на Apache, които или вече съществуват, или могат да съществуват в бъдеще. За да деактивирате всички тези модули, първо трябва да разберете кои модули са необходими за безпроблемното функциониране на вашия уеб сървър. За тази цел проверете документацията на модула apache, която обхваща всички налични модули.

След това използвайте следната команда, за да разберете кои модули се изпълняват на вашия сървър.

[имейл защитен] ~: $ sudo ls / etc / apache2 / mods-enabled

Apache идва с мощната команда a2dismod за деактивиране на модула. Той предотвратява зареждането на модула и ви подканва с предупреждение, когато деактивирате модула, че действието може да повлияе негативно на вашия сървър.

[имейл защитен] ~: $ sudo a2dismod module_name

Можете също да деактивирате модула, като коментирате в реда LoadModule.

Предотвратяване на бавен Loris и DoS Attack

Инсталацията по подразбиране на сървър Apache го принуждава да чака твърде дълго заявки от клиенти, което подлага сървъра на бавни Loris и DoS атаки. Apache2.conf конфигурационният файл предоставя директива, която можете да използвате, за да намалите стойността на времето за изчакване до няколко секунди, за да предотвратите този тип атаки, т.е.д.:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.конф
Време за изчакване 60

Освен това новият сървър на Apache се предлага с удобен модул mod_reqtimeout, който предоставя директива RequestReadTimeout за защита на сървъра от нелегитимни заявки. Тази директива идва с няколко сложни конфигурации, така че можете да прочетете свързаната информация, налична на страницата с документация.

Деактивирайте излишните HTTP заявки

Неограничените HTTP / HTTPS заявки могат също да доведат до ниска производителност на сървъра или DoS атака. Можете да ограничите получаването на HTTP заявки на директория, като използвате LimitRequestBody до по-малко от 100 000. Например, за да създадете директива за папката / var / www / your_website, можете да добавите директивата LimitRequestBody под AllowOverride All, i.д.:

... изрязване ..

Опции -Индекси
AllowOverride All
LimitRequestBody 995367

... изрязване ..

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

Заключение

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

Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...