firewalld火墙管理--基础命令了解与权限管理:一步学会火墙安全服务

防火墙就是用来阻挡外部不安全因素影响的内部网络屏障,其目的就是防止外部网络用户未经授权的访问。它是一种计算机硬件和软件的结合,使Internet与Internet之间建立起一个安全网关(Security
Gateway),从而保护内部网免受非法用户的侵入
阻塞区域(block):任何传入的网络数据包都将被阻止。
在这里插入图片描述
在这里插入图片描述

firewalld

火墙管理
火墙的简介
在这里插入图片描述

火墙图形界面

[root@des etc]# yum install firewall-config
###下载图形管理软件
[root@des etc]# firewall-config
###打开图形管理界面
###在图形界面可以编辑火墙域,也可以查看允许的服务等

在这里插入图片描述
在这里插入图片描述

基本命令

[root@des etc]# firewall-cmd --state 
###查看火墙状态

[root@des etc]# firewall-cmd --get-active-zones 
###查看火墙正在运行的域

[root@des etc]# firewall-cmd --get-default-zone
###查看火墙默认域

[root@des etc]# firewall-cmd --get-zones
###查看火墙全部的域

[root@des etc]# firewall-cmd --zone=public --list-all
###列出public域中的全部信息

[root@des etc]# firewall-cmd --get-services 
###查看火墙支持的所有应用软件

[root@des etc]# firewall-cmd --list-all-zones 
###列出所有域中的所有信息

[root@des etc]# firewall-cmd --set-default-zone=trusted 
###修改默认域

实验环境

服务端(172.25.254.101)(1.1.1.101)

在虚拟机中添加网卡
使一个虚拟机具有两个不同ip的网卡
并重启网络使其生效

1.添加网卡

virt-manger

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改网卡配置文件

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# ls
[root@localhost ~]# cp ifcfg-eth0 ifcfg-eth1
[root@localhost ~]# vim ifcfg-eth1
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig 
####修改成功
[root@localhost ~]# hostnamectl set-hostname des
###修改主机名


在这里插入图片描述
客户端(1.1.1.201)
修改ip使与服务端两个ip中的一个处于同一网端
同上,只用拥有一个网卡(默认)

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# vim ifcfg-eth0

客户端(172.25.254.1)
真机,不做修改
ip与服务端另一ip( 172.25.254.70)处于同一网端

实验过程

trusted域添加某一相同网端ip
服务端

[root@des ~]# firewall-cmd --list-all
[root@des ~]# firewall-cmd --add-source=172.25.254.1 --zone=trusted 
[root@des ~]# firewall-cmd --list-all
[root@des ~]# firewall-cmd --list-all --zone=trusted 
客户端只是被暂时添加,重新加载后失效

在这里插入图片描述

排错

不小心添加到public域(默认)

[root@des ~]# firewall-cmd --add-source=172.25.254.1 
[root@des ~]# firewall-cmd --list-all
[root@des ~]# firewall-cmd --add-source=172.25.254.1 --zone=trusted 
Error: ZONE_CONFLICT
###再次添加有报错
[root@des ~]# firewall-cmd --reload 
[root@des ~]# firewall-cmd --list-all
###172.25.254.1被移除
[root@des ~]# firewall-cmd --add-source=172.25.254.1 --zone=trusted 
[root@des ~]# firewall-cmd --list-all --zone=trusted 
###在tursted域中添加成功

在这里插入图片描述
在这里插入图片描述
客户端(172.25.254.1)
测试
添加后
在这里插入图片描述

将某一网卡添加到trusted域

服务端

[root@des ~]#firewall-cmd --list-all 
[root@des ~]#firewall-cmd --remove-interface=eth1 --zone=public 
[root@des ~]#firewall-cmd --list-all 
###移除public域中的eth1
[root@des ~]# firewall-cmd --add-interface=eth1 --zone=trusted 
[root@des ~]# firewall-cmd --list-all --zone=trusted 

在这里插入图片描述
在这里插入图片描述
客户端(1.1.1.201)
访问服务端eth1
在这里插入图片描述
还原

[root@des ~]# firewall-cmd --change-interface=eth1 --zone=public 
###默认域不能删除后重新添加

在这里插入图片描述

将某一文件从允许列表中移除,终止服务

[root@des ~]# firewall-cmd --list-all
[root@des ~]# firewall-cmd --permanent --remove-service=ssh 
###因为我一直在ssh中进行实验,而此时连接没有中断,说明此时没有生效
[root@des ~]# firewall-cmd --list-all
[root@des ~]# firewall-cmd --reload
[root@des ~]# firewall-cmd --list-all
###服务被移除但是依然没有生效
[root@des ~]# firewall-cmd --complete-reload
###依然不生效

因为一直**ssh连接服务端**,在服务端主机直接进行reload
[root@des ~]# firewall-cmd --reload
[root@des ~]# firewall-cmd --complete-reload
###reload与complete reload的区别:
reload刷新之后不会中端连接,complete-reload刷新之后会中断连接。
###ssh连接断开

在这里插入图片描述
在这里插入图片描述

真机

