您的位置:

CentOS iptables配置详解

一、基本概念

iptables 是在 Linux 内核中实现的强大的防火墙工具,它可以用来检查、修改数据包,且还可以充当 NAT 服务器使用,是 Linux 服务器必备防护工具之一。

在 CentOS 中,安装 iptables 后,通常要配置防火墙规则,以保证服务器安全。

二、iptables配置文件详解

CentOS 中 iptables 配置文件为 /etc/sysconfig/iptables,使用文本编辑器打开该文件:

$ sudo vi /etc/sysconfig/iptables

可以看到此文件中包含有关规则和链的信息,以下是一些基本的规则说明:

  • -A:增加规则
  • -D:删除规则
  • -I:插入规则
  • -j:规则动作
  • -p:协议
  • --dport:目标端口
  • -s:源地址
  • -d:目标地址
  • -i:输入接口
  • -o:输出接口

三、iptables 命令详解

以下是几个常用的 iptables 命令:

  • iptables -L [-n]:列出所有规则,-n 表示不进行主机名和端口号的解析。
  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT:添加允许 SSH 连接的规则。
  • iptables -A INPUT -s 192.0.2.0/24 -j DROP:拒绝来自 192.0.2.0/24 网络的所有连接。
  • iptables -D INPUT 1:删除 INPUT 链中的第一个规则。
  • iptables -P FORWARD DROP:将 FORWARD 链上的默认策略设为 DROP。
  • iptables-save > /etc/sysconfig/iptables:将当前 iptables 规则保存到 /etc/sysconfig/iptables 文件中。

四、常用防火墙规则详解

1. 允许本地回环接口

本地回环接口是指接口地址为 127.0.0.1 的网络接口。在 CentOS 中,可以使用以下命令添加这个规则:

iptables -A INPUT -i lo -j ACCEPT

2. 允许 SSH 连接

SSH 服务是连接到 CentOS 服务器的必要服务之一,可以使用以下 iptables 规则允许 SSH 连接:

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

3. 开启 HTTP 和 HTTPS 服务

在 CentOS 中启用 HTTP 和 HTTPS 服务需要开启 80 和 443 端口。可以使用以下命令添加规则:

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

4. 拒绝 ICMP 请求

由于 ICMP 协议的存在,攻击者可以使用 ping 等命令进行网络扫描。可以使用以下命令阻止 ICMP 请求:

iptables -A INPUT -p icmp -j DROP

5. 限制连接数

为防止恶意访问,可以限制对服务器的连接数。以下是一个适用于 HTTP 服务器的示例规则:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j DROP

五、iptables 配置实例

以下是一个基本的 iptables 配置实例:

# 开启回环接口
iptables -A INPUT -i lo -j ACCEPT

# 开启 SSH 连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 开启 HTTP 和 HTTPS 服务
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 拒绝 ICMP 请求
iptables -A INPUT -p icmp -j DROP

# 限制连接数
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j DROP

# 默认规则
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

以上规则允许本地回环接口、SSH 连接、HTTP 和 HTTPS 服务,拒绝 ICMP 请求,限制 HTTP 连接数,并将 DEFAULT 策略设置为 DROP。

总结

以上就是 CentOS iptables 配置的详解,希望能够帮助到你。