如何在CentOS上配置iptables防火墙?

CentOS系统中iptables防火墙配置详解

在服务器管理中,防火墙配置是保障系统安全的核心环节,作为CentOS系统内置的经典防火墙工具,iptables凭借其灵活的规则配置和高效的流量控制能力,成为运维人员必须掌握的关键技能,本文将从实战角度出发,系统讲解iptables的配置方法与注意事项。

一、环境准备与基础检查

1、服务状态确认

执行命令查看当前防火墙状态:

   systemctl status iptables

若系统已启用firewalld服务,需先停止并禁用:

   systemctl stop firewalld
   systemctl mask firewalld

2、安装iptables组件

CentOS 7+系统默认未安装iptables服务,需手动安装:

   yum install iptables-services -y
   systemctl enable iptables

二、核心概念速览

规则链(Chains)

INPUT(处理入站流量)、OUTPUT(处理出站流量)、FORWARD(转发流量)构成主要控制链条。

规则表(Tables)

filter表用于包过滤,nat表处理网络地址转换,mangle表用于特殊数据包修改。

动作类型

ACCEPT(允许通过)、DROP(静默丢弃)、REJECT(拒绝并返回响应)。

三、实战配置流程

1、基础规则设置

清空现有规则并设置默认策略:

   iptables -F
   iptables -X
   iptables -Z
   iptables -P INPUT DROP
   iptables -P FORWARD DROP
   iptables -P OUTPUT ACCEPT

2、必要通信放行

允许本地回环通信:

   iptables -A INPUT -i lo -j ACCEPT

开放SSH端口(示例为2222端口):

   iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

3、Web服务配置

同时放行HTTP/HTTPS流量:

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

4、ICMP协议控制

允许Ping检测但限制频率:

   iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT

四、高阶防护策略

1、防暴力破解机制

对SSH端口实施连接频率限制:

   iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --set
   iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --update --seconds 300 --hitcount 5 -j DROP

2、IP黑白名单管理

禁止特定IP段访问:

   iptables -A INPUT -s 192.168.2.0/24 -j DROP

放行可信IP访问数据库:

   iptables -A INPUT -s 10.10.1.100 -p tcp --dport 3306 -j ACCEPT

3、防DDOS攻击配置

限制新建连接数:

   iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 30 -j ACCEPT

五、配置持久化与维护

1、规则保存

将内存中的规则写入配置文件:

   service iptables save

或手动备份:

   iptables-save > /etc/sysconfig/iptables.bak

2、服务管理

重启服务使配置生效:

   systemctl restart iptables

六、故障排查技巧

1、规则验证

使用nmap工具扫描端口:

   nmap -sS -p 22,80,443 服务器IP

2、日志追踪

查看防火墙日志定位异常:

   tail -f /var/log/messages | grep iptables

3、应急恢复

当误操作导致SSH断开时,可通过控制台执行:

   iptables -P INPUT ACCEPT && iptables -F

特别提醒:IPv6防护配置

若服务器启用IPv6协议,需同步配置ip6tables:

ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
service ip6tables save
systemctl restart ip6tables

合理的防火墙配置应当遵循最小权限原则,建议每次修改后通过非关键端口进行测试,对于生产环境,可采用配置版本化管理,定期使用iptables-restore命令进行规则审计,技术更新迭代下,虽然部分场景逐渐转向nftables,但掌握iptables仍是Linux系统管理的重要基石。(个人观点,仅供参考)

发布于 2025-05-22 13:32:16
分享
海报
258
上一篇:如何立即自定义CentOS系统? 下一篇:如何在CentOS系统上安装Spark?分步指南
目录

    忘记密码?

    图形验证码