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 配置的详解,希望能够帮助到你。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/253897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-14 02:19
下一篇 2024-12-14 02:19

相关推荐

  • CentOS 6如何删除resolv.conf的DNS

    本文将介绍在CentOS 6操作系统下如何删除resolv.conf文件中的DNS配置信息。 一、备份resolv.conf文件 在修改resolv.conf文件之前,建议首先备份…

    编程 2025-04-29
  • 使用CentOS配置监控

    本文将介绍如何使用CentOS配置监控,包括如何安装监控工具、配置监控参数、监控其他服务器等方面。 一、安装监控工具 要想进行监控,首先需要安装监控工具。在CentOS系统中,常见…

    编程 2025-04-29
  • 在CentOS上安装Redis

    Redis是一款非关系型数据库,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis运行内存内并且支持数据持久化,它还可以应用于缓存、消息队列等场景。本文将介绍…

    编程 2025-04-28
  • CentOS 7在线安装MySQL 8

    在本文中,我们将介绍如何在CentOS 7操作系统中在线安装MySQL 8。我们会从安装环境的准备开始,到安装MySQL 8的过程进行详细的阐述。 一、环境准备 在进行MySQL …

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论