温馨提示×

iptables如何配置防火墙规则

小樊
53
2025-09-22 15:37:25
栏目: 编程语言

iptables 是 Linux 系统中用于配置内核防火墙的一个命令行工具。通过 iptables,你可以定义规则来允许或拒绝网络流量。以下是一些基本的步骤和示例,帮助你开始配置 iptables 防火墙规则。

1. 查看当前的iptables规则

首先,你可以查看当前的 iptables 规则,以确保没有冲突的规则存在。

sudo iptables -L -n -v

2. 清空所有规则

如果你是从头开始配置,或者需要重置现有的规则,可以使用以下命令清空所有规则:

sudo iptables -F
sudo iptables -X

3. 设置默认策略

你可以为不同的链(如 INPUTOUTPUTFORWARD)设置默认策略。例如,设置为拒绝所有进入的流量,但允许所有出去的流量:

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

4. 允许本地回环接口的流量

确保本地回环接口(lo)的流量被允许:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

5. 允许已建立的连接

允许已建立的连接和相关的数据包通过:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

6. 允许SSH连接

如果你需要通过SSH远程管理服务器,允许SSH连接(默认端口22):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

7. 允许HTTP和HTTPS连接

如果你需要允许Web流量,允许HTTP(端口80)和HTTPS(端口443)连接:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

8. 允许特定IP地址的访问

如果你只想允许特定IP地址访问你的服务器,可以使用以下命令:

sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT

9. 保存规则

iptables 规则在系统重启后会丢失,因此你需要保存规则。不同的Linux发行版可能有不同的方法来保存 iptables 规则。

在Debian/Ubuntu系统上:

sudo iptables-save > /etc/iptables/rules.v4

在Red Hat/CentOS系统上:

sudo service iptables save

或者使用 firewall-cmd 工具(适用于firewalld):

sudo firewall-cmd --runtime-to-permanent

10. 恢复规则

如果你已经保存了规则,可以在系统启动时自动加载它们。例如,在Debian/Ubuntu系统上:

sudo iptables-restore < /etc/iptables/rules.v4

在Red Hat/CentOS系统上:

sudo systemctl enable iptables

通过以上步骤,你可以开始配置 iptables 防火墙规则。根据你的具体需求,可以进一步调整和扩展这些规则。

0