ふらふらエンジニアのメモ帳

セキュリティおべんきょちゅ( ˘ω˘ )スヤァ…

AnsibleでCheck Pointを操作する(2.9.0版) ①セットアップ編

前回の記事で、Ansible2.8.0を使ってCheck Pointのポリシー設定変更を行いました。

AnsibleでCheck Pointを操作する

f:id:tsukino_netwkr:20190729232317p:plain

2019年10月末にリリースされたAnsible2.9.0では、これまでの9つのモジュール(checkpoint_xxx)に加え、90のモジュール(cp_xxx)が追加され、合計で99のモジュールが揃いました。
本記事では、新しいモジュールを使ってみる前に、環境のセットアップ手順を備忘録としてメモしておきます。

用意した環境

今回はAWS上ではなく、Windows10のVMware Workstation上にSecurity Gateway(ファイアウォール)とSecurity Management(管理サーバ)を兼ねたVM1を立てました(下図)。
合わせて、Workstation上にAnsible用のVM2とUser PC用のVM3を準備しました。VM3はポリシーテスト用に作ったVMで、なくてもAnsibleを使った操作確認は可能です。

f:id:tsukino_netwkr:20191110135021p:plain
テスト環境構成
OSイメージは、Check Pointサイトからダウンロードできる無償評価版(R80.10)を利用しました。トライアル期間は1ヶ月です。 supportcenter.checkpoint.com

セットアップ手順

手順1. 仮想マシンの作成

  1. VMware Workstationの新規仮想マシン作成ウィザードを開きます。イメージファイルは、ダウンロードしたisoファイル「Check_Point_R80.10_T462_Gaia.iso」を指定します。
  2. ゲストOSの選択で、ゲストOSを「その他」、バージョンを「その他」に指定。
  3. 任意の仮想マシン名を指定。今回は「Check_Point_test」としています。
  4. ディスク容量を100GBに指定。(テスト用なので、もっと少なくて良いかも知れません。)
  5. ハードウェアをカスタマイズをクリックし、プロセッサのコア数を2、メモリを6GBにカスタマイズ。Release Notes R80.10を見ると、推奨リソースは以下の通りのようです。 f:id:tsukino_netwkr:20191110005555p:plain
  6. ネットワークアダプタをブリッジ接続に変更。さらにネットワークアダプタ2を追加し、LANセグメントを指定。
  7. 設定が終わったら、完了をクリック。
    f:id:tsukino_netwkr:20191110111546p:plain
    仮想マシン設定画面

※AnsibleやUser PCの仮想マシン作成手順は割愛します。

手順2. Check Pointのインストール

  1. VMware Workstationで、手順1で作成した仮想マシンを再生します。
  2. インストール開始画面が出てきたら、「Install Gaia on a system listed in sk77660」を選択。
    f:id:tsukino_netwkr:20191110022750p:plain
    インストール開始画面
  3. 続く画面でインストールを開始して問題ないか聞かれるので、OKをクリックします。
    f:id:tsukino_netwkr:20191110025735p:plain
    インストール開始画面2
  4. キーボード設定をJapaneseに指定。
    f:id:tsukino_netwkr:20191110025843p:plain
    キーボード選択画面
  5. パーティション設定は、今回はSystem-rootを22GB、Logsを20GBに設定しました。
    f:id:tsukino_netwkr:20191110030008p:plain
    パーティション設定画面
  6. adminアカウントのパスワードを設定します。
    f:id:tsukino_netwkr:20191110030108p:plain
    アカウント設定画面
  7. マネジメントポートを、eth0(外部セグメント)に指定します。
    f:id:tsukino_netwkr:20191110030220p:plain
    マネジメントポート設定画面
  8. マネジメントポートのIPアドレスを指定します。今回は固定IPにしました。
    f:id:tsukino_netwkr:20191110030347p:plain
    マネジメントインターフェース(eth0)設定
  9. 最後に、インストールして問題ないか聞かれるので、OKをクリックします。
    f:id:tsukino_netwkr:20191110030506p:plain
    確認画面
  10. インストール完了後、リブートを行います。
    f:id:tsukino_netwkr:20191110030829p:plain
    インストール完了画面
  11. リブート後、ログイン画面が出てきたら、インストール成功です。
    f:id:tsukino_netwkr:20191110031115p:plain
    初期ログイン画面

