常用指令
- 查看防火墙状态
- 停止firewall
- systemctl stop firewalld.service
复制代码 - 禁止开机启动
- systemctl disable firewalld.service
复制代码 - 开放某个服务端口--允许全部IP访问
- firewall-cmd --add-port=16379/tcp --permanent
复制代码 - 移除6379端口-禁止访问
- firewall-cmd --permanent --remove-port=6379/tcp
- firewall-cmd --reload
复制代码 - ** 只允许指定端口访问指定服务器端口**
- # 允许192.168.142.166 IP 访问ES 9200端口
- firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" \
- port protocol="tcp" port="9200" accept"
- firewall-cmd --reload
复制代码 - 删除规则:删除上一条规则--撤销192.168.142.166访问本机9200端口的访问权限
- firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166"
- port protocol="tcp" port="9200" accept"
- firewall-cmd --reload
复制代码 - 其他指令
- #查看开放的端口
- $ firewall-cmd --list-ports
- #查询6379端口是否开放
- $ firewall-cmd --query-port=6379/tcp
- # 查看当前系统打开的所有端口
- firewall-cmd --zone=public --list-ports
- # 获取已激活的zonesudo dockerd –debug
- firewall-cmd --get-active-zones
复制代码 - docker启动失败,防火墙题目
- ZONE_CONFLICT: 'docker0' already bound to a zone
- #Check if docker zone exists in firewall-cmd
- $ firewall-cmd --get-active-zones
- #If "docker" zone is available, change interface to docker0 (not persisted)
- $ sudo firewall-cmd --zone=docker --change-interface=docker0
- #If "docker" zone is available, change interface to docker0 (persisted, thanks rbjorklin)
- $ sudo firewall-cmd --permanent --zone=docker --change-interface=docker0
- $ sudo systemctl restart firewalld
复制代码 - 查看全部的规则
- 端口转发: 只允许外部通过访问18088端口访问服务器8088 web服务, 外部无法通过8088端口服务
- 启用端口转发:
- sudo firewall-cmd --permanent --add-masquerade
- sudo firewall-cmd --reload
复制代码 - 添加转发规则:
- sudo firewall-cmd --permanent --add-forward-port=port=18088:proto=tcp:toport=8088
- sudo firewall-cmd --reload
复制代码 - 禁用外部通过8088端口访问 web服务
- firewall-cmd --permanent --remove-port=8088/tcp
- sudo firewall-cmd --reload
复制代码 这些命令将启用端口转发并添加相应的转发规则。
第一个命令启用了IP伪装(masquerade),允许转发流量。
第二个命令添加了转发规则,将通过18088端口的流量转发到8088端口。
第三个:防火墙中添加了阻止8088端口访问的规则
请注意:如果你已经在防火墙中添加了阻止80端口访问的规则,则可以跳过第一步。
应用
外部通过访问10022端口访问ssh服务
- 检查防火墙是否启用
- service firewalld status
- #如果未启用则启用firewalld服务
- service firewalld start
复制代码 - 检查防火墙现有规则
- firewall-cmd --list-all
- # 输出如下
- 443/tcp 80/tcp 10022/tcp 9092/tcp 8088/tcp 8080/tcp 22/tcp 20514/udp
复制代码 - 检查sshd服务, 添加sshd额外监听端口10022,如果已配置,忽略此步调
- vim /etc/ssh/sshd_config
- # 添加第18行代码
- ...
- 17 Port 22
- 18 Port 10022
- 19 #AddressFamily any
- 20 #ListenAddress 0.0.0.0
- 21 #ListenAddress ::
- ...
- # 重启ssh 服务
- service sshd restart
复制代码 - 启用 firewall端口转发规则功能
- sudo firewall-cmd --permanent --add-masquerade
- sudo firewall-cmd --reload
复制代码 - 添加端口转发规则:将10022端口转发至端口22
- sudo firewall-cmd --permanent --add-forward-port=port=10022:proto=tcp:toport=22
- sudo firewall-cmd --reload
复制代码 - 禁用外部通过22端口访问sshd服务
- firewall-cmd --permanent --remove-port=22/tcp
- firewall-cmd --reload
复制代码 - 防火墙中添加了阻止8088/8080端口(星海大数据管理平台)访问的规则
- firewall-cmd --permanent --remove-port=8088/tcp
- firewall-cmd --permanent --remove-port=8080/tcp
- firewall-cmd --reload
复制代码 - 添加端口转发规则:将19092端口转发至端口9092(KAFKA服务),同时禁用外部通过9092访问KAFKA服务
- firewall-cmd --permanent --add-forward-port=port=19092:proto=tcp:toport=9092
- firewall-cmd --permanent --remove-port=9092/tcp
- sudo firewall-cmd --reload
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |