8割解けるCTF「WEST-SEC」

セキュリティ初心者の方でも楽しめるゲーム形式のセキュリティイベント

PaloAltoの設定

1.初期設定、設定の確認

(1)PaloAltoへの接続

①CLIでの接続
SSHで接続してください。
設定は以下にも記載があります。
https://pansetech.net/initial-config/
以下のように、ログイン後は > が表示されていると思います。

admin@PA-VM>

configure で設定モード(Configuration mode)に遷移できますが、pingやSSHをするだけであればその必要はありません。

ア)SSH接続
必要に応じて、PaloAltoからLANセグメントにあるサーバにSSH接続します。以下は、SSH接続先のサーバのIPアドレスが172.16.2.101で、その際のアカウントがpalo_srvの場合です。

admin@PA-VM>ssh host palo_srv@172.16.2.101

この後、パスワードが聞かれるので、正しい情報を入れるとSSH接続によるログインができます。

イ)ping
以下は、172.16.2.101にping接続した際の設定です。

admin@PA-VM> ping host 172.16.2.101
PING 172.16.2.101 (172.16.2.101) 56(84) bytes of data.
64 bytes from 172.16.2.101: icmp_seq=1 ttl=127 time=0.365 ms
64 bytes from 172.16.2.101: icmp_seq=2 ttl=127 time=0.326 ms

ウ)時刻設定
デフォルトだとタイムゾーンがずれているので、設定変更する。

admin@PA-VM> configure
admin@PA-VM# set deviceconfig system timezone Japan
admin@PA-VM# commit

時刻の確認

admin@PA-VM# exit
Exiting configuration mode
admin@PA-VM> show clock
Wed May 10 21:20:38 JST 2023

②GUIでの接続
MGTポートに対して、httpsで接続する。
https://(IPアドレス)

右下から言語を日本語に変更します。

(2)設定の反映

右上にあるcommitボタンを押して、設定を確定をする必要があります。

(3)設定の確認

・現在のファームウェアのバージョン確認
DEVICE>Software 左下のCheck Nowを押して情報を更新します。
CURRENTLY INSTALLEDにチェックが入っているのが現在のバージョンです。
https://pansetech.net/initial-config/#toc12

2.構成の簡単な説明

(1)今回の構成
項番 ポート(ゾーン) IPアドレス 補足
MGT 172.16.1.99/24 SSHやGUIで設定用に接続するポート
WAN 172.16.0.99/24 インターネットに接続
LAN 172.16.2.99/24 LANセグメントで、172.16.2.101のIPアドレスを持つ端末(サーバ)がある。

LANセグメントの端末に接続するには、Paloのポリシーで外部からのMIPの設定をするか、PaloにSSHで接続し、Paloを踏み台としてSSHでこの端末に接続する。

(2)ゾーンの確認

ゾーンは、インターフェースをグループ化するものと考えればいいでしょう。
一般的にはUntrust(=WAN)とTrust(=LAN)のゾーンに分けるでしょう。+DMZなどのいくつかのゾーンが想定されます。
https://pansetech.net/network-config/
ポリシーの設定にもよりますが、一般的には同じゾーン内ではポリシーを許可し、異なるゾーンの場合にポリシー制御をします。
設定は、NETWORK > Zone から行います。タイプは「レイヤ3」が一般的でしょう。

(3)インターフェースの確認

NETWORK > Interfaces から設定および確認をする
ethernet1/1がWANに、ethernet1/2がLANに割り当てられていることが確認できると思います。AWSの場合、固定ではなくDHCPでIPアドレスが割り当てられるので、「IP ADDRESS」の欄は「Dynamic-DHCP Client」です。
設定方法は以下を参照。
https://pansetech.net/network-config/#toc2

(4)ルーティングの確認

NETWORK > 仮想ルータ から設定および確認をする
仮想とあるが、通常のルーティングを設定すると考えればいい。VRFみたいに複数のルーティングテーブルを管理できるという意味で、仮想とついてる。
https://pansetech.net/network-config/#toc3

