Linux——Firewall防火墙

以下实验的实操都是在redhat7.0上


Firewall定义

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。

所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。越来越多地应用于专用网络与公用网络的互联环境之中,尤其以接入Internet网络为最甚。

通俗易懂的讲:

防火墙代主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外,防火墙技术的警报功能十分强大,在外部的用户要进入到计算机内时,防火墙就会迅速的发出相应的警报,并提醒用户的行为,并进行自我的判断来决定是否允许外部的用户进入到内部,只要是在网络环境内的用户,这种防火墙都能够进行有效的查询,同时把查到信息朝用户进行显示,然后用户需要按照自身需要对防火墙实施相应设置,对不允许的用户行为进行阻断。通过防火墙还能够对信息数据的流量实施有效查看,并且还能够对数据信息的上传和下载速度进行掌握,便于用户对计算机使用的情况具有良好的控制判断,计算机的内部情况也可以通过这种防火墙进行查看,还具有启动与关闭程序的功能,而计算机系统的内部中具有的日志功能,其实也是防火墙对计算机的内部系统实时安全情况与每日流量情况进行的总结和整理。

1、Firewalld域的了解

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

2、Firewall的管理

实验环境:redhat7.0
实验主机:172.25.254.110
需要三台机子(一台作为服务器C(172.25.254.110和192.168.0.110),一台作为客户端A(172.25.254.70),一台作为客户端B(192.168.0.210))
服务器C(两个网卡):
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth1
[root@localhost ~]#systemctl restart network
在这里插入图片描述
在这里插入图片描述
第一块网卡设置ip:172.25.254.110
配置网络eth0
Linux——Firewall防火墙_第1张图片
第二块网卡设置ip:192.168.0.110
配置网络eth1
Linux——Firewall防火墙_第2张图片
客户端B(192.168.0.210)配置网关:
Linux——Firewall防火墙_第3张图片
Linux——Firewall防火墙_第4张图片
测试客户端B是否可以与服务端ping通
Linux——Firewall防火墙_第5张图片
客户端A(真机)(172.25.254.70),测试是否于服务端相通
Linux——Firewall防火墙_第6张图片

测试服务端:
同一网段的网络是否通
Linux——Firewall防火墙_第7张图片
Linux——Firewall防火墙_第8张图片

安装防火墙firewall:
Linux——Firewall防火墙_第9张图片

服务设定:get-service
–permanate参数就是添加在文件中的协议

reload 管理当前火墙的状态,但是不会断掉原本连接的客户端的的链接
complete-reload管理当前火墙的状态,并且会断掉所有客户端的远程连接或连接该主机。
Linux——Firewall防火墙_第10张图片

在这里插入图片描述

测试:

Linux——Firewall防火墙_第11张图片


三表五链
这些表是一个插件;
1.filter表
filter表:经过本机内核的表,访问本机的内核服务。本机内核响应的时候是访问了内核

input Foward output
经过内核 通过内核进行路由 经过内核

2.nat表
nat表:转换表

input prerouting postouting output
不经过路由 路由前,目的地 地址转换(DNAT) 路由之后,源地址转换(SNAT) 不经过路由

3.mangle表(当filter和nat表不够用时,来进行说明,几乎不用)

input prerouting Foward postouting output

##http让某主机不能访问?

forward:经过本机内核的。转发
mangle表(当filter和nat表不够用时,)
进入本机的数据
路由之后:postrouting原地址转换Snat
路由之前:preouting在请求之后响应后在
filter添加表
INPUT 1添加第一条链,从上到下的访问
-s 来源地址 -p协议 -j动作
drop :不回应,客户端会以为请求没有到达,会一直的访问。
reject:回应,会让客户端知道请求是否被接受,
accept:接受

在查找下一步添加的命令需要按table健两次;

服务端:

Linux——Firewall防火墙_第12张图片
添加端口8080/tcp
在这里插入图片描述
删除端口8080/tcp
在这里插入图片描述
删除ssh的服务
在这里插入图片描述
查看
Linux——Firewall防火墙_第13张图片

拒绝某主机访问:

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

拒绝172.25.254.110主机进行远程访问,而其他的主机都可以进行访问;
firewall-cmd --reload #进行规则生效

Linux——Firewall防火墙_第14张图片

地址伪装

不在同一网段的两个主机(分别A和B)的访问,而服务器不想接受会进行转接服务;实际真正的访问是A访问B,而A以为自己访问的是服务端;类似于拨打10086,他们的转接服务;?
实验环境:
两台客户端,一台服务端,两台客户端,一个只是被链接,但是需要三台机器都打开ssh服务;

打开路由转换
sysctl -a |grep ip_forward 地址转换

打开伪装地址转换
firewall-cmd --permanent --add masquerade

服务端的设置(双网卡主机):

两个网卡,设置不同网段的ip分别为:(172.0.0.0/192.0.0.0),在服务端
添加防火墙的ssh的策略firewall-cmd --add-forward
port=port=22:proto=tcp:toport=22:toaddr=172.25.254.70
双网卡主机设置地址转换功能
任何 ip 远程登录本机 端口 22 号 sshd 服务都将被连接到 ip 172.25.254.70 主机
Linux——Firewall防火墙_第15张图片

Linux——Firewall防火墙_第16张图片

客户端(210主机):添加网关,与自己在同一网段的网关(服务器其中的一个ip),
Linux——Firewall防火墙_第17张图片
可以ping通服务器;
Linux——Firewall防火墙_第18张图片

测试:

然后远程链接服务器,ssh root@服务器的地址(链接两个都可以转接,因为在设置火墙策略的时候没有来源地址,只有指向地址),然后会远程转接到相应的B客户机,但是远程连接的是否输入的密码的是B客户机的密码;
远程连接172.25.254.110和192.168.0.110都可以转接到70号主机是因为防火墙策略上面没有指定与源地址,只指向了目的地址;
Linux——Firewall防火墙_第19张图片
Linux——Firewall防火墙_第20张图片
w -i
查看远程连接后的主机的访问 ip 是172.25.254.110 主机而不是192.168.0.210 主机
Linux——Firewall防火墙_第21张图片

你可能感兴趣的:(Linux运维入门)