温馨提示×

Linux防火墙如何限制外部访问

小樊
49
2025-09-27 09:18:03
栏目: 智能运维

在Linux系统中,可以使用iptables或firewalld来限制外部访问。这里分别介绍这两种方法:

  1. 使用iptables限制外部访问:

iptables是Linux系统中的一个命令行工具,用于配置内核防火墙。以下是一些基本的iptables规则,用于限制外部访问:

  • 阻止所有外部访问:
sudo iptables -P INPUT DROP
  • 允许已建立的连接和相关的数据包通过:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  • 允许SSH访问(假设SSH端口为22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 允许HTTP和HTTPS访问(假设HTTP端口为80,HTTPS端口为443):
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • 保存iptables规则:
sudo iptables-save > /etc/iptables/rules.v4

注意:iptables规则在系统重启后可能会丢失。要使规则永久生效,可以考虑使用iptables-persistent或其他第三方工具。

  1. 使用firewalld限制外部访问:

firewalld是另一个用于配置Linux防火墙的命令行工具。以下是一些基本的firewalld规则,用于限制外部访问:

  • 阻止所有外部访问:
sudo firewall-cmd --set-default-zone=drop
  • 允许已建立的连接和相关的数据包通过:
sudo firewall-cmd --permanent --zone=trusted --add-interface=lo
  • 允许SSH访问(假设SSH端口为22):
sudo firewall-cmd --permanent --zone=public --add-service=ssh
  • 允许HTTP和HTTPS访问(假设HTTP端口为80,HTTPS端口为443):
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
  • 重新加载firewalld配置:
sudo firewall-cmd --reload

注意:firewalld规则在系统重启后仍然有效。如果需要删除或修改规则,可以使用firewall-cmd命令。

0