我用 Linux 前后有五年左右的时间,现在常见的 Debian 和 CentOS 系统,哦对,还有一个 Ubuntu,它们都内置了 firewalld,说起 Firewalld,或许高手会鄙视鄙视再鄙视(你凭什么取代了 iptables?)但是我觉得,和 Windows 防火墙比起来,它算是比较强大的防火墙了。
我为了学习的需要,购买了一个 VPS,走野路子装上了 Win Server 2019,为什么是野路子呢?因为人家不提供 Windows 镜像啊!既然是学习 Windows,那么,系统装完后,第一件事情不就是要安装 Active Directory 吗?那是肯定低!在安装 AD-DS 之前,我想安装一个 Softether VPN Server,方便我稍后通过 VPN 访问(不然一个是慢,在一个是 ISP 基本都封堵了 445 端口,所以直接登录也登陆不了),安装进程非常顺利。您的 AD-DS 服务器是用来给别人入侵的吗?我去,我开防火墙不就可以了呀?实际上,还真不可以。
由于我是个穷学生,显然买不起 Azure 这样高端大气上档次的服务,普通的 VPS 人家不提供额外的防火墙,那就开启 Windows 防火墙吧!展开了“入栈连接”节点后,我天啊,Active Directory 的所有条目,配置文件都写明了“所有”,操作都是“允许”(废话不允许看你咋登录域)。M$ 啊,您为我安装的 AD-DS 角色,竟然是开放在那里让人随意访问的?我把属性里的高级选项卡里的配置文件手动改成“域”,万事大吉了吧?
实践证明,我真的是图样图森破,高级安全 Windows 防火墙,提供各种各样的限制方式,例如源地址,目的地址等,但人家似乎没提供按网卡进行限制的选项,即便有,也是“局域网”、“远程访问”之类的比较笼统的概念,好吧,我服你了。既然单独的规则不可以指定网卡,那我就找防火墙本身的属性,这里面还真有四个选项卡,默认就是域配置文件。诶,入栈连接不是可以选择阻止所有吗?而且下面还可以选择受防火墙保护的网卡,那我退一大步,把 VPN 配置成网桥,连接到另外一个服务器,本机不允许从互联网直接访问,只能通过 VPN 那张网卡进行访问不就基本解决问题了?实际情况是,VPN 那张网卡也被禁止了,我从远程桌面掉了下来,重重地摔在了地上。
爬上服务器后,我想,看来也只能用限制源地址的方法来保护活动目录了。相比之下,Firewalld 提供了按网卡指定网络配置文件的选项,比如,把 eth0 分配到 Trusted 配置文件,把 eth1 分配到 External 配置文件,以此类推,Windows 的网络位置管理就显得太死板了,在 RRAS 服务器上,我不知道会出现什么有趣的现象,或许,这就是微软想让我们把专门的服务器用在专门的场合吧?但弹性真的太差啦!