Осигуряване на Apache сървър на CentOS 6

Лесно е да използвате преки пътища, когато защитавате сървър, но ще рискувате загуба на данни, в случай че нападателят получи root достъп до някой от вашите сървъри. Дори и за прости инсталации, трябва предварително да защитите сървъра си. Защитата на сървърите е широка тема и варира в зависимост от операционната система и приложенията, които се изпълняват на тях.

Този урок се фокусира върху осигуряването на Apache под CentOS 6. Има няколко стъпки след инсталиране, които можете да предприемете, за да се предпазите от ескалация на привилегии, както и от атаки с недостатъчно привилегии.

Без повече приказки, нека да започнем.

Стъпка 1 - Инсталиране на уеб сървъра

Разбира се, ако нямате инсталиран Apache или PHP, трябва да го направите сега. Изпълнете тази команда като root потребител или използвайте sudo:

yum install httpd php

Стъпка 2 - Защита на вашите домашни директории

След като Apache е инсталиран, нека да продължим и да започнем да го защитаваме. Първо, искаме да се уверим, че директориите на други потребители не се виждат от никого, освен от собственика. Ще променим всички домашни директории на 700, така че само съответните собственици на домашните директории да могат да виждат собствените си файлове. Изпълнете тази команда като root или използвайте sudo:

chmod 700 /home
chmod 700 /home/*
chmod 700 /home/*/*

Използвайки заместващи знаци, ние покриваме всички файлове, които в момента се намират в домашната директория.

Стъпка 3 - Приложете корекция за сигурност към Apache за разделяне на привилегиите на потребителя

Преди да поправим Apache, първо трябва да инсталираме хранилището, което съдържа пакета с корекцията. Изпълнете следните команди като root (или sudo).

yum install epel-release
yum install httpd-itk

С "apache2-mpm-itk" можем да кажем какъв потребител трябва да изпълнява PHP въз основа на виртуалния хост. Той добавя нова опция за конфигурация AssignUserId virtualhost-user virtualhost-user-group, която ни позволява да кажем на Apache/PHP да изпълни потребителски код под конкретен потребителски акаунт.

Ако споделяте този сървър, предполагам, че вече сте създали виртуален хост за Apache преди. В този случай можете да преминете към стъпка 4.

Стъпка 3 - Създаване на вашия първи виртуален хост

Можете да следвате шаблона по-долу, за да създадете виртуален хост в Apache.

NameVirtualHost mytest.website

<VirtualHost mytest.website>

DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
</VirtualHost>

Отворете любимия си текстов редактор /etc/httpd/conf.d/example-virtualhost.confи след това добавете съдържанието по-горе в него. Ето командата за използване на nano:

nano /etc/httpd/conf.d/example-virtualhost.conf

Нека обясня конфигурацията тук. Когато посочим „NameVirtualHost“, ние всъщност казваме на уеб сървъра, че хостваме множество домейни на един IP . Сега, в този пример, използвах mytest.websiteкато примерен домейн. Променете го на ваш или на домейн по ваш избор. DocumentRootе това, което казва на Apache къде се намира съдържанието. ServerNameе директива, която използваме, за да кажем на Apache домейна на уебсайта. И един последен маркер, </VirtualHost>, който казва на Apache, че е краят на конфигурацията на виртуалния хост.

Стъпка 4 - Конфигуриране на Apache да работи като друг потребител

Както споменахме по-рано, част от защитата на вашия сървър включва стартиране на Apache/PHP като отделен потребител за всеки виртуален хост. Да кажете на Apache да направи това е лесно, след като сме приложили корекцията - всичко, което трябва да направите, е да добавите:

AssignUserId vhost-user vhost-user-group

... към вашата конфигурация. Ето как би изглеждал примерният виртуален хост, след като добавихме тази опция:

NameVirtualHost mytest.website

<VirtualHost mytest.website>

DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
AssignUserId vhost-user vhost-user-group

</VirtualHost>

Магията е в реда, започващ с AssignUserId. С тази опция казваме на Apache/PHP да работи като следния потребител/група.

Стъпка 5 - Скриване на версията на Apache

Тази стъпка е доста проста; просто отворете конфигурационния файл на Apache, като изпълните следната команда като root потребител:

nano /etc/httpd/conf/httpd.conf

Намерете "ServerTokens" и променете опцията след него на "ProductOnly". Това казва на Apache да разкрие само, че е "Apache", вместо "Apache/2.2" или нещо подобно.

Стъпка 6 - Рестартиране на Apache, за да приложите промените

След като защитихме сървъра, трябва да рестартираме сървъра на Apache. Направете това, като изпълните следната команда като root или с sudo:

service httpd restart

Заключение

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

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

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

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

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

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече