- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Boris A Dolgov - а у вас какие есть предложения по сути вопроса?
Настраивать серверы так, чтобы запущенный perl-скрипт (как и бинарник, как и php-скрипт, как и пользователь в ssh) не мог никому навредить.
Закрыть в iptables коннекты на 25 порт не от почтового сервера и слишком много коннектов на чужие серверы, хранить пользователей в chroot/jail/cagefs, выделять им ресурсы через rlimit/cgroups/lve.
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 ----------
Настраивать серверы так, чтобы запущенный perl-скрипт (как и бинарник, как и php-скрипт, как и пользователь в ssh) не мог никому навредить.
Закрыть в iptables коннекты на 25 порт не от почтового сервера и слишком много коннектов на чужие серверы, хранить пользователей в chroot/jail/cagefs, выделять им ресурсы через rlimit/cgroups/lve.
Конкретно в моем случае, есть нечто похожее, файрвол закрывает очень много на выход если не все, по этому запущенные демоны не представляют угрозы и не листят порты для хакеров, но они запущены и в данном конкретном случае фиг понятно от какого пользователя, так как любой от nobody заливает в /tmp и крутит там )))) я вот недавно сервер анализировал выловил штук 5 таких вот запущенных демонов, а не обратил внимание ранее именно по тому, что они ничего не могли листить и тому подобное, просто обратил внимание не процессы и полез посмотреть ))) а у меня в /tmp там уже набор "юного хакера" :)
Чем помогут rlimit и lve ?
Romka_Kharkov,
Да, я серьезно не понял в чем смысл вопроса, потому что ответ очевиден:
Do not allow direct execution of any binaries on the mounted filesystem. (Until recently it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)
Для проверки сделайте следующее:
создайте /tmp/a.pl, потом установите на него 755, ну и ессесно смонтируйте /tmp с noexec после чего попробуйте от любого юзера выполнить сценарий путем cd /tmp ; ./a.pl , А после этого путем /usr/bin/perl /tmp/a.pl , вот тогда вы поймете о чем я .
Вроде как ожидаемый результат ...😕 Где проблема? noexec запрещает любой прямой вызов не смотря на права файла и действует только на файлы в той папке, у которой noexec указан.
Конкретно в моем случае, есть нечто похожее, файрвол закрывает очень много на выход если не все, по этому запущенные демоны не представляют угрозы и не листят порты для хакеров, но они запущены и в данном конкретном случае фиг понятно от какого пользователя, так как любой от nobody заливает в /tmp и крутит там )))) я вот недавно сервер анализировал выловил штук 5 таких вот запущенных демонов, а не обратил внимание ранее именно по тому, что они ничего не могли листить и тому подобное, просто обратил внимание не процессы и полез посмотреть ))) а у меня в /tmp там уже набор "юного хакера" :)
Чем помогут rlimit и lve ?
А кто у Вас может выполнять что-то под nobody? Обычные пользователи не должны. Возможно, это дырявый phpMyAdmin и его надо обновить.
rlimit и lve поможет снизить потребление ресурсов этими скриптами. Часто если открывать коннекты им запрещено, они начинают зависать в бесконечном цикле и потреблять cpu.
а те кто без доступа - заливают файл от имени апача....
Кажется я понял, в чем у Вас проблема. Все php-скрипты пользователей у Вас выполняются от пользователя апач. А скрипты у школоло обычно дырявые. И в результате Вы не можете найти того, кто запускает что-то из tmp. Если это так, то Вам нужно не tmp фиксить, а пользователей переводить на работу от своего имени, т.к. хакер может залить скрипт в любую директорию пользователя, у которой будет доступ на запись, а потом просто запустить скрипт с другим путем. Неужели не сталкивались со скриптами, у которых путь "/".
а те кто без доступа - заливают файл от имени апача....
Ну вот и настройте систему чтобы не от одного апача все бегало.
Вы вообще не услышали меня, еще раз поясняю, есть обычная папка /tmp В которую валятся сессии апача и прочее... прочее.... есть пользователи с ssh (и без него) доступом, допустим те кто с ним
И?
У каждого пользователя должна быть своя tmp. И даже если общая то пользователь выполнить сможет _только_свои_ файлы, ну разумеется если все не бегает по дефолту от нободи или апаче.
любой от nobody заливает в /tmp и крутит там
скажите спасибо, что они оставили хоть какие-то следы :)
если у вас разрешен шелл и/или перл, то любое закрытие диры /tmp не поможет, т.к. по сути для записи или запуска эта дира не нужна. (stdin+perl)
ps: при помощи гугла попытался вспомнить перл... примеры сбросил в личку.
А кто у Вас может выполнять что-то под nobody? Обычные пользователи не должны. Возможно, это дырявый phpMyAdmin и его надо обновить.
rlimit и lve поможет снизить потребление ресурсов этими скриптами. Часто если открывать коннекты им запрещено, они начинают зависать в бесконечном цикле и потреблять cpu.
Ну... у меня еще есть пара серверов на которых все пользователи , а точнее их сайты из под nobody работают .... понимаю, что проблема больше в этом, нежели в самом noexec ;))) но все же :D
---------- Добавлено 23.09.2013 в 12:58 ----------
Кажется я понял, в чем у Вас проблема. Все php-скрипты пользователей у Вас выполняются от пользователя апач. А скрипты у школоло обычно дырявые. И в результате Вы не можете найти того, кто запускает что-то из tmp. Если это так, то Вам нужно не tmp фиксить, а пользователей переводить на работу от своего имени, т.к. хакер может залить скрипт в любую директорию пользователя, у которой будет доступ на запись, а потом просто запустить скрипт с другим путем. Неужели не сталкивались со скриптами, у которых путь "/".
Сталкивались, только вот в "/" положить не могут точно, а в "/tmp" пожалуйста, вы правильно поняли в чем проблема. Я знаю путь решения с переводом всех на свои UID, но если бы это все было так просто как хочется, я бы даже тему не создавал, есть куча проектов, есть старое PHP , есть старый апач, который работает и работает и работает много лет, он конечно обновлен, но вот перейти сейчас просто на suPHP - будет весьма напряжно, надо будет во первых мильен прав расставить правильно что бы у всех все заработало, а во вторых надо будет пересборкой заниматься половины установленного, да и в общем-то не факт что потом после апгрейда того же php 5.2 -> 5.3 у всех будет все в порядке.... этот путь мне известен и у меня так работают почти все сервера.... но есть и другие :D
Сталкивались, только вот в "/" положить не могут точно, а в "/tmp" пожалуйста, вы правильно поняли в чем проблема. Я знаю путь решения с переводом всех на свои UID, но если бы это все было так просто как хочется, я бы даже тему не создавал, есть куча проектов, есть старое PHP , есть старый апач, который работает и работает и работает много лет, он конечно обновлен, но вот перейти сейчас просто на suPHP - будет весьма напряжно, надо будет во первых мильен прав расставить правильно что бы у всех все заработало, а во вторых надо будет пересборкой заниматься половины установленного, да и в общем-то не факт что потом после апгрейда того же php 5.2 -> 5.3 у всех будет все в порядке.... этот путь мне известен и у меня так работают почти все сервера.... но есть и другие :D
Хорошо. Закрыли Вы tmp. Дальше хакер запустил скрипт из 777-директории какого-то школоло. У этого процесса пользователь стоит апачевский, а путь изменен на /tmp.
Вариант 1:
Предположим, что Вам повезло, и Вы через strace смогли вычислить директорию, из которой на самом деле был запущен процесс. Вы пишите школоло, что он редиска, а он Вас в ответ посылает и съезжает с хостинга.
Вариант 2:
Вам не повезло, и путь до скрипта Вы не нашли. Вы просто убиваете процесс, и на этом все.
Все это будет у Вас отнимать время нервы, и плюс всегда будет существовать возможность, что сервер взломают через апач. К этому прибавьте то, что через апачевского пользователя можно будет просматривать скрипты, настройки скриптов и т.п. у соседних пользователей.
Нормальный вариант, Вы забиваете на страхи, переводите сервер на выполнение скриптов пхп от пользователей.
1. Вы сможете поставить скрипт, который сможет отлавливать подозрительные процессы пользователей, а особо подозрительные убивать.
2. Подозрительные процессы пользователя будут создавать нагрузку. Уже можно будет срубить с клиента бабла за нагрузку.
3. Поиск места запуска сужается до пользователя. В самом трудном случае, смотрите на время запуска процесса и на логи сайтов пользователя. Плюс прогнать по директории пользователя антивирус.
4. Пользователь не сможет смотреть на то, что лежит у соседа. (И это на хостинге самое главное!)
Т.е. в итоге Вы будете спокойно сидеть в кресле, и лениво клацать мышью: "Ага, подозрительный процесс!", клик - вирус "Убит" и отправилось гневное письмо пользователю.
seolancer, позвольте изложу краткую версию - лучше один раз сделать как положено, чем пожизненно нервы трепать.