您的位置:

CentOS7 iptables配置详解

一、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配置和使用提供一些帮助。