【 XBATU . COM 】    【 MOZICHINA . COM 】    【 2858999 . COM 】


 

CentOS 7 使用 firewalld / firewall-cmd 控制 防火墙与端口 / 服务的打开与关闭

webmaster@李松涛 提交于 周四, 07/13/2017 - 13:00

作者:【webmaster


 

xbatu.com firewalld, firewall-cmd, centos 7.

背景知识简介

 

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

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 --reload;firewall-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

 

六、总结:

 

朋友们,请注意!

本文只是起个抛砖引玉的作用,若需深入了解、学习本篇文章中涉及到的各个命令的权威解释及相关用法,请参考官方的权威文档。

 

 


 

审编:【webmaster】          校对:【webmaster】          关于:【webmaster】 

原创:【赛因拔都:XBATU.COM】          


【 XBATU . COM 】    【 MOZICHINA . COM 】    【 2858999 . COM 】