一、iptables简介
iptables是一个基于Linux内核的防火墙工具,通过过滤和修改网络数据包来达到网络安全控制的目的。
CentOS7默认使用firewalld作为防火墙管理工具,但iptables仍是一种被广泛使用的替代方案。本文将介绍在CentOS7中如何使用iptables进行防火墙的配置。
二、iptables基础命令
iptables的基础命令包括:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #添加一个允许SSH连接的规则 iptables -A INPUT -j DROP #添加一个拒绝所有其他TCP流量的规则 iptables-save > /etc/sysconfig/iptables #将iptables配置保存到文件中
其中,-A表示添加规则,-p表示协议,--dport表示目标端口,-j表示操作(ACCEPT表示允许,DROP表示拒绝)。
最后一条命令将iptables配置保存到文件中,这样在重启系统后,iptables配置也能生效。
三、iptables配置文件
iptables配置文件位于/etc/sysconfig/iptables,它由一些条目组成,每个条目定义了一条iptables规则。
下面是一个简单的iptables配置文件:
# Generated by iptables-save v1.4.21 on Sat Feb 8 22:01:11 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
其中,filter是iptables的表类型,定义了表中的规则链(INPUT、FORWARD和OUTPUT)。每个规则链由一组规则组成,如-A INPUT表示在INPUT规则链中添加一条规则。规则的-m选项表示使用特定的扩展模块,如m state用于状态匹配。
四、iptables实际应用
(一)开启SSH连接
为了远程访问服务器,需要开启SSH连接。在iptables中添加一条允许SSH连接的规则,如下所示:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
这条规则将允许TCP流量通过22端口,表示允许SSH连接。
(二)限制HTTP访问
为了限制HTTP访问,需要拒绝所有不必要的HTTP流量和禁止入站HTTP访问。
iptables -A INPUT -p tcp --dport 80 -j DROP #拒绝所有HTTP流量 iptables -A OUTPUT -p tcp --dport 80 -j DROP #拒绝所有HTTP流量 iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT #仅允许入站HTTP访问
这些规则将拒绝所有80端口的流量(即HTTP流量),并允许入站HTTP访问。
(三)禁止ping
在某些情况下,可能需要禁止ping(ICMP)流量,以提高服务器的安全性。
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
这些规则将拒绝所有入站ping请求和所有出站ping回复。
(四)设置防火墙策略
设置防火墙策略是很常见的一种iptables应用。下面是一个简单的iptables配置,它允许SSH和HTTP访问,拒绝所有其他连接:
# 允许SSH连接 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许HTTP访问 iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT # 拒绝所有其他连接 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
其中,-P选项表示设置规则链的默认策略,DROP表示拒绝。
五、总结
iptables是一种强大的防火墙工具,在CentOS7中被广泛使用。本文介绍了iptables基础命令、配置文件、以及网络安全实践中常见的应用场景。希望这篇文章能对读者理解iptables配置和使用提供一些帮助。