動的に割り当てられたIPを使用したCisco ISRと3G RUH2間のIPSec

チャレンジ。 コストが高いため、セルラー通信事業者(以降OpCoC)の「Static White IP」のサービスに頼らずに、リモートネットワークとのデータ交換を整理する必要があります。

次の図に図を示します。
画像

RUH2ルーター(Radiofeed Systems製)は現在生産されていませんが、 これらのルーターのいくつかは既にデータ交換の整理に関与しているため、作業を最適化することにしました。

ルーターはLinux上で実行され、IPSecトンネルの場合、Webインターフェイスを介して設定されるRacoonモジュールが含まれます。

静的外部アドレス(abcd)を備えたCiscoルーター(私の場合、CISCO1921 / K9)が企業のLANにインストールされています。

RUH2 OpCoSはデバイスに動的アドレスを提供します。接続が確立されるたびにデバイスは異なるため、接続が確立されるアドレスを事前に知ることはできません。 さらに、ルーターを再起動すると、このアドレスは高い確率で異なります。

IPSecセッションでは、事前定義されたキーを使用してデバイス認証を実行できますが、デバイスがどのアドレスから通信するかが事前にわからないため、次のような行をルーターに登録する必要があります。

crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 no-xauth

すなわち キーはすべてのアドレスに対して有効です。キーが侵害されると、攻撃者は暗号化されたチャネルを確立してエンタープライズネットワークにアクセスできるため、これは安全ではありません。

この場合、X.509証明書を使用することをお勧めします。 RUH2ルーターの証明書を発行するルーターに証明機関を構成する必要があります。 厳密に言えば、認証局は必ずしもCISCOルーター上にあるとは限りません。主なことは、この認証局が接続を確立するためにデバイスに証明書を発行することです。 CISCOルーターでの証明機関の設定について詳しくはこちらをご覧ください

ルーターで接続を確立するには、トラストポイントを構成する必要があります。トラストポイントは、証明機関によって証明書が発行されます。 イネーブルモードでは、次のコマンドを入力する必要があります。

ESKO-main-gw(config)#crypto key generate rsa general-keys label VPN-key modulus 2048

VPNキーがトラストポイントで使用するキーペアの名前である場合、モジュラス2048はキーディメンションです。

次に、トラストポイントを設定し、コマンドを提供します:

R1(config)#crypto pki trustpoint VPN-esko

次に、ルータはトラストポイントコンフィギュレーションモードに入ります。このモードでは、次のコマンドを入力します。

enrollment url http://abcd:80

証明書を要求し、失効した証明書のリストを確認する認証局へのパス。

serial-number none

証明書にルーターのシリアル番号を含めないでください。

fqdn none

証明書にカスタムドメイン名を含めないでください。

ip-address none

証明書にルーターのIPアドレスを含めないでください。

subject-name cn=ESKO-main-gw.esko.local,o=esko,l=spb,c=ru

証明書のサブジェクトの名前は、X.500形式に従って設定されます。 いくつかのフィールドの説明:

CN:共通名-任意の名前
O:組織-組織の名前
L:場所-場所、市
C:国-国

revocation-check crl

失効した証明書のリストを確認する方法。

crl cache delete-after 5

失効した証明書のリストを確認した後、キャッシュをクリアする必要がある速さ。

rsakeypair VPN-key

使用するキーペアの名前。

これらの設定を行った後、トラストポイントコンフィギュレーションモードを終了してグローバルコンフィギュレーションモード(終了)にし、コマンドを与える必要があります。

R1(config)#crypto pki authenticate VPN-esko

CISCOルーターは、認証サーバーのルート証明書を要求し、次の確認を求めます。
証明書には次の属性があります。
指紋MD5:4CDFCBCA 7807C4C9 5B054FA5 329301DB
指紋SHA1:E0E35CC8 75C3639C 445D12D8 4BA298AB 2E4E7004
%この証明書を受け入れますか? [はい/いいえ]:

はい、シスコはルート証明書が受け入れられることを確認します答えます:
トラストポイントCA証明書が受け入れられました。

次に、サーバーに証明書の発行を依頼します。

R1(config)#crypto pki enroll VPN-esko

