Вы могли бы хотеть изучить Прокривую HP функция отслеживания DHCP, там можно установить авторизованный сервер DHCP IP и блоком любые другие предложения DHCP. Вот техническое описание на нем, надежда, которой это помогает и надежда Ваша поддержка коммутаторов это:
Что Ваше отвращение к стороннему программному обеспечению?
Denyhosts является пакетом для Ubuntu и работает из поля и часто рекомендуется здесь. Если бы Вы хотели Вас, то мог бы записать Ваш собственный сценарий, который делает точно, что denyhosts делает, но какова была бы точка этого?
Альтернативное решение к блокированию IP состоит в том, чтобы переместить порт, на котором слушает sshd. Большинство деточек сценария не обеспокоится попыткой найти SSH на другом порте.
Вы могли также выключить аутентификацию по паролю, с помощью только аутентификацию с открытым ключом.
Другая опция является дверным молоточком порта (как knockd).
Я определенно рекомендовал бы использовать что-то как Fail2ban или DenyHosts, чтобы сделать это. Это точно, для чего они сделаны, и как Zoredache говорит, я не могу вообразить, почему у Вас была бы проблема с использованием сторонней программы.
Однако Вы могли использовать recent
модуль для IPtables, который существует в более новых версиях программного обеспечения. (Я не уверен, как новый точно, но если Вы были в курсе, я думаю, что у Вас должен быть он.) Не столь легко настроить или также показанный как сторонние программы, но это - возможность. Ряд правил как это:
iptables -A INPUT -m recent --name nobruteforce --rcheck -j DROP
iptables -A INPUT -m recent <other options> --name nobruteforce --set -j DROP
добавят все пакеты, которые соответствуют <other options>
к черному списку, и заблокирует дальнейшие пакеты, прибывающие из того же исходного IP-адреса. Вы заменили бы <other options>
с любыми опциями IPtables Вы обычно используете для идентификации атак перебором; например, это могло бы быть что-то как
iptables -A INPUT -m recent -p tcp --dport 22 --name nobruteforce --set -j DROP
хотя действительно отмечают, что каждый пакет, который прибывает для портирования 22 (который не соответствовал более раннему правилу) инициировал бы это. Будьте осторожны с recent
модуль, потому что это могло серьезно испортить вещи, если Ваши правила когда-нибудь производят положительную ложь. Если бы необходимо использовать его, для ограничения последствий, я предложил бы добавить ограничение по времени и/или минимальное требование хита к второму правилу:
iptables -A INPUT -m recent --name nobruteforce --rcheck --seconds 7200 --hitcount 5 -j DROP
Это заблокировало бы пакеты только после того, как 5 пакетов "в лоб" будут получены, и в конце 2 часов (7 200 секунд) это удалит исходный адрес из черного списка.
Больше информации о ipt_recent
доступно по http://snowman.net/projects/ipt_recent/