ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

firewalld防火墙

2022-07-17 16:08:27  阅读:204  来源: 互联网

标签:-- cmd firewalld 防火墙 firewall m01 root port


firewalld防火墙

防火墙的概述

	firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,firewalld只能做IP/Port相关的限制

防火墙规则

入站规则:
	别人的电脑访问自己电脑的规则
出站规则:
	自己的电脑访问别人电脑的规则
# 防火墙默认是全部拒绝的

防火墙使用的区域管理

区域选项 默认规则策略
trusted 允许所有的数据包流入流出
home 拒绝流入的流量,除非与流出的流量相关。如果流量与ssh、mdns、ipp-client、amba-client、dhcpv6-client服务相关,则允许流入
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量相关。如果流量与ssh、ipp-client、dhcpv6-client服务相关,则允许流入
public 拒绝流入的流量,除非与流出的流量相关。如果流量与ssh、dhcpv6-client服务相关,则允许流入
external 拒绝流入的流量,除非与流出的流量相关。如果流量与ssh服务相关,则允许流入
dmz 拒绝流入的流量,除非与流出的流量相关。如果流量与ssh服务相关,则允许流入
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关
### 三大重点区域
	trusted:允许所有流量的入站规则
	public:公共区域,默认允许ssh和dhcpv6-client
	drop:拒绝所有流量的入站规则

防火墙基本操作命令

区域相关命令

# 获取当前使用的区域
[root@m01 ~]# firewall-cmd --get-default-zone 
public
# 切换默认区域
[root@m01 ~]# firewall-cmd --set-default-zone=drop
success
[root@m01 ~]# firewall-cmd --get-default-zone 
drop
# 查看所有可用的区域
[root@m01 ~]# firewall-cmd --get-zones
block dmz docker drop external home internal public trusted work
# 新增区域
[root@m01 ~]# firewall-cmd --new-zone=ji --permanent
success
[root@m01 ~]# firewall-cmd --reload 
success
[root@m01 ~]# firewall-cmd --get-zones
block dmz docker drop external home internal ji jl public trusted work

服务相关命令

# 查看支持的服务名
[root@m01 ~]# firewall-cmd --get-services 
# 添加服务入站规则
[root@m01 ~]# firewall-cmd --add-service=http
# 删除服务入站规则
[root@m01 ~]# firewall-cmd --remove-service=https

## 没有在命令行中加--premantent临时生效,重启防火墙失效,加入了这个永久生效,但是必须要重启防火墙才能生效

端口相关命令

# 开启指定端口
[root@m01 ~]# firewall-cmd --add-port=443/tcp
# 开启范围端口
[root@m01 ~]# firewall-cmd --add-port=1-9999/tcp
# 删除指定端口
[root@m01 ~]# firewall-cmd --remove-port=443/tcp

添加网卡命令

# 将eth0网卡转移到drop区域
[root@m01 ~]# firewall-cmd --add-interface=eth0 --zone=drop

查看相关命令

# 查看指定区域是否允许该服务的流量
[root@m01 ~]# firewall-cmd --zone=public --query-service=https
no
# 查看当前默认区域的所有规则
[root@m01 ~]# firewall-cmd --list-all
public (active)				# 当前正在使用的区域
  target: default			# 当前默认的区域
  icmp-block-inversion: no	 # icmp块
  interfaces: eth0 eth1		 # 当前区域监听的网卡
  sources: 					# 来源IP
  services: ssh dhcpv6-client # 允许访问的服务
  ports: 					# 允许访问的端口
  protocols: 				# 允许访问的协议
  masquerade: yes			# IP伪装
  forward-ports: 			# 端口转发,端口映射
  source-ports: 			# 来源端口
  icmp-blocks: 				# icmp块
  rich rules: 				# 富语言规则,富规则
# 开启IP伪装
[root@m01 ~]# firewall-cmd --add-masquerade 

防火墙防行自定义服务

# 编写自定义服务的xml文件
[root@m01 ~]# vim /usr/lib/firewalld/services/sersync.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>sersync</short>  
  <description>sersync</description>
  <port protocol="tcp" port="874"/>
</service>
# 重启防火墙
[root@m01 ~]# firewall-cmd --reload 
success
# 添加自定义的服务名
[root@m01 ~]# firewall-cmd --add-service=sersync

防火墙端口转发策略

# 端口转发公式
firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

firewalld富语言规则

	防火墙中的富语言规则表示更细致,更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址以及目标地址等信息来进行更有针对性的策略配置,优先级在所有的防火墙策略中也是最高的
[root@m01 ~]# man firewalld.richlanguage
	rule
             [source]
             [destination]
             service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
             [log]
             [audit]
             [accept|reject|drop|mark]
             
rule [family="ipv4|ipv6"]
source  address="address[/mask]" [invert="True"]
service name="service name"
port port="port value" protocol="tcp|udp"
protocol value="protocol value"
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
accept|reject [type="reject type"]|drop
## 富语言规则相关命令
--add-rich-rule='<RULE>'		# 在指定的区域添加一条富语言规则
--remove-rich-rule='<RULE>'		# 在指定的区域删除一条富语言规则
--query-rich-rule='<RULE>'		# 找到规则返回0,找不到返回1
--list-rich-rules			    # 列出指定区里的所有富语言规则 

案例

允许 10.0.0.1 主机能够访问 http 服务,允许 172.16.1.0/24 能访问 22 端口

firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.0.0.1" service name="http" accept'

firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.16.1.0/24" port port="22" protocol="tcp"  accept'

默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器

firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.16.1.0/24" service name="ssh"  drop'

使用firewalld,允许所有人能访问http,https服务,但只有10.0.0.1主机可以访问ssh服务

firewall-cmd --add-service={http,https}
firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.0.0.1" service name="ssh"  accept'

当用户来源IP地址是10.0.0.1主机,则将用户请求的5555端口转发至后端172.16.1.7的22端口

firewall-cmd --add-rich-rule='rule family="ipv4" source  address="10.0.0.1" forward-port port="5555" protocol="tcp" to-port="22" to-addr="172.16.1.7"'

标签:--,cmd,firewalld,防火墙,firewall,m01,root,port
来源: https://www.cnblogs.com/zlyj/p/16487511.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有