Linux--Firewall

Firewall

作为内核的管理软件 firewall-cmd,通过使用这个软件来间接管理 Linux 内核的开启与关闭及其它功能,而 firewall-cmd 软件本身支持 firewall-cmd(命令)和 firewall-config (图形管理工具) 两种管理模式来管理 kernel netfilter

Firewall能将不同的网络连接归类到不同的信任级别,Zone提供了以下几个级别:

drop(丢弃)

丢弃所有进入的包,而不给出任何响应

block(拒绝)

拒绝所有外部发起的连接,允许内部发起的连接

public(公共)

允许指定的进入连接,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域

external(外部)

对伪装的进入连接,一般用于路由转发,仅接受ssh服务连接

dmz(非军事区)

仅接受ssh服务连接

work(工作)

允许受信任的计算机被限制的进入连接,仅接受ssh、ipp-client(网络打印机)或dhcpv6-client服务连接

home(家庭)

允许受信任的计算机被限制的进入连接,仅接受ssh、mdns、ipp-client、samba-client或dhcpv6-lient服务连接

internal(内部)

允许受信任的计算机被限制的进入连接,仅接受ssh、mdns、ipp-client、samba-client或dhcpv6-lient服务连接

trusted(信任)

信任所有连接

在这里插入图片描述

实验环境

需要三台主机

第一台主机(真实主机或虚拟主机)

单网卡

广播域: 172.25.254.30/24

vim /etc/sysconfig/network-scripts/ens33
编辑网卡配置文件
DEVICE=ens33

ONBOOT=yes

TYPE=Ethernet

BOOTPROTO=none

IPADDR=172.25.254.30/24

NETMASK=255.255.255.0

systemctl restart network

测试网络

ping 172.25.254.130

网络可达

第二台主机(虚拟主机)

双网卡

第一块网卡

广播域: 172.25.254.130/24

第二块网卡

广播域: 192.168.0.130/24

添加第二块虚拟网卡设备
在这里插入图片描述

vim /etc/sysconfig/network-scripts/eth0
编辑第一块网卡eth0
DEVICE=eth0

ONBOOT=yes

TYPE=Ethernet

BOOTPROTO=none

IPADDR=172.25.254.130

NETMASK=255.255.255.0

cp /etc/sysconfig/network-scripts/eth0 /etc/sysconfig/network-scripts/eth1

vim /etc/sysconfig/network-scripts/eth1
编辑第二块网卡eth1
DEVICE=eth1

ONBOOT=yes

TYPE=Ethernet

BOOTPROTO=none

IPADDR=192.168.0.130

NETMASK=255.255.255.0

systemctl restart network

在这里插入图片描述

测试网络

ping 172.25.254.131

网络可达

ping 192.168.0.230

网络可达

在这里插入图片描述

第三台主机(虚拟主机)

单网卡

广播域: 192.168.0.230/24

vim /etc/sysconfig/network-scripts/eth0
编辑网卡配置文件
DEVICE=eth0

ONBOOT=yes

TYPE=Ethernet

BOOTPROTO=none

IPADDR=192.168.0.230

NETMASK=255.255.255.0

systemctl restart network

在这里插入图片描述

测试网络

ping 192.168.0.130

网络可达

在这里插入图片描述

安装 Firewall

一般情况下,FirewallLinux 系统中为默认安装

在这里插入图片描述

如果 systemctl stats firewalld 查看,未找到 Firewall 服务

yum install firewalld firewall-cmd -y

安装 Firewall

安装 Apache

yum install httpd -y

在这里插入图片描述

systemctl start httpd

开启 Apache

systemctl enable httpd

开机自启

在这里插入图片描述

实验流程

systemctl stop firewalld

关闭防火墙

systemctl start firewalld

开启防火墙

systemctl enable firewalld

开机自启防火墙

systemctl disable firewalld

开机关闭自启防火墙

firewall-cmd 命令

firewall-config

图形化界面管理防火墙

在这里插入图片描述

firewall-cmd --state

在这里插入图片描述

firewall-cmd --get-active-zones

在这里插入图片描述

firewall-cmd --get-default-zone

在这里插入图片描述

firewall-cmd --get-zones

在这里插入图片描述

firewall-cmd --zone=public --list-all

在这里插入图片描述

firewall-cmd --list-all

查看默认域所有配置
在这里插入图片描述

firewall-cmd --get-services

在这里插入图片描述

firewall-cmd -list-all-zones

在这里插入图片描述

firewall-cmd --set-default-zone=home

在这里插入图片描述

Apache 测试防火墙服务

主机172.25.254.30

浏览器输入 172.25.254.130

Apache 已开启,无法访问,防火墙 Apache 服务未开启
在这里插入图片描述

firewall-cmd --add-source=172.25.254.30 --zone=trusted

在这里插入图片描述

主机172.25.254.30

浏览器输入 172.25.254.130

正常访问
在这里插入图片描述

firewall-cmd --remove-source=172.25.254.30 --zone=trusted

在这里插入图片描述

主机172.25.254.30

浏览器输入 172.25.254.130

无法访问
在这里插入图片描述

ifconfig eth0

172.25.254.130

ifconfig eth1

192.168.0.130
在这里插入图片描述

firewall-cmd --list-all
在这里插入图片描述

firewall-cmd --remove-interface=eth1 --zone=public
在这里插入图片描述

firewall-cmd --add-interface=eth1 --zone=trusted
在这里插入图片描述

主机192.168.0.230

浏览器输入 192.168.0.130

正常访问
在这里插入图片描述

firewall-cmd --list-all --zone=trusted
在这里插入图片描述

firewall-cmd change-interface=eth1 --zone=public
在这里插入图片描述

主机192.168.0.230

浏览器输入 192.168.0.130

无法访问
在这里插入图片描述

reloadcomplate-reload

服务端

firewall-cmd --list-all

查看默认域里全部配置信息

在这里插入图片描述

firewall-cmd --permanent --zone=public --add-service=dns

添加 public 域 dns 服务

firewall-cmd --reload

在这里插入图片描述

firewall-cmd --list-all

在这里插入图片描述

firewall-cmd --permanent --zone=public --remove-service=dns

移除 public 域 dns 服务

firewall-cmd --reload

在这里插入图片描述

firewall-cmd --list-all

在这里插入图片描述

firewall-cmd --permanent --zone=public --list-ports

firewall-cmd --permanent --zone=public --add-port=8080/tcp

firewall-cmd --permanent --zone=public --list-ports

firewall-cmd --reload

firewall-cmd --permanent --zone=public --list-ports

在这里插入图片描述

firewall-cmd --permanent --zone=public --remove-port=8080/tcp

firewall-cmd --permanent --zone=public --list-ports

firewall-cmd --reload

firewall-cmd --permanent --zone=public --list-ports

在这里插入图片描述

firewall-cmd --list-all

查看有 ssh 服务

firewall-cmd --permanent --remove-service=ssh

移除 ssh 服务

firewall-cmd --reload

在这里插入图片描述

firewall-cmd --list-all

在这里插入图片描述

ssh root172.25.254.230

防火墙 ssh 服务未关闭之前连接成功

irewall-cmd --permanent --remove-service=ssh

firewall-cmd --reload

当我们移除 ssh 服务并且使用 reload 后,已连接的 ssh 服务不会断开,只会在下次生效

172.25.254.230 端 df 命令正常使用

在这里插入图片描述

firewall-cmd --complete-reload

在这里插入图片描述

172.25.254.230 端 命令行已被停止使用(命令行卡住,无法正常使用)

在这里插入图片描述

拒绝访问

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.250 -p tcp --dport 22 -j REJECT

防火墙规则:172.25.254.250主机 禁止通过 ssh 22 端口 远程连接本机

firewall-cmd --reload

在这里插入图片描述

地址伪装

双网卡主机端

sysctl -a | grep net.ipv4.ip_forward

查看内核路由功能是否开启

net.ipv4.ip_forward=1

内核路由功能已开启

net.ipv4.ip_forward=0

未开启内核路由功能

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -a | grep net.ipv4.ip_forward

再次查看

net.ipv4.ip_forward=1

内核路由功能已开启

firewall-cmd --permanent --add-masquerade

firewall-cmd --reload

firewall-cmd --list-all

开启防火墙地址伪装功能

在这里插入图片描述

测试端

ifconfig

在这里插入图片描述

ping 192.168.0.130

ping 双网卡主机

网络可达

在这里插入图片描述

ping 172.25.254.30

网络不可达

不在一个广播域

在这里插入图片描述

编辑网卡配置文件

GATEWAY

172.25.254.130192.168.0.130

添加网关:双网卡主机任意一个 ip 地址

systemctl restart network

在这里插入图片描述

ping 192.168.0.130

网络可达

在这里插入图片描述

ping 172.25.254.30

网络可达

在这里插入图片描述

双网卡主机端

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

双网卡主机设置地址转换功能

任何 ip 远程登录本机 端口 22 号 sshd 服务都将被连接到 ip 172.25.254.30 主机

firewall-cmd --reload

在这里插入图片描述

测试端

ssh root@192.168.0.130

这时候,我们远程连接的真实 ip 是172.25.254.30 主机

需要认证密码为 172.25.254.30 主机的 root 密码

当我们输入正确密码进入后,可以看到本机 ip 为 172.25.254.30

在这里插入图片描述

w -i

查看到来源 ip 是172.25.254.130 主机而不是172.25.254.230 主机

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值