.
Network / OS => ゲートウェイサーバ構築 > 9.ファイアーウォールについて
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

ファイアーウォールについて

eth1に対して制限を設けなかった理由について

取敢えず、ゲートウェイサーバーとして機能させるために設定を行ってきましたが、ファイアーウォールについては、別途設定を煮詰めていく必要があります。ここで行った設定で注意したいのは eth1 に対しては、全くの無防備 であると言う点です。

初心者に限らず、サーバーOSをインストールして先ず最初に行うのがネットワーク周りの設定ですが、Web Mail サーバーなどを構築する前に eth1 側に対して iptables による セキュリティポリシーを適用すると、初心者の場合、ネットワーク上の問題なのか、サーバー側に問題があるのか、問題の切り分けが難しくなるため、このよう にしています。

最終的には eth1(192.168.1.56) に対しても eth0(192.168.0.56) 同様に、必要なサービスポートだけ穴をあける必要があります。例え内部に悪意のある人がいなくても、トロイの木馬やワームなど、インターネット経路で感染し、内側からサーバーに攻撃を行う可能もがあるからです。

ここから先は、それぞれの環境、目的に応じてファイアーウォールを構築していく必要があります。

Linux IPマスカレード イメージ

今後の課題と習得のヒント

それぞれのネットワーク事情に応じて、ファイアーウォールを構築していく必要があります。ここで行った設定では、上記の理由から /etc/sysconfig/iptables に記述されている
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT は外して、通信を許可するポートを別途指定するようにします。

ここで使用した 「セキュリティ レベル」 ツールで作成された/etc/sysconfig/iptables 25行目 では

/etc/sysconfig/iptables

25行目

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT


コマンド 意味
-p tcp プロトコルはTCP
-m state --state NEW 新規にコネクションを開始
-m tcp --dport 80 ポートに 80 ( http ) を指定
(/etc/service に定義されているサービスポート)
-j ACCEPT パケットを透過させる

となっており、パケットを透過すべき方向 「送信元 IP or 宛先 IP」 又は インターフェイスeth0 / eth1 が指定されていません。つまり、外部、内部からは、port 80 を使った通信は許可されていることになります。

仮に、
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT は外したとしても、上記
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
で指定されている限り、eth1 のネットワークセグメントからの通信は行えることになります。

