Juniper(SSG)にクライアントVPN(shrew)を使って接続する

SSG5にPCからクライアントVPNで接続したいという要件があり、フリーツールのshrewを使って接続しました。設定パラメーターが多く、いろいろはまりましたのでメモを残しておきます。

##1.shrewダウンロード
ダウンロードはこちらのリンクから。昔はMAC版もありましたが、現在はWindowsとLinux版のみになっていました。
https://www.shrew.net/download/

##2.VPN構成
外からオフィス内のサーバーにアクセスできればよいので、シンプルな構成です。
<img width="419" alt="スクリーンショット 2018-10-02 16.39.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/263462/502c07d3-d293-4564-1af8-332e274ef524.png">

|No|用途|Private Segment|Gateway   |注釈   |
|:--:|:-------:|:--------:|:-----------:|:-------:|
|1|VPN接続IPPool|172.16.1.100 - 200/24|172.16.1.1|User用|
|2|オフィスネットワーク|172.16.2.0/24|172.16.2.1|office用|

##3.SSG側設定
SSGに必要な設定を抜粋した投入configは以下の通りです。

```
//IPPoolアドレスの属性
set address "Trust" "vpn-pool" 172.16.1.0 255.255.255.0 

//VPN用トンネル設定//トンネルはI/Fのbgroup0を利用
set interface "tunnel.2" zone "Trust"　　　
set interface tunnel.2 ip unnumbered interface bgroup0　

//IPPoolアドレスの範囲設定
set ippool "hogepool" 172.16.1.100 172.16.1.100　

//ユーザー設定
set user "hoge" uid 1 　
set user "hoge" ike-id u-fqdn "hoge@hoge.com" share-limit 1　//ユーザーの同時アクセス数制限
set user "hoge" type ike xauth　//xauth認証
set user "hoge" remote ippool "hogepool" //PoolIPの指定
set user "hoge" remote ipaddr "172.16.1.100"
set user "hoge" password "hoge"　//パスワード設定
unset user "hoge" type auth　
set user "hoge" "enable"

//フェーズ1,2設定
set ike gateway "vpnGW" dialup "hoge" Aggr outgoing-interface "ethernet0/0" preshare "hogehoge" proposal "pre-g2-3des-sha" 
unset ike gateway "vpnGW" nat-traversal udp-checksum
set ike gateway "vpnGW" nat-traversal keepalive-frequency 5
set ike gateway "vpnGW" xauth server "Local" user "hoge"
unset ike gateway "vpnGW" xauth do-edipi-auth

//VPNgateway設定
set vpn "vpn" gateway "vpnGW" no-replay tunnel idletime 0 proposal "nopfs-esp-3des-sha" 
set vpn "vpn" monitor
set vpn "vpn" id bind interface tunnel.2

//ルーティング設定
set route 172.16.1.0/24 interface tunnel.2
```

##4.shrew側設定
クライアント設定ファイルは以下です。

```
n:version:4
n:network-ike-port:500
n:network-mtu-size:1380
n:client-addr-auto:1
n:network-natt-port:4500
n:network-natt-rate:15
n:network-frag-size:540
n:network-dpd-enable:1
n:client-banner-enable:0
n:network-notify-enable:1
n:client-dns-used:0
n:client-dns-auto:1
n:client-dns-suffix-auto:1
n:client-splitdns-used:1
n:client-splitdns-auto:1a
n:client-wins-used:0
n:client-wins-auto:1
n:phase1-dhgroup:2
n:phase1-life-secs:86400
n:phase1-life-kbytes:0
n:vendor-chkpt-enable:0
n:phase2-life-secs:3600
n:phase2-life-kbytes:0
n:policy-nailed:1
n:policy-list-auto:0
s:network-host:xxx.xxx.xxx.xxx //FWのGlobalIPを指定
s:client-auto-mode:push
s:client-iface:virtual
s:network-natt-mode:enable
s:network-frag-mode:enable
s:auth-method:mutual-psk-xauth
s:ident-client-type:ufqdn
s:ident-server-type:any
s:ident-client-data:hoge@hoge.com　//認証用FQDN
b:auth-mutual-psk:hogehoge　//preshared keyのパスワード
s:phase1-exchange:aggressive
s:phase1-cipher:auto
s:phase1-hash:auto
s:phase2-transform:auto
s:phase2-hmac:auto
s:ipcomp-transform:disabled
n:phase2-pfsgroup:-1
s:policy-level:auto
s:policy-list-include:1.0.0.0 / 255.255.255.0
```
上記ファイルのパラメーターを変更後、インポートしてください。

##補足
何故かPhase1で認証エラーが出る場合があります。

```
vpntest01-> get log event
get log event
Total event entries = 1024
Date       Time     Module Level  Type Description
Rejected an IKE packet on ethernet0/0
                                       from xxx.xxx.xxx.xxx:47781 to
                                       xxx.xxx.xxx.xxx:500 with cookies
                                       3e35c70729dfedef and 0000000000000000
                                       because an initial Phase 1 packet
                                       arrived from an unrecognized peer
                                       gateway.
```
このときはファイルをインポート後FWのフェーズ1,2設定のpresharedkeyのパスワードをクライアントVPNAccessManagerからクライアント側の設定ファイルに上書きします。

###手順
connetcion nameで対象VPNを選択→Modify→Authntication→Credentials→Presharedkeyのパスワードを上書き→Save

##終わりに
VPNの設定可能なパラメーターがたくさんあるので、いろんな設定ができます。こちらはあくまでも簡単に接続するためのベース設定になりますので、用途に応じて設定して頂けたらと思います。それでは良いVPNライフを！