Тут нужно было заблокировать доступ к серверу целой AS при помощи iptables, сетей было много, ручками лень, решил написать bash скрипт.
В целом он подойдет и вам, под свои нужды отредактируете сами.
apt install whois
Обратите внимание на строки:
# Проверка наличия файла для сохранения правил iptables # Если установлен iptables-persistent iptables_rules_file="/etc/iptables/rules.v4" # Просто iptables # iptables_rules_file="/etc/iptables.save"
#!/bin/bash # AS для блокировки blocked_as=( "AS12345" "AS123456" # добавьте другие AS, которые вы хотите заблокировать, в формате "ASxxxx" ) # Проверка наличия файла для сохранения правил iptables # iptables_rules_file="/etc/iptables/rules.v4" iptables_rules_file="/etc/iptables.save" # Создание временного файла для новых правил temp_rules_file=$(mktemp) # Получение списка IP-адресов для данного AS for as in "${blocked_as[@]}"; do ip_addresses=$(whois -h whois.radb.net -- '-T route -i origin '$as | grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}") # Добавление правил iptables для блокировки каждого IP-адреса for ip in $ip_addresses; do # Проверка, есть ли данное правило уже в файле if ! grep -q "$ip" "$iptables_rules_file"; then # Если нет, добавляем во временный файл echo "-A INPUT -s $ip -j DROP" >> "$temp_rules_file" fi done done # Если есть новые правила, добавляем их в файл перед COMMIT if [ -s "$temp_rules_file" ]; then echo "# Запрещаем все сети из ${blocked_as[*]}" >> "$temp_rules_file" echo "" >> "$temp_rules_file" # Пустая строка перед правилами # Добавление правил в файл перед COMMIT cat "$iptables_rules_file" | awk '/COMMIT/ {print ""; print "# Запрещаем все сети из '"${blocked_as[*]}"'"; system("cat '"$temp_rules_file"'"); print "";} {print}' > "$iptables_rules_file.tmp" && mv "$iptables_rules_file.tmp" "$iptables_rules_file" echo "Добавлены новые правила iptables." else echo "Нет новых правил для добавления в iptables." fi # Удаление временного файла rm -f "$temp_rules_file" # Проверка наличия правил в файле перед его применением if [ -s "$iptables_rules_file" ]; then # Перезагрузка правил iptables iptables-save > "$iptables_rules_file" iptables-restore < "$iptables_rules_file" echo "Обновление правил iptables завершено." else echo "Файл правил iptables пуст или отсутствует. Нет правил для применения." fi
Если при добавления правил видите:
Файл правил iptables пуст или отсутствует. Нет правил для применения.
То просто добавляем рандомное правило, например:
iptables -A INPUT -p tcp --dport 8888 -j DROP
и перезапустите bash скрипт
Установка WireGuard на Debian 10 Buster и Debian 11 Bullseye