■CiscoASAについて
CiscoASAはIOSとは別物のOSが稼働しているのですが、IOSとニアな操作感です。また、シスコのルータ・スイッチと比べて当然ながらアーキテクチャが全く異なりますので要件次第でルータではなくASAを選択することは実業務の中でも多々あります。
最近では次世代ファイアウォールという呼び名でアプリケーションの可視化なんかが出来る製品も売られております。ASAはファイアウォールではなくセキュリティUTMという位置づけですが、基本的にはポートを弾くための専用装置と捉えています。ただ、モジュールを付け足すことでアンチウィルスやIPSなどにも対応させることは可能です。
結局、どのテクノロジーを使うのか、要件次第でASAを選択することになるのですが以下ではどのテクノロジーを使うにしても共通の設定事項となりますのでご参考にしていただければと思います。
■CiscoASAのアクセスモード
■ユーザEXECモード | 設定の参照が出来るモード |
■特権EXECモード | 参照だけでなく各種設定が出来るモード |
■グローバルコンフィグモード | ルータ全体の設定をするためのモード |
■その他のコンフィグモード | 特定の設定をするためのモード |
ciscoasa> | ユーザEXECモードをあらわすプロンプト |
ciscoasa> enable | 特権EXECモードへの移行 |
Password: | パスワードの入力 |
ciscoasa# | 特権EXECモードをあらわすプロンプト |
ciscoasa# configure terminal | グローバルコンフィグモードへの移行 |
ciscoasa(config)# | グローバルコンフィグモードをあらわすプロンプト |
ciscoasa(config)# exit | 特権EXECモードへの移行 |
ciscoasa#disable | ユーザEXECモードへの移行 |
上記に関してはIOSとほぼ同じですね。
■基本コマンド
ciscoasa# write erase | 起動時設定ファイルの削除(初期化) |
ciscoasa# reload | 再起動 |
ciscoasa# copy run start | 設定保存 |
ciscoasa# write memory | 同上 |
ciscoasa# show running-config | アクティブな設定情報を表示 |
ciscoasa# show startup-config | 起動時設定情報を表示 |
ciscoasa# show route | ルーティングテーブルの表示 |
これもIOSとほぼ同じですね。
■hostnameの設定
(config)# hostname hoge |
■IPアドレスの設定
(config)# interface Ethernet0/0 (config-if)# ip address 192.168.1.1 255.255.255.0 (config-if)# nameif inside (config-if)# security-level 100 (config-if)# duplex full (config-if)# speed 100 (config-if)# no shutdown |
ASA独自なのはnameifとsecurity-levelの部分です。nameifはインターフェイスに名前を付けるコマンドです。ASAでは一般的に外部のインターフェイスにoutside、内部にinside、DMZをdmzにするのが一般的です。
security-levelについては数値を指定しますが、値が高いほどセキュリティレベルが高いという意味になります。insideは内部なので当然レベルは高くnameifにinsideを設定した時点でsecurity-levelは100に自動設定されてます。逆にoutsideは外部なのでレベルは低いということでoutsideを設定した時点でsecurity-levelは0に自動設定されます。DMZは一般的にsecurity-levelは50と設定しますが、0から100の間であれば任意の値でOKです。
ASAではセキュリティレベルが高いほうから低い方にはセキュリティルールを必要としません。何も設定されていなければ全て許可となります。逆にセキュリティレベルが低い方から高い方には必ずセキュリティルールを必要とします。(デフォルトで全て拒否になります)
■リモートアクセスの設定
リモートアクセスプロトコルでHTTP (ASDM )およびSSHを有効にします。ASAには専用のマネージメントインターフェイスが装備されておりますが、実通信を行うインターフェイスに対しても問題なくアクセスできます。
○ SSHのアクセス許可
(config)# enable password xxyyzz (config)# username xx password zz (config)# aaa authentication ssh console LOCAL (config)# crypto key generate rsa modulus 1024 INFO: The name for the keys will be: <Default-RSA-Key> Keypair generation process begin. Please wait... (config)# ssh xx.yy.xx.yy 255.255.255.0 outside |
上記でSSHが有効となります。最初にenable passを設定しています。次の2行でASA内部に登録しているユーザで認証するよう設定しています。次にSSHにはキー(鍵)が必要となりますのでそれを作成し、特定のセグメントからoutsideに対してアクセス許可をしています。
私個人的にはASAをCLI操作する場合はTelnetではなくSSHを利用しています。セキュリティ上、SSHのほうが好ましいという理由もありますがTelnetアクセスの場合、ASAではoutsideに対してアクセスできない仕様となっているというのも理由としてあげられます。
○ HTTPのアクセス許可
(config)# username xx password zz (config)# aaa authentication http console LOCAL (config)# http server enable (config)# http xx.yy.xx.yy 255.255.255.0 outside |
最初の2行はSSHと共通です。残りの2行がhttp独自のコマンドです。ASAにはASDMという管理ツールが無償で提供されており、GUIで管理することが可能です。CLIで全て設定できるといえど、ASDMがあればGUIで簡単に操作できるという点から必須といってもいいぐらいのツールです。
■スタティックルートの追加
(config)# route inside 192.168.1.0 255.255.255.0 10.0.0.1 (config)# route inside 192.168.2.0 255.255.255.0 10.0.0.1 (config)# route inside 192.168.3.0 255.255.255.0 10.0.0.1 (config)# route inside 192.168.4.0 255.255.255.0 10.0.0.1 (config)# route inside 192.168.5.0 255.255.255.0 10.0.0.1 (config)# route outside 0.0.0.0 0.0.0.0 10.0.0.1 |
若干IOSと違いますね。発信インターフェイスを指定する必要があり、これを間違ってると正常にルーティングできませんのでご注意を。
■時刻設定
(config)# clock timezone JST 9 (config)# ntp server xx.yy.xx.yy |
■Syslog設定
(config)# logging enable (config)# logging timestamp (config)# logging buffered warnings (config)# logging asdm warnings (config)# logging host inside xx.yy.xx.yy (config)# logging trap warnings |
上記は一例です。Firewallのログはセキュリティルールのログが大量に吐かれますのでリモートのサーバに保存しておき何かあったときのみ調査することが多いです。
■SNMP設定
(config)# snmp-server host inside xx.yy.xx.yy community public (config)# snmp-server enable traps snmp authentication linkup linkdown coldstart |
シスコルータと比較して設定は短くなります。最初の1行でポーリングとトラップを許可するホストを指定し、なおかつコミュニティ名も指定しています。2行目は有効にするトラップでデフォルトで上記のようになっています。他にはipsec関連やsyslog関連などがありますが全てといって言いほど上記のみを設定しています。