一、防火墙管理中 systemctl 常用的命令
- 启动/关闭/重启防火墙:
systemctl start/stop/restart firewalld.service
- 禁止开机启动防火墙:
systemctl disable firewalld.service
- 查看服务运行状态:
systemctl status firewalld
二、防火墙控制台命令:firewall-cmd
- 查看8080端口是否已经开放:
firewall-cmd --query-port=8080/tcp
- 永久开放TCP8080端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 永久移除TCP8080端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
- 重新加载防火墙规则:
firewall-cmd --reload
- 查看防火墙运行否:
firewall-cmd --state
- 查看端口开放情况:
firewall-cmd --list-all
三、防火墙管理中 netstat 的应用
- 安装
yum install net-tools
- 查看正在监听的端口
netstat -lntp
- 检查端口8080被哪个进程占用
netstat -lnp | grep 8080
四、firewall-cmd 的高级用法
-
前面我们是通过直接开放端口的形式来放开对应的服务,这种就是典型的iptables的思路。在firewall中还提供了另外的一种思路,这就是使用开放服务的形式来开放对应的端口,如下:
firewall-cmd --add-service=http #临时开放http服务 firewall-cmd --add-service=http --permanent #永久开放http服务 firewall-cmd --remove-service=http #临时移除http服务 firewall-cmd --remove-service=http --permanent #永久移除http服务
-
查看开放的服务、端口
firewall-cmd --list-services firewall-cmd --list-ports
-
开放、阻止端口
firewall-cmd --add-port=3306/tcp --permanent #永久开放通过tcp访问3306 firewall-cmd --add-port=233/udp --permanent #永久开放通过udp访问233 firewall-cmd --remove-port=80/tcp --permanent #永久阻止通过tcp访问3306
-
IP伪装:防火墙可以实现伪装IP的功能
firewall-cmd --query-masquerade # 检查是否允许伪装IP firewall-cmd --add-masquerade # 允许防火墙伪装IP firewall-cmd --remove-masquerade# 禁止防火墙伪装IP
-
端口转发
- 可以在访问指定地址访问指定的端口时,将流量转发至指定地址的指定端口。如果在设置的时候任何一个不设置都使用来源的数据;如果配置好端口转发之后不能用,可以检查下面两个问题:
- 如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
- 检查是否允许IP伪装,没允许的话要开启IP伪装
- 几个端口转发的例子:
- 将80端口转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
- 将80端口转发至192.168.1.0.1的80端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1
- 将80端口转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
- 将80端口转发至8080
- 端口转发的应用场景
- 隐藏端口:当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
- 流量分发:一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。
- 可以在访问指定地址访问指定的端口时,将流量转发至指定地址的指定端口。如果在设置的时候任何一个不设置都使用来源的数据;如果配置好端口转发之后不能用,可以检查下面两个问题:
-
其他常用命令
firewall-cmd --get-zones #列出支持的zone firewall-cmd --get-services #列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或者no iptables -L -n #查看规则,这个命令是和iptables的相同的 man firewall-cmd ##查看帮助
网友评论