Webサーバーが起動している場合、試しに http://192.168.1.56 
eth1に割当てた IPアドレス ブラウザでアクセスするとホームページが表示されますが、ドメインによるアクセス(http://mydomain.net)では、エラーが表示されページが見えない筈です。

なぜなら、 ここで行った設定では、DNS に関しては定義されておらず、定義されていないパケットについては、全て破棄するよう設定しているため、クライアントからDNSサーバーへの問い合わせが出来ないからです。

特定のIPアドレスのみに接続を許可する例

192.168.1.0/24 からサーバー管理者が、telnet 等でリモートでシステム制御を行う場合、特定のIPアドレスのみからしか接続要求を受け付けないようにするといった設定を例にすると、

X-VNCサーバーを192.168.1.42からのみに制限したい場合

# iptables -A FORWARD -s 192.168.1.42 -p tcp -m state --state NEW -m tcp --dport 11965 -j ACCEPT

とし、FORWARD チェーンに追加します。制限したいサービスが利用してる通信ポート番号を調べる場合は、開発元の技術資料、又は、検索エンジンで調べます。

お勧めのサイト

ケースに応じた iptables テンプレートを元に、ファイアーウォール構築を行う方法が紹介されています。

参照 => @IT ステートフルパケットフィルタを使ったサービスの公開

同じく、テンプレートを元に、natテーブルで行う IPルーター構築を行う方法が紹介されています。

参照 => @IT natテーブルを利用したLinuxルータの作成

取敢えずフィルタリングしておいた方がよい事

市販されている一般のルーターでも行われているフィルタリング設定ですが、RHEL4のガイドでも説明されています。ここで取り上げられている内容を説明します。

参照 => 以下の RHEL4ガイド が分かり易いかと思います。
Red Hat Enterprise Linux 4: セキュリティガイド ウィルスとなりすましIPアドレス

以下、上記サイトで紹介されている内容です。

なりすまし(スプーフィング)対策

eth0 から、つまりWAN側からは、eth1 からのプライベートアドレスによる接続はあり得ません。あるとしたら、なりすましによる不正アクセスです。このような場合、ここで行ったフィルターでは対 応出来ません。 この場合、eth0 から来る eth1 のセグメントIPアドレスからの接続を破棄することで対応する事ができます。

フィルターを追加

# iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP

設定を保存

# service iptables save

トロイ・ワームウイルス対策

こちらは、トロイの木馬による特定ポートの攻撃の破棄です。万が一、192.168.1.0/24 セグメントのクライアントが、ブラウザや、メール経由でウイルスに感染した場合、ウイルスが感染拡大に使うポートを破棄することで、感染拡大を防止する事が出来ます。

フィルターを追加

# iptables -A OUTPUT -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP
# iptables -A FORWARD -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP

設定を保存

# service iptables save

DoS攻撃による対策

あと、ここで行った(CentOS-4)デフォルトの設定で気になる点は、

/etc/sysconfig/iptables 11行目の
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

デフォルトのこの例では、 全てのICMPパケットタイプを受け付けるように設定されています。このため、大量のICMPパケット攻撃など DoS 攻撃を受ける可能性があります。

ファイアーウォールのタイプについて

ファイアーウォールとは、その名の通り防火壁のことで、侵入経路を遮断するための仕組みの総称です。侵入経路を遮断するには、幾つかの方法があります。こ こで構築したような ゲートウェイ サーバーに適用できる ネットワーク型ファイアーウォールは、大きく以下のタイプがあります。

パケット フィルタリング型  ( iptables / ipchains )

パケットに含まれる送信元・宛先IPアドレスにより、通信の許可、不許可を行うタイプで、ここで導入している iptables や ipchains もこのタイプになります。パケットレベルのフィルタリングを行うため、非常に柔軟で高度なファイアーウォールを構築できますが、ネットワークプロトコルな どの知識が要求される上、設定も難しく初心者には敷居が高いです。特に、送信元のIPアドレス偽装(スニッフィング)には注意が必要で、ネットワークに応 じて適切に設定を行う必要があります。

  • ルータ
    • ルータは、パケットフィルタリングが行えるネットワーク器機ですが、一般向けに市販されているルータは、行えるフィルタリング設定に限りがあります。全て遮断し、必要な場合に限り例外を設けます。ただし、内側からのパケットに対して制限を設けたい場合、例えば、特定ソフトの通信を遮断したいケースなど用意されている機能だけでは対応は難しくなります。
    • また、後述するファイアウォールソフトに比べ、バックドア系のウイルスに感染した場合、耐性が強いのはルータとなります。(現在発売されている市販ルータは、ブラウザ経由で行うようになりましたが、パスワード制限する、ブラウザにルータへのアクセスコードを記憶させない事で設定を変更される事を防げます)
  • ファイアウォールソフト
    • クライアント単位で、パケットフィルタリングを行うファイアウォールソフトを導入した場合、パソコン内部から出て行くパケットを木目細かにフィルタリングする事が出来ます。その分、常にパソコンに負荷がかかるデメリットがあります。
    • ウイルスの中には、アンチウイルスソフトを始めとするセキュリティソフトの無効化を試みるウイルスもあるため、アンチウイルスソフトの役割は重要です。

ルータで外部からの不正侵入、ワームウイルスに備えは、ルータ か ファイアウォールソフトの何れかが必要です。また、ノートパソコンなどの携帯端末を公衆無線LAN サービスなど出先のネットワークから利用する場合、ファイアウォールソフトで自分の身を守る必要があるため、ファイアウォールソフトが必須となるケースもあります。

予断になりますが、アンチウイルスソフトの中には、POP / SMTP プロトコルを監視しウイルスを除去するタイプや、内向けのファイアウォールを強化したファイアウォールソフトを統合する動きがあります。

また、内側から出て行くパケットに対してフィルタリングが木目細かに行えるといっても現在発売されているクライアント向けセキュリティソフトでは、 Winny や Share などの通信を規制、情報流出を止めることは出来ないので注意が必要です。

このようなP2P ファイル共有ソフト抑制機能など今後搭載される可能性も考えられるため、ファイアウォール、アンチウイルス、アンチスパイウェア、といったクライアント製品の垣根は今後なくなっていくのではないかと思います。

一般家庭用ルーターに実装されているのもこのパケットフィルタリングによるファイアーウォールです が、適用できるフィルタリングが少なく、サーバー公開用途には力不足です。

サーバー公開を前提としない、一般のインターネットユーザーの場合、 YahooBB のようなADSLモデムのみを配布で、モデムをPCに直結してインターネットを利用する場合は、ファイアーウォールソフトが必須になりますが、 ルーターを利用していた場合は、これらの製品は必須ではなくなります。

アプリケーション ゲートウェイ (代理サーバによる接続 Proxy)

ローカルホストからの接続は、proxyサーバーが行う事(接続代行)で、通信に使うポートを最小限にする事ができます。ユーザーは proxy のポートに接続するのが唯一の通信手段となるため、内部からの攻撃に対しても、外部からの内部への攻撃に対してもセキュリティを確保する事が出来ます。

パ ケットフィルタリング型のファイアーウォールほど柔軟性はありませんが、提供するサービスが限定できるのであれば非常に強力なファイアーウォールとなります。出来ないことは出来ないので。企業向けのファイアーウォール アプリケーションとしても様々な製品が販売されています。これらのアプリケーション ゲートウェイは、サーバーに高負荷がかかります。

アプリケーション型ゲートウェイ イメージ

「どちらのタイプを選ぶのか」 という話ではなく、これらを上手く組み合わせることで、それぞれのネットワーク事情に応じたファイアーウォールを構築する必要がある事に注意して下さい。

ファイアーウォールは万能ではない

初心者が良く誤解されていると思われる点について

インターネットが利用できる環境である以上、ブラウザやメールから感染するウイルスや、ブラウザのセキュリティーホールを突く攻撃に対しては、ファイアー ウォールは無力であり、あくまで WAN/LAN に関わらず、サーバー外部からの間口を閉じ、条件に応じてマッチしたものだけを通すのがファイアーウォールの目的となります。

サーバーアプリケーション毎の対策は勿論のこと、外部のウイルスプログラムと連携できるものもありますので、それぞれのサーバーアプリケーション側でも創意工夫が必要です。

また、外部、内部に限らずポートを開けてサービスを提供する以上、Apache や Sendmail などのサーバー プログラムのセキュリティホールを突く攻撃に対しては、何の効果もありません。アプリケーションごとのセキュリティ メンテナンスは重要です。自信の設定したポリシーを過信せずに、侵入の兆候を得るための監視システム、侵入された場合の対策など怠らないようにして下さ い。

まとめ

このように、ファイアーウォールといっても、iptables を理解し、コマンドを使いこなした上で、初めてファイアーウォールと呼べるシステムを構築する事が出来ます。非常に重要な機能ですので、是非使いこなしたいものです。

bottom_mark
ページ最上部
ページ最上部 前のページ