リモートで社内LANに安全にアクセスしたい(IPSec編)

ルータにL2TP/IPsec機能を設定して、社内ネットワークにアクセスできるように設定します。
 

test1ユーザーはLAN内のすべての機器に通信が可能でルータにTelnetでログインが可能です。
test2、test3ユーザーは192.168.10.10のサーバにのみアクセスが可能です。

設定概要
【AR415sの設定】
・PPPoEクライアント設定

ユーザID:ID
パスワード:PASSWORD
固定IPアドレス:10.0.0.1/32

・IPアドレス設定
ルータのLAN側ネットワークアドレス192.168.10.1/24(vlan1)
・VPNクライアント用ユーザー
ユーザーアカウント/パスワード:test1/test1、test2/test2、test3/test3
・IKEフェーズ1
IKE交換モード:Mainモード
事前共有鍵:testkey
Oakleyグループ:2
ISAKMPメッセージの暗号化方式:3DES
ISAKMPメッセージの認証方式:SHA1
ISAKMP SAの有効期限:600秒
Responder Rekey Extension機能:有効
ISAKMP SAの有効期限:なし
起動時のISAKMPネゴシエーション:行わない
NAT-Traversalのネゴシエーション:行う
・IKEフェーズ2
SAモード:トランスポートモード
暗号化方式:3DES、AES128またはAES256
認証方式:SHA1
IPsec SAの有効期限:28800秒
設定
※コンソールケーブルでの設定が前提となります。
【拠点】

ADD USER=secoff PASSWORD=PASSWORD-A PRIVILEGE=SECURITYOFFICER
SET USER SECUREDELAY=900
ENABLE SYSTEM SECURITY_MODE

login
secoff
PASSWORD-A

CREATE PPP=0 OVER=eth0-ANY
SET PPP=0 OVER=eth0-ANY USER=ID PASSWORD=PASSWORD LQR=OFF BAP=OFF ECHO=ON
ENABLE IP
ADD IP INT=vlan1 IP=192.168.10.1 MASK=255.255.255.0
ADD IP INT=ppp0 IP=10.0.0.1 MASK=255.255.255.255
ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0
ADD USER=test1 PASSWORD=test1 LOGIN=NO IPADDRESS=192.168.10.200 ↓
 NETMASK=255.255.255.255
ADD USER=test2 PASSWORD=test2 LOGIN=NO IPADDRESS=192.168.10.201 ↓
 NETMASK=255.255.255.255
ADD USER=test3 PASSWORD=test3 LOGIN=NO IPADDRESS=192.168.10.202 ↓
 NETMASK=255.255.255.255
enable user rso
add user rso ip=192.168.10.200
CREATE PPP TEMPLATE=1 AUTHENTICATION=CHAP BAP=OFF ECHO=30 RECHALLENGE=OFF VJC=ON
ENABLE L2TP
ENABLE L2TP SERVER=BOTH
ADD L2TP IP=0.0.0.0-255.255.255.255 PPPTEMPLATE=1
ENABLE FIREWALL
CREATE FIREWALL POLICY=net
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE
DISABLE FIREWALL POLICY=net IDENTPROXY
CREATE FIREWALL POLICY=net DYNAMIC=vpnif
ADD FIREWALL POLICY=net DYNAMIC=vpnif USER=ANY
ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC
ADD FIREWALL POLICY=net INT=DYN-vpnif TYPE=PUBLIC
ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0
ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=500 ↓
 GBLIP=10.0.0.1 PORT=500 IP=10.0.0.1
ADD FIREWALL POLICY=net RULE=2 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=4500 ↓
 GBLIP=10.0.0.1 PORT=4500 IP=10.0.0.1
ADD FIREWALL POLICY=net RULE=3 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=1701 ↓
 GBLIP=10.0.0.1 PORT=1701 IP=10.0.0.1 ENCAP=IPSEC
ADD FIREWALL POLICY=net RULE=4 AC=ALLOW INT=dyn-vpnif PROT=ALL IP=192.168.10.10
SET FIREWALL POLICY=net RULE=4 REMOTEIP=192.168.10.201-192.168.10.202
ADD FIREWALL POLICY=net RULE=5 AC=ALLOW INT=dyn-vpnif PROT=ALL IP=192.168.10.1-192.168.10.254
SET FIREWALL POLICY=net RULE=5 REMOTEIP=192.168.10.200
CREATE ENCO KEY=1 TYPE=GENERAL VALUE=testkey
CREATE ISAKMP POLICY="i" PEER=ANY KEY=1 SENDN=TRUE NATTRAVERSAL=TRUE
SET ISAKMP POLICY="i" ENCALG=3DESOUTER HASHALG=SHA GROUP=2
SET ISAKMP POLICY="i" EXPIRYSECOND=600 REKEY=true
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=AES256 HASHALG=SHA ↓
 MODE=TRANSPORT
