Корак 1 - Инсталирање веб сервера
Корак 2 - Обезбедите своје матичне именике
Корак 3 – Примените безбедносну закрпу на Апацхе ради одвајања привилегија корисника
Корак 3 - Креирајте свој први виртуелни хост
Корак 4 - Конфигурисање Апацхе-а да ради као други корисник
Корак 5 - Скривање Апацхе верзије
Корак 6 - Поново покрените Апацхе да бисте применили промене
Закључак
Лако је користити пречице када обезбеђујете сервер, али ризикујете губитак података у случају да нападач добије роот приступ било ком од ваших сервера. Чак и за једноставне инсталације, морате претходно да обезбедите свој сервер. Обезбеђивање сервера је широка тема и варира у зависности од ОС-а и апликација које се на њима покрећу.
Овај водич се фокусира на обезбеђивање Апацхе-а под ЦентОС-ом 6. Постоји неколико корака након инсталације које можете предузети да бисте се заштитили од ескалације привилегија, као и од напада са недовољно привилегованих.
Без даљег одлагања, хајде да почнемо.
Корак 1 - Инсталирање веб сервера
Наравно, ако немате инсталиран Апацхе или ПХП, требало би то да урадите сада. Извршите ову команду као роот корисник или користите судо:
yum install httpd php
Корак 2 - Обезбедите своје матичне именике
Сада када је Апацхе инсталиран, идемо даље и почнимо да га обезбеђујемо. Прво, желимо да се уверимо да директоријуме других корисника нико не види осим власника. Изменићемо све матичне директоријуме на 700, тако да само одговарајући власници кућних директоријума могу да виде своје датотеке. Покрените ову команду као роот или користите судо:
chmod 700 /home
chmod 700 /home/*
chmod 700 /home/*/*
Коришћењем џокер знакова, покривамо све датотеке које се тренутно налазе у матичном директоријуму.
Корак 3 – Примените безбедносну закрпу на Апацхе ради одвајања привилегија корисника
Пре него што закрпимо Апацхе, морамо прво да инсталирамо спремиште које садржи пакет са закрпом. Покрените следеће команде као роот (или судо).
yum install epel-release
yum install httpd-itk
Са "апацхе2-мпм-итк", можемо рећи који корисник ПХП треба да ради на основу виртуелног хоста. Додаје нову опцију конфигурације AssignUserId virtualhost-user virtualhost-user-group, која нам омогућава да кажемо Апацхе/ПХП-у да изврши кориснички код под одређеним корисничким налогом.
Ако делите овај сервер, претпостављам да сте већ раније креирали виртуелни хост за Апацхе. У том случају можете прећи на корак 4.
Корак 3 - Креирање вашег првог виртуелног хоста
Можете пратити доњи шаблон да бисте креирали виртуелни хост у Апацхе-у.
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
</VirtualHost>
Отворите свој омиљени уређивач текста у, /etc/httpd/conf.d/example-virtualhost.confа затим додајте садржај изнад у њега. Ево команде за коришћење нано:
nano /etc/httpd/conf.d/example-virtualhost.conf
Дозволите ми да објасним конфигурацију овде. Када наведемо „НамеВиртуалХост“, ми заправо говоримо веб серверу да хостујемо више домена на једној ИП адреси . Сада, у овом примеру, користио сам mytest.websiteкао пример домена. Промените то у свој или у домен по вашем избору. DocumentRootје оно што говори Апацхе-у где се садржај налази. ServerNameје директива коју користимо да кажемо Апацхе домену веб локације. И последња ознака, </VirtualHost>, која говори Апацхе-у да је крај конфигурације виртуелног хоста.
Корак 4 - Конфигурисање Апацхе-а да ради као други корисник
Као што је раније поменуто, део обезбеђења вашег сервера укључује покретање Апацхе/ПХП-а као засебног корисника за сваки виртуелни хост. Рећи Апацхе-у да то уради је једноставно након што смо применили закрпу – све што треба да урадите је да додате:
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. Са овом опцијом, говоримо Апацхе/ПХП-у да се покреће као следећи корисник/група.
Корак 5 - Сакривање Апацхе верзије
Овај корак је прилично једноставан; само отворите Апацхе-ов конфигурациони фајл тако што ћете извршити следећу команду као роот корисник:
nano /etc/httpd/conf/httpd.conf
Пронађите „СерверТокенс“ и промените опцију иза ње у „ПродуцтОнли“. Ово говори Апацхе-у да открије само да је "Апацхе", уместо "Апацхе/2.2" или нешто слично.
Корак 6 - Поново покрените Апацхе да бисте применили промене
Сада када смо обезбедили сервер, морамо поново покренути Апацхе сервер. Урадите то тако што ћете покренути следећу команду као роот или са судо:
service httpd restart
Закључак
Ово је само неколико корака које можете предузети да бисте заштитили свој сервер. Још једном, чак и ако неко коме верујете хостује веб локацију на вашем серверу, требало би да планирате да је заштитите. У горе наведеним сценаријима, чак и ако је кориснички налог компромитован, нападач неће добити приступ целом серверу.