linux firewalld防火墙常用操作

系统操作

	加入开机启动		
		systemctl enable firewalld
	
	启、停
		systemctl start firewalld
		systemctl stop firewalld
	
	重启、重载		
		systemctl restart firewalld
		firewall-cmd --reload
		firewalld 动态管理规则集,所以它不会破坏现有的连接和会话。

	查看运行状态		
		systemctl status firewall-cmd

	
	配置文件位置		
		/etc/firewalld/{services,zones}/*.xml    优先级最高,permanent模式生效的策略会放到这里
		/lib/firewalld/{services,zones}/*.xml   优先级要低些,是一些默认配置,可以当做模板使用
	
	每个预定义的区域、服务等都有一个对应的文件:
		/usr/lib/firewalld/{zones,services...}						

查看

	查看防火墙状态,是否是running   
	   firewall-cmd --state                           

	重新载入配置,比如添加规则之后,需要执行此命令   
	   firewall-cmd --reload                          

	列出支持的zone   
	   firewall-cmd --get-zones                                      

	查看当前使用的区
		firewall-cmd --get-default-zone			

	查看网卡所在区域:
		firewall-cmd --get-zone-of-interface=eth0			

	查看正在活动的区域:
		firewall-cmd --get-active-zones			

	查看所有规则明细:
		firewall-cmd --list-all			
		firewall-cmd --list-all-zones			
	
	查看端口添加的规则
		firewall-cmd --list-ports			

	查看ftp服务是否支持,返回yes或者no   
	   firewall-cmd --query-service ftp

	查看指定区域(public)的以端口方式添加的规则
		firewall-cmd --zone=public --list-ports			

	查看指定区域(public)的以服务名添加的规则
		firewall-cmd --zone=public --list-services			

	查看指定区域的所有规则
		firewall-cmd --zone=public --list-all			

	查看firewalldl默认支持的所有服务名列表
		firewall-cmd --get-services			

	查看只通过服务名添加的规则[默认当前激活的公共区域]
		firewall-cmd --list-services			

修改

	添加放行两种方式	
		1 runtime 临时配置 修改规则马上生效 但是重启则丢失		
		例如: 
			firewall-cmd --add-service=ftp 			
		2 permanent 持久配置 修改后需要reload 重载才生效	
		例如:			
			firewall-cmd --zone=public --add-port=80/tcp --permanent

	添加放行端口					
		firewall-cmd --add-port=8080/tcp 				
		firewall-cmd --add-port={8081,8082}/tcp				
		firewall-cmd --add-port={8090..8095}/tcp				
		firewall-cmd --zone=public --add-port=80/tcp --permanent				
		firewall-cmd --zone=public --add-port=4990-4999/udp   #添加4990-4999 udp端口				
		#添加常用端口,不指定--zone,默认会添加到默认的区域			
	
	添加放行的服务 (服务名称进行放行 --> 本质还是对应的端口)					
		firewall-cmd --add-service=http				
		firewall-cmd --add-service=ftp #开放 ftp 服务规则 				
		firewall-cmd --add-service=mysql # 开放mysql端口规则 				
		firewall-cmd --add-service=ssh # 开放ssh端口规则	

	删除端口					
		firewall-cmd --remove-port={8090..8095}/tcp				
		firewall-cmd --zone=public --remove-port=80/tcp --permanent				
	
	端口转发-本地					
		firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8000 --permanent				
	
	将同一台服务器上80端口的流量转发至8080			
		firewall-cmd --list-forward-ports				查看转发
		firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8000 --permanent				
		firewall-cmd --reload				重载生效

	端口转发-ip					
	将端口转发到另外一台服务器上,在需要的区域中激活 masquerade				
		firewall-cmd --zone=public --add-masquerade				
					
	将本地的80端口的流量转发到IP地址为:10.0.10.15 的远程服务器上的8080端口			
		。。。。。。
	
	
	伪装IP					
		firewall-cmd --query-masquerade    # 检查是否允许伪装IP 				
		firewall-cmd --add-masquerade      # 允许防火墙伪装IP 				
		firewall-cmd --remove-masquerade   # 禁止防火墙伪装IP				
	

	自定义一个服务名称					
		cd /usr/lib/firewalld/services/				
		cp http.xml nginx.xml				
		firewall-cmd --reload				
		firewall-cmd --add-service=nginx				
	
	修改服务当前所使用区域:					
		firewall-cmd --get-default-zone=public				
	修改默认区					
		firewall-cmd --set-default-zone=internal 				

	危险命令:[立即生效]		
		拒绝所有包:firewall-cmd --panic-on    
		取消拒绝状态: firewall-cmd --panic-off 
		查看是否拒绝: firewall-cmd --query-panic 
posted @ 2022-02-11 10:14  tangshow  阅读(143)  评论(0编辑  收藏  举报