背景知识简介:
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 --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