概要

CiscoルータでPPPリンク上のMPPE(Microsoft Point to Point Encryption)による暗号化の設定について考えます。

ネットワーク構成

設定概要

R1

interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf 1 area 0
!
interface Serial0/0
 ip address 192.168.12.1 255.255.255.0
 encapsulation ppp
 ip ospf 1 area 0
!
router ospf 1
 router-id 1.1.1.1
 log-adjacency-changes

R2

interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip ospf 1 area 0
!
interface Serial0/0
 ip address 192.168.12.2 255.255.255.0
 encapsulation ppp
 ip ospf 1 area 0
!         
router ospf 1
 router-id 2.2.2.2
 log-adjacency-changes

問題

R1-R2間のPPPリンク上で128ビットの暗号鍵を利用したMPPEによる暗号化を行いたいと考えています。R1、R2にはどのような設定を行えばよいでしょうか。

解答

R1

username R2 password 0 cisco
!
interface Serial0/0
 ppp encrypt mppe 128 required
 ppp authentication ms-chap-v2

R2

username R1 password 0 cisco
!
interface Serial0/0
 ppp encrypt mppe 128 
 ppp authentication ms-chap-v2

解説

【MPPEの設定】

PPPリンク上でMPPEによって暗号化を行うときのポイントは、MS-CHAPの認証が前提となっていることです。MS-CHAPによる認証を行い、暗号鍵を生成してPPPフレームの暗号化を行います。MS-CHAPの設定は、PPPのインタフェースで次のコマンドを入力します。

(config-if)#ppp authentication {ms-chap|ms-chap-v2}

MS-CHAPv1でもv2でもMPPEの暗号化が可能ですが、通常は、MS-CHAPv2を利用します。MS-CHAPの認証はデフォルトでは、ローカルユーザデータベースを利用するので、ユーザ名/パスワードの設定も必要です。

(config)#username <user> password <password>

そして、MPPEの暗号化の設定は、PPPのインタフェース上で次のコマンドを入力します。

MPPE 暗号化の設定

(config-if)#ppp encrypt mppe {auto|40|128} [passive|required|stateful]

auto:利用可能な暗号鍵が許可されます
40:40ビットの暗号鍵を利用します。
128:128ビットの暗号鍵を利用します。
passive:MPPEの暗号化を提供しませんが、対向からの暗号化のリクエストに応答します。
required:MPPEの暗号化をネゴシエートします。
stateful:ステートフルの暗号化のみをネゴシエートします。

ステートフルの暗号化は、パフォーマンスに優れていますが、インターネット経由のレイヤ2トンネルの通信などパケットロスの可能性がある環境では適切ではありません。

【R1、R2の設定】

まず、R1、R2ではMS-CHAPの設定が必要です。MS-CHAPv2を有効化し、ローカルユーザデータベースに対向のホスト名とパスワードを設定します。

R1

username R2 password 0 cisco
!
interface Serial0/0
 ppp authentication ms-chap-v2

R2

username R1 password 0 cisco
!
interface Serial0/0
 ppp authentication ms-chap-v2

そして、MPPEの暗号化を有効にします。128ビットの暗号鍵を利用して、R1からMPPEのステートレスの暗号化のネゴシエーションを開始するものとします。

R1

interface Serial0/0
 ppp encrypt mppe 128 required

R2

interface Serial0/0
 ppp encrypt mppe 128 

MPPEの設定を正しく行うことができれば、Serial0/0がup/upになりOSPFネイバーを確立してルーティングテーブルに必要なルート情報が登録されます。

R1

R1#show int serial0/0
Serial0/0 is up, line protocol is up 
  Hardware is M4T
  Internet address is 192.168.12.1/24
  MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation PPP, LCP Open
  Open: IPCP, CCP, CDPCP, crc 16, loopback not set
~省略~

R1#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   FULL/  -        00:00:39    192.168.12.2    Serial0/0
R1#show ip route ospf
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/65] via 192.168.12.2, 00:00:18, Serial0/0

また、MPPEの暗号化の状態はshow ppp mppe コマンドで確認できます。R1では、次のような出力になります。

R1

R1#show ppp mppe serial 0/0
Interface Serial0/0 (current connection)
  Software encryption, 128 bit encryption, Stateless mode
  packets encrypted = 15       packets decrypted  = 14    
  sent CCP resets   = 0        receive CCP resets = 0     
  next tx coherency = 15       next rx coherency  = 14    
  tx key changes    = 15       rx key changes     = 14    
  rx pkt dropped    = 0        rx out of order pkt= 0     
  rx missed packets = 0     

まとめ

  • MPPEによる暗号化はMS-CHAPの認証が前提
  • MPPEによる暗号化は40ビットまたは128ビットの暗号鍵を利用する
  • MPPEを有効にするためには、PPPインタフェース上で以下のコマンドを入力する
    (config-if)#ppp encrypt mppe {auto|40|128} [passive|required|stateful]