背景知识简介:
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
六、总结:
朋友们,请注意!
本文只是起个抛砖引玉的作用,若需深入了解、学习本篇文章中涉及到的各个命令的权威解释及相关用法,请参考官方的权威文档。