[kiosk@foundation1 ~]$ killall -9 ssh
###恢复

在这里插入图片描述

drop域block域

二者都表示拒绝
drop只拒绝不回应
block不仅拒绝并且会回应
一般企业使用block域来有回应的拒绝,因为这样将不会再接收到被拒绝方发送来的任何数据

@将真机ip添加到drop域查看效果

[root@des ~]# firewall-cmd --add-source=172.25.254.70 --zone=drop
###ssh链接断开
[root@localhost html]# killall -9 ssh
[root@des ~]# firewall-cmd --list-all --zone=drop
###在真机ping服务端不通且无报错
[root@localhost html]# ping 172.25.254.101

在这里插入图片描述

还原

[root@des ~]# firewall-cmd --remove-sources=172.25.254.70 --zone=drop
[root@des ~]# firewall-cmd --list-all --zone=drop

在这里插入图片描述
@将真机添加到block域

[root@des ~]# firewall-cmd --add-source=172.25.254.70 --zone=block
[root@des ~]# firewall-cmd --list-all --zone=block
###在真机ping服务端不通且有报错

在这里插入图片描述
还原

[root@des ~]# firewall-cmd --remove-sources=172.25.254.70 --zone=block
[root@des ~]# firewall-cmd --list-all --zone=drop

在这里插入图片描述
firewall默认文件

firewalld默认提供了九个zone配置文件: block.xml、dmz.xml、drop.xml、external.xml、
home.xml、internal.xml、public.xml、trusted.xml、work.xml
他们都保>存在“/usr/lib/firewalld/zones/”目录下。

永久删除服务(ssh)

合理运用火墙命令

[root@des ~]# firewall-cmd --permanent --remove-service=ssh
###--permanent指永久性的
[root@des ~]# firewall-cmd --list-all
###依然存在
[root@des ~]# firewall-cmd --reload
###重新载入
[root@des ~]# firewall-cmd --list-all

在这里插入图片描述
还原
在这里插入图片描述

端口修改

[root@des services]# cd  /lib/firewalld/services/
[root@des services]# ls
[root@des services]# vim ssh.xml 
[root@des services]# firewall-cmd --reload 
[root@des services]# systemctl restart firewalld.service 
[root@des services]# logout
[root@localhost Desktop]# ssh root@172.25.254.101
###退出后再次连接失败

在这里插入图片描述
在这里插入图片描述
还原
在这里插入图片描述

黑白名单的设定

白名单

##仅允许70主机仅可以访问ssh;ssh的端口22
[root@des ~]# firewall-cmd --list-all
[root@des ~]# firewall-cmd --permanent --remove-service=ssh
[root@des ~]# firewall-cmd --reload 
[root@des ~]# firewall-cmd --list-all
###从默认public域允许ssh服务中删除ssh
[root@des ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.70 -j ACCEPT
success
[root@des ~]# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.26 -jACCEPT

参数的含义:
 --direct          #direct规则
 filter            #filter表
INPUT 1            #第一条链
-p tcp             #tcp协议
--dport 80         #目的地端口为80
-s                 #设定被允许访问的ip
-j                 #要执行的动作,ACCEPT表示接受,DROP表示丢弃,REJECT表示拒绝,

REJIEC有反馈
DROP无反馈
ACCEPT接收

在这里插入图片描述
在这里插入图片描述

测试
真机可连接,虚拟机ssh不通
在这里插入图片描述
还原

[root@des ~]# firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.70 -j ACCEPT
success
[root@des ~]# firewall-cmd --direct --get-all-rules 

黑名单

##仅拒绝70主机ssh连接本机
[root@des ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.70 -j REJECT
success
##查看所有的direct规则
[root@des ~]# firewall-cmd --direct --get-all-rules ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.70 -j REJECT

在这里插入图片描述

测试

[root@localhost Desktop]# ssh root@172.25.254.101
ssh: connect to host 172.25.254.101 port 22: Connection refused

在这里插入图片描述
另一客户端

[root@localhost Desktop]# ssh root@1.1.1.101

在这里插入图片描述
还原

[root@localhost Desktop][root@des ~]# firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.70 -j REJECT

在这里插入图片描述

端口转发与在地址伪装

服务端充当路由器,之前已经配置两块不同ip的网卡
客户端(172.25.254.70)充当外网
客户端(1.1.1.201)充当内网

服务端

###开启内核路由伪装
[root@des ~]# vim /etc/sysctl.conf 
[root@des ~]# systemctl restart network
[root@des ~]# sysctl -a |grep ip_forward
net.ipv4.ip_forward = 1
###开启火墙伪装
[root@des ~]# firewall-cmd --list-all
###查看
[root@des ~]# firewall-cmd --permanent --add-masquerade 
######开启火墙伪装
[root@des ~]# firewall-cmd --reload 
[root@des ~]# firewall-cmd --list-all

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
客户端(1.1.1.201)

配置网关
[root@localhost Desktop]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
###配置网关
[root@localhost Desktop]# systemctl restart network
###重启网络
[root@localhost Desktop]# route -n
查看网关是否添加成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

[root@localhost Desktop]# ping 172.25.254.70

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值