Linux
常用
管理语句
Shell命令(变量)
正则表达式
重定向
EXPECT
流程控制
函数
日志
SED
sed常用操作
sed组合命令
sed脚本
AWK
awk常用
awk流程控制
awk脚本
SSH
SSH密钥的批量分发与执行
SSH连接很慢
ACL文件访问控制
计划任务
常用语句
批量添加用户和密码
批量修改密码
临时和永久关闭Selinux
修改主机名
Linux内核参数
无人值守安装
ISO镜像(mondorescue)
软件管理
SYSTEM服务
YUM本地仓
存储管理
逻辑卷LVM
磁盘阵列RAID
备份恢复相关命令
fio磁盘性能测试
内存管理
IPTABLES防火墙
FIREWALLD防火墙
curl请求
Linux问题
漏洞修复
限制网卡带宽
CentosYUM源
rsyslog 占用内存过高
df -h 卡住解决
Linux故障问题
网络配置
升级内核
Openssl生成证书
CENTOS6升级7
本文档使用MrDoc发布
返回首页
-
+
FIREWALLD防火墙
2020年5月10日 09:29
admin
#安装 yum install firewalld --- #启动与停止服务 systemctl start firewalld systemctl stop firewalld systemctl enable firewalld systemctl disable firewalld systemctl is-enabled firewalld --- #ZONE说明 >##firewalld默认有9个zone,默认zone为public >|zone名称|说明| |--|--| |drop(丢弃)|任何接受的网络数据包都被丢弃,没有任何恢复,仅能有发送出去的网络连接(数据包不能进来,但是可以出去) |block(限制)|任何接受的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。(和drop相比,比较宽松一些,主要是为了针对icmp) |piblic(公共)|在公共区域内使用,不能相信网络内其他计算机不会对你造成危害,只能接受经过选取的连接。 |external(外部)|特别是为路由器启用了伪装功能的外部网,你不能信任来自网络的其他计算,不能相信他们不会对你造成伤害,只能接受经过选择的连接。 |dmz(非军事区)|用于你的非军事区内的电脑,此区域可公开访问,可以有限的进入你的内部网络,仅仅接受经过选择的连接。 |work(工作)|用于工作区,你可以基本信任网络内的其他电脑不会对你造成危害,仅仅接收经过选择的连接。 |home(家庭)|用于内部网络,你可以基本上信任网络内其他电脑不会对你造成危害,仅仅接收经过选择的连接。 |internal(内部)|用于内部网络,你可以基本上信任网络内其他电脑不会对你造成危害,仅仅接收经过选择的连接。 |trusted(信任)|可接受所有的网络连接。 --- #FIREWALLD命令 firewall-cmd [--zone=zone] 动作 [--permanent] #注:如果不指定--zone选项,则为当前所在的默认区域。 --permanent #是否将改动写入到区域配置文件中 ------------------------------------------------------------ --state #查看防火墙的状态 --reload #重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置 --complete-reload #重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用) --panic-on #紧急模式,强制关闭所有网络连接,--panic-off是关闭紧急模式 ------------------------------------------------------------ --get-icmptypes #查看支持的所有ICMP类型 --get-zones #查看所有区域 --get-default-zone #查看当前的默认区域 --set-default-zone=work #更改默认的区域 --get-active-zones #查看当前正在使用的区域 --get-zone-of-interface=<interface> #查询某个接口与那个zone匹配 --get-zone-ofsource=<source>[/<mask>] #查询某个源地址与哪个zone匹配 --get-services #查看当前区域支持的服务 --list-services #查看当前区域开放的服务列表 --list-all #查看此区域内的所有配置,类似与iptables -L -n ------------------------------------------------------------ --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常用命令 firewall-cmd --state #查看状态 firewall-cmd --reload #重载规则 firewall-cmd --panic-on #拒绝所有包 firewall-cmd --panic-off #取消拒绝所有包 firewall-cmd --query-panic #查看是否拒绝 --- firewall-cmd --list-services --zone=public #查看指定zone开放的服务列表 firewall-cmd --add-service=ftp --zone=public #在public这个zone中添加允许访问FTP服务的规则 firewall-cmd --remove-service=ftp --zone=public #在public这个zone中删除允许访问FTP服务的规则 --- firewall-cmd --list-ports --zone=public #查看指定zone开放的端口列表 firewall-cmd --add-port=3306/tcp --zone=public #在public这个zone中添加允许访问3306端口的规则 firewall-cmd --remove-port=3306/tcp --zone=public #在public这个zone中删除允许访问3306端口的规则 --- firewall-cmd --add-source=192.168.31.88 --zone=work #将源IP地址192.168.31.88与public绑定,以后该主机访问本机时匹配public中的规则 --- #指定IP与端口 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="6379" accept" #指定IP与端口可以访问 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="5432" accept" #指定ip段可以访问 firewall-cmd --list-all #查看配置结果 firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="11300" accept" #删除规则 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="30000-31000" accept" #指定的IP开放指定的端口段 --- #FIREWALLD端口转发 >####开启防火墙伪装 firewall-cmd --add-masquerade --permanent #开启后才能转发端口 >####添加转发规则 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1 --permanent #(PS:此规则将本机80端口转发到192.168.1.1的8080端口上,配置完--reload才生效) --- #如果配置完以上规则后仍不生效,检查防火墙是否开启80端口,如果80端口已开启,仍无法转发,可能是由于内核参数文件sysctl.conf未配置ip转发功能,具体配置如下: vi /etc/sysctl.conf 在文本内容中添加:net.ipv4.ip_forward = 1 保存文件后,输入命令sysctl -p生效 #FIREWALLD问题: >####firewalld防火墙默认配置是只打开SSH端口的,就是默认放行ssh服务,不受firewalld-cmd的规则限制。如果SSH的端口已更改成别的端口了,请切记一定在启动firewall前先修改对应服务策略中SSH的端口为你的SSH端口,文件路径:/usr/lib/firewalld/services/ssh.xml 把22改成你的远程端口号,然后再启动firewall防火墙 vim /usr/lib/firewalld/services/ssh.xml
分享到: