【随時更新】Palo Alto コマンド【確認＆設定編】

Palo altoを業務利用する中で
よく使うコマンドを備忘録として残します

## 基本編

### 出力フォーマットの変更

```
> set cli config-output-format set
```

出力をsetフォーマットに変更します
他にもxmlフォーマット等も使えます

------

### コンフィギュレーションモードに移行

```
> configure
```

コンフィギュレーションモードじゃないと
見ることができない設定もあります

------

### ログアウト

```
> exit
```

モードの移行にも使います

------

### ページ送りを無効

```
> set cli pager off
```

show等の長い結果を見る際に
-- more --が出てこなくなります

------

### ヘルプ

```
> ?
```

とても便利なので多用しましょう
頭文字しかわからないコマンドも
わかる範囲で入力すれば一致したコマンドを
一覧表示してくれます
スペルチェックにも使える最強コマンドです

------

### 設定の保存

```
> commit
```

candidate config(編集中)の内容を
running config(稼働中)へ反映させます

## 設定確認編

### 他のログインユーザーの確認

```
> show admins
```

現在ログインしているユーザーの
IPアドレス、セッション開始時間などを
確認できます

------

### 主系、副系の確認

```
> show high-availabilty state
```

主系はactive、副系はpassive
running configが反映されているか
確認したいときには最終行をみます

------

### バージョンの確認

```
> show system info
```

バージョンの他に、ホスト名や
シリアル番号等も確認できます

------

### システムログの確認

```
> show log system start-time equal yyyy/mm/dd@hh:mm:ss
```

システムログが表示されます
想定外のエラーがないか確認に使います

※オペレーショナルモードでの利用はできません

------

### running configの確認

```
> show
```

現在稼働中のコンフィグの確認に使います

------

### 出力結果から検索対象を含む行を抽出

```
> コマンド | match "検索対象"
```

Linuxでいうgrepと同意です

------

### 出力結果から検索対象を含まない行を抽出

```
> コマンド | except "検索対象"
```

Linuxでいうgrep -vと同意です

------

### ルーティングテーブルの確認

```
> show routing route
```

登録されているルーティングテーブルの
確認に使います

------

### ゾーンの確認

```
show zone
```

インターフェースごとのゾーンを確認できます

------

### ネットワークオブジェクトの確認

```
> show address
```

登録されている
ネットワークオブジェクトの一覧を表示します
そのまま名前の指定もできます

------

### サービスオブジェクトの確認

```
> show service
```

登録されている
サービスオブジェクトの一覧を表示します
そのまま名前の指定もできます

------

### ネットワークオブジェクトグループの確認

```
> show address-group
```

登録されている
ネットワークオブジェクトグループの一覧を
表示します
そのまま名前での指定もできます

------

### サービスオブジェクトグループの確認

```
> show service-group
```

登録されている
サービスオブジェクトグループの一覧を
表示します
そのまま名前での指定もできます

### アクセスリストの確認

```
> show rulebase security rules
```

登録されているアクセスリストの
一覧を表示します
そのまま名前での指定もできます

## 設定投入編

### ネットワークオブジェクトの作成

```
> set address 10.0.0.1-32bit(オブジェクト名) ip-netmask 10.0.0.1/32
```

ネットワークオブジェクトの作成ができます
サブネットはプレフィックス長で記述します

------

### サービスオブジェクトの作成

```
> set service http(オブジェクト名) protocol tcp port 80
```

サービスオブジェクトの作成ができます

------

### ネットワークオブジェクトグループの作成

```
> set address-group nw_group(グループ名) static [ 10.0.0.1-32bit 10.0.100.1-32bit ]
```

ネットワークオブジェクトグループの
作成ができます

------

### サービスオブジェクトグループの作成

```
> set service-group service_group(グループ名) members [ http https ]
```

サービスオブジェクトグループの
作成ができます

------

### アクセスリストの作成

#### ケース１

Outsideへのicmpの許可設定
(10.0.0.1~10.0.1.1へ)