手順3. Gaiaポータルの初回設定

  1. Gaiaポータル(https://[マネジメントIPアドレス])にログインします。※自分の環境では、ChromeFireFoxの場合ログイン後に何も表示されなくなったため、Edgeを使いました。
    f:id:tsukino_netwkr:20191110031319p:plain
    Gaiaログイン画面
  2. Nextを選択。
    f:id:tsukino_netwkr:20191110031452p:plain
    Gaia初回設定開始画面
  3. そのままNextを選択。
    f:id:tsukino_netwkr:20191110031837p:plain
    デプロイメントオプション画面
  4. 指定したIPアドレスがセットされている事を確認し、そのままNextを選択。
    f:id:tsukino_netwkr:20191110032009p:plain
    マネジメント接続
  5. eth1のIPアドレスを設定します。
    f:id:tsukino_netwkr:20191110032150p:plain
    インターフェース設定画面
  6. DNSサーバを設定します。必要に応じて、プロキシサーバも設定します。
    f:id:tsukino_netwkr:20191110032316p:plain
    DNS/プロキシ設定画面
  7. 日本時間になっている事を確認し、Nextを選択。
    f:id:tsukino_netwkr:20191110032421p:plain
    日時設定画面
  8. Security Gateway and/or Security Managementを選択。
    f:id:tsukino_netwkr:20191110032521p:plain
    インストールタイプ設定画面
  9. Security GatewayとSecurity Management両方にチェックが入っている事を確認し、Nextを選択。
  10. Security Managementの管理パスワードを設定します。今回は、手順2で設定したadminパスワードを使います。
    f:id:tsukino_netwkr:20191110032742p:plain
    Security Management 管理パスワード設定画面
  11. Security ManagementへログインできるGUIクライアントを設定します。今回はテスト環境なので、すべてのIPアドレスにしました。
    f:id:tsukino_netwkr:20191110033001p:plain
    Security Management GUIクライアント設定画面
  12. 最後にFinishボタンを選択します。
    f:id:tsukino_netwkr:20191110033140p:plain
    初回設定ウィザードサマリ画面
  13. 設定とリブートが完了するまで待ちます。
    f:id:tsukino_netwkr:20191110033733p:plain
    設定中の画面
  14. リブート後、adminアカウントで再ログインします。Security GatewayがPlatform: VMwareにインストールされた事が確認できます。
    f:id:tsukino_netwkr:20191110033847p:plain
    初回設定後のログイン後画面

手順4. Smart Consoleのインストール、Security Managementへのアクセス

  1. 先ほどの画面の上にある「Management Software Blades using SmartConsole ↓ Download Now!」をクリックします。
  2. ダウンロードしたSmart Consoleのexeファイルをインストールします。
  3. インストール後、アイコンをクリックし、adminアカウントでSecurity Managementにアクセスします。
    f:id:tsukino_netwkr:20191110035213p:plain
    Smart Consoleログイン画面

手順5. Security Gatewayのポリシー設定変更

初期状態では、Firewallポリシーがデフォルトで拒否となっています。そのため、冒頭のテスト環境構成で記載した通信の内、①の自身から外部向けの通信は可能ですが、②③のCheck Point向けや④のCheck Pointを通過する通信はできません。
以降で②③の通信許可設定を行います。

  1. ホストグループの作成
    • Smart Console画面右のObjects Barから、New→Hostをクリックします。
    • 以下の通り、オブジェクト名を「Ansible」とし、AnsibleのIPアドレスを指定します。
      f:id:tsukino_netwkr:20191110113907p:plain
      ホストグループの作成
    • 加えて、ホストOS(Windows10)からもSSH/HTTPSアクセスできるよう、オブジェクト名「Console_PC」を作成しておきます。
  2. ポリシーの作成
    • 画面上のAdd rule aboveをクリックし、以下のNo.1,2の通り設定を行います。(No.3はデフォルトの拒否設定です。)
      f:id:tsukino_netwkr:20191110120050p:plain
      ポリシー設定画面
  3. セッションの公開
    • 画面一番上のPublishをクリックし、他のユーザが編集内容を閲覧できる状態にします。
      f:id:tsukino_netwkr:20191110114858p:plain
      セッション公開画面
  4. ポリシーのインストール
    • 画面一番上のInstall Policyをクリックし、上記の設定を確定します。(公開とインストールを同時に行うことも可能です。)
      f:id:tsukino_netwkr:20191110115103p:plain
      ポリシーインストール画面

手順6. Security ManagementへのHotfix適用

Ansible2.9.0でリリースされたCheck Pointモジュールを使うには、以下のHotfixの適用が必要なため、インストール作業を行います。

supportcenter.checkpoint.com

  1. Gaiaポータル(https://[マネジメントIPアドレス])にログインし、Software Updatesの右側のリンクをクリックします。
  2. [重要!] AnsibleのHotfix適用前に、これまでのHotfixをまとめたパッケージ「R80.10 Jumbo Hotfix Accumulator GA (Take 225)」をインストールしないと、後続の手順でAPIの有効化に失敗してしまいます。「Install Update」をクリックし、必ず先にインストールしておきます。
    f:id:tsukino_netwkr:20191110122512p:plain
    推奨パッケージ一覧画面
  3. 自動でダウンロード、インストール、リブートが行われますので、完了まで待ちます。
  4. 再度ログインし、先ほどのパッケージ一覧画面右の「Add Hotfixes from the Cloud」をクリックし、検索バーに「Check Point R80.10 JHF T245 Ansible Hotfix for sk114661」と入力して検索を行います。
    f:id:tsukino_netwkr:20191110120839p:plain
    Hotfix追加画面
  5. 出てきた候補をクリックし、パッケージが追加された後、「Install Update」をクリックします。
  6. リブート完了まで待ちます。

手順7. API設定

AnsibleからAPIを叩けるよう、Check PointにSSHログインの上、Expertモードで設定を行います。

1.Expertパスワードを設定の上、Expertモードに移行します。

gw-2fd599> lock database override
gw-2fd599> set expert-password
Enter new expert password:
Enter new expert password (again):
gw-2fd599> expert
Enter expert password:


Warning! All configurations should be done through clish
You are in expert mode now.

[Expert@gw-2fd599:0]#

2.APIサービスはデフォルトで停止しているため、コマンド「api start」で開始します。

[Expert@gw-2fd599:0]# api start
2019-Nov-10 12:22:02 - Starting API...
. . . . . . .
2019-Nov-10 12:22:38 - API started successfully.

3.コマンド「mgmt_cli ~」ですべてのIPアドレスからのAPIコール許可設定を行います。

[Expert@gw-2fd599:0]# mgmt_cli -r true set api-settings accepted-api-calls-from "All IP addresses" --domain 'System Data'


---------------------------------------------
Time: [13:16:58] 10/11/2019
---------------------------------------------
"Publish operation"  in progress  (60%)


---------------------------------------------
Time: [13:17:08] 10/11/2019
---------------------------------------------
"Publish operation"  succeeded  (100%)

4.コマンド「api restart」でAPIサービス再起動します。

[Expert@gw-2fd599:0]# api restart
2019-Nov-10 13:17:14 - Stopping API...
2019-Nov-10 13:17:16 - API stopped successfully.
2019-Nov-10 13:17:16 - Starting API...
. . . . . . . . . . . . . .
2019-Nov-10 13:18:35 - API started successfully.

5.コマンド「api status」で、APIプロセスがStartedとなり、「API readiness test SUCCESSFUL.」と表示されれば成功です。

[Expert@gw-2fd599:0]# api status

API Settings:
---------------------
Accessibility:                      Require all granted
Automatic Start:                    Disabled

Processes:

Name      State     PID       More Information
-------------------------------------------------
API       Started   3302
CPM       Started   5741      Check Point Security Management Server is running and ready
FWM       Started   5525
APACHE    Started   4876

Port Details:
-------------------
JETTY Internal Port:      50277
APACHE Gaia Port:         443
                          Apache port retrieved from: httpd-ssl.conf


--------------------------------------------
Overall API Status: Started
--------------------------------------------

API readiness test SUCCESSFUL. The server is up and ready to receive connections

Notes:
------------
To collect troubleshooting data, please run 'api status -s <comment>'

最後に

ここまでで、AnsibleからCheck Pointを操作するための事前準備ができました。次の記事で、実際に操作を行ってみたいと思います。