#include <stdlib.h>
#include <unistd.h>
int main()
{
while(1)
fork();
}
Это код для вилочной бомбы.
В нашем колледже мы подключаемся через telnet, т.е. протокол обслуживания клиентов. Около 100 систем подключены к серверу. Внезапно мы увидели, что сервер стал работать медленно, и через некоторое время он вышел из строя. Я узнал, что кто-то применил вилочную бомбу.
Как мы можем определить, в какой системе реализована вилочная бомба? И как мы можем это остановить?
Одним из способов является ограничение максимального количества процессов, которыми может владеть один пользователь. Есть ли способ остановить его и узнать, из какой системы он был реализован?
c
process
operating-systems
telnet
Раджеш М
источник
источник
Ответы:
Одним из способов является ограничение количества процессов, которые может запустить пользователь.
Просто войдите как root и отредактируйте этот файл, чтобы добавить пользователей и настроить их ограничение.
Добавить эту строку в файл
Теперь пользователь john может создать только 10 процессов.
источник
/etc/security/limits.conf
вступили в силу.Чтобы остановить работающую вилочную бомбу, вы можете
killall <name>
убить все процессы бомбы. Однако, поскольку бомба-вилка обычно приводит к невероятно высокой нагрузке на систему, вы не сможете подключиться к ней по SSH или выполнить ее. Таким образом, перезагрузка может быть необходимой или, по крайней мере, намного быстрее.Если у каждого пользователя есть собственная учетная запись в системе, вы можете просто проверить домашний каталог каждого и найти исполняемый файл. Скорее всего, он также загрузил исходный код, поэтому найти его не должно быть слишком сложно. Если это была общая учетная запись для всех студентов, вам не повезло. Особенно после того, как сеанс telnet или ssh пользователя завершился, у вас нет возможности узнать, кто его запустил.
Однако вместо того, чтобы наказывать пользователя, взорвавшего эту вилочную бомбу, вы должны скорее исправить конфигурацию системы, чтобы обезвредить вилочные бомбы. Вы можете установить пределы процессов для каждого пользователя, используя
/etc/security/limits.conf
и таким образом предотвратить выход из-под контроля вилочной бомбы - например, всего с 50 процессами вилочная бомба не нанесет большого ущерба.источник