HCRM博客

如何在CentOS系统上使用iptables进行防火墙配置?

CentOS iptables 使用详解

CentOS 7 默认的防火墙是 firewalld,但在某些情况下,可能需要使用 iptables 来替代 firewalld,本文将详细介绍如何在 CentOS 系统中安装、配置和管理 iptables。

一、简介

如何在CentOS系统上使用iptables进行防火墙配置?-图1
(图片来源网络,侵权删除)

iptables 是 Linux 系统中的一个用户空间工具,用于定义和操作内核中的网络包过滤规则,它通过设置不同的链(如 INPUT、FORWARD、OUTPUT)来实现对进出流量的控制,每个链可以包含多个规则,每条规则定义了匹配某些条件的数据包应如何处理(ACCEPT、DROP、REDIRECT 等)。

二、安装与启动 iptables

1、检查是否安装了 iptables

   service iptables status

如果未安装,可以使用以下命令进行安装:

   yum install y iptables
   yum update iptables

2、安装 iptablesservices

   yum install y iptablesservices

3、关闭 firewalld

如何在CentOS系统上使用iptables进行防火墙配置?-图2
(图片来源网络,侵权删除)
   systemctl stop firewalld
   systemctl disable firewalld

4、启动 iptables

   systemctl start iptables
   systemctl enable iptables

5、查看 iptables 状态

   systemctl status iptables

三、查看与备份 iptables 规则

1、查看当前规则

   iptables L n

参数说明:

L:列出规则

n:以数字形式显示 IP 地址和端口号

2、备份现有规则

   cp a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

四、添加与修改规则

1、放行指定端口(例如放行 HTTP 的 80 端口)

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

参数说明:

I:插入规则到链的开头

p tcp:匹配 TCP 协议

dport 80:目标端口为 80

m state state NEW:匹配新连接的状态

j ACCEPT:接受数据包

2、查看规则是否生效

   iptables L

3、保存添加的规则

   iptablessave > /etc/sysconfig/iptables

4、设置开机自启动

   systemctl enable iptables.service

五、删除规则

1、删除指定规则

   iptables D INPUT p tcp dport 80 m state state NEW j ACCEPT

参数说明:

D:删除规则

六、高级配置示例

1、允许特定 IP 访问 SSH(例如只允许 192.168.0.100 访问 SSH)

   iptables D INPUT p tcp dport 22 j ACCEPT
   iptables A INPUT s 192.168.0.100 p tcp dport 22 j ACCEPT

2、保存并重启 iptables

   service iptables save
   systemctl restart iptables

七、常见问题及解答(FAQs)

1、如何更改 iptables 配置后不生效?

确保在修改规则后执行iptablessave > /etc/sysconfig/iptables 保存规则,并且使用systemctl restart iptables 重启服务使配置生效。

2、如何永久关闭防火墙?

可以通过执行以下命令永久关闭防火墙:

   systemctl stop firewalld
   systemctl disable firewalld
   chkconfig level 35 iptables off
   /etc/init.d/iptables stop
   iptables P INPUT DROP
分享:
扫描分享到社交APP
上一篇
下一篇