热搜词: 

软路由防火墙规则最佳实践

发布:小编

#头条创作挑战赛#

服务器/NAS/软路由放在公网上,有风险吗?防火墙来解决!防火墙根据什么特征来过滤数据包?怎么配置?这期告诉你!【好玩的网络-私有云07】

  • Linux防火墙介绍
  • iptables与firewalld介绍
  • filter表,input链
  • 防火墙识别数据包:出/入站网卡,源/目的IP地址,源/目的端口号,协议类型,等
  • 如何配置抵御外部攻击

站内视频:点点跳转


软路由防火墙规则最佳实践图1

Hi,大家好,我是继续填坑的小伙伴旋律果子,一个专注于网络技术Geek。从这一期开始,我们就会进入软路由和防火墙领域,继续更深入的了解网络的相关知识。

在开始这一期之前,友情提示一下,如果觉得这一期听不懂的话,可以先去补一下基础篇第3期路由器相关内容,详细讲解了网络层与路由表,以及NAT地址转换等知识。还有基础篇第6期的防火墙/传输层/异地组网相关知识,然后再来看本期的内容。

真实网络的数据包传输过程,可能和大家理解的不太一样,大家理解的是数据包到了即可收到消息,然而实际上,网络数据包经过服务器,是需要经过一个非常复杂的过程的,有入站过程、转发过程还有出站过程,

软路由防火墙规则最佳实践图2


大家可以看一下这个图。我们这一期只讲最简单的部分,入站过程,而且以实战和操作为主,不会过多的讲解原理。

软路由防火墙规则最佳实践图3

私有云的前几期,我们在服务器上搭建了不少服务,NFS/SMB/transmission等。

软路由防火墙规则最佳实践图4


我们之前也仅仅是将NAS服务器放在局域网中。因为有主路由NAT的保护,从外网并不能直接访问我们的NAS,从而降低了网络安全的风险。

软路由防火墙规则最佳实践图5


在后面,我们会将这个NAS软路由一体机直接放到公网上,这时从外界就能直接接触到我们的服务器了,就有了被攻击的风险,所以将这个服务器放到公网之前,我们先要学习这一期的内容。

软路由防火墙规则最佳实践图6

防火墙的入站过程简单来讲就是快递员已经把包裹送到我们家门口了,我们要根据邮寄地址,也就是IP地址和货物的具体内容或承载的服务,也就是端口号,来判断是接收/拒收/还是丢弃。

软路由防火墙规则最佳实践图7


这一个过程对应的是filter表的input链,也对应着三种操作,accept,reject和drop。要识别包裹的内容主要包括入站网卡,源IP地址,目的IP地址,源端口号以及目的端口号等。入站网卡象征着快递是从正门进来的还是从窗户进来的;IP地址象征的邮寄地址,包括寄件方的地址和收件方的地址;端口号象征着服务的内容,例如80端口是http服务,9091端口为transmission下载服务的管理页面。

软路由防火墙规则最佳实践图8

那么我们如何阻挡黑客的攻击呢?其实很简单,我们只需要让对外的网卡和端口访问不到就行了,也就是在刚才数据包进来的过程中,根据数据包特征去添加一些过滤规则。目前,大部分的软路由系统,如openwrt采用的是iptables进行管理,Ubuntu等系统采用的是ufw,在我们这个系列的centos8中采用的是firewalld进行管理。

软路由防火墙规则最佳实践图9


iptables是基础,不过iptables只能管理ipv4,无法管理ipv6。Ipv6需要使用ip6tables进行管理,所以如果是双栈网络就需要分别设置防火墙了。Firewalld的底层是netfilter,将ipv4和ipv6统一成了同一个框架,是同时支持v4和v6的防火墙。另外,几乎所有的iptables命令在firewalld中都可以使用direct参数进行兼容,并且firewalld还支持zoon等更高级的功能,也支持动态防火墙,使用起来比iptables更为方便。

软路由防火墙规则最佳实践图10

我们后面的命令几乎都使用firewalld命令进行讲解,如果希望能更早一步了解,可以去redhat的官方网站搜索到更详细更完整的教程。

这一期我们只介绍一些最简单的操作,比如开放端口让别人访问,关闭端口不让别人访问等。我们直接拿一个案例来进行说明。假设我们的NAS软路由一体机,有2张网卡。连接外网的网卡是pppoe-eno1,获取到了公网IP;连接内网的网卡是br-lan,在局域网中。服务器上开启了一些服务:http服务,对应80/tcp端口;transmission服务,管理页面对应9091/tcp端口,下载监听端口为51413/tcp和51413/udp端口;ssh服务对应22/tcp端口。外网和内网都是ipv4/ipv6双栈的。

软路由防火墙规则最佳实践图11


我们的要求是,ssh以及transmission的下载监听端口对内和对外同时开放,方便进行管理和远程访问以及下载加速;http和transmission的管理页面仅对内网用户开放,仅供内部人员使用。

软路由防火墙规则最佳实践图12


首先,我们使用ssh登陆服务器。我们可以先使用firewalld的zone的规则,将public zone设置为默认zone,命令为firewall-cmd --set-default-zOne=public。这样所有的数据默认遵循public的规则。包括wan口和lan口。Public zone默认对于除了ssh/dhcpv6-client之外的数据都reject。这样关于ssh的规则就设置好了。

软路由防火墙规则最佳实践图13


接下来,因为某些服务需要内网访问,所以我们将lan口网卡加入trusted zone,命令为firewall-cmd --zOne=trusted --change-zOne=br-lan。Trusted zone当中所有的数据默认都是accept。那么现在内网的用户都可以正常访问http,transmission等管理页面了。

软路由防火墙规则最佳实践图14

接下来,transmission服务还有两个端口需要暴露在公网当中,51413的tcp和udp端口。

软路由防火墙规则最佳实践图15

我们需要在public zone中单独添加规则,将这两个端口的规则修改为允许。我们需要使用firewall-cmd --add-port=51413/tcp和firewall-cmd --add-port=51413/udp命令进行添加,就OK了。

软路由防火墙规则最佳实践图16


上面所有的命令都是运行后立即生效的,但是路由器重启后有些命令会失效,如果想要进行永久设置,我们需要在命令中添加—permanent的参数。所以我们需要像刚才一样运行一遍立即生效命令,再运行一次永久保存命令就可以了。

软路由防火墙规则最佳实践图17

关于路由器的防火墙我们暂时先讲这么多吧,通过这一期视频,将服务器放到公网之前,基本已经能做到自保了。

软路由防火墙规则最佳实践图18

下一期开始接着讲解软路由相关的内容,后面再讲防火墙的高级内容。希望大家多多支持。



旋律果子: 网络Geek/Linux开发者/中国科学院大学在读博士/科技数码博主/国家水利水电二级建造师/优质科技领域创作者

大家都在看

查看更多数码极客