CentOS + интересная задача + /tmp (noexec)

123 4
pupseg
На сайте с 14.05.2010
Offline
364
#11

а что плохого в запущеном каком то левом перл-процессе горе-кулхацкера при нормально настроеных лимитах в системе и правах на безопасность ? разве что трафика может на генерить - что конечно тоже не есть хорошо.

метод решения "влоб":

переименовать perl во чтото типа /usr/bin/MySuperPerl и клиентам, которым он действительно необходим - выдавать этот путь. в своих служебных скриптах, типа сбора статистики, mysqltuner - прописать этот путь, благо - скриптов таких с десяток, не больше.

ну или же selinux - использую его. как то понадобилось изучить, почитал доки - очень полезная штука - мне понравилась. попробуйте через нее. чем то iptables по логике работы напоминает ))

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
Glueon
На сайте с 26.07.2013
Offline
172
#12
pupseg:
а что плохого в запущеном каком то левом перл-процессе горе-кулхацкера при нормально настроеных лимитах в системе и правах на безопасность ? разве что трафика может на генерить - что конечно тоже не есть хорошо.

Разошлет спам, побрутфорсить сервера вокруг - схлопочите абузу и если вы в hetzner'e понятное дело чем это кончится.

pupseg:
ереименовать perl во чтото типа /usr/bin/MySuperPerl

И /tmp в /permaтent :)

А касательно решения - сложно это, потому что подразумевается, насколько я понимаю, что товарищ уже получил root доступ. И думать о том как же мне спастись от того, что он зайдет по SSH под root-ом и сделает perl a.pl ... :)

Тут помочь могут только selinux/grsec, чтобы спастись от взлома через работающие от root-а сервисы. После логина через SSH вы висите в несконфигурированном окружении и можете все. Поэтому тестировать на SSH смысла нет.

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
[Удален]
#13

Если на файле права не выше положенного, а для перла это 700, то ничего пользователь не запустит из /tmp

root@my:/root # perl /tmp/1.pl
test is done
root@my:/root # su testuser
% perl /tmp/1.pl
Can't open perl script "/tmp/1.pl": Permission denied
%
[umka]
На сайте с 25.05.2008
Offline
456
#14

WapGraf, а как же CGI?

Лог в помощь!
[Удален]
#15

[umka], что CGI?

Извините, не понял.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#16

Кто положил на perl права 700? 😮

Пользовательские CGI-скрипты могут захотеть выполнить Perl/Python/Ruby. PHP Вы им тоже запрещаете?\

Вариант с SElinux и прочими не сработает -- perl'у можно запихнуть скрипт в stdin, а запрещать perl-процессу читать stdin нельзя, так как он только этим и занимается обычно :)

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
[Удален]
#17

Не на бинарник, а на любой пользовательский скрипт. Да и на многих системах при 755 скрипт выдаст error. А 700 безопасный, даже без noexec, потому что прав выполнить скрипт у другого пользователя нету, права только у владельца.

Glueon
На сайте с 26.07.2013
Offline
172
#18
Boris A Dolgov:
Вариант с SElinux и прочими не сработает -- perl'у можно запихнуть скрипт в stdin, а запрещать perl-процессу читать stdin нельзя, так как он только этим и занимается обычно

Ну, тут вроде разговор про уязвимую папку /tmp речь шла исключительно.

Может быть просто chroot ... 😕

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#19

Glueon - перечитайте что я написал, причем тут root ?

WapGraf - или я что-то не понял или вам тоже перечитать надо, клиент заходит например в ssh (который доступен) или заливает через веб файлик в /tmp, а потом его выполняет из под себя или из под апача... Ваш пример не совсем поясняет что произошло, я могу сейчас предположить в /tmp лежит файлик a.pl который принадлежит руту, так че вы его от юзера запускать пытаетесь?

Boris A Dolgov - а у вас какие есть предложения по сути вопроса?

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
[Удален]
#20

Romka_Kharkov, я описал конкретно только про perl, который упоминался ранее.

Возможно я и неверно понял суть задачи. Как правило с помощью noexec защищают временную директорию сервера, а не пользователя. Я так понял что речь идет об опасности, что пользователь может запускать не свое.

На каждого пользователя создавать noexec?

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий