Просмотр полной версии : Безопасность в 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
Безопасность в nginx
с помощью .htaccess
%)
OMG!!, используй open_basedir.
Лучше бы прочитали название топика, чем отвечать не думая.
.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
если залить шелл допустим в каталог сайта sitename3 то МОЖНО подняться по каталогу вверх.. и зайти в 2 других сайта.. так вот, каким образом избежать возможности просмотра других сайтов? т.е. если уже взлом состоялся, но не дать хакеру залезть на другие проекты. Спасибо!
Решал в свое время эту проблему. Вобщем есть два пути:
1) fastcgi+suexec
2) mkpm-itk
Я делал со вторым. У меня получалось сделать, что все директории имеют права 700 и собственного пользователя. Но т.к. тогда я все это делал для сайтов под битрикс, этот вариант уступал в производительности на процентов 5-20%. И наработки в этом направление пришлось свернуть.
Но вроде как в новом апаче, они переделают mpm (worker), так что mkpm-itk станет не нужен. Правда, не известно сколько ждать. Анонс можно поискать, было это месяц-полтора назад.
Задача решается созданием 3-x пользователей. Папа работает от рута, детки от юзеров. PROFIT.
chroot - еще лучше.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot