firewalld防火墙

一、搭建实验环境
重置(reset)两个虚拟机
虚拟机server:
添加两块网卡
eth0 172.25.254.176
eth1 192.268.0.176
在这里插入图片描述
虚拟机desktop:
eth0 192.168.0.20
在这里插入图片描述
二、firewalld的域

trusted(信任)可接受所有网络连接
home(家庭)用于家庭网络,仅接受ssh、mdns、ipp-client或dhcpv6-client服务
internal(内部)用于内部网络,仅接收ssh、mdns、ipp-client、samba-client、dhcpv6-client服务
连接
work(工作)用于工作区,仅接收ssh、ipp-client或dhcpv6-client服务连接
public(公共)在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域
external(内部)出去的ipv4网络连接通过此区域伪装和转发,仅接收ssh服务连接
dmz(非军事区)仅接收ssh服务连接
block(限制)拒绝所有网络连接
drop(丢弃)任何接收的网络数据包都被丢弃,没有任何回复

三、firewalld相关操作
1、启用firewalld

yum install -y firewalld firewall-config
systemctl start firewalld
systemctl enable firewalld
systemctl status firewalld

2、查看firewalld设置

firewall-cmd --stat  #防火墙的状态
firewall-cmd --get-active-zones #正在使用的域
firewall-cmd --get-default-zone #查看系统默认的域
firewall-cmd --get-zones        #查看系统所有域
firewall-cmd --zone=public --list-all #查看public域所有信息
firewall-cmd --get-services #查看系统中所有可以直接设置的服务名称
firewall-cmd --list-all-zones  #显示所有域信息
firewall-cmd --list-service  #查看当前火墙开启的服务
firewall-cmd --set-default-zone=dmz  #设置系统默认域为dmz

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

3、不同网卡时走不同的域
IP方式:

firewall-cmd --permanent --add-source=172.25.254.76/24 --zones=trusted #添加76主机为信任域
firewall-cmd --permanent --remove-source=172.25.254.76/24 --zones=trusted #从信任域中移出

网卡方式:

firewall-cmd --permanent --zone=trusted --add-interface=eth0 #将eth0网卡添加到信任域
firewall-cmd --permanent --zone=trusted --change-interface=eth0
firewall-cmd --permanent --zone=trusted --remove-interface=eth0

测试:
【1】
server端:

关闭火墙中的http、https服务
firewall-cmd --permanent --remove-service=http
firewall-cmd --permanent --remove-service=https
firewall-cmd --reload
systemctl restart httpd
firewall-cmd --add-source=172.25.254.76 --zone=trusted #添加为信任域
firewall-cmd --remove-source=172.25.254.76 --zone=trusted #移除
firewall-cmd --reload #刷新

在这里插入图片描述
在这里插入图片描述
添加到信任域:
在这里插入图片描述
76主机上搜索:
在这里插入图片描述
移除信任域:
在这里插入图片描述
76主机上搜索:
在这里插入图片描述

【2】
(1)
sever上:

firewall-cmd --list-all
firewall-cmd --zone=public --remove-interface=eth1
firewall-cmd --zone=trusted --add-interface=eth1
firewall-cmd --list-all --zone=trusted
firewall-cmd --reload

在这里插入图片描述
在同一网段desktop(192.168.0.20)上:
http://192.168.0.176
在这里插入图片描述
(2)
server上:

firewall-cmd --permanent --zone=public --change-interface=eth1
firewall-cmd --reload

在这里插入图片描述
在同一网段desktop(192.168.0.20)上:
http://192.168.0.176 #由于176主机火墙开启了http服务,所以可以查看到共享目录中的发布页面
在这里插入图片描述
4、火墙文件管理
/usr/lib/firewalld/services/ 火墙工作时访问的策略
/etc/firewalld/zones/ 封装了服务所开启的数据

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

火墙添加服务两种方式:
默认使用的域为public时:
【1】命令方式添加

firewall-cmd --permanent --add-service=http #自动在/etc/firewalld/zones/public.xml(现在使用的域中)文件中添加http服务
firewall-cmd --reload #刷新当前的状态

在这里插入图片描述
在这里插入图片描述
【2】文件方式添加

vim /etc/firewalld/zones/public.xml

firewall-cmd --reload
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
火墙中添加服务端口
【1】临时修改

firewall-cmd --list-ports #查看火墙上开启的端口
firewall-cmd --add-port=8080/tcp #添加端口
firewall-cmd --list-ports #查看此时已开启
firewall-cmd --remove-port==8080/tcp
firewall-cmd --list-ports #查看此时已开启

在这里插入图片描述
在这里插入图片描述
【2】永久修改

firewall-cmd --permanent --add-port=8080/tcp
#此时/etc/firewalld/zones/public.xml中生成端口状态
vim /etc/firewalld/zones/public
<port protocol="tcp" port="8080"/>
firewall-cmd --permanent --remove-port=8080/tcp

在这里插入图片描述
在这里插入图片描述
5、火墙刷新

fiewall-cmd --reload  # 刷新当前火墙状态,不会断掉当前的连接
firewall-cmd --complete-reload  #刷新当前火墙状态,会断掉当前连接

测试:
服务器:sever主机 eth1 192.168.0.176
客户端:desktop主机 eth0 192.168.0.20
客户端:

ssh root@192.168.0.176
ls

在这里插入图片描述
在这里插入图片描述
服务端:

firewall-cmd --zone=public --change-interface=eth1 #将eth1网卡移到public域中
firewall-cmd --permanent --remove-service=ssh
fiewall-cmd --reload

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

ls

在这里插入图片描述
服务端:

firewall-cmd --complete-reload

在这里插入图片描述
客户端:
完全不能操作
在这里插入图片描述
6、设置让单独某台主机不能访问

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.76 -p tcp --dropt
80 -j REJECT
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.76 -p tcp --
dropt 80 -j REJECT
firewall-cmd --direct --get-all-rules #查看所有规则
-s数据来源
-o协议
-dport目的地端口
-sport数据端口
-j行为
–direct后边跟规则
–add-rule添加规则
filter
INPUT表中规则(输入)
1排在第一个
DROP拒绝不提醒
ACCEPT接收
REJECT拒绝提醒,不停加载,不提示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7、地址伪装和端口转发
端口转发:
ssh服务开启端口 22

firewall-cmd --add-masquerade
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.76
firewall-cmd --list-all

在这里插入图片描述
客户端:
desktop虚拟机:设置IP为192.168.0.20
真机:设置IP为172.25.254.76

ssh root@192.168.0.176 #如果此时连接不上,需删掉提示中的/root/.ssh/know_hosts
输入真机密码

在这里插入图片描述
#input进来时,端口已经被转发

ip addr show #真机IP

在这里插入图片描述
w -i #查看真机上显示的是谁连接
在这里插入图片描述
#output时地址已经被伪装
进来时通过22端口,我帮你自动转换到别人。别人连我时我让你去连另一个人
出去时经过地址包装,展示给别的的是路由地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值