Системный вызов fork

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 17:20:14

Добрый день!
Столкнулся сегодня с такой проблемой.
Простейший скрипт в одну строку на php, отправляет систему в даун
Как с ним бороться? Есть ли народ который с ним сталкивался?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Hazzard
сержант
Сообщения: 265
Зарегистрирован: 2009-02-01 21:22:36
Откуда: Москва
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение Hazzard » 2009-05-20 17:22:59

Valmon писал(а):Добрый день!
Столкнулся сегодня с такой проблемой.
Простейший скрипт в одну строку на php, отправляет систему в даун
Как с ним бороться? Есть ли народ который с ним сталкивался?
любой скрипт на php можно записать в одну строчку .... Телепаты в отпуске, скрипт в студию.
Debian, php/mysql и другой бред...

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 17:36:57

Hazzard писал(а):
Valmon писал(а):Добрый день!
Столкнулся сегодня с такой проблемой.
Простейший скрипт в одну строку на php, отправляет систему в даун
Как с ним бороться? Есть ли народ который с ним сталкивался?
любой скрипт на php можно записать в одну строчку .... Телепаты в отпуске, скрипт в студию.
Вы хотите чтобы я его выложил на вид? Мне как-то не сильно охота чтобы эта дырка слишком популярная стала
Я думаю то кто сталкивался, поймет, впечатлений оставляет массу

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: Системный вызов fork

Непрочитанное сообщение Larin » 2009-05-20 17:37:49

видимо автор издевается...

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: Системный вызов fork

Непрочитанное сообщение Larin » 2009-05-20 17:38:41

Valmon писал(а):
Hazzard писал(а):
Valmon писал(а):Добрый день!
Столкнулся сегодня с такой проблемой.
Простейший скрипт в одну строку на php, отправляет систему в даун
Как с ним бороться? Есть ли народ который с ним сталкивался?
любой скрипт на php можно записать в одну строчку .... Телепаты в отпуске, скрипт в студию.
Вы хотите чтобы я его выложил на вид? Мне как-то не сильно охота чтобы эта дырка слишком популярная стала
Я думаю то кто сталкивался, поймет, впечатлений оставляет массу
ты точно издеваешься...

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 17:39:07

echo `: ( ) { : | : & }; :`

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение f_andrey » 2009-05-20 18:11:14

Valmon писал(а):echo `: ( ) { : | : & }; :`
Паздравляю, http://www.cyberciti.biz/faq/understand ... fork-bomb/
В баше работает, хотя и не крашит но систему напрягает, но вы забываете что тут форум FreeBSD, а на ней основной процессор tcsh, на котором ЭТО скорее всего просто не сработает :evil:
А кто ставит во FreeBSD, bash тот сам себе злобный буратин.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение paix » 2009-05-20 18:30:00

да брось, типа на sh\cgi нельзя сделать форкбомб ? :)

to топикстартер.
php disable_functions тебе помогут.
With best wishes, Sergej Kandyla

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение zingel » 2009-05-20 18:31:05

php тут не причем вообще не каким боком, это пример fork-бомбы, лечится правильным login.conf, если в джайле то перезорядкой джайла и самлинком с ulimit на /bin/false
Z301171463546 - можно пожертвовать мне денег

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение paix » 2009-05-20 18:56:54

zingel писал(а):php тут не причем вообще не каким боком, это пример fork-бомбы, лечится правильным login.conf, если в джайле то перезорядкой джайла и самлинком с ulimit на /bin/false
Valmon писал(а): Простейший скрипт в одну строку на php, отправляет систему в даун
Как с ним бороться?
With best wishes, Sergej Kandyla

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение zingel » 2009-05-20 19:01:29

Выставить во первых

Код: Выделить всё

kern.maxproc
в /boot/loader.conf

потом в login.conf выставить нужное значение, причем _ниже_ чем kern.maxproc

Код: Выделить всё

maxproc=Nn
иначе будет паник (на старых версиях).

И проверить, должна быть запись в логах, если всё ок:

Код: Выделить всё

Approaching the limit on PV entries
Z301171463546 - можно пожертвовать мне денег

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 19:04:18

zingel писал(а):php тут не причем вообще не каким боком, это пример fork-бомбы, лечится правильным login.conf, если в джайле то перезорядкой джайла и самлинком с ulimit на /bin/false
Эта не причем, сегодня ночью свалила сервер знакомого, который протестил его на мне в обед

Код: Выделить всё

<?php echo `: ( ) { : | : & }; :`; ?>
У обоих FreeBSD 7.1

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 19:08:38

Спасиба ребят что откликнулись

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение zingel » 2009-05-20 19:09:36

ну это нормально, сервер не настроен или настроен криво непрофессионалами которые открыли для всех подряд exec() в php, мало того наверняка это запущено от рута.