%証明書の登録を開始...
%チャレンジパスワードを作成します。 これを口頭で提供する必要があります
証明書を取り消すためのCA管理者へのパスワード。
セキュリティ上の理由から、パスワードは構成に保存されません。
それをメモしてください。

パスワード:
パスワードを再入力:

%証明書のサブジェクト名には、cn = ESKO-main-gw.esko.local、o = esko、l = spb、c = enが含まれます。
%完全修飾ドメイン名は証明書に含まれません
CAに証明書を要求しますか? [はい/いいえ]:はい
認証局に送信された証明書要求の割合
%「show crypto pki certificate verbose VPN-esko」コマンドは指紋を表示します。

要求プロセス中に、ルーターは証明書のパスワードを要求し、確認を要求します。 パスワードを入力し(オプション)、リクエストの作成を確認します。
その後、要求が証明書サーバーに表示されます。
* 10月15日13:53:45.367:CRYPTO_PKI:証明書要求フィンガープリントMD5:F70432EB 59E791A6 48F301C4 B59C67EB
* 10月15日13:53:45.371:CRYPTO_PKI:証明書要求フィンガープリントSHA1:18AA1D1A 1DD7BED2 FEA666FF 1D32F8BA B559FA07

次のコマンドを使用して、認証サーバー(CISCO上にある場合)で要求を表示できます。

R1#sh crypto pki server CA-esko

登録要求データベース:
下位CA証明書要求:
ReqID State Fingerprint SubjectName
-RA証明書のリクエスト:
ReqID State Fingerprint SubjectName
-ルーター証明書リクエスト:
ReqID State Fingerprint SubjectName
-1保留中F70432EB59E791A648F301C4B59C67EB cn = ESKO-main-gw.esko.local、o = esko、l = spb、c = ru

証明書の発行を確認するには、次のコマンドを入力する必要があります。

R1#crypto pki server CA-esko grant 1

しばらくすると、トラストポイントは発行された証明書を自動的に受け取ります。
* 10月15日14:03:01.303:%PKI-6-CERTRET:認証局から受け取った証明書

次のステップは、同じ認証局によって署名された証明書をRUH2ルーターに発行することです。

CISCO RUH2とは異なり、自動的に証明書を要求することはできないため、手動で行います。

ルーターへの証明書を作成する際のすべての操作には、OpenSSLユーティリティライブラリを使用します。

まず、秘密鍵を作成します。

C:\OpenSSL\bin>Openssl genrsa -out c:\keys\private.key 2048

RSA秘密鍵の生成、2048ビット長のモジュラス
.................................................. .......... +++
.................................................. .................................................. .................................................. ........... +++
eは65537(0x10001)です

private.keyファイルは、c:\ keysフォルダーに次の内容で表示されました。
----- RSAプライベートキーの開始-----
MIIEogIBAAKCAQEAz1vjlthggHHmSBWVgcNf7aDDGPgik9xKZuJjEBgREr8x5RUa
...
GzmSg7cOhrzzTBWOUqTggMD5uKV4Cgei3cA + TKRXv2dRjfVCL3s =
----- RSAプライベートキーの終了-----

次に、このキーに基づいて、証明機関への要求を作成します。

C:\OpenSSL\bin>openssl.exe req -new -key c:\keys\private.key -out c:\keys\request.csr


OpenSSLユーティリティは、この証明書に関するいくつかの質問をします。
組み込まれる情報の入力を求められます
証明書要求に。
入力しようとしているのは、識別名またはDNと呼ばれるものです。
かなりの数のフィールドがありますが、空白のままにすることができます
一部のフィールドにはデフォルト値がありますが、
「。」を入力すると、フィールドは空白のままになります。
-国名(2文字のコード)[RU]:
州または県の名前(フルネーム)[]:
市[SPB]:
組織名(会社など)[ESKO]:
組織単位名(例、セクション)[]:
共通名[]:RUH2.esko.local
メール[]:

次の「追加」属性を入力してください
証明書リクエストとともに送信されます
チャレンジパスワード[]:
オプションの会社名[]:

