iptables と貧しく怠惰な反体制派からのトラフィックのフィルタリング

禁止されたリソースへのアクセスをブロックすることの関連性は、法律または関連当局の命令を遵守しなかったとして正式に告発される可能性のある管理者に影響を与えます。

iptables と貧しく怠惰な反体制派からのトラフィックのフィルタリング

Zeroshell、pfSense、ClearOS など、私たちのタスクに特化したプログラムやディストリビューションがあるのに、車輪を再発明する必要はありません。

経営陣には別の質問がありました。使用されている製品には州からの安全証明書が付いていますか?

私たちは次のディストリビューションを使用した経験があります。

  • Zeroshell - 開発者は 2 年間のライセンスも寄付しましたが、私たちが興味を持っていた配布キットが、非論理的に私たちにとって重要な機能を果たしていることが判明しました。
  • pfSense - 尊敬と名誉、同時に退屈で、FreeBSD ファイアウォールのコマンドラインに慣れていて、私たちにとって十分に便利ではありません (これは習慣の問題だと思いますが、それは間違った方法であることが判明しました)。
  • ClearOS - 私たちのハードウェアでは非常に遅いことが判明し、本格的なテストを行うことができませんでした。では、なぜこのような重いインターフェースを使用したのでしょうか?
  • イデコセレクタ。 Ideco 製品については別の話で、興味深い製品ですが、政治的な理由で私たちにとってはそうではなく、同じ Linux や Roundcube などのライセンスについても彼らに「噛みつき」たいと思っています。 彼らはどこからインターフェースを切り取るというアイデアを得たのでしょうか? Python スーパーユーザーの権利を剥奪することで、開発および変更されたモジュールで構成される完成品を、GPL などに基づいて配布されるインターネット コミュニティから販売することができます。

私の主観的な感情を詳細に実証するよう要求して、否定的な感嘆の声が私の方向に注がれることは理解していますが、このネットワークノードはインターネットへの4つの外部チャネルのトラフィックバランサーでもあり、各チャネルには独自の特性があると言いたいのです。 。 もう XNUMX つの基礎は、複数のネットワーク インターフェイスの XNUMX つが異なるアドレス空間で動作する必要があるということでした。 готов VLAN は必要な場合も必要でない場合もどこでも使用できることを認めます。 準備ができていない。 TP-Link TL-R480T+ のようなデバイスが使用されていますが、一般に、それらは独自のニュアンスで完全に動作しません。 Ubuntu公式Webサイトのおかげで、この部分をLinux上で設定することができました IP バランシング: 複数のインターネット チャネルを XNUMX つに結合します。。 さらに、各チャネルは上昇するだけでなく、いつでも「下降」する可能性があります。 現在動作しているスクリプト (これは別の記事として公開する価値があります) に興味がある場合は、コメントに書き込んでください。

検討中のソリューションが独自であるとは主張しませんが、私は次のような質問をしたいと思います。「代替オプションを検討できるのに、なぜ企業は深刻なハードウェア要件を備えた疑わしいサードパーティ製品に適応する必要があるのでしょうか?」

ロシア連邦にロスコムナゾールのリストがある場合、ウクライナには国家安全保障会議の決定の附属書があります(たとえば、 ここで)そうなると、地元のリーダーも寝ません。 たとえば、職場の生産性を損なうと経営陣が判断した禁止サイトのリストを渡されました。

デフォルトですべてのサイトが禁止されており、上司の許可を得てリクエストした場合にのみ特定のサイトにアクセスできる他の企業の同僚とコミュニケーションをとり、敬意を持って微笑み、考え、「問題を乗り越える」ことで、私たちは理解するようになりました。はまだ良いので、検索を開始しました。

トラフィック フィルタリングについて「主婦の本」に書かれている内容を分析的に確認するだけでなく、さまざまなプロバイダーのチャネルで何が起こっているかを確認する機会があったので、次のレシピに気づきました (スクリーンショットは少しトリミングされています。ご了承ください)尋ねるときは理解してください):

プロバイダー 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 には、すでにライブ バランサーがありました。

ユーザーのインターネットは高速である必要があり、ブラウザは XNUMX 分も待たずに、このページが利用できないと結論付ける必要があります。 長い検索の結果、このモデルにたどり着きました。
ファイル1 -> /script/denied_host、禁止されている名前のリスト:

test.test
blablabla.bubu
torrent
porno

ファイル2 -> /script/denied_range、禁止されたアドレス空間とアドレスのリスト:

192.168.111.0/24
241.242.0.0/16

スクリプトファイル3 -> ipt.shipables を使用して作業を行う:

# считываем полезную информацию из перечней файлов
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 インターフェイス経由で管理するための小さなハックがあるためですが、このようなモデルを 250 年以上使用した経験からわかるように、WEB はそれほど必要ありません。 導入後、サイトのリストをデータベースに追加したいなどの要望がありました。 ブロックされたホストの数は、XNUMX + XNUMX 個のアドレス スペースを超えています。 システム管理者と同様に、https 接続経由でサイトにアクセスするときに実際に問題が発生します。私もブラウザーについて不満を持っています:) しかし、これらは特殊なケースであり、リソースへのアクセス不足のトリガーのほとんどは依然として私たちの側にあります。 、Opera VPN や friGate などのプラグイン、Microsoft のテレメトリも正常にブロックします。

iptables と貧しく怠惰な反体制派からのトラフィックのフィルタリング

出所: habr.com

コメントを追加します