HCRM博客

如何配置CentOS系统的iptables防火墙?

Centos 7 使用iptables 的全面指南

前言

如何配置CentOS系统的iptables防火墙?-图1
(图片来源网络,侵权删除)

在 CentOS 7 中,默认的防火墙服务是 Firewalld,许多用户仍然习惯于使用iptables 来配置防火墙规则,本文将详细介绍如何在 CentOS 7 上安装、配置和使用iptables,包括如何禁止 Firewalld 开机启动、安装iptables、启动和设置iptables 为开机启动以及查看和修改iptables 的默认规则。

1. 禁止 Firewalld 开机启动

为了防止与iptables 冲突,首先需要禁用 Firewalld 并停止其服务,执行以下命令查看 Firewalld 状态:

  • systemctl status firewalld

如果服务处于运行状态,执行以下命令停止 Firewalld 服务:

  • systemctl stop firewalld

禁止 Firewalld 开机启动:

  • systemctl disable firewalld

2. 安装iptables

如何配置CentOS系统的iptables防火墙?-图2
(图片来源网络,侵权删除)

执行以下命令安装iptables

  • yum install y iptablesservices

3. 启动iptables 并设置为开机启动

执行以下命令启动iptables

  • systemctl start iptables

查看iptables 是否成功启动:

  • systemctl status iptables

系统显示类似如下,说明iptables 已经成功启动:

  • ● iptables.service IPv4 Packet Filtering Core Backend
  • Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled)
  • Active: active (running) since Mon 20231023 14:56:18 PDT; 1h 1min ago
  • Docs: man:iptables(8)
  • Main PID: 892 (iptables_restore)
  • CGroup: /system.slice/iptables.service
  • ├─892 iptables_restore
  • └─903 iptables

执行以下命令,设置iptables 开机启动:

如何配置CentOS系统的iptables防火墙?-图3
(图片来源网络,侵权删除)
  • systemctl enable iptables.service

设置完成后,重启实例以验证配置:

  • systemctl reboot

4. 查看并修改iptables 默认规则

执行以下命令查看iptables 的现有规则:

  • iptables L n

清空所有规则:

  • iptables F

根据业务需求添加规则,例如放行 80 端口和 22 端口:

  • iptables I INPUT p tcp dport 80 m state state NEW j ACCEPT
  • iptables I INPUT p tcp dport 22 m state state NEW j ACCEPT

添加规则,使 INPUT 链拒绝所有请求:

  • iptables P INPUT DROP

确认新规则生效:

  • iptables L

保存添加的规则:

  • iptablessave > /etc/sysconfig/iptables

5. 其他规则设定

如果要添加内网 IP 信任(接受其所有 TCP 请求),可以执行以下命令:

  • iptables A INPUT p tcp s 192.168.1.104 j ACCEPT

过滤所有非以上规则的请求:

  • iptables P INPUT DROP

要封停一个 IP,使用以下命令:

  • iptables I INPUT s... j DROP

要解封一个 IP,使用以下命令:

  • iptables D INPUT s... j DROP

6. 关闭 SELinux

在某些情况下,SELinux 可能会影响iptables 的配置,可以选择关闭 SELinux:

  • vi /etc/selinux/config

SELINUX=enforcing 改为SELINUX=disabled,然后重启系统。

FAQs

Q1:如何更改iptables 规则的顺序?

A1:可以使用iptablesI 选项在指定链的开头插入规则,要在 INPUT 链的开头插入一条规则,可以使用:

  • iptables I INPUT p tcp dport 80 j ACCEPT

这条命令会在 INPUT 链的最上面插入一条放行 80 端口的规则。

Q2:如何删除特定的iptables 规则?

A2:可以使用iptablesD 选项删除特定规则,使用iptables L linenumbers 列出带有行号的规则,然后使用以下命令删除指定行号的规则:

  • iptables D INPUT 行号

要删除第 3 条规则:

  • iptables D INPUT 3

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/11589.html

分享:
扫描分享到社交APP
上一篇
下一篇