在CentOS 7中,防火墙配置是一个至关重要的任务,它涉及到系统的安全性和网络访问控制,本文将详细介绍如何在CentOS 7上配置和使用firewalld防火墙,包括其安装、基本配置、区域管理、服务和端口管理等方面。
CentOS 7防火墙配置详解
一、FirewallD简介
CentOS 7引入了firewalld作为默认的防火墙管理工具,替代了早期的iptables服务,Firewalld提供了动态管理防火墙的能力,支持网络区域(zone)的概念,可以根据不同的网络连接和接口设置不同的安全级别,它还支持IPv4和IPv6,并且能够在运行时进行配置更改而无需重启防火墙。
二、安装与启动FirewallD
确保你的系统已经安装了firewalld,如果没有安装,可以使用以下命令进行安装:
yum install -y firewalld
安装完成后,启动并启用firewalld服务:
systemctl start firewalld systemctl enable firewalld
三、基本配置
1. 查看防火墙状态
systemctl status firewalld
2. 查看当前默认区域
firewall-cmd --get-default-zone
3. 设置默认区域
firewall-cmd --set-default-zone=<zone>
将默认区域设置为home:
firewall-cmd --set-default-zone=home
四、区域管理
Firewalld使用区域来定义网络连接的可信等级,每个区域都有一组预定义的规则,用于控制进出该区域的流量,常见的区域包括:
drop:丢弃所有进入的网络包,不作出任何响应。
block:拒绝所有进入的网络连接,并返回相应的ICMP消息。
public:用于公共区域,只允许选中的连接接入。
external:用于外部网络,通常用于路由器。
work:用于工作区,信任网络中的大多数计算机。
home:用于家庭网络,信任网络中的大多数计算机。
internal:用于内部网络,完全信任网络中的计算机。
dmz:非军事区,有限地允许外部访问内部网络。
trusted:接受所有网络连接。
1. 查看所有可用区域
firewall-cmd --get-zones
2. 为指定接口绑定区域
firewall-cmd --zone=<zone> --add-interface=<interface>
将eth0接口绑定到public区域:
firewall-cmd --zone=public --add-interface=eth0
3. 更改区域的绑定接口
firewall-cmd --zone=<zone> --change-interface=<interface>
4. 删除区域的绑定接口
firewall-cmd --zone=<zone> --remove-interface=<interface>
五、服务管理
Firewalld允许你为不同的区域添加或删除服务,服务是端口和/或协议的组合。
1. 查看默认区域内允许访问的所有服务
firewall-cmd --list-services
2. 为指定区域添加服务
firewall-cmd --zone=<zone> --add-service=<service>
在public区域添加http服务:
firewall-cmd --zone=public --add-service=http
3. 删除指定区域的服务
firewall-cmd --zone=<zone> --remove-service=<service>
六、端口管理
除了服务之外,你还可以为指定区域添加或删除特定的端口。
1. 查看指定区域内允许访问的所有端口
firewall-cmd --list-ports
2. 为指定区域添加端口
firewall-cmd --zone=<zone> --add-port=<port>/<protocol>
在public区域添加8080端口(TCP):
firewall-cmd --zone=public --add-port=8080/tcp
3. 删除指定区域的端口
firewall-cmd --zone=<zone> --remove-port=<port>/<protocol>
七、其他常用配置
1. 允许伪装IP(Masquerade)
firewall-cmd --add-masquerade
2. 禁止伪装IP
firewall-cmd --remove-masquerade
3. 设置特定IP访问特定服务(富规则)
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
删除富规则的命令为:
firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
注意:富规则需要使用--permanent
参数来永久生效,并且需要重新加载防火墙配置才能应用更改:
firewall-cmd --reload
常见问题解答(FAQs)
问题1:如何更改FirewallD的默认区域?
答:要更改FirewallD的默认区域,可以使用以下命令:
firewall-cmd --set-default-zone=<new_zone>
将默认区域设置为home:
firewall-cmd --set-default-zone=home
更改后,可以使用以下命令验证更改是否成功:
firewall-cmd --get-default-zone
如果输出显示新的区域名称,则表示更改成功,如果遇到权限问题,请确保以root用户或有适当权限的用户身份运行上述命令,如果更改后某些服务无法正常访问网络,请检查新区域的默认设置是否符合预期,并相应地调整规则,不要忘记在必要时重新加载防火墙配置以确保所有更改生效:
firewall-cmd --reload
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1386875.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复