linux

Linux iptables如何配置防火墙规则

小樊
40
2025-06-26 23:20:34
栏目: 智能运维

在Linux系统中,iptables是一个强大的命令行工具,用于配置内核防火墙(Netfilter)的规则。以下是一些基本的步骤和示例,帮助你开始配置iptables防火墙规则。

1. 查看当前规则

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

sudo iptables -L -n -v

2. 允许特定IP地址访问

假设你想允许IP地址为192.168.1.100的设备访问你的服务器。

sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT

3. 允许特定端口访问

假设你想允许TCP端口80(HTTP)和443(HTTPS)的流量。

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

4. 拒绝所有其他输入

为了安全起见,你可以拒绝所有其他未明确允许的输入流量。

sudo iptables -A INPUT -j DROP

5. 允许SSH访问

假设你想允许TCP端口22(SSH)的流量。

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

6. 保存规则

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

在Debian/Ubuntu上:

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

在CentOS/RHEL上:

sudo service iptables save

或者使用firewall-cmd(如果你使用的是firewalld):

sudo firewall-cmd --runtime-to-permanent

7. 恢复默认规则

如果你需要恢复默认的iptables规则,可以清除所有规则并设置默认策略。

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

8. 允许特定网络访问

假设你想允许整个子网192.168.1.0/24访问你的服务器。

sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

9. 允许DNS查询

假设你想允许UDP端口53(DNS)的流量。

sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT

10. 允许ICMP请求(ping)

假设你想允许ICMP echo请求(ping)。

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

注意事项

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

0
看了该问题的人还看了