如何在CentOS系统中有效配置防火墙以增强安全性?

CentOS防火墙配置可通过命令如systemctl status firewalld查看状态,通过systemctl start/stop firewalld来启动或关闭防火墙,使用firewall-cmd –permanent –add-port=端口号/tcp添加例外端口。

CentOS防火墙配置详解

一、开启和关闭防火墙

在CentOS系统中,防火墙的配置可以通过多种方式进行,以下是一些常用的方法和步骤:

1. 使用chkconfig 命令

开启防火墙

   sudo chkconfig iptables on

关闭防火墙

   sudo chkconfig iptables off

这些命令将设置防火墙在系统启动时自动开启或关闭,这些命令需要以root用户身份运行。

2. 使用systemctl 命令(适用于CentOS 7及更高版本)

查看防火墙状态

   sudo systemctl status firewalld

启动防火墙

   sudo systemctl start firewalld

停止防火墙

   sudo systemctl stop firewalld

重启防火墙

   sudo systemctl restart firewalld

设置防火墙开机自启动

   sudo systemctl enable firewalld

禁用防火墙开机自启动

   sudo systemctl disable firewalld

二、查看防火墙状态与规则

1. 查看防火墙状态

使用service iptables status

   sudo service iptables status

使用firewall-cmd --state

   sudo firewall-cmd --state

2. 查看防火墙规则

查看所有规则

   sudo firewall-cmd --list-all

查看开放端口

   sudo firewall-cmd --list-ports

查看允许的服务

   sudo firewall-cmd --list-services

三、添加防火墙例外端口

要添加防火墙例外端口,需要编辑防火墙配置文件,配置文件通常位于/etc/sysconfig/iptables/etc/iptables/rules.v4(IPv4规则)和/etc/iptables/rules.v6(IPv6规则),使用文本编辑器打开配置文件,并添加类似以下的规则:

允许TCP流量通过指定端口

   -A INPUT -p tcp --dport <port> -j ACCEPT

允许UDP流量通过指定端口

   -A INPUT -p udp --dport <port> -j ACCEPT

<port> 替换为要添加的端口号,以上规则将允许TCP和UDP流量通过指定的端口,保存并关闭配置文件后,重新加载防火墙配置:

   sudo service iptables restart

或者使用新版本的防火墙管理工具(如firewalld):

   sudo firewall-cmd --reload

四、防火墙IP指向限制配置

1. 允许指定IP访问所有流量

允许指定IP访问

   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.43.100 accept"
   sudo firewall-cmd --reload

禁止指定IP访问

   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.43.100 drop"
   sudo firewall-cmd --reload

2. 允许指定IP访问指定端口

允许特定IP访问指定端口

   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=8.8.8.8 port protocol=tcp port=80 accept"
   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.25 port protocol=tcp port=22 accept"
   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.25 port protocol=tcp port=3306 accept"
   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.0/24 port protocol=tcp port=22 accept"
   sudo firewall-cmd --reload

3. 允许指定IP访问指定协议

阻止ICMP包

   sudo firewall-cmd --permanent --add-rich-rule="rule protocol value=icmp drop"

允许特定地址通过ICMP

   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=120.12.23.136 protocol value=icmp accept"
   sudo firewall-cmd --reload

4. 允许指定IP访问指定服务

允许特定IP访问SSH服务

   sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.25 service name=ssh accept"
   sudo firewall-cmd --reload

从允许列表中移除SSH服务

   sudo firewall-cmd --permanent --remove-service=ssh
   sudo firewall-cmd --reload

五、获取所有支持的服务

1. 增加、删除和服务操作

列出所有支持的服务

   sudo firewall-cmd --get-services

开放HTTP服务

   sudo firewall-cmd --permanent --add-service=http
   sudo firewall-cmd --reload

移除HTTP服务

   sudo firewall-cmd --permanent --remove-service=http
   sudo firewall-cmd --reload

六、自定义复杂规则(注意是否与已有规则冲突)

允许指定IP访问本机8080端口

   sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept'
   sudo firewall-cmd --reload

允许指定IP段访问本机8080-8090端口

   sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept'
   sudo firewall-cmd --reload

禁止指定IP访问本机8080端口

   sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'
   sudo firewall-cmd --reload

任何修改操作,配置完成后,需要重新装载firewall,可重新启动firewalld服务。

   firewall-cmd --reload
   service firewalld restart

七、相关问题与解答栏目

问题1:如何在CentOS中永久开放一个TCP端口?

答:要在CentOS中永久开放一个TCP端口,可以使用firewalld工具,要永久开放TCP的80端口,可以执行以下命令:

   sudo firewall-cmd --permanent --add-port=80/tcp
   sudo firewall-cmd --reload

这样,即使系统重启后,TCP的80端口仍然会保持开放状态。

问题2:如何在CentOS中允许特定IP访问某个服务?

答:要在CentOS中允许特定IP访问某个服务,可以使用firewalld的富规则功能,要允许IP地址为192.168.1.100的设备访问SSH服务,可以执行以下命令:

   sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
   sudo firewall-cmd --reload

小伙伴们,上文介绍了“centos防火墙配置”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/42364.html<

(0)
运维的头像运维
上一篇2024-12-31 04:26
下一篇 2024-12-31 04:29

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注