温馨提示×

Linux iptables如何配置防火墙规则

小樊
52
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规则时,请务必小心,错误的规则可能导致服务不可用。
  • 在生产环境中,建议使用更高级的工具如ufw(Uncomplicated Firewall)或firewalld来管理防火墙规则,这些工具提供了更友好的用户界面和更简单的配置方法。

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

0