Как остановить и обнаружить вилку

#include <stdlib.h> #include <unistd.h> int main() { while(1) fork(); } 

Это код для вилочной бомбы.

В нашем колледже мы подключаемся через telnet, т.е. протокол обслуживания клиентов. К серверу подключено около 100 систем. Внезапно мы увидели, что сервер стал медленным, и через некоторое время он разбился. Я узнал, что кто-то применил вилку.

Как мы можем определить, в какой системе реализована вилка? И как мы можем остановить это?

Один из способов – ограничить максимальное количество процессов, которыми может владеть один пользователь. Есть ли способ остановить его и узнать, из какой системы он был реализован?

  • Ошибка Telnet при подключении с Windows на Unix
  • Как вы разрешаете ошибку «Доступ запрещен: указанный пользователь не является членом групп TelnetClients»??
  • Почему в Windows 7 по умолчанию не поддерживается Telnet?
  • Легкий инструмент для просмотра необработанных HTTP-сообщений?
  • Я могу использовать Telnet в системе CentOS Linux, но не могу использовать SSH. Мои коллеги говорят, что могут использовать SSH
  • Telnet не будет запускаться из приглашения cmd в Windows 7
  • Почему я не могу подключиться к SMTP-серверу Google на порту 25?
  • Как выполнить удаленную команду с помощью PuTTY через Telnet
  • 2 Solutions collect form web for “Как остановить и обнаружить вилку”

    Один из способов – ограничить количество процессов, которыми может управлять пользователь.

    Просто войдите как пользователь root и отредактируйте этот файл, чтобы добавить пользователей и настроить их ограничение.

     # vi /etc/security/limits.conf 

    Добавьте эту строку в файл

     john hard nproc 10 

    Теперь пользователь john может создать только 10 процессов.

    Чтобы остановить запущенную вилку, вы можете использовать killall <name> чтобы убить все процессы бомбы. Однако, поскольку вилочная бомба обычно приводит к невероятно высокой нагрузке на систему, вы, возможно, не сможете использовать SSH или выполнить ее. Поэтому может потребоваться перезагрузка или, по крайней мере, намного быстрее.

    Если у каждого пользователя есть своя учетная запись в системе, вы можете просто проверить домашний каталог каждого пользователя и выполнить поиск исполняемого файла. Скорее всего, он также загрузил исходный код, поэтому найти его не должно быть слишком сложно. Если это была общая учетная запись для всех студентов, вам не повезло. Особенно после завершения сеанса telnet или ssh пользователя у вас нет шансов узнать, кто его запустил.

    Однако вместо того, чтобы наказать пользователя, который взорвал эту вилку, вам лучше исправить конфигурацию системы, чтобы обезоружить вилочные бомбы. Вы можете установить лимиты процесса для каждого пользователя с помощью /etc/security/limits.conf и, таким образом, предотвратить /etc/security/limits.conf вилочной бомбы из-под контроля – например, всего за 50 процессов /etc/security/limits.conf вилка не наносит большого ущерба.

    Interesting Posts

    Torrent-клиент для Ubuntu похож на uTorrent

    Сортировка и переименование изображений по дате в EXIF-информации

    Проблемы с жестким диском SATA

    Как удалить Windows.old в Windows 8

    Инструмент Grep для XML

    Как я могу поменять цвета с помощью GIMP?

    Как запретить Firefox скрывать префикс URL http: //?

    Как получить печатный экран видео-все еще в окнах?

    Группировка поля в одной сводной таблице группирует одно и то же поле в другой таблице

    Используйте USB-цифровую клавиатуру с телефонным набором текста?

    Почему Windows 7 устанавливает 64-разрядные приложения в папку Program Files (x86)? Могу ли я изменить поведение?

    «Примечание: неопределенная переменная», «Примечание: неопределенный индекс» и «Примечание: неопределенное смещение» с использованием PHP

    Как интерпретировать статистику прогона memtest?

    Как Antimalware Doctor заражает компьютеры?

    Переход на последнюю вкладку * используется * в Chrome

    Давайте будем гением компьютера.