ipset
Установка
apt-get update
apt-get install ipset
Создаем скрипт запуска
mcedit /etc/systemd/system/ipset-persistent.service
[Unit]
Description=ipset persistancy service
DefaultDependencies=no
Requires=netfilter-persistent.service
Requires=ufw.service
Before=network.target
Before=netfilter-persistent.service
Before=ufw.service
ConditionFileNotEmpty=/etc/iptables/ipset.conf
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ipset restore -f -! /etc/iptables/ipset.conf
# save on service stop, system shutdown etc.
ExecStop=/sbin/ipset save -f /etc/iptables/ipset.conf
[Install]
WantedBy=multi-user.target
RequiredBy=netfilter-persistent.service
RequiredBy=ufw.service
Создаем файлик конфига
/etc/iptables/ipset.conf
create blacklist hash:ip family inet hashsize 1024 maxelem 65536
add blacklist 1.1.1.1
Далее
sudo systemctl daemon-reload
sudo systemctl start ipset-persistent
sudo systemctl enable ipset-persistent
Можно добавить блокировку руками
ipset -A blacklist 1.1.1.1
После чего сохранить данные
sudo systemctl stop ipset-persistent
Так же можно читать данные из файла, вот пример части скрипта.
#!/bin/bash
ipset flush blacklist
list=$(cat /etc/iptables/blacklist1; cat /etc/iptables/blacklist2)
for ipnet in $list
do
ipset -A blacklist $ipnet
done
Ну и конечно не забываем добавить правила в iptables
# http drop
-A INPUT -m set --match-set blacklist src -p tcp --dport 80 -j DROP
-A INPUT -m set --match-set blacklist src -p tcp --dport 443 -j DROP
# http
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
[ Править ]