以下实验的实操都是在redhat7.0上
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。越来越多地应用于专用网络与公用网络的互联环境之中,尤其以接入Internet网络为最甚。
通俗易懂的讲:
防火墙代主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外,防火墙技术的警报功能十分强大,在外部的用户要进入到计算机内时,防火墙就会迅速的发出相应的警报,并提醒用户的行为,并进行自我的判断来决定是否允许外部的用户进入到内部,只要是在网络环境内的用户,这种防火墙都能够进行有效的查询,同时把查到信息朝用户进行显示,然后用户需要按照自身需要对防火墙实施相应设置,对不允许的用户行为进行阻断。通过防火墙还能够对信息数据的流量实施有效查看,并且还能够对数据信息的上传和下载速度进行掌握,便于用户对计算机使用的情况具有良好的控制判断,计算机的内部情况也可以通过这种防火墙进行查看,还具有启动与关闭程序的功能,而计算机系统的内部中具有的日志功能,其实也是防火墙对计算机的内部系统实时安全情况与每日流量情况进行的总结和整理。
网络区名称 | 默认配置 |
---|---|
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 (丢弃) | 任何接收的网络数据包都被丢弃,没有任何回复 |
实验环境: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
第二块网卡设置ip:192.168.0.110
配置网络eth1
客户端B(192.168.0.210)配置网关:
测试客户端B是否可以与服务端ping通
客户端A(真机)(172.25.254.70),测试是否于服务端相通
服务设定:get-service
–permanate参数就是添加在文件中的协议
reload 管理当前火墙的状态,但是不会断掉原本连接的客户端的的链接
complete-reload管理当前火墙的状态,并且会断掉所有客户端的远程连接或连接该主机。
三表五链
这些表是一个插件;
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健两次;
添加端口8080/tcp
删除端口8080/tcp
删除ssh的服务
查看
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 #进行规则生效
不在同一网段的两个主机(分别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 主机
客户端(210主机):添加网关,与自己在同一网段的网关(服务器其中的一个ip),
可以ping通服务器;
然后远程链接服务器,ssh root@服务器的地址(链接两个都可以转接,因为在设置火墙策略的时候没有来源地址,只有指向地址),然后会远程转接到相应的B客户机,但是远程连接的是否输入的密码的是B客户机的密码;
远程连接172.25.254.110和192.168.0.110都可以转接到70号主机是因为防火墙策略上面没有指定与源地址,只指向了目的地址;
w -i
查看远程连接后的主机的访问 ip 是172.25.254.110 主机而不是192.168.0.210 主机