首页 文章

使用openwrt路由器阻止facebook.com

提问于
浏览
-1

我正在使用OpenWRT路由器 . 我需要在特定时间内阻止URL或多个URL(非IP) . 例如,我想阻止facebook.com,以便此路由器的客户端无法访问该网站 . 防火墙规则应该有选项,但我不知道如何做到这一点 .

1 回答

  • 0

    这是一种通过域名而不是IP地址阻止的方法 .

    您需要这种复杂方法的主要原因是每个域名(例如facebook.com)可能在任何给定时间被解析为不同的IP地址 . 因此,我们需要保留已解析的IP地址列表,并根据此列表添加iptables规则 .

    首先,您应该在dnsmasq配置中启用日志记录:

    uci set dhcp.@dnsmasq[0].logqueries=1
    uci commit dhcp
    /etc/init.d/dnsmasq restart
    

    这将为您提供以下日志条目:

    daemon.info dnsmasq[2066]: reply facebook.com is 31.13.72.36
    

    现在,您只需要不断解析syslog并添加相应的iptables规则(请注意,您最需要一个更通用的脚本和ipset以获得更好的性能):

    logread -f | awk '/facebook.com is .*/{print $11}' | while read IP; do iptables -I OUTPUT -d $IP -j DROP; done
    

相关问题