CentOS7使用firewalld打开关闭防火墙与端口
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机启用: systemctl enable firewalld
开机禁用: systemctl disable firewalld
服务列表: systemctl list-unit-files
启动失败: systemctl --failed
firewall的状态
查看防火墙的状态
firewalld --state
重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置
firewalld --reload
重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用)
firewalld --complete-reload
紧急模式,强制关闭所有网络连接,--panic-off是关闭紧急模式
firewalld --panic-on
动作:
--get-icmptypes # 查看支持的所有ICMP类型
--get-zones # 查看所有区域
--get-default-zone # 查看当前的默认区域
--get-active-zones # 查看当前正在使用的区域
--get-services # 查看当前区域支持的服务
--list-services # 查看当前区域开放的服务列表
--list-all # 查看此区域内的所有配置,类似与iptables -L -n
--set-default-zone=work # 更改默认的区域
--add # 新建
--remove # 删除
规则
--add-interface=eth0 ##将网络接口添加到默认的区域内
--add-port=12222/tcp --permanent ##添加端口到区域开放列表中
--add-port=5000-10000/tcp --permanent ##将端口范围添加到开放列表中
--add-service=ftp --permanent # 添加服务到区域开放列表中(注意服务的名称需要与此区域支持的服务列表中的名称一致)
--add-source=192.168.1.1 # 添加源地址的流量到指定区域
--remove-source=192.168.1.1 # 删除源地址的流量到指定区域
--change-interface=eth1 # 改变指定的接口到其他区域
--remove-service=http # 在home区域内将http服务删除在开放列表中删除
--add-masquerade # 开启SNAT(源地址转换)
--query-masquerade # 查询SNAT的状态
--remove-interface=eth0 # 将网络接口在默认的区域内删除
--query-interface=eth0 # 确定该网卡接口是否存在于此区域
--add-forward-port=port=513:proto=tcp:toport=22:toaddr=192.168.100.101 # 端口转发
配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
那怎么开启一个端口呢(--permanent永久生效,没有此参数重启后失效)
添加端口
sed -i '$i \ \ <port protocol="tcp" port="28828"/>' /etc/firewalld/zones/public.xml
firewall-cmd --add-port=2882/tcp --permanent
firewall-cmd --zone=public --add-port=8989/tcp --permanent
firewall-cmd --zone=public --add-port=8989/udp --permanent
添加服务
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-service=mysql --permanent
设置IP伪装
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --zone=public --permanent --add-icmp-block=destination-unreachable
firewall-cmd --zone=public --permanent --add-icmp-block=echo-reply
firewall-cmd --zone=public --permanent --add-icmp-block=parameter-problem
firewall-cmd --zone=public --permanent --add-icmp-block=redirect
firewall-cmd --zone=public --permanent --add-icmp-block=router-advertisement
firewall-cmd --zone=public --permanent --add-icmp-block=router-solicitation
firewall-cmd --zone=public --permanent --add-icmp-block=source-quench
firewall-cmd --zone=public --permanent --add-icmp-block=time-exceeded
firewall-cmd --zone=public --permanent --add-icmp-block=echo-replyecho-request
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --query-service=http
删除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
删除服务
firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent
firewall-cmd --zone=public --remove-service=ssh --permanent
此处评论已关闭