これらのフィールドは、subject-nameコマンドでトラストポイントのciscoで指定したものに類似しています。
c:\ keysフォルダーに値を入力すると、次の内容の証明書要求ファイルが表示されます。
-----証明書リクエストの開始-----
MIICiTCCAXECAQAwRDELMAkGA1UEBhMCUlUxDDAKBgNVBAcMA1NQQjENMAsGA1UE
...
Q3H / EtMGltY1QS / 9DsEnta + k7oCKPTeei3S2v9Y =
-----証明書リクエストの終了-----

これをクリップボードにコピーする必要があります。認証局が機能するCISCOで、次のコマンドを入力します。

R1#crypto pki server CA-esko request pkcs10 terminal

CISCOは要求を発行します
base64またはpemのPKCS10リクエスト

%Base64エンコードまたはPEM形式のPKCS10登録要求を入力します。
%空白行で終了するか、行自体を「終了」します。

次に、クリップボードからリクエストをコピーする必要があります。最後に「quit」と入力します
これで、作成されたリクエストを確認できます。

R1#sh crypto pki server CA-esko requests

登録要求データベース:

下位CA証明書要求:
ReqID State Fingerprint SubjectName
-RA証明書のリクエスト:
ReqID State Fingerprint SubjectName
-ルーター証明書リクエスト:
ReqID State Fingerprint SubjectName
-2保留中4468493FA262890CC75EEF18AC5AF6DF cn = RUH2.esko.local、o = ESKO、l = SPB、c = RU

OpenSSLユーティリティで指定されたフィールドを含むリクエストが表示されます。
このリクエストで証明書の発行を確認すると、ルーターはターミナルウィンドウですぐに証明書を発行します。

R1#crypto pki server CA-esko grant 2

付与された証明書の割合:
-----証明書の開始-----
MIIEQjCCAiqgAwIBAgIBAzANBgkqhkiG9w0BAQQFADBBMQswCQYDVQQGEwJydTEM
...
jhHvAo / 0oVfLPZ9dPdj9Y1efawXI4a / zGf0GTmEi + v7d8Psl9Wk =
-----証明書の終了-----

証明書をクリップボードにコピーして、ファイルに保存する必要があります。 重要:最初と最後の行(BEGIN CERTIFICATEとEND CERTIFICATE)を含むすべてをコピーする必要があります。
また、独自のトラストポイント証明書を要求する必要があります(グローバルコンフィギュレーションモードで):

R1(config)#crypto pki export VPN-esko pem terminal

%CA証明書:
-----証明書の開始-----
MIIFYDCCA0igAwIBAgIBATANBgkqhkiG9w0BAQQFADBBMQswCQYDVQQGEwJydTEM
...
uQVU8GLro73NQ9Jo2JXt2qfZY9SFsomiqJugxReyM4umZ9oX
-----証明書の終了-----

%汎用証明書:
-----証明書の開始-----
MIIEVzCCAj + gAwIBAgIBAjANBgkqhkiG9w0BAQUFADBBMQswCQYDVQQGEwJydTEM
...
a0G + T + rXEYq2ywc =
-----証明書の終了-----

ルーターは、証明書サーバーのルート証明書とトラストポイント証明書を発行します。 それぞれを個別のファイルに保存する必要があります。

次に、接続を確立する必要があるルーター(およびトラストポイントが構成されている場所)で、ipsecを構成します。

すべてはグローバル構成モードで行われます。

第1段階をセットアップします。

crypto isakmp policy 30
encr aes
hash sha256
group 14
lifetime 3600
authentication rsa-sig


最後のコマンドは証明書認証のタイプを設定します。デフォルトで機能し、CISCOで設定を表示するときに表示されない場合があります。

証明書マップを作成します。 特定の証明書属性を持つデバイスからの接続を受け入れる必要があります。

crypto pki certificate map RUH2-cert-map 10
subject-name co ruh2.esko.local


最後の行は、ruh2.esko.local行を含む行のみがこの証明書カードに対応することを示しています。

isakmpプロファイルを作成します。

crypto isakmp profile RUH2-isapr
self-identity address
ca trust-point VPN-esko
match certificate RUH2-cert-map
local-address GigabitEthernet0/0


使用されるコマンドの説明
self-identity address

ルーターIDはIPアドレスになります

ca trust-point VPN-esko

認証に使用されるトラストポイント

match certificate RUH2-cert-map

接続を確立するデバイスを識別するための証明書マップを指します。

