Я намерен полностью запретить доступ примерно к 2000 IP-адресам, добавив соответствующие записи в hosts.deny файл. Повлияет ли это на ответная реакция системы при удаленном доступе с легитимных IP-адресов?
Это сделает первоначальное соединение немного медленнее, но в дальнейшем это не должно влиять на скорость отклика после подключения.
Вообще говоря, hosts.deny работает довольно быстро: в тесте, который я только что запустил, hosts.deny нулевой длины потребовалось 0,93 секунды для инициации и закрытия ssh-соединения («time ssh testhost env»). Для hosts.deny из 64 010 строк (в форме «ALL: 10.10.x.y», где x и y находятся в диапазоне от 2 до 254) то же соединение заняло 1,03 секунды. Все времена были усреднены по четырем образцам.
Очевидно, ваш пробег может отличаться, поэтому я предлагаю вам проверить, но я сомневаюсь, что у вас возникнут серьезные проблемы.
Также можно использовать iptables с отслеживанием соединений, что, я думаю, будет немного быстрее и будет иметь дополнительное преимущество в виде независимости от протокола, то есть в равной степени подходит для запрета подключений к tcp / udp / icmp или любой другой службе, которую вы можете запустить.
Можно ли объединить эти 2000 адресов?
hosts.deny
примет определения CIDR. Так, например, должно быть проще и быстрее управлять:
10.0.0.0/30
10.0.1.0/30
Чем эквивалент:
10.0.0.1
10.0.0.2
10.0.1.1
10.0.1.2
Требуется ли брандмауэр?
Если вы делаете это часто, то это действительно обязанность брандмауэра, а не самого хоста. Было бы проще управлять централизованно, и (как отмечает Джим) PF OpenBSD с отслеживанием состояния облегчил бы эту работу.
[olafrv@eqqus ~]$ cat /etc/hosts.deny | grep ^ALL | wc -l
8004
С такой суммой у меня нет проблем и задержек на настольном ПК Intel Dual Core.
Файл hosts.deny автоматически поддерживается denyhosts (http://denyhosts.sourceforge.net)