上午实现了网络防火墙,只是实现了屏蔽,youku网站
并没有真正做到从内访问外,从外访问内,只是实现了这两个网段,相互访问的 时候,不能访问youku,并没有真正实现单方向的
规则清空,现在来真正实现从企业内部,访问外网可以,外网访问内部不行
现在外部可以访问内部
访问的时候源确实是192.168.30.,目标也是,但是回来的时候,就变了
目标变成了192
能出去能回来才叫通,既要允许A访问B,也要允许B返回给A
就要辨明,回应包,从B发往A的响应包,但是B主动地访问A是不可以的
光根据源地址跟目标地址是判断不出来的,因为B发给A的有可能是回应的包,也有可能是主动发起请求的包
可以用链接状态,只要是链接起来的都允许,但是新发起的请求只能从里到外
现在是已经建立连接和相关的报文都允许
但是只要是新发起的请求必须是从A到B才允许
没有定义的都通通被拒绝
主动从内访问外都能被PING通
从外访问内是不可以的
但是有新的要求,企业内部也有需要被外部访问的服务,不是全部都不能访问,例如web服务
现在外部是访问不了的
现在外部就可以访问了,只是web服务可以,其他都不行
在企业用的时候,这种场景不多,这种场景有一个严格要求就是企业内部ip地址和外部ip地址实际上都是公网ip
现在大部分企业内部都不是公网IP,申请一个公网IP要很多钱、
3个内网地址端,B,C可以合成一个超网,私网地址是在互联网上没有路由的,直接是访问不了的
那么是怎么访问互联网的(如果两个都是公网地址,之间用路由就可以了,公网地址,互联网上的路由器时有公网记录的,可以出的去回得来)
但是企业内部如果是私网地址,中间用 了NAT技术,叫网络地址转换,N网络,A地址,T转换
当A主机去访问B的时候,中间网络防火墙收到了这个请求(这个时候数据报文就到达了中间防火墙,这个防火墙设备一看,它会在转发出去的瞬间做变化),把源地址替换成10。0.0.254
相当于私网地址替换成了公网地址,从B返回的结果也是10.0.0.254
NAT服务器转换成私网地址,A就收到了信息
以这种方式通讯的时候,B在看到请求报文的时候,认为是10.0.0.254进行访问的,并不知道真正的访问者是A机器
而且企业内部还有别的机器也想上网,也要经过NAT替换
在请求报文的时候,源地址替换了就叫SNAT
请求报文,把目标地址替换就是DNAT,目前企业访问互联网是用的SNAT
**现在又有一台新机器C(192.168.30.6),也想访问B,
到达NAT就拿253替换,但是这样如果企业内部有100个机器,那这样每个申请一个公网地址,成本太高 了
**
还有一种方式,可以申请一段地址,当局域网访问外部的时候,就用地址池里没人用的地址去访问,但是有个问题,就是机器太多,就有可能地址池里的地址都被用光了
更好地方式是,用一个地址,端口号多,就找一个没人用的端口号,这就叫pat,端口地址转换
这样的方式,企业链接互联网,只要有一个公网地址就可以为企业内部所有的主机提高服务,但是这样互联网看到请求的来源都来自一个地址,现在就造成一个局域网的地址都相同
但是现在互联网能否主动访问局域网,是不能的,这样相对就比较安全
但是这样也存在误杀,比如聊天室,你一个人被封了,整个ip影响的企业内部机器就都被封住了
但是现在如果启用内部有一个邮件服务器,想要让外面出差的人也能访问,互联网的人访问企业内部特定的服务器,我们可以用VPN方式(开了VPN,企业内部的机器就全部都能访问,相当于开了个小后门)
现在希望企业内部的一个web服务器能被外部互联网访问,就可以用DNAT来实现,可以做个映射表,只要有人访问10.0.0.254的80端口就把请求转发到内部的192.168.30.100
请求报文替换成了目标地址,所以叫DNAT,这种就叫把局域网的主机发布到互联网上,这样企业内部只有作为特有的机器做过映射了才能被访问
SNAT和DNAT的根本区别
SNAT是企业内部去访问公网的时候,它的请求报文做转换成一个个公网地址
而DNAT是相反,公网去访问企业内部,在访问的时候,是把目标地址转换
这些都是看请求报文的地址
家里上网还是企业,都是用的SNAT技术
用SNAT上网,企业内部私自配了一个公网地址,那么能不能进行上网,是可以的
表面上是没有问题,但是实际上有大问题,如果你的企业内部配的是6。6。6。6/8这个网段,公网上恰好也有这个地址
这个时候,你去访问6.6.6.6就不出去了,直接在本地访问了
这样无形中6打头的互联网资源你都访问不了,1600万
单位配了一个地址,死活访问不了一些互联网的信息
就是因为只要访问191.168都认为是局域网,就不出去了
配置一条命令就搞定了,是在中间防火墙的机器上配置的
之前链一直在还,但是表都是filter表,现在是换表,nat ,postrouting,出去的时候才做转换,不是每个企业内部主机都做转换,只有特定的主机才做转换
用哪个外网地址,替换企业内部的私网地址
实现SNAT
现在目标是让局域网的主机通过NAT访问互联网
互联网的主机认为是10,0.0。254访问的,不认为196访问
之前互联网的机器是可以看到196地址的
外网的机器上配了路由
NAT环境下,因为10。0.0.254个10.0。0。10在一个网段里,就不需要网关和路由
企业内部现在能链接了
在互联网主机上抓包认为是10.0.0.254访问
互联网主机的http访问日志
是254在访问
试试看,在nat服务器上端口号有没有参与转换
互联网主机也看下,端口没有参与转换
如何局域网主机多,有人用了这个端口,就可以考虑换一个端口
这个是定义一个地址池
这种场景有一个缺陷,缺陷是去访问互联网的时候,地址转换是一个固定地址,这个访问的固定的服务器地址
因为是写死的地址,所以这条线应该是z专线,ADSL拨号的话,地址就变了,下次启用的还需要修改一个地址
所以就需要换一种技术
masquerade相当于伪装,用外网地址,用拨号临时获取的地址是什么就是什么,这样就比较灵活,不用写死
这样就也可以进行访问
企业内部的主机希望被互联网访问
现在是访问不了的
要想访问就需要使用DNAT
为什么用prerouting,不用postrouting,为什么刚到prerouting,就做地址转换
如果在input进去的时候转换,就已经进去了,而且目标本机也没有web服务,所以一定是prerouting
把内部机器的端口给改了
现在8080端口打开了
当访问我的外网10.0.0.254的请求并且是tcp80,就转到内部的192.168.30.7的8080端口上去
现在从企业外部访问看一下
在企业内部的服务器上看到的请求是还是源地址,因为我们转换的仅仅是目标地址
但是如果企业内部又有一个web服务器,都是80,就只能转一个机器,不能转两个
DNAT只能一个地址一个端口对应一个目标,所以两个web服务器要么换地址,要么换端口
因为第一条规则满足就不会看第二条规则了
DNAT现在只能实现单一的一个主机,是不能实现调度的效果的,一半一半
LVS就可以实现想转谁转谁
可以把用户发请求的时候到我机器上的某个端口转发到我的另一个端口上去,端口转发
30.7上现在只有一个端口8080
我们现在希望别人访问80的时候转到有服务器的端口上去
现在是不行的,现在想就算访问的是80,也转发到8080上去
端口是80就转发到本机的8080
没有80,但是用户访问的时候就是80
用户就可以访问
端口转发面试题经常出现,所以面试题,必须记住
别人访问你,你把请求转发给别人,就需要用到firewalld