3.NATの設定

(1)NAPTの設定

インターネットに出るには、プライベートIPアドレスとグローバルIPアドレスのNAPTが必要である。
POLICIES > NAT から設定および確認をする
NATの設定は以下を参照
https://pansetech.net/network-config/#toc4

AWSで設定したときは、「元パケット」のDestinatin Interfaceは「ehternet1/1(つまりWAN)」を指定したが、「any」のままでいい。
変換済パケットで、IPアドレスは「none」のまま。これはAWSの場合は自動でIPが割り当てられるため。

このNAT設定は、ポリシーごとに設定する必要はない。

(2)公開サーバの設定

https://pansetech.net/1to1nat/

4.ポリシー設定

POLICIES > Security から設定および確認をする。

(1)デフォルトポリシー

デフォルトでは、以下のポリシーが設定されている。消すことはできない。

NAME ACTION 説明
intrazone-default Allow 同じゾーン内の通信を許可する。IFが違っても、同じゾーンに設定すれば許可される。
interzone-default Deny 異なるゾーン間の通信を拒否する

以下にも記載されています。
https://pansetech.net/zone-type/#toc2

(2)内部LANのPC(サーバ)からインターネット接続のポリシーを作る

ポート番号80番で指定するなど、いくつかのやり方がある。
お勧めの方法は、アプリケーションをanyにしてサービスをservice-httpと service-httpsにすること。
ポリシー設定は、以下。
https://hirotanoblog.com/paloalto-basic-config/3980/#toc7
アクションで、AllowやDenyの設定とともに、ログの設定ができる。
ログに関しては別途。

通信テストとしては、LANのPC(172.16.2.101)から、たとえば、以下を実行する。

#curl コマンドを使い、-IオプションでHeadだけを取得する。
curl -I https://west-sec.com
(3)内部LANのPC(サーバ)から外部へのping

アプリケーションをping にして、service をapplication-defaultにする。

(4)内部LANのPC(サーバ)から外部へのDNS

アプリケーションをdnsにしてサービスをapplication-defaultにする。

通信テストとしては、たとえば、以下

#digコマンドを使い、応答があるかをテストする。
$ dig www.yahoo.co.jp

; <<>> DiG 9.16.38-RH <<>> www.yahoo.co.jp
;; global options: +cmd
;; Got answer:

5.セキュリティ設定

以下に詳しい説明があります。

https://pansetech.net/content-id/#toc2

(1)AntiVirusやURLフィルタリングの設定

たとえばAntiVirusやURLフィルタリングを設定する。
①ポリシー一覧から
その方法は、ポリシーにおいて、Profileから設定する。
Profilesのポップアップが出るので、AntivirusのプロファイルやURL Filteringのプロファイルを選択する。
とりあえず、defalutでもいいと思います。

②ポリシーの詳細から
ActionsのProfile Settingからプロファイルを選択します。

③通信テスト
たとえば、以下のように、eicarファイルを取得する。

curl -O http://ctf.liblo.jp/eicar_com.zip
(2)ログの確認

MONITOR > Logs > Threatに検知したログが表示される。

(3)プロファイルの確認と作成

OBJECTS > Security Profiles > Antivirus で、defaultの設定が確認できる。
新規にプロファイルを作成することも可能。

6.ログの取得と確認

(1)ログ取得の設定

ポリシーで設定する。デフォルトでは、Log at Session Endのログを取る。これだとセッションテーブルが消えるまで表示されるまで、ログがあがってこない。
そこで、LogSettingでLog at Session Startにすると、開始時に見える。だが、開始時だけなので、取得できるログが少ない。
リアルタイムで見るには、MONITOR>Sesssion Browser みることができる。

(2)通信ログの確認

MONITOR > Logs > Traffic

(3)セキュリティログの確認

MONITOR > Logs > Threat