```
> set rulebase security rules "Rule名" from Outside
  set rulebase security rules "Rule名" to Inside
  set rulebase security rules "Rule名" source 10.0.0.1-32bit
  set rulebase security rules "Rule名" destination 10.0.1.1-32bit
  set rulebase security rules "Rule名" source-user any
  set rulebase security rules "Rule名" application [ icmp ping traceroute ]
  set rulebase security rules "Rule名" service application-default
  set rulebase security rules "Rule名" hip-profiles any
  set rulebase security rules "Rule名" category any
  set rulebase security rules "Rule名" action allow
  set rulebase security rules "Rule名" log-end yes
  set rulebase security rules "Rule名" profile-setting profiles
  set rulebase security rules "Rule名" log-setting ログの転送先
```

#### ケース２

Insideへの[ftp](http://d.hatena.ne.jp/keyword/ftp)許可設定
(10.0.0.1~ネットワークグループnw_groupへ)

```
> set rulebase security rules "Rule名" from Inside
  set rulebase security rules "Rule名" to Outside
  set rulebase security rules "Rule名" source 10.0.0.1-32bit
  set rulebase security rules "Rule名" destination nw_group
  set rulebase security rules "Rule名" source-user any
  set rulebase security rules "Rule名" application any
  set rulebase security rules "Rule名" service [ tcp-20 tcp-21 ]
  set rulebase security rules "Rule名" hip-profiles any
  set rulebase security rules "Rule名" category any
  set rulebase security rules "Rule名" action allow
  set rulebase security rules "Rule名" log-end yes
  set rulebase security rules "Rule名" profile-setting profiles
  set rulebase security rules "Rule名" log-setting ログの転送先
```

#### ケース３

Insideへのネットワークオブジェクトグループservice_groupの不許可設定
(10.0.0.1~anyへ)

```
> set rulebase security rules "Rule名" from Inside
  set rulebase security rules "Rule名" to Outside
  set rulebase security rules "Rule名" source 10.0.0.1-32bit
  set rulebase security rules "Rule名" destination any
  set rulebase security rules "Rule名" source-user any
  set rulebase security rules "Rule名" application any
  set rulebase security rules "Rule名" service service_group
  set rulebase security rules "Rule名" hip-profiles any
  set rulebase security rules "Rule名" category any
  set rulebase security rules "Rule名" action allow
  set rulebase security rules "Rule名" log-end yes
  set rulebase security rules "Rule名" profile-setting profiles
  set rulebase security rules "Rule名" log-setting ログの転送先
```

上記のようにアクセスリストの
作成ができます

**from、to**→インターフェースを指定
**source、destination**→アドレスを指定
**application**→icmpは要指定
**service**→ポート指定
**他の項**→デフォルト設定

------

### アクセスリストの移動

```
move rulebase security rules "動かすRule名" before "動かし基準Rule名"
```

アクセスリストの移動に使います
before、afterで動かし基準となるルールの
前か後ろか指定できます

## 疎通確認編

### 通信相手の応答有無の確認

```
> ping source 送信元IP host 宛先IP
```

リーチアビリティが取れているか
確認したいときに使います

------

### 通信経路上のルータを確認

```
> traceroute source 送信元IP host 宛先IP
```

どのルータを経由するか確認できます

------

### 通信内容の確認

#### ケース１

Inside側(10.0.0.1)からOutside側(10.0.100.1)への
httpの通信内容を確認

```
> test security-policy-match from Inside to Outside source 10.0.0.1 destination 10.0.100.1 protocol 6 destination-port 80
```

#### ケース２

Inside側(10.0.0.1)からOutside側(10.0.100.1)への
icmpの通信内容を確認

```
> test security-policy-match form Inside to Outside source 10.0.0.1 destination 10.0.100.1 protocol 1
```

action欄で通信の可否を確認できます
アクセスリスト同様、各項目に
調べたい値を入力してください

プロトコルは
1がicmp、6がtcp、17がudpを表します

※オペレーショナルモードでの利用はできません

## おわりに

以上がPalo altoでよく使うコマンドでした

また使うものが増えてきたら
随時更新していきます