Linux下firewalld命令管理详解

Linux下firewalld命令管理详解

1.firewalld中的区域管理

阻塞区域(block)任何传入的网络数据包都将被阻止
工作区域(work)相信网络上的其他计算机,不会损害你的计算机
家庭区域(home)相信网络上的其他计算机,不会损害你的计算机
公共区域(public)不相信网络上的任何计算机,只有选择接受传入的网络连接
隔离区域(DMZ)隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接
信任区域(trusted)所有的网络连接都可以接受
丢弃区域(drop)任何传入的网络连接都被拒绝
内部区域(internal)信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接
外部区域(external)不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接

常用区域管理方法:

firewall-config              		    ##开启火墙的图形管理
firewall-cmd --state				 	#查看防火墙状态
firewall-cmd --get-active-zones 		#查看正在生效的域
firewall-cmd --get-default-zone 		#查看默认的域
firewall-cmd --zone=public --list-all 	#查看public域里的设置,--zone指定域
firewall-cmd --list-all 				#列出默认域的火墙情况
firewall-cmd --set-default-zone=public 	#把默认的域设为public
firewall-cmd --get-zones 				#查看所有的域
firewall-cmd --get-services 			#查看所有可以添加到火墙里的服务
firewall-cmd --list-all-zones 	 ##查看所有域的所有设置

注:Firewalld的默认区域是public

2.基本命令用法

参数功能
--permanent永久设定
--zone指定域
--add-service添加服务
--remove-service删除服务
--add-source添加主机ip
--remove-source删除主机ip
--add-port添加端口
--remove-port删除端口
--add-interface添加网卡
--change-interface改变网卡
--remove-interface删除网卡

参数用法示例:

firewall-cmd --permanent --zone=trusted --add-source=172.25.0.1			#添加外来主机ip到trusted域
firewall-cmd --permanent --zone=trusted --remove-source=172.25.0.1		#从trusted域中删除外来主机ip
firewall-cmd --permanent --zone=trusted --add-interface=eth0			#添加网卡到指定的域
firewall-cmd --permanent --zone=trusted --change-interface=eth0			#改变网卡所在的域
firewall-cmd --permanent --zone-trusted --remove-interface=eth0			#将网卡从指定域上面删除
firewall-cmd --permanent --zone=public --add-service=smtp				#永久添加服务
firewall-cmd --permanent --zone=public --remove-service=smtp			#永久移走服务
firewall-cmd --zone=public --list-ports									#列出允许的端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp				#永久添加端口
firewall-cmd --permanent --zone=public --remove-port=8080/tcp			#永久删除端口

注意:
1.在设定火墙策略时,可以加--permanent参数永久设定;临时设定时则不加该参数
2.永久设定后,火墙策略不会立即生效,需要进行重新加载,两种方式如下:

firewall-cmd --reload 			#重新加载使其生效,但是不会断开已经连接的
firewall-cmd --complete-relode 	#重新加载,并且断开所有的连接

3.设定火墙规则

指定主机访问指定端口:

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s  172.25.254.1  -p  tcp --dport  22 -j ACCEPT	#添加只有主机172.25.254.1可以ssh访问本机
注释:
filter(规则表) 
INPUT(链) 
1(写在第一条) 
-s(源ip) 172.25.254.1  
-p(协议类型) tcp 
--dport(目的端口) 22 
-j(动作) ACCEPT
动作:
accept 	接受客户端的请求
reject 	拒绝请求,但是给客户端有回应,客户端不再访问
drop 	丢弃,没有回应,客户端会一直发数据包,加大负载
firewall-cmd --direct --get-all-rules	#查看规则
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.1 -p tcp --dport 22 -j ACCEPT#删除规则

!除了指定主机外的主机访问指定端口:

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.1 -p tcp --dport 22 -i ACCEPT	#除了指定ip地址的主机不使用此策略,其他主机都使用此策略(指定的使用默认策略)

4.端口伪装功能

由内网到外网:内网知道外网

实验环境:
nigar 172.25.254.36
server1 eth0网卡:172.25.254.1	 eth1网卡:1.1.1.11
server2 eth0网卡:1.1.1.22		 网关:1.1.1.11

实验目的:开启端口伪装功能,使得nigar与server2互通
步骤:

在server1上:

step1 开启端口伪装:

firewall-cmd --list-all	#看端口伪装功能是否开启
firewall-cmd --permanent --add-masquerade	#添加伪装功能
firewall-cmd --reload	#加载才能使永久添加生效

step2 开启路由功能:

sysctl -a | grep ip_forward	#查看路由功能是否开启
vim /etc/sysctl.conf	#写入下面内容
net.ipv4.ip_forward = 1

5.地址转发功能

由外网到内网,外网不知道内网

实验环境:
nigar 172.25.254.36
server1 eth0网卡:172.25.254.1	 eth1网卡:1.1.1.11
server2 eth0网卡:1.1.1.22		 网关:1.1.1.11

实验目的:使用nigar主机ssh连接172.25.254.1时,实际连接的是server2主机
步骤:开启地址转发功能

firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.22
firewall-cmd --reload

测试:
在未开启地址转发功能时:ssh连接172.25.254.1,即连接的server1
在这里插入图片描述

开启后:ssh连接172.25.254.1,连接的主机为server2
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值