Закройте вызов exec() через disable_functions в php.ini
Z301171463546 - можно пожертвовать мне денег

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 19:10:58

А в login.conf что, создать еще один класс? Или можно дефолтный подправить?

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 19:12:10

zingel писал(а):ну это нормально, сервер не настроен или настроен криво непрофессионалами которые открыли для всех подряд exec() в php, мало того наверняка это запущено от рута.

Закройте вызов exec() через disable_functions в php.ini
По поводу disable_functions да, есть косяк, но скрипты работают от юзера (SUEXEC)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение zingel » 2009-05-20 19:14:23

просто добавьте в login.conf

Код: Выделить всё

maxproc=Xx
Z301171463546 - можно пожертвовать мне денег

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-20 19:28:19

zingel писал(а):просто добавьте в login.conf

Код: Выделить всё

maxproc=Xx
Прям в дефолтный класс?

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение ProFTP » 2009-05-20 19:29:19

а man limit тут еще поможет, что вырубить все...?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение zingel » 2009-05-20 23:46:31

Z301171463546 - можно пожертвовать мне денег

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-21 8:09:25

Ну это стандартные азы из хандбука, очень общее. Я могу создать отдельный класс, или подкрутить дефолтный класс
Надо поднять отдельную тему по поводу классов юзеров и web. Слышал что Apache22 не умеет с ним работать.

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение paix » 2009-05-21 9:17:06

Valmon писал(а):Ну это стандартные азы из хандбука, очень общее. Я могу создать отдельный класс, или подкрутить дефолтный класс
Надо поднять отдельную тему по поводу классов юзеров и web. Слышал что Apache22 не умеет с ним работать.
ну а чего вам не хватает?
до задницы логин.конф апачу, если динамика не через suexec\cgi.
А даже если и через suexec, то с классами нужно шаманить. Тут тема поднималась уже что классы в апаче2* не задействуются. Люди даже патчи писали (не знаю какое текущее состояние этих патчей). Либо ограничивать дефолтный класс, чтобы все юзера попадали под него.

Если апач с мод_пхп, то любая форкбомба его положит (вы не выставите в классе maxproc меньший MaxClients)
уже раза 3 написали: солюшин для web\php скриптов банально простой - php disabled_functions.
Все остальное резать через login.conf
With best wishes, Sergej Kandyla

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-21 9:42:25

paix писал(а):
Valmon писал(а):Ну это стандартные азы из хандбука, очень общее. Я могу создать отдельный класс, или подкрутить дефолтный класс
Надо поднять отдельную тему по поводу классов юзеров и web. Слышал что Apache22 не умеет с ним работать.
ну а чего вам не хватает?
до задницы логин.конф апачу, если динамика не через suexec\cgi.
А даже если и через suexec, то с классами нужно шаманить. Тут тема поднималась уже что классы в апаче2* не задействуются. Люди даже патчи писали (не знаю какое текущее состояние этих патчей). Либо ограничивать дефолтный класс, чтобы все юзера попадали под него.

Если апач с мод_пхп, то любая форкбомба его положит (вы не выставите в классе maxproc меньший MaxClients)
уже раза 3 написали: солюшин для web\php скриптов банально простой - php disabled_functions.
Все остальное резать через login.conf
В том-то и дело, на мой взгляд проще всего порезать на default и потом обновить login.conf.db
Но чем это грозит так как все daemon цепляют из default класса.

Valmon
мл. сержант
Сообщения: 132
Зарегистрирован: 2007-11-14 9:51:19

Re: Системный вызов fork

Непрочитанное сообщение Valmon » 2009-05-21 9:44:33

paix писал(а):
Valmon писал(а):Ну это стандартные азы из хандбука, очень общее. Я могу создать отдельный класс, или подкрутить дефолтный класс
Надо поднять отдельную тему по поводу классов юзеров и web. Слышал что Apache22 не умеет с ним работать.
Если апач с мод_пхп, то любая форкбомба его положит (вы не выставите в классе maxproc меньший MaxClients)
уже раза 3 написали: солюшин для web\php скриптов банально простой - php disabled_functions.
Все остальное резать через login.conf
Для модуля юзаю open_basedir

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Системный вызов fork

Непрочитанное сообщение paix » 2009-05-21 9:51:34

Valmon писал(а):
paix писал(а):тавите в классе maxproc меньший MaxClients)
уже раза 3 написали: солюшин для web\php скриптов банально простой - php disabled_functions.
Все остальное резать через login.conf
В том-то и дело, на мой взгляд проще всего порезать на default и потом обновить login.conf.db
Но чем это грозит так как все daemon цепляют из default класса.
создать отдельные классы для демонов не судьба?
Valmon писал(а): Для модуля юзаю open_basedir
я рад ;) но от форкбомбы и прочей гадости это не спасет.
With best wishes, Sergej Kandyla