Iptables 和过滤来自贫穷和懒惰的持不同政见者的流量

阻止访问违禁资源的相关性会影响任何可能因不遵守法律或相关机构命令而被正式指控的管理员。

Iptables 和过滤来自贫穷和懒惰的持不同政见者的流量

既然有专门的程序和发行版来完成我们的任务,例如:Zeroshell、pfSense、ClearOS,为什么要重新发明轮子呢?

领导还有一个疑问:使用的产品有我们国家的安全证书吗?

我们有使用以下发行版的经验:

  • Zeroshell - 开发人员甚至捐赠了 2 年许可证,但事实证明我们感兴趣的分发工具包,不合逻辑地为我们执行了关键功能;
  • pfSense - 尊重和荣誉,同时也很无聊,习惯了 FreeBSD 防火墙的命令行对我们来说不够方便(我认为这是一个习惯问题,但事实证明是错误的方式);
  • ClearOS - 在我们的硬件上结果非常慢,我们无法进行认真的测试,那么为什么有如此繁重的接口呢?
  • Ideco SELECTA。 Ideco 产品是一个单独的对话,一个有趣的产品,但出于政治原因不适合我们,而且我还想“咬”他们关于相同 Linux、Roundcube 等的许可证。 他们从哪里得到这样的想法:通过将界面切入 蟒蛇 通过剥夺超级用户权限,他们可以出售由互联网社区开发和修改的模块组成的成品,并以 GPL 等方式分发。

我知道现在负面的感叹会涌向我的方向,要求详细证实我的主观感受,但我想说的是,这个网络节点也是4个外部互联网通道的流量平衡器,每个通道都有自己的特点。 另一个基石是需要多个网络接口之一在不同的地址空间中工作,我 准备 承认 VLAN 可以在任何必要和不必要的地方使用 还没准备好。 有些设备正在使用,例如 TP-Link TL-R480T+ - 一般来说,它们的表现并不完美,有自己的细微差别。 感谢 Ubuntu 官方网站,可以在 Linux 上配置这部分 IP 平衡:将多个 Internet 通道合并为一个。 此外,每个通道都可以随时“下跌”,也可以随时上涨。 如果您对当前正在运行的脚本感兴趣(并且值得单独发布),请在评论中写下。

正在考虑的解决方案并不声称是独一无二的,但我想问一个问题:“当可以考虑替代方案时,为什么企业要适应对硬件要求严格的第三方可疑产品?”

如果在俄罗斯联邦有 Roskomnadzor 名单,则在乌克兰有国家安全委员会决定的附件(例如。 这里),那么地方领导也不睡觉。 例如,我们收到了一份禁止站点清单,管理层认为这些站点会损害工作场所的生产力。

在与其他企业的同事交流时,默认情况下所有网站都是被禁止的,只有在老板允许的情况下才能访问特定网站,我们微笑着思考,“对问题抽烟”,我们了解到生活仍然不错,我们开始了他们的搜索。

我们不仅有机会分析他们在“家庭主妇的书”中写的有关流量过滤的内容,而且还有机会了解不同提供商的渠道上发生的情况,我们注意到以下食谱(任何屏幕截图都有点裁剪,请提问时明白):

提供者1
— 不打扰并强加自己的 DNS 服务器和透明代理服务器。 嗯?..但是我们可以访问我们需要的地方(如果我们需要的话:))

提供者2
- 认为他的顶级提供商应该考虑一下这一点,顶级提供商的技术支持甚至承认了为什么我无法打开我需要的网站,这并不是禁止的。 我想这张照片会让你觉得有趣:)

Iptables 和过滤来自贫穷和懒惰的持不同政见者的流量

事实证明,他们将被禁止站点的名称转换为 IP 地址并阻止该 IP 本身(他们并不关心该 IP 地址可以托管 20 个站点)。

提供者3
— 允许车辆前往那里,但不允许车辆沿路线返回。

提供者4
— 禁止对指定方向的数据包进行所有操作。

如何使用 VPN(相对于 Opera 浏览器)和浏览器插件? 起初使用 Mikrotik 节点,我们甚至得到了 L7 的资源密集型配方,后来我们不得不放弃它(可能有更多禁止的名称,当除了直接负责路由之外,在 3 打上时,这变得令人悲伤表达式(PPC460GT 处理器负载达到 100%)。

Iptables 和过滤来自贫穷和懒惰的持不同政见者的流量.

事情变得清楚了:
127.0.0.1 上的 DNS 绝对不是万能药;现代版本的浏览器仍然允许您绕过此类问题。 限制所有用户的权限是不可能的,我们也不能忘记大量的替代 DNS。 互联网不是静态的,除了新的 DNS 地址之外,被禁止的站点还可以购买新地址、更改顶级域,并且可以在其地址中添加/删除字符。 但仍然有权过这样的生活:

ip route add blackhole 1.2.3.4

从禁止站点列表中获取 IP 地址列表会非常有效,但由于上述原因,我们继续考虑有关 Iptables 的问题。 CentOS Linux 7.5.1804 版本上已经有一个实时平衡器。

用户的互联网应该很快,浏览器不应该等待半分钟,就得出这个页面不可用的结论。 经过长时间的搜索,我们得出了这个模型:
文件 1 -> /脚本/denied_host,禁止名称列表:

test.test
blablabla.bubu
torrent
porno

文件 2 -> /脚本/denied_range,禁止的地址空间和地址列表:

192.168.111.0/24
241.242.0.0/16

脚本文件 3 -> ipt.sh使用 ipables 完成这项工作:

# считываем полезную информацию из перечней файлов
HOSTS=`cat /script/denied_host | grep -v '^#'`
RANGE=`cat /script/denied_range | grep -v '^#'`
echo "Stopping firewall and allowing everyone..."
# сбрасываем все настройки iptables, разрешая то что не запрещено
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
#решаем обновить информацию о маршрутах (особенность нашей архитектуры)
sudo sh rout.sh
# циклически обрабатывая каждую строку файла применяем правило блокировки строки
for i in $HOSTS; do
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p tcp -j REJECT --reject-with tcp-reset;
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p udp -j DROP;
done
# циклически обрабатывая каждую строку файла применяем правило блокировки адреса
for i in $RANGE; do
sudo iptables -I FORWARD -p UDP -d $i -j DROP;
sudo iptables -I FORWARD -p TCP  -d $i -j REJECT --reject-with tcp-reset;
done

使用 sudo 是因为我们有一个通过 WEB 界面进行管理的小技巧,但根据一年多的使用这种模型的经验表明,WEB 并不是那么必要。 实施后,希望将站点列表添加到数据库等。 被封锁的主机数量超过250+十几个地址空间。 通过 https 连接访问网站时确实存在问题,就像系统管理员一样,我对浏览器有抱怨:),但这些都是特殊情况,大多数无法访问资源的触发因素仍然在我们这边,我们还成功阻止了 Opera VPN 以及来自 Microsoft 的 friGate 和遥测等插件。

Iptables 和过滤来自贫穷和懒惰的持不同政见者的流量

来源: habr.com

添加评论