如何允许或拒绝特定 ISP 网络

如何允许或拒绝特定 ISP 网络

有没有什么方法可以获取特定 ISP 的网络 IP,以便我可以使用 iptables 允许/阻止该 IP 后面的整个网络。

答案1

也许这样的事情可以帮助到你。

block_as.sh:

/bin/bash #!/bin/bash

ASLIST="$@"

对于 $ASLIST 中的 ASNO;执行
    后缀="$ASNO";
    #SUFFIX="" # 启用此功能将所有规则收集到一个链中
    回显“iptables -N rejection_as$SUFFIX”;
    回显“ip6tables -N rejection_as$SUFFIX”;
    whois -B -i 来源 "AS$ASNO" \
    | grep ‘^route’ \
    | 同时读取 proto 前缀 rest;执行
        案例“$proto”
            路由:)prog=iptables; ;;
            route6:) prog=ip6tables; ;;
            *)程序=回声; ;;
        埃萨克
        回声“$prog -A“reject_as$SUFFIX”-s $prefix -j REJECT”;
    完毕;
完毕

它通过 whois 获取所有网络并生成适当的 ip[6]tables 规则。也许你必须调整你的 whois-Query,因为我只针对成熟的数据库运行测试。

看起来像这样:

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

相关内容