Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix (https://forum.antichat.xyz/forumdisplay.php?f=43)
-   -   Безопасность в nginx (https://forum.antichat.xyz/showthread.php?t=174295)

OMG!! 29.01.2010 00:56

Безопасность в nginx
 
Добрый вечер, ситуация такая.. есть сервер. каталоги

home/www-date/sitename1
home/www-date/sitename2
home/www-date/sitename3
....
Задача такая.. дело в том, что на всех сайтах разные скрипты.. каждые скрипты по своему могут стать уязвимостью - проникновением.. если залить шелл допустим в каталог сайта sitename3 то МОЖНО подняться по каталогу вверх.. и зайти в 2 других сайта.. так вот, каким образом избежать возможности просмотра других сайтов? т.е. если уже взлом состоялся, но не дать хакеру залезть на другие проекты. Спасибо!

++Norton++ 29.01.2010 10:58

Мне кажется лучше и проще всего будет сделать так, чтобы стало невозможно залить шелл.
К примеру, если на sitename3 используется форма загрузки файлов на сервер, то можно запретить загружать файлы с расширениями *.php и подобными. Либо с помощью .htaccess сделать чтобы файл php и пр. открывался как текстовый, например, так (файл .htaccess):
Код:

RemoveType application/x-httpd-php .php .php5 .phtml .php3 .php4 .phps

Zedobat 29.01.2010 12:15

Цитата:

Безопасность в nginx
с помощью .htaccess
%)
OMG!!, используй open_basedir.

undef 26.02.2010 01:23

Лучше бы прочитали название топика, чем отвечать не думая.
.htaccess тут вообще не причем, его не nginx не существует, open_basedir установить для каждого хоста отдельно, не используя апач и директивы mod_php, также проблемно.

Раз в данном случае разговор идет про nginx и только про него, подразумевается, что php работает посредством fastcgi.
Правильное и красивое решение, хоть и более сложное в реализации - расставлять права на директории и запускать fastcgi процессы от разных пользователей.

Если же автор противоречит заголовку, и за nginx'ом у него бекендом стоит апач с mod_php, то да, простейшим решением будет вынести в конфигурацию виртуального хоста что-то наподобие php_admin_value open_basedir /hosting/site.com/www или использовать safe_mode.

ghostwizard 04.03.2010 11:55

Цитата:

Сообщение от OMG!!
если залить шелл допустим в каталог сайта sitename3 то МОЖНО подняться по каталогу вверх.. и зайти в 2 других сайта.. так вот, каким образом избежать возможности просмотра других сайтов? т.е. если уже взлом состоялся, но не дать хакеру залезть на другие проекты. Спасибо!

Решал в свое время эту проблему. Вобщем есть два пути:
1) fastcgi+suexec
2) mkpm-itk

Я делал со вторым. У меня получалось сделать, что все директории имеют права 700 и собственного пользователя. Но т.к. тогда я все это делал для сайтов под битрикс, этот вариант уступал в производительности на процентов 5-20%. И наработки в этом направление пришлось свернуть.

Но вроде как в новом апаче, они переделают mpm (worker), так что mkpm-itk станет не нужен. Правда, не известно сколько ждать. Анонс можно поискать, было это месяц-полтора назад.

freelsd 05.03.2010 04:59

Задача решается созданием 3-x пользователей. Папа работает от рута, детки от юзеров. PROFIT.

chroot - еще лучше.


Время: 22:01