我使用 Linux,通过以太网连接到互联网,我创建了一个热点,这样我就可以与家人共享互联网,现在我发现我的一个长辈沉迷于非法网站,所以我想屏蔽这些网站。为了创建热点,我使用了Tp-link TL-WN722N
Usb-wifi 网络适配器。(外部)
那位老人使用 Android,他对互联网和其他东西不太了解,但我想以防万一,而不是问他手机号并在浏览器中设置“过滤搜索结果”。所以我想从我这边屏蔽网站,这样他就无法访问任何愚蠢的东西。
所以基本上每个人都可以通过我的笔记本电脑上网。
我的 ISP 没有阻止任何网站。
Tp-link TL-WN722N详情:
IEEE 802.11bgn Mode:Master Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
我需要针对 Linux 操作系统的这个答案的解决方案。
先感谢您..
答案1
即使您只称它为home hot-spot
,它实际上是被用作老人的路由器,并且您希望该路由器包含安全性,这就是防火墙的用途。
只需安装防火墙并应用规则来拒绝您想要阻止的地址即可。就这么简单。
请注意,无论阻止特定地址有多简单,找到要阻止的地址可能是完全不同的故事。
答案2
在 Linux 中,如果尚未安装 iptables,则安装 ipset 和 iptables。
ipset create banned_hosts hash:net family inet hashsize 65536 maxelem 200000 counters comment
iptables -I INPUT 1 -m set -j DROP --match-set banned_nets src
iptables -I FORWARD 1 -m set -j DROP --match-set banned_nets src
iptables -I FORWARD 2 -m set -j DROP --match-set banned_nets dst
iptables -I OUTPUT 1 -m set -j DROP --match-set banned_nets dst
您必须在重启之前/之后保存并恢复列表。
ipset save >/somewhere/ban.txt
ipset restore </somewhere/ban.txt
如果您的 Linux 使用 systemd,我有几个规则可以使其自动化。该文件应该看起来像这样,但前后列表可能会有所不同。
创建 /etc/systemd/system/basic.target.wants/ipset.service
[Unit]
Description=IP sets for iptables
After=ufw.service
Before=network.target
Before=iptables.service
Before=webmin-iptables.service
AssertPathExists=/src/all.txt
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ipset restore -f /src/all.txt
ExecStop=/sbin/ipset save -f /src/all.txt
#ExecReload=/usr/libexec/ipset/ipset.start-stop reload
# Save current ipset entries on stop/restart.
# Value: yes|no, default: no
# Saves all ipsets to /etc/sysconfig/ipset if ipset gets stopped
Environment=IPSET_SAVE_ON_STOP=yes IPSET_SAVE_ON_RESTART=no
[Install]
WantedBy=basic.target