local-address GigabitEthernet0/0


CISCOルーターのIPアドレスを決定する改良コマンド

次に、第2フェーズを設定します。

R1(config)#crypto ipsec transform-set RUH2-ts esp-aes esp-sha-hmac
R1 (cfg-crypto-trans)#mode tunnel


最後のコマンドはトンネルモードを設定するデフォルトのコマンドであり、ルーターの構成を表示するときに表示されない場合があります。

次に、動的な暗号カードを作成します。

crypto dynamic-map RUH2-dyncm 1000
set security-association lifetime seconds 28800
set transform-set RUH2-ts
set pfs group2
set isakmp-profile RUH2-isapr
reverse-route


使用されるコマンドの説明
セキュリティアソシエーションライフタイムの秒数を設定28800
フェーズ2セッションのライフタイムの確立、つまり 暗号化キーが変更される頻度。

set transform-set RUH2-ts

トランスフォームセット、つまり トラフィックを暗号化する方法

set pfs group2

セキュリティを強化します。 必要ありません。 追加の暗号化キー生成モードを示します。

set isakmp-profile RUH2-isapr

使用するisakmpプロファイルを示します。

reverse-route

重要なチーム。 ルーターは、ルーティングテーブルにルートを追加して、パケットをリモートネットワークに送信します。

次に、動的暗号カードを静的カードにバインドします。

R1(config)#crypto map ISP-statcm 500 ipsec-isakmp dynamic RUH2-dyncm


そして、インターネットに向かっているインターフェイスに静的暗号カードを適用します。

R1(config)#interface GigabitEthernet0/0
R1(config-if)#crypto map ISP-statcm


これでCiscoルーターを構成することは終了です。 RUH2を始めましょう。 これを行うには、ルーターのWebインターフェイスの[構成]セクションに移動し、次に[IPSec]セクションに移動します。

設定は次のとおりです。



ルーターで定義されているフィールドの説明
説明
トンネルの名前。 どれでもかまいません。

リモートIPアドレス
リモートCISCOルーターのアドレス。

リモートサブネットとリモートサブネットマスク
どのネットワークのどのトラフィックがトンネルにルーティングされるかを示します。

ローカルサブネットとローカルサブネットマスク
RUH2はこの情報をリモートCISCOルーターに送信するため、トンネルに送信すべきトラフィックを把握できます。

キー寿命(秒)
キー「lifetime」は、CISCOがset security-association lifetime secondsパラメータによって設定されるものです。

IKEライフタイム(秒)
第1フェーズのライフタイム(isakmp)は、isakmpポリシーのライフタイムパラメータによってCISCOで指定されるものです。

NATトラバーサル
NAT-Tモードを有効にします。これは、RUH2がNAT OpCoSaで機能する場合に必要です。

認証モード
認証メーター X.509証明書のモードを選択します。

証明書を確認する
証明書検証モード。 無効にする必要があります。 それ以外の場合、RUH2はAltSubjectNameフィールドがないことに関するエラーをスローし、自己署名トラストポイントのCISCOでのみ設定できます。 次に、自己署名トラストポイントを使用できません すべての証明書が1つの証明機関によって発行される必要があります。

暗号化アルゴリズム
ハッシュアルゴリズム
DHグループ
RUH2の第1フェーズの設定は、CISCOのisakmpポリシーの設定と一致する必要があります。

暗号化アルゴリズム
認証アルゴリズム
PFSグループ
RUH2のフェーズ2設定は、CISCOのトランスフォームセットおよびpfsグループ設定と一致する必要があります。

私の識別子タイプ
リモート側でRUH2を識別する方法を示していますが、重要ではありません。 証明書の検証が進行中です。

ピア識別子タイプ
リモート側を識別する方法を指定します。 CISCOルーターのIPアドレスを使用します。

識別子を確認
リモート側をチェックするかどうかを示します。 セキュリティを強化するためにオンにすることができます。

PingテストIPおよびPingテスト間隔(分)
含めることが重要です トラフィックがあるとトンネルが作成され、ネットワークへのトラフィックがあるとCISCOは接続を開始できません。 RUH2には動的IPアドレスがあります。

CA証明書
認証局の証明書は、保存されたファイルからコピーする必要があります。

