在Linux系统中,禁止访问公网通常涉及到网络配置和防火墙设置。以下是一些基础概念和相关操作:
# 清空现有规则
sudo iptables -F
sudo iptables -t nat -F
# 阻止所有出站流量
sudo iptables -P OUTPUT DROP
# 允许本地回环接口的流量
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
# 允许已建立的连接和相关流量
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 保存规则
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
# 禁用所有出站流量
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -j DROP
# 允许本地回环接口的流量
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i lo -j ACCEPT
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -o lo -j ACCEPT
# 允许已建立的连接和相关流量
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 重新加载防火墙配置
sudo firewall-cmd --reload
# 创建一个新的网络命名空间
sudo ip netns add no-internet
# 将当前网络接口移动到新的命名空间
sudo ip link set dev eth0 netns no-internet
# 在新的命名空间中配置网络接口(例如,设置为无IP地址)
sudo ip netns exec no-internet ip addr flush dev eth0
sudo ip netns exec no-internet ip link set dev eth0 up
# 切换到新的命名空间
sudo ip netns exec no-internet bash
通过上述方法,可以有效地禁止Linux系统访问公网,提高系统的安全性和资源管理效率。
领取专属 10元无门槛券
手把手带您无忧上云