先日、Ciscoのファイアウォール(Cisco ASA 5510)を設定する機会に恵まれ、初めてIOSを触りました。
Cisco IOS(Cisco Internetwork Operating System)はシスコシステムズのほとんどのルータと現行の全てのスイッチで使用されているとのこと。ネットワークの知識はあまり持ち合わせてはいませんでしたが、世界トップシェアのOSとハードウェア機器に一度触れてみたかったので丁度良い機会でした

今回は第1回目、入門編ということで以下に纏めています。

ファイアウォール設定手順

ファイアウォール設定例を下記に記載します。

①ファイアウォールの各ポートにIPを設定する

(Trust)  Port0 : 192.168.100.0/24 : 192.168.100.1
(UnTrust) Port1 : 192.168.200.0/24 : 192.168.200.1

※ここで設定したファイアウォール側のIPアドレスがクライアントPCおよびサーバーのデフォルトゲートウェイ(Default Gateway)になります。
※クライアントPCのネットワーク設定でDefaultGateway IP : 192.168.100.1
※サーバーのネットワーク設定でDefaultGateway IP : 192.168.200.1

②アクセスコントロールリスト(ACL)を設定する

Trust 192.168.100.10 ⇒ 192.168.200.10 permit(許可) icmp,tcp,ip等(サービス)
UnTrust 192.168.200.10 ⇒ 192.168.100.10 permit(許可) icmp,tcp,ip等(サービス)

以上で設定は完了です。
双方向で192.168.100.10 ⇔ 192.168.200.10 のPingやWeb,IP接続を通す設定となります。
icmpはPingを許可するためのプロトコルです。

上記設定以外に、共通でGrobal設定としてIPをany,any接続できないようにImplicit Ruleが定義されています。
そのため、上記で設定した個別のIP以外はネットワークの通過が容易にできないようにACCESS-LISTでImplicit Ruleと表示、出力され通信がDROPされます。

既存ネットワーク環境に応じてファイアウォールのモードを変更する

※異なるネットワークセグメントの場合は上記の手順になります。
ファイアウォールの各ポートに同一セグメントは割り振れないため。

※同一ネットワークにFWを組み込む場合は透過型ファイアウォール設定を行います。
透過型ファイアウォールの設定は製品によって異なる。

Ciscoでは異なるネットワーク間のファイアウォール設定をル―テッドファイアウォールモード 同一ネットワーク間でのファイアウォール設定を透過ファイアウォール モードと呼ばれています。

透過ファイアウォールモードは既存ネットワークに適用する場合に有効です。

注意事項

ファイアウォールにはNAT機能やルーティング機能を兼ね備えたものが多いですが、単純なファイアウォールを構築する場合は、まずは全ての通信を遮断することを考えてください。

そこから必要な端末の必要な通信(IP等のプロトコル)を許可すること(Permit)を考えます。
異なるセグメント間の通信は、アクセスコントロールリスト(アクセスルール)に設定した接続元から接続先への接続許可(Permit)でルーティングされていることになります。

用語補足

IP
Internet Protocol(インターネット プロトコル)。IP プロトコルは、相互接続されたネットワークの任意のセット間の通信に使用でき、LAN 通信にも WAN 通信にも同様に適していることから、最も広く使用されている公開プロトコルです。

ICMP
Internet Control Message Protocol(インターネット制御メッセージ プロトコル)。ネットワーク レイヤのインターネット プロトコルであり、エラーを報告し、IP パケット処理に関するその他の情報を提供します。

ACL
Access Control List(アクセス コントロール リスト)。ACE の集合。ACL を使用して、インターフェイス上で許可するトラフィックのタイプを指定することができます。デフォルトでは、明示的に許可されていないトラフィックは拒否されます。ACL は、通常、着信トラフィックの送信元であるインターフェイスに対して適用されます。

AAAって何?

ファイアウォールの設定で「AAA」サーバーみたいな記述があって、誰かが適当に入れたサーバー名かと思っていたのですが、どうやら違うようで・・・
Authentication, Authorization, and Accounting(認証、認可、アカウンティング)というものらしいです。

まとめ

ファイアーウォールやネットワークはアプリケーションやデータベースのエンジニアから見るととても難しく見るのですが、触ってみると意外と簡単で面白いと感じました。
無知とは怖いですね。知らない世界は怖いものですが踏み込んでチャレンジすれば道は開けると思います。知らない間に逃げていた気もします。

少し触っただけでネットワークの知識の断片がいろいろつながった感がありますので、あらためて、ネットワーク全般的に知識を強化しないといけないと痛感しました

次回はGUI側の説明も公開する予定です。Ciscoファイアウォールのログの出力設定方法や、ネットワーク接続が上手くつながらない場合などのデバッグ方法などを纏めてみたいと思います。