ScreenOS コマンド

## Junos OS / ScreenOS の CLI 比較

* [Juniper SRX 日本語マニュアル](https://www.juniper.net/assets/jp/jp/local/pdf/additional-resources/screenos-to-junos-mapping.pdf)

----

* [はじめてのSSG5 - fsssg5-jp.pdf](https://www.juniper.net/jp/jp/local/pdf/others/fsssg5-jp.pdf)

## 参考

* [Juniper SSG - ScreenOS 設定コマンド](http://www.infraeye.com/study/studyz1.html)とても情報量が多い日本語ページ
* [Address Translation - 630_ce_AddressTranslation.pdf](http://www.juniper.net/techpubs/software/screenos/screenos6.3.0/630_ce_AddressTranslation.pdf)公式マニュアル

* [Juniper SSG - バーチャルルータ、ゾーン、インターフェースの設定](http://www.infraeye.com/study/juniperssg7.html)
* [NetScreenで設定をTFTPサーバにバックアップする](http://www.infraeye.com/study/juniperssg5.html)
* [Juniper SSG - ファームウェアのアップデート方法、初期化方法](http://www.infraeye.com/study/juniperssg5.html)

## はじめに

* NetScreenやSSG製品。
  * NS-5GT,NS-25 : 物理メモリ 128MB
  * SSG-140 : 物理メモリ 512MB
* 冗長化はNSRP

## コマンド

```bash:
get system
get config      （設定一覧）

get tech-support（全コマンド結果）
get event       （show log）
get arp          (接続PCリスト)
get console （login状態、未保存情報）
get route
get licence-key （制限）
get ntp
get performance cpu（w）
get session     （接続情報一覧）
get socket      （接続情報一覧）
get service user（FW設定）
get policy  　　（FW設定一覧）
get mip     　　（IP割り当て一覧）
```

## インターフェース周り

```bash:
get vip
get mip
get interface
get interface eth0/0 mip
```

## 初期化

```bash:
SSG140-> unset all
Erase all system config, are you sure y/[n] ? y
SSG140-> reset
Configuration modified, save? [y]/n n
System reset, are you sure? y/[n] y
In reset ...
```

* http://192.168.1.1 (trust/e1)
  * user: netscreen
  * pass: netscreen

# 設定

## ホスト名

```bash:
set hostname SSG140_M.mydomain
```

ファイアウォールの名前をSSG140_M.mydomainに設定

`get hostname`

## zone名

```bash:
set interface ethernet0/0 zone Untrust
set interface ethernet0/1 zone Trust
set interface ethernet0/2 zone DMZ
```

* ethernet0/0 を zone Untrust
* ethernet0/1 を zone Trust
* ethernet0/2 を zone DMZ に設定

`get zone`

## IP設定

```bash:
set interface ethernet0/0 manage-ip 5.6.7.8
set interface ethernet0/1 manage-ip 192.168.10.254
set interface ethernet0/2 manage-ip 192.168.20.254
set interface ethernet0/0 manage ping
set interface ethernet0/1 manage ping
set interface ethernet0/2 manage ping
```

それぞれのインターフェースにIPの割当てとpingの応答を返す。

`get interface`

## DNS

```bash:
set dns host dns1 8.8.8.8
set dns host dns2 8.8.4.4
```

ScreenOSのDNS設定

## 冗長化(nsrp)用IP設定

### master側

```bash:
set interface ethernet0/8 zone HA
set interface ethernet0/9 zone HA
set interface ethernet0/0 ip 5.6.7.8/28
set interface ethernet0/0 route
set interface ethernet0/1 ip 192.168.10.1/24
set interface ethernet0/1 nat
set interface ethernet0/2 ip 192.168.20.1/24
set interface ethernet0/2 nat
set nsrp cluster id 1
set nsrp rto-mirror sync
set nsrp vsd-group id 0 priority 50
set nsrp vsd-group id 0 preempt
set nsrp monitor interface ethernet0/0
set nsrp monitor interface ethernet0/1
set nsrp monitor interface ethernet0/2
set nsrp monitor track-ip ip 5.6.7.9 interface ethernet0/0
set nsrp monitor track-ip ip 5.6.7.9 weight 255
```

### backup側

```diff:master側の設定に以下追加
- set nsrp vsd-group id 0 priority 50
- set nsrp vsd-group id 0 preempt
+ set nsrp vsd-group id 0 priority 100
```

* priorityが低いほうがmasterになる。

## hostname(I)-> の状態になっている場合

> set nsrp monitor interface ethernet0/0
> set nsrp monitor interface ethernet0/1
> set nsrp monitor interface ethernet0/2

ethernet0/0,0/1,0/2のLANが抜けている場合(I)になる。刺すこと

## デフォルトゲートウェイ設定

```bash:
set route 0.0.0.0/0 interface ethernet0/0 gateway 5.6.7.6
```


## ntp

```bash:
set clock timezone 9
set clock dst-off
set clock ntp
set ntp server "ntp.ubuntu.com"
set ntp interval 300
```

* 手動でntp問い合わせする場合、`exec ntp update`

## nat

```bash:
set policy id 100 from DMZ to Untrust Any Any Any nat src permit
```

* `nat src permit`がミソ。
  * `permit`だけだとDMZからUntrustへ通信する場合、DMZ側に5.6.7.0/28 のアドレスが振られている必要がある。
  * つまりDMZからUntrustへ通信ができない。

## ファイアウォール

```bash:
set interface ethernet0/0 vip 5.6.7.10 22 SSH 192.168.20.10
set policy id 22 name VIP(SSH) from Untrust to DMZ Any VIP(5.6.7.10) SSH permit
```

* 5.6.7.10:22 -> 192.168.20.10:22 にポートフォワードする

```bash:
set service ssh_server01 protocol tcp dst-port 10022-10022
set interface ethernet0/0 vip 5.6.7.10 10022 SSH 192.168.20.80
set policy id 80 name server01 from Untrust to DMZ Any VIP(5.6.7.10) ssh_server01 permit
```

5.6.7.10:10022 -> 192.168.20.80:22 にポートフォワードする。


### 接続元IPを制限

```bash:
set address Untrust office 2.2.2.2 255.255.255.255
set policy id 22 name VIP(SSH) from Untrust to DMZ office VIP(5.6.7.10) SSH permit
```

2.2.2.2からのみ5.6.7.10:22 への接続を許可


# telnetの許可

> set interface ethernet0/2 manage-ip 192.168.20.254

をした状態で、

```bash:
set admin manager-ip 192.168.20.0 255.255.255.0
set interface ethernet0/2 manage telnet
```

# ScreenOS

[How to upgrade ScreenOS either via the WebUI or CLI](http://kb.juniper.net/InfoCenter/index?page=content&id=KB13672&pmv=print)
[KB7860　Download ScreenOS Updates From the Web](http://kb.juniper.net/InfoCenter/index?page=content&id=KB7860)
[KB4317　[ScreenOS] Accessing your Juniper firewall device using the WebUI](http://kb.juniper.net/InfoCenter/index?page=content&id=KB4317)
[SSG140 - Download Software](http://www.juniper.net/support/downloads/?p=ssg140#sw)

* DL時にはid/passが必要


## バックアップ

```bash:バックアップ
save software from flash to tftp 192.168.1.50 ssg140.6.3.0r17.0
```

tftpサーバ(192.168.1.50)の `/var/lib/tftproot/ssg140.6.3.0r17.0` に保存される。12MB


## 更新

```bash:更新
save software from tftp 192.168.1.50 ssg140.6.3.0r17.0 to flash
```