CREATE IPSEC SASPEC=2 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=AES128 HASHALG=SHA ↓
 MODE=TRANSPORT
CREATE IPSEC SASPEC=3 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=3DESOUTER HASHALG=SHA ↓
 MODE=TRANSPORT
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1 or 2 or 3"
CREATE IPSEC POLICY=isa INT=ppp0 ACTION=PERMIT LPORT=500 TRANSPORT=UDP
CREATE IPSEC POLICY=nat INT=ppp0 ACTION=PERMIT LPORT=4500 TRANSPORT=UDP
CREATE IPSEC POLICY=L2 INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC
SET IPSEC POLICY=L2 LPORT=1701 TRANSPORT=UDP
CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT
ENABLE IPSEC
ENABLE ISAKMP

 
解説
【拠点の設定】
ADD USER=secoff PASSWORD=PASSWORD-A PRIVILEGE=SECURITYOFFICER
セキュリティーモードで各種設定を行うことのできるSecurity Officerレベルのユーザー「secoff」を作成します。パスワードは「PASSWORD-A」とします。
SET USER SECUREDELAY=900
セキュリティーコマンドのタイムアウトを900に設定します。
ENABLE SYSTEM SECURITY_MODE
動作モードをセキュリティーモードに切り替えます。
login
secoff
PASSWORD-A
Security Officerレベルのユーザーでログインしなおします。
CREATE PPP=0 OVER=eth0-ANY
WAN側Ethernetインターフェース(eth0)上にPPPインターフェースを作成します。
SET PPP=0 OVER=eth0-ANY USER=ID PASSWORD=PASSWORD LQR=OFF BAP=OFF ECHO=ON
ISPから通知されたPPPユーザー名とパスワードを指定します。
ENABLE IP
IPモジュールを有効にします。
ADD IP INT=vlan1 IP=192.168.10.1 MASK=255.255.255.0
LAN側(vlan1)インターフェースにIPアドレスを設定します。
ADD IP INT=ppp0 IP=10.0.0.1 MASK=255.255.255.255
WAN側(ppp0)インターフェースにプロバイダから支給された固定IPアドレスを設定します。

ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0
デフォルトルートを設定します。

ADD USER=test1 PASSWORD=test1 LOGIN=NO IPADDRESS=192.168.10.200 NETMASK=255.255.255.255
ADD USER=test2 PASSWORD=test2 LOGIN=NO IPADDRESS=192.168.10.201 NETMASK=255.255.255.255
ADD USER=test3 PASSWORD=test3 LOGIN=NO IPADDRESS=192.168.10.202 NETMASK=255.255.255.255
暗号化されたL2TPトンネル経由でPPP接続してくるVPNクライアントを認証するためのユーザー(PPPユーザー)を登録します。
enable user rso
add user rso ip=192.168.10.200
192.168.10.200(ユーザーtest1)からSecurity OfficerレベルでのTelnetログインを許可します。
CREATE PPP TEMPLATE=1 AUTHENTICATION=CHAP BAP=OFF ECHO=30 RECHALLENGE=OFF VJC=ON
L2TP経由でVPNクライアントがPPP接続してきたときに動的に作成するPPPインターフェースのテンプレート「1」を作成します。接続時の認証にはCHAPを使い、CHAPの再認証はOFFにし、VJ圧縮を有効にします。
ENABLE L2TP
L2TPモジュールを有効にします。
ENABLE L2TP SERVER=BOTH
L2TPサーバーをBOTHモードで起動します。
ADD L2TP IP=0.0.0.0-255.255.255.255 PPPTEMPLATE=1
L2TP経由でVPNクライアントが接続してきたときに使用するPPPテンプレートを指定します。ここではクライアントのアドレスが不定なので、どのアドレスからでも接続を受け入れるように設定します。
ENABLE FIREWALL
ファイアウォール機能を有効にします。
CREATE FIREWALL POLICY=net
ファイアウォールの動作を規定するファイアウォールポリシーを作成します。
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE
ICMPパケットはPing(Echo/Echo Reply)と到達不可能(Unreachable)のみ双方向で許可します。
DISABLE FIREWALL POLICY=net IDENTPROXY
ルーターのidentプロキシー機能を無効にし、外部のメール(SMTP)サーバーなどからのident要求に対して、ただちにTCP RSTを返すよう設定します。

CREATE FIREWALL POLICY=net DYNAMIC=vpnif
VPNクライアントがL2TP経由で接続してきたときに動的に作成されるPPPインターフェース用のファイアウォール設定を行います。最初に、ダイナミックインターフェーステンプレート「vpnif」を作成します。

ADD FIREWALL POLICY=net DYNAMIC=vpnif USER=ANY
ダイナミックインターフェーステンプレート「vpnif」の対象ユーザーを指定します。
ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE
ファイアウォールポリシーの適用対象となるインターフェースを指定します。
LAN側インターフェース(vlan1)をPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC
WAN側インターフェース(ppp0)をPUBLIC(外部)に設定します。
ADD FIREWALL POLICY=net INT=DYN-vpnif TYPE=PUBLIC
L2TP経由でユーザーが接続してきたときに動的作成されるPPPインターフェース(vpnif)をPUBLIC(外部)に設定します。
ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0
LAN側ネットワークに接続されているすべてのコンピューターがENAT機能を使用できるよう設定します。グローバルアドレスには、ppp0のIPアドレスを使用します。
ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=500 GBLIP=10.0.0.1 PORT=500 IP=10.0.0.1
ADD FIREWALL POLICY=net RULE=2 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=4500 GBLIP=10.0.0.1 PORT=4500 IP=10.0.0.1
VPNクライアントから受信したIKEパケット(UDP500番)とNAT-Tパケット(UDP4500番)がファイアウォールを通過できるように設定します。
ADD FIREWALL POLICY=net RULE=3 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=1701 GBLIP=10.0.0.1 PORT=1701 IP=10.0.0.1 ENCAP=IPSEC
IPsecのパケットを通過させるためのルールを設定します。
ADD FIREWALL POLICY=net RULE=4 AC=ALLOW INT=dyn-vpnif PROT=ALL IP=192.168.10.10
SET FIREWALL POLICY=net RULE=4 REMOTEIP=192.168.10.201-192.168.10.202
192.168.10.201(ユーザーtest2)と192.168.10.202(ユーザーtest3)から192.168.10.10あてのパケットを通過させるためのルールを設定します。
ADD FIREWALL POLICY=net RULE=5 AC=ALLOW INT=dyn-vpnif PROT=ALL IP=192.168.10.1-192.168.10.254
SET FIREWALL POLICY=net RULE=5 REMOTEIP=192.168.10.200
192.168.10.200(ユーザーtest1)からLAN内へのパケットを通過させるためのルールを設定します。
CREATE ENCO KEY=1 TYPE=GENERAL VALUE=testkey
ISAKMP用の事前共有鍵(pre-shared key)を作成します。
CREATE ISAKMP POLICY="i" PEER=ANY KEY=1 SENDN=TRUE NATTRAVERSAL=TRUE
SET ISAKMP POLICY="i" ENCALG=3DESOUTER HASHALG=SHA GROUP=2
VPNクライアントからのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。
SET ISAKMP POLICY="i" EXPIRYSECOND=600 REKEY=true
ISAKMP SAの有効期限を600秒(10分)に設定しResponder Rekey Extension機能を有効にします。
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=AES256 HASHALG=SHA ↓
 MODE=TRANSPORT
IPsec通信の仕様を定義するSAスペック「1」を作成します。鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式 「AES256bit」、認証方式「SHA」に設定します。
CREATE IPSEC SASPEC=2 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=AES128 HASHALG=SHA ↓
 MODE=TRANSPORT
同様にIPsec通信の仕様を定義するSAスペック「2」を作成します。鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式 「AES128bit」、認証方式「SHA」に設定します。
CREATE IPSEC SASPEC=3 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=3DESOUTER HASHALG=SHA ↓
 MODE=TRANSPORT
同様にIPsec通信の仕様を定義するSAスペック「3」を作成します。鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式 「3DES」、認証方式「SHA」に設定します。
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1 or 2 or 3"
SAスペック「1」、「2」、「3」からなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。
CREATE IPSEC POLICY=isa INT=ppp0 ACTION=PERMIT LPORT=500 TRANSPORT=UDP
CREATE IPSEC POLICY=nat INT=ppp0 ACTION=PERMIT LPORT=4500 TRANSPORT=UDP
IKEパケット(UDP500番)とNAT-Tパケット(UDP4500番)を素通しさせるIPsecポリシー「isa」「nat」を作成します。
CREATE IPSEC POLICY=L2 INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC
SET IPSEC POLICY=L2 LPORT=1701 TRANSPORT=UDP
L2TPパケットを暗号化するIPsecポリシー「L2」をPPPインターフェース「0」に対して作成します。
CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT
インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。
ENABLE IPSEC
IPsecモジュールを有効にします。
ENABLE ISAKMP
ISAKMPモジュールを有効にします。
印刷用PDFファイルはこちらから(181.0K) PDFファイルをご覧になるには、
Adobe Readerが必要です。
AdobeReaderダウンロードページはこちら