
Чтобы предотвратить атаки методом подбора паролей на ssh, я добавил несколькоправила iptables(ниже). Вопрос: как мне составить список заблокированных IP-адресов?
(1)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
решение1
Одним из вариантов может быть регистрация всех потерянных пакетов с помощью следующего правила:
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl -j LOG --log-prefix "FW_DROPPED: "
Вставьте это непосредственно перед DROP
правилом. Затем вы можете выполнить grep файла syslog на предмет всего, что содержит "FW_DROPPED", и список IP-адресов будет там. Записи в файле журнала выглядят примерно так:
Jun 3 08:05:57 some-machine kernel: [15852451.420557] FW_DROPPED: IN=eth0 OUT= MAC=00:50:ba:4a:d9:e3:00:12:17:3a:e3:64:08:00 SRC=228.23.45.189 DST=192.168.1.1 LEN=48 TOS=0x00 PREC=0x00 TTL=106 ID=10941 PROTO=TCP SPT=58212 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0
Итак, вырезание того, что следует за "SRC=", покажет вам отброшенные IP-адреса. Отсортируйте это, исключив дубликаты, и у вас будет ваш список.
Я нашелУчебник по Iptablesсамая полезная документация по iptables/netfilter.
решение2
Подробную информацию можно найти в /proc/net/ipt_recent/SSH.
Эта статьяесть дополнительная информация.
решение3
Посмотри на
/proc/net/ipt_recent/YOURNAME
где YOURNAME — это имя, которое вы использовали с опцией --name в правиле iptables.
решение4
Например, для подмены входного адреса я определяю цепочку SPOOF_REJECT
:
iptables -N SPOOF_REJECT
iptables -A SPOOF_REJECT -j LOG --log-prefix "Input spoof detected: "
iptables -A SPOOF_REJECT -j REJECT
затем отправить пакеты в эту цепочку, если они поддельные:
iptables -A INPUT -i $EXT_DEV1 -s $INT_NET -j SPOOF_REJECT
iptables -A INPUT -i $EXT_DEV2 -s $INT_NET -j SPOOF_REJECT
Вы можете сделать что-то подобное для каждой категории пакетов, которые вы отбрасываете или отклоняете, чтобы получить строку в системном журнале для поиска, а затем периодически выполнять grep, cut, sort, чтобы получить только IP-адреса из этих строк журнала.
Преимущество использования отдельных цепочек для каждой категории заключается в том, что ваша конфигурация становится более простой и ее становится легче читать iptables
. По мере добавления все большего количества правил вы будете рады, что использовали отдельные цепочки для определенных различных действий.