第12回 NETMARKとiproute2でトラフィックを完全掌握
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/11/21
前回では例を挙げて「NETMARK」を説明しました。今回は、NETMARKと「iptables/iproute2」を組み合わせて、より面白い環境を構築してみましょう。
今回も説明のためにVMwareイメージを用いて解説を行いますので、実際に手元で設定ファイルを確認したい場合には、以下のURLから今回のVMwareイメージを含むファイル「atmarkit_part12.tar.gz」をダウンロードしてください。
【atmarkIT VMware Images】 http://www.selinux.gr.jp/LIDS-JP/atmarkit.html |
ルーティングをコントロールするiproute2
iproute2は、パケットのルーティングテーブルを操作するパッケージです。Linuxに通常入っているrouteコマンドやifconfigコマンドよりも複雑な条件を使ってルーティングテーブルを作成することができます。例えば、tcコマンドを組み合わせてトラフィック制御を行ったり、前回説明したiptablesをNETMARKと組み合わせてMARK値によるルーティングを行うことができます。図1はiptablesと組み合わせた場合です。
図1 iptablesとiproute2を組み合わせたルーティングの例 |
iproute2は、DebianやRed Hat、Fedora Coreなどで「iproute」パッケージとして提供されています。iproute2に関しての詳しい説明は、下記のリンクを参考にするとよいでしょう。
【Linux Advanced Routing & Traffic Control HOWTO iproute2入門】 http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.iproute2.html 【@IT:iptablesによる負荷分散とDoS対策(1/4)】 http://www.atmarkit.co.jp/flinux/rensai/iptables03/iptables03a.html |
iproute2でMARK値を使う場合にはipコマンドを用います。ipコマンドのオプションrule、routeを用い、
# ip rule add fwmark [MARK値] table [テーブル値] |
にてMARK値が設定されていた場合に参照するルーティングテーブルを指定します。さらに、
# ip route add [ルーティング] table [テーブル値] |
とし、そのテーブル値が参照先として指定された場合に参照するルーティングを設定します。
iptables/iproute2とLIDSを組み合わせるメリット
iptablesとiproute2の組み合わせはそれだけでさまざまなコントロールが可能ですが、LIDSを組み合わせることによりさらに細かい条件での設定ができます。例えば以下のようなメリットがあります。
- プログラムごとのルーティングの変更が可能
- ローカル/リモートユーザーでのルーティングの変更が可能
- 通信を行うプログラムの詐称防止が可能
●プログラムごとのルーティングの変更
例えば、あるマシンからWeb(ポート番号80番)にアクセスする際には常にプロキシを通すようにするとしましょう。図2のような構成となります。図2の場合には、あて先ポート番号が80番のものをすべてプロキシに飛ばすようにしているため、その通信を行うプログラムの方を判別しません。そのため、FirefoxでWebサイトを見に行った場合にも(あるいはtelnetプログラムでポート80番を直接たたいても)、Debianのaptでパッケージをアップデートした場合にも、すべて同じプロキシを通して通信を行います。
図2 LIDSを利用しない場合、すべてのプログラムで共通のルーティングとなる |
しかし、LIDSを組み合わせることにより、さらに細かくプログラム単位でルーティングを個別に行うことが可能になります。例えば、図3のようにFirefoxでWebサイトを見に行った場合にはプロキシA、Debianのaptでパッケージをアップデートする場合にはプロキシBといった具合に、同じポート番号80番あての通信でも、通信を行うプログラム単位でルーティングを分けて負荷分散を行うことができます。
図3 LIDSとiproute2によりプログラム単位のルーティングが指定できる |
●ローカル/リモートユーザーでのルーティングの変更
LIDSでのプログラムのMARK値はすべて親プロセスから継承するという特徴を用いて、前回説明したようにSSH経由でログインしたユーザーに対してiptablesと組み合わせて送信できるパケットをコントロールしたり、iproute2を用いて通信のルーティングを変更するということもできます。
図4 LIDSによりローカルユーザーとリモートユーザーのルーティングを変更する |
●通信を行うプログラムの詐称防止
また、LIDSとiproute2を組み合わせることにより、通信を行うプログラムの詐称を防止することができます。例えば、図5のようにクライアントPC上にLIDSを導入し、Thunderbirdが生成するソケットのみがメールサーバに接続できるようなルーティングを持つというように設定することができます。クライアントPC上でThunderbird以外の、例えばtelnetクライアントを用いてPOPサーバに接続を試みた場合には、メールサーバへのルーティングがありませんので接続することができません。これにより、例えばウイルスに感染して不正なプログラム上からメールをダウンロードするような行為を防ぐことができます。
図5 メールサーバへのtelnet接続を禁止する |
1/3 |
Index | |
NETMARKとiproute2でトラフィックを完全掌握 | |
Page1 ルーティングをコントロールするiproute2 iptables/iproute2とLIDSを組み合わせるメリット |
|
Page2 iproute2で「syslogd以外接続禁止」を実現する |
|
Page3 syslogdの動作を確認 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|