CentOS使用firewalld/firewall-cmd控制防火墙与端口

背景知识简介:

firewalld 是 CentOS7 的一大特性,主要的好处有两个:

1、支持动态更新,不用重启服务。

2、加入了防火墙的“zone”概念。

firewalld 的字符界面管理工具是 firewall-cmd

firewalld默认配置文件有两个:

1、/usr/lib/firewalld/ (系统配置,尽量不要修改)

2、/etc/firewalld/ (用户配置)。

firewalld 基本用法:

启动 firewalld: systemctl start firewalld

开机时自动启用 firewalld:systemctl enable firewalld

查看 firewalld 状态: systemctl status firewalld

开机时禁止自动启动firewalld: systemctl disable firewalld

停止 firewalld: systemctl stop firewalld

systemctl 命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起,基本用法如下:

启动服务:systemctl start firewalld.service

关闭服务:systemctl stop firewalld.service

重启服务:systemctl restart firewalld.service

显示服务的状态:systemctl status firewalld.service

开机时启用服务:systemctl enable firewalld.service

开机时禁用服务:systemctl disable firewalld.service

查看服务是否开机自启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files | grep enabled

显示所有已启动的服务 systemctl list-units --type=service

配置 firewall-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

添加端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

移除端口:firewall-cmd--zone=public --remove-port=80/tcp --permanent

添加服务: 类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,详情参考文档。

firewall-cmd --zone=work --add-service=smtp

firewall-cmd --zone=public --add-service=ftp --permanent

移除服务:firewall-cmd --zone=work --remove-service=smtp

查看所有打开的端口: firewall-cmd --zone=public --list-ports

查看所有打开的服务: firewall-cmd --zone=public --list-services

更新防火墙规则:firewall-cmd --reloadfirewall-cmd --complete-reload

两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务。

将接口添加到区域,默认接口都在public

firewall-cmd --zone=public --add-interface=eth0,永久生效再加上 --permanent 然后重新加载防火墙。

设置默认接口区域

firewall-cmd --set-default-zone=public

立即生效,无需重启。

查询服务:firewall-cmd --query-service ftp

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包,开启恐慌模式:firewall-cmd --panic-on,panic :恐慌,惊慌;

取消拒绝状态,关闭恐慌模式: firewall-cmd --panic-off

查看是否拒绝,查询是否开启了恐慌模式: firewall-cmd --query-panic

开启和关闭一个端口,例如 80 端口:

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent--permanent永久生效,没有此参数重启后失效)

重新载入,相当于apply,即使当前配置立即生效的意思。

firewall-cmd --reload

查看

firewall-cmd --zone=public --query-port=80/tcp

关闭

firewall-cmd --zone=public --remove-port=80/tcp --permanent

扫描远程主机上开放的端口及服务:

nmap -sV -T4 -F xbatu.com

nmap -sV -T4 -F mozichina.com

nmap -sV -T4 -F 2858999.com

参考文章

如果对您有帮助,请小编喝一杯咖啡吧!