Назад | Перейти на главную страницу

Как я могу разрешить или запретить конкретную сеть интернет-провайдера

Есть ли способ получить сетевой IP-адрес конкретного интернет-провайдера, чтобы я мог разрешить / заблокировать всю сеть за этим IP-адресом с помощью iptables.

Может быть, что-то подобное может вам помочь.

block_as.sh:

#!/bin/bash

ASLIST="$@"

for ASNO in $ASLIST; do
    SUFFIX="$ASNO";
    #SUFFIX="" # enable this to gather all rules in one chain
    echo "iptables -N reject_as$SUFFIX";
    echo "ip6tables -N reject_as$SUFFIX";
    whois -B -i origin "AS$ASNO" \
    | grep '^route' \
    | while read proto prefix rest; do
        case "$proto" in
            route:)  prog=iptables; ;;
            route6:) prog=ip6tables; ;;
            *)       prog=echo; ;;
        esac
        echo "$prog -A "reject_as$SUFFIX" -s $prefix -j REJECT";
    done;
done

Он извлекает всю сеть через whois и генерирует соответствующие правила таблиц ip [6]. Возможно, вам придется настроить свой whois-Query, поскольку я проводил тесты только для зрелой базы данных.

Выглядит примерно так:

$ ./block_as.sh 3320 6724
iptables -N reject_as3320
ip6tables -N reject_as3320
iptables -A reject_as3320 -s 193.103.152.0/22 -j REJECT
[...]
iptables -A reject_as3320 -s 134.97.128.0/17 -j REJECT
iptables -A reject_as3320 -s 194.156.246.0/24 -j REJECT
iptables -A reject_as3320 -s 91.222.232.0/22 -j REJECT
ip6tables -A reject_as3320 -s 2003:0000::/19 -j REJECT
ip6tables -A reject_as3320 -s 2003:0000::/20 -j REJECT
iptables -N reject_as6724
ip6tables -N reject_as6724
iptables -A reject_as6724 -s 192.67.198.0/24 -j REJECT
[...]
iptables -A reject_as6724 -s 85.214.0.0/15 -j REJECT
iptables -A reject_as6724 -s 81.169.128.0/17 -j REJECT
ip6tables -A reject_as6724 -s 2a01:238::/32 -j REJECT