CentOS配置Iptables
一、iPTAbles简介
iptables是一个用于设置、维护和检查Linux内核中的IP包过滤规则的工具,它作为netfilter项目的一部分,被广泛用于实现防火墙功能,iptables通过定义一组规则来控制数据包的进出,从而实现网络安全策略。
二、基本命令说明
查看当前所有的iptables配置
iptables L n
L
:列出规则。
n
:以数字形式显示地址和端口。
添加允许INPUT访问规则
以下示例展示了如何添加常见服务的端口设置,如果需要拒绝访问,则将ACCEPT
改为DROP
即可。
SSH iptables A INPUT p tcp dport 22 j ACCEPT HTTP iptables A INPUT p tcp dport 80 j ACCEPT iptables A INPUT p tcp dport 8080 j ACCEPT HTTPS iptables A INPUT p tcp dport 443 j ACCEPT POP3 iptables A INPUT p tcp dport 110 j ACCEPT SMTP iptables A INPUT p tcp dport 25 j ACCEPT FTP iptables A INPUT p tcp dport 21 j ACCEPT iptables A INPUT p tcp dport 20 j ACCEPT DNS iptables A INPUT p tcp dport 53 j ACCEPT
添加使用IP限制INPUT访问规则
以SSH为例,只允许特定IP(如192.168.0.100)访问SSH服务。
删除之前的允许所有IP的规则 iptables D INPUT p tcp dport 22 j ACCEPT 添加新的规则只允许特定IP访问 iptables A INPUT s 192.168.0.100 p tcp dport 22 j ACCEPT
保存iptables的设置
修改完规则后记得保存:
/etc/rc.d/init.d/iptables save
重启iptables
service iptables restart
开启/关闭 开机启动
开启开机启动 chkconfig iptables on 关闭开机启动 chkconfig iptables off
打开iptables的配置文件
vi /etc/sysconfig/iptables
8. 修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口
A RHFirewall1INPUT m state state NEW m tcp p tcp dport 80 j ACCEPT
关闭/开启/重启防火墙
停止防火墙 /etc/init.d/iptables stop 启动防火墙 /etc/init.d/iptables start 重启防火墙 /etc/init.d/iptables restart
永久性关闭防火墙
chkconfig level 35 iptables off /etc/init.d/iptables stop iptables P INPUT DROP
打开主动模式21端口
iptables A INPUT p tcp dport 21 j ACCEPT
12. 打开被动模式49152~65534之间的端口
iptables A INPUT p tcp dport 49152:65534 j ACCEPT iptables A INPUT i lo j ACCEPT iptables A INPUT m state state ESTABLISHED j ACCEPT
三、iptables高级配置与优化
设置扩展的规则匹配
多端口匹配
匹配多个源端口或目的端口:
多个源端口 iptables A INPUT p tcp m multiport sport 22,23,53,80 j ACCEPT 多个目的端口 iptables A INPUT p tcp m multiport dport 22,23,53,80 j ACCEPT 连续端口范围 iptables A INPUT p tcp sport 20:80 j ACCEPT
指定TCP匹配
使用tcp包的标志位进行过滤:
仅SYN包匹配 iptables A INPUT p tcp tcpflags SYN,FIN,ACK,SYN j ACCEPT
速率匹配
限制单位时间内的数据包个数:
每秒最多允许10个数据包通过 iptables A INPUT m limit limit 10/sec j ACCEPT
NAT模式配置
网络地址转换NAT模式
将所有从eth0接口进来的流量转发到192.168.1.100:8080 iptables t nat A PREROUTING p tcp dport 80 j DNAT todestination 192.168.1.100:8080
企业级防火墙配置建议
状态检测机制
确保启用状态检测机制,提高防火墙性能和安全性:
确保状态检测模块加载成功 lsmod | grep xt_state 如果未加载,手动加载模块 modprobe xt_state
日志记录与监控
配置iptables记录匹配的规则日志,以便后续分析和监控:
在INPUT链上记录丢弃的数据包信息 iptables A INPUT m limit limit 5/min j LOG logprefix "IPTablesDropped: " loglevel 4
四、常见问题FAQs解答
Q1: 如何更改iptables配置使其立即生效?
A1: 修改完iptables规则后,可以使用以下命令使其立即生效:
service iptables restart
或者直接重新加载规则而不重启服务:
/etc/rc.d/init.d/iptables save && /etc/rc.d/init.d/iptables restart
注意:某些情况下,可能需要清空现有规则并重新添加。