リモート証明書
リモートルータのトラストポイント証明書は、保存されたファイルからコピーする必要があります。

ローカル証明書
証明機関によって発行されたRUH2証明書は、保存されたファイルからコピーする必要があります。

ローカル秘密鍵
保存されたファイルから秘密鍵をコピーする必要があります。

設定を入力したら、[適用]をクリックして、確立された接続を確認します。

第1段階を確認してください。

CISCOではコマンドを提供します

R1#sh crypto isakmp sa

とりわけ、以下を見ることができます。
abcd 188.170.72.35 QM_IDLE 1014アクティブ

私の場合、RUH2はアドレ​​ス188.170.72.35でインターネットから見ることができます。

フェーズ2を確認します

R1#sh crypto ipsec sa interface g0/0

結果
インターフェイス:GigabitEthernet0 / 0
暗号マップタグ:ISP-statcm、ローカルアドレスabcd

保護されたVRF:(なし)
ローカルident(addr / mask / prot / port):(192.168.1.0/255.255.255.0/0/0)
リモートident(addr / mask / prot / port):(172.16.0.0/255.255.255.128/0/0)
current_peer 188.170.72.35ポート48015
許可、フラグ= {}
#pktsカプセル化:133、#pkts暗号化:133、#pktsダイジェスト:133
#pkts decaps:135、#pkts decrypt:135、#pkts verify:135
#pkts圧縮:0、#pkts圧縮解除:0
圧縮されていない#pkts:0、#pkts compr。 失敗:0
#pktsは解凍されていません:0、#pkts解凍は失敗しました:0
#send errors 0、#recv errors 8

ローカル暗号エンドポイント:abcd、リモート暗号エンドポイント:188.170.72.35
パスmtu 1500、ip mtu 1500、ip mtu idb GigabitEthernet0 / 0
現在の送信SPI:0xEC8D5EF(248042991)
PFS(Y / N):Y、DHグループ:group2

インバウンドesp sas:
spi:0x1231809D(305234077)
変換:esp-aes esp-sha-hmac、
使用中の設定= {Tunnel UDP-Encaps、}
conn id:2019、flow_id:オンボードVPN:19、sibling_flags 80000046、暗号マップ:ISP-statcm
saタイミング:残りのキーの有効期間(k /秒):(4506190/27680)
IVサイズ:16バイト
リプレイ検出サポート:Y
ステータス:アクティブ

インバウンドah sas:

インバウンドpcp sas:

アウトバウンドesp sas:
spi:0xEC8D5EF(248042991)
変換:esp-aes esp-sha-hmac、
使用中の設定= {Tunnel UDP-Encaps、}
conn id:2020、flow_id:オンボードVPN:20、sibling_flags 80000046、暗号マップ:ISP-statcm
saタイミング:残りのキーの有効期間(k /秒):(4506229/27680)
IVサイズ:16バイト
リプレイ検出サポート:Y
ステータス:アクティブ

アウトバウンドah sas:

アウトバウンドpcp sas:

ルーティングテーブルを確認します。
R1#sh ip route
とりわけ、次のような行があります。
172.16.0.0/25はサブネット化され、1サブネット
S 172.16.0.0 [1/0]経由188.170.72.35

pingを確認します。

R1#ping 172.16.0.1 source g0/1

中止するにはエスケープシーケンスを入力します。
5、100バイトのICMPエコーを172.16.0.1に送信すると、タイムアウトは2秒です。
送信元アドレス192.168.1.1で送信されたパケット
!!!
成功率は100パーセント(5/5)、往復最小/平均/最大= 324/357/388ミリ秒

pingには、建物を見て内部インターフェイスを使用します。 ネットワーク。

これで、ルーターの構成が完了しました。

PS:当然、外部インターフェイスでIPSecトラフィックを通過させるには、適切なプロトコルを有効にし、ポートを開く必要があります。 私の場合、これは次のアクセスリストを使用して行われます。

ip access-list extended IPSEC-acl
permit esp any any
permit ahp any any
permit udp host abcd eq isakmp any
permit udp host abcd eq non500-isakmp any
permit udp any host abcd eq isakmp
permit udp any host abcd eq non500-isakmp

Source: https://habr.com/ru/post/J340340/


All Articles