Romka_Kharkov

Romka_Kharkov
Рейтинг
485
Регистрация
08.04.2009
Должность
Хостинг
Качественный хостинг
Boris A Dolgov:
А кто у Вас может выполнять что-то под nobody? Обычные пользователи не должны. Возможно, это дырявый phpMyAdmin и его надо обновить.
rlimit и lve поможет снизить потребление ресурсов этими скриптами. Часто если открывать коннекты им запрещено, они начинают зависать в бесконечном цикле и потреблять cpu.

Ну... у меня еще есть пара серверов на которых все пользователи , а точнее их сайты из под nobody работают .... понимаю, что проблема больше в этом, нежели в самом noexec ;))) но все же :D

---------- Добавлено 23.09.2013 в 12:58 ----------

seolancer:
Кажется я понял, в чем у Вас проблема. Все php-скрипты пользователей у Вас выполняются от пользователя апач. А скрипты у школоло обычно дырявые. И в результате Вы не можете найти того, кто запускает что-то из tmp. Если это так, то Вам нужно не tmp фиксить, а пользователей переводить на работу от своего имени, т.к. хакер может залить скрипт в любую директорию пользователя, у которой будет доступ на запись, а потом просто запустить скрипт с другим путем. Неужели не сталкивались со скриптами, у которых путь "/".

Сталкивались, только вот в "/" положить не могут точно, а в "/tmp" пожалуйста, вы правильно поняли в чем проблема. Я знаю путь решения с переводом всех на свои UID, но если бы это все было так просто как хочется, я бы даже тему не создавал, есть куча проектов, есть старое PHP , есть старый апач, который работает и работает и работает много лет, он конечно обновлен, но вот перейти сейчас просто на suPHP - будет весьма напряжно, надо будет во первых мильен прав расставить правильно что бы у всех все заработало, а во вторых надо будет пересборкой заниматься половины установленного, да и в общем-то не факт что потом после апгрейда того же php 5.2 -> 5.3 у всех будет все в порядке.... этот путь мне известен и у меня так работают почти все сервера.... но есть и другие :D

WapGraf:
Romka_Kharkov, я описал конкретно только про perl, который упоминался ранее.
Возможно я и неверно понял суть задачи. Как правило с помощью noexec защищают временную директорию сервера, а не пользователя. Я так понял что речь идет об опасности, что пользователь может запускать не свое.
На каждого пользователя создавать noexec?

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

Итого, при установленном noexec на раздел /tmp фиксируется только флаг +x .... но если запускать интерпритатор перл и передавать ему файл на вход, как показано в первом посте - noexec получается "за бортом"......

Для проверки сделайте следующее:

создайте /tmp/a.pl, потом установите на него 755, ну и ессесно смонтируйте /tmp с noexec после чего попробуйте от любого юзера выполнить сценарий путем cd /tmp ; ./a.pl , А после этого путем /usr/bin/perl /tmp/a.pl , вот тогда вы поймете о чем я . :)

---------- Добавлено 23.09.2013 в 00:59 ----------

Boris A Dolgov:
Настраивать серверы так, чтобы запущенный perl-скрипт (как и бинарник, как и php-скрипт, как и пользователь в ssh) не мог никому навредить.
Закрыть в iptables коннекты на 25 порт не от почтового сервера и слишком много коннектов на чужие серверы, хранить пользователей в chroot/jail/cagefs, выделять им ресурсы через rlimit/cgroups/lve.

Конкретно в моем случае, есть нечто похожее, файрвол закрывает очень много на выход если не все, по этому запущенные демоны не представляют угрозы и не листят порты для хакеров, но они запущены и в данном конкретном случае фиг понятно от какого пользователя, так как любой от nobody заливает в /tmp и крутит там )))) я вот недавно сервер анализировал выловил штук 5 таких вот запущенных демонов, а не обратил внимание ранее именно по тому, что они ничего не могли листить и тому подобное, просто обратил внимание не процессы и полез посмотреть ))) а у меня в /tmp там уже набор "юного хакера" :)

Чем помогут rlimit и lve ?

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

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

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

vapetrov:
Гм... Если злоумышленник имеет возможность запустить perl, то какая хрен разница, может ли он читать из tmp или откуда-то еще?
В этом случае он и без /tmp может сделать что угодно. В том числе и получить какой-то исполняемый код извне.

В принципе логично.... Выходит что noexec влияет только на +x в разделе куда он установлен... :(

Можем прямо в Канаде разместить.

Тариф Light как раз под ваши нужны, 100 метров места, стоимость 1$.

Возможно размещение на разных серверах, разных IP.

А еще варианты :D ?

Хм, а я авторизацией самого Rsync пользуюсь, user/pass/ip + rsyncd ..

foxi:
Romka_Kharkov, вот и я не заметил разницы тестово гоняя 500к файлов по 100 мб локалке )
но безопаснее с главного коннеститься на второстепенные, чем на куче серверов класть ключи от главного сервера.

Капитан очевидность сегодня явно на отдыхе, вы спросили вообще-то о ресурсах


как лучше запускать, чтоб на главном сервере это потребляло меньше ресурсов?

я вам ответил.

А что касается безопасности, советую ознакомиться с настройками файла rsyncd.conf.

Многое, если не все, зависит от смысла этих данных. В случае компрометации сервера хоть так хоть так есть угроза...

Насчет ключей не совсем вас понял, вы еще ключи (rsa/dsa?) туда прикрутили как-то? Вы случайно rsync не запускаете от рута через ssh pipe :D ?

Потому как в том же rsyncd.conf , можно настроить "шару" таким образом, что она будет например read only, А так же можно жестко ограничить пользователей и IP адреса доступные в этой шаре. Покажите как вы используете rsync и что в конфигах есть.. интереСа ради :D Если сервера стоят рядом !!! рекомендую сразу делать 1G internal uplink

wolfston:

Оказывается хостер с какойто непонятной мне причины на всех сайтах поменял хтакцес на такой -
RedirectMatch .* /cgi-sys/suspendedpage.cgi

На мой взгляд - это вредительство в чистом виде, и в паре с откровенным игнорированием тех поддержки, это выглядит просто как издевательство.

Судя по тому, что я вижу, там cPanel, и данное явление в виде подмены .htaccess является следствием действия функции "Suspend", на своей практике я встречал следующие формы данной проблемы:

1. Акаунт был восстановлен из бекапа, а бекап был сделан в состоянии когда акаунт был "Suspended".

2. Иногда данное явление происходит в следствии какой-то внештатной работы с cPanel.

Но !!! В любом случае (за исключением отсутствия возможностей записи в раздел) у вас рядом с реальным .htaccess лежит файл типа .htaccess.suspended или .htaccess.$date.suspended (точно не помню).... Там находится оригинал вашего .htaccess на момент действия процедуры Suspend.

Не за что 🍿

Ничего гигантского в плане производительности вы не получите, максимальный выигрыш, это ресурсы которые будут задействованы под каждый из потоков синхронизации, в случае запуска на одном сервере 4 таких процессов естественно на нем будет больше затрачено ресурсов нежели в ситуации когда каждый из серверов обратиться к нему, но на столько ли существенный прирост вы получите?

Из личного опыта могу сказать, что работаю с rsync на объемах в 10+ TRB, полет нормальный. В некоторых случаях правда для rsync внутренние линки. Есть схемы между прочим обоих направлений и при 5 заданиях с одного сервера и при 5 заданиях с разных серверов на один, пожалуй лишь удобство или "настроение при настройке" :) На производительность не думаю что влияет особо. :)

Всего: 6833