我想使用 iptables 停止我的系统上的互联网,我该怎么办?
iptables -A INPUT -p tcp --sport 80 -j DROP
或者
iptables -A INPUT -p tcp --dport 80 -j DROP
?
答案1
现实是你问了两个不同的问题。
--sport
是缩写--source-port
--dport
是缩写--destination-port
此外,互联网不仅仅是HTTP
通常在端口 80 上运行的协议。我怀疑您是在问如何阻止 HTTP 请求。为此,您需要在出站链上阻止 80。
iptables -A OUTPUT -p tcp --dport 80 -j DROP
将阻止所有出站 HTTP 请求,前往端口 80,因此这不会阻止 SSL、8080(alt http)或任何其他奇怪的端口,要做这些事情,您需要 L7 过滤和更深入的数据包检查。
答案2
只是为了扩展 @xenoterracide 的答案,您可以在联机帮助页iptables(8)
(类型man 8 iptables
)中阅读有关 iptables 的更多信息,但在那里您找不到--dport
或--sport
。这些选项iptables-extensions(8)
在多端口、tcp、udp 和其他部分中列出。您可能对此感兴趣。
sudo ifdown <INTERNET FACING INTERFACE>
要“停止系统上的互联网”,您可以使用或sudo ip link set <INTERNET FACING INTERFACE> down
例如关闭网络接口sudo ip link set eth0 down
。要使其永久化,您需要查看 /etc/network/interfaces(Ubuntu、Debian...)或 /etc/sysconfig/network-scripts/ifcfg-(在 RHEL、SLES、CentOS、Oracle Linux、Fedora 上) ...)或您的网络管理器配置或您使用的任何其他内容。这当然会切断任何与“互联网”的连接,甚至是不基于 HTTP 的连接,并且会防止使用iptables
和处理 OSI/ISO 第 2 层流量造成轻微的性能影响。