FreeS/WANによるIPSecの導入と運用[後編]
− LinuxでIPSecを使おう −
宮本 久仁男<kmiya@coe.nttdata.co.jp>
NTTデータ COEシステム本部
システム技術開発部第三技術開発担当
2002/3/5
RSA鍵ペアを利用した暗号化通信の設定
暗号化通信とその様子が分かったところで、少し条件を変えた暗号化通信の設定を行ってみましょう。
■暗号化通信ポリシー
事前共有鍵を利用した場合から1カ所だけ変更します。
- エンドツーエンドで暗号化通信を行う
- SAについてはIKEによる自動設定
- IPSec通信時にパケットを暗号化する方式は3DES
- RSA鍵ペアを利用する
4番目が、事前共有鍵から「RSA鍵ペア」に変わっていることに注目してください。RSA鍵ペアを利用する以上、暗号化通信設定にはそれを作成する手順が入ります。
■RSA鍵ペアの作成
RSA鍵ペアを用いる場合は、公開鍵と秘密鍵のペアを事前に作成し、相手に公開鍵を渡す必要があります。
鍵ペアは、ipsecスクリプトを使って作成します。例えば、
# /usr/local/sbin/ipsec rsasigkey 1024
> keypair |
とすることで、「keypair」という名前の1024bit長のRSA鍵ペアを格納したファイルが生成されます。以下に生成されたRSA鍵ペアの例を示します。
002
# for signatures only, UNSAFE FOR ENCRYPTION
#pubkey=0sAQOIH7e+H7VhqUUCjms7A6XPQEKXK5GwPhEBZLcjyzJn4jwYlIGy+
iJ1QfTKRxelt9kQ2JroXGwADptQsukIUpSoZ0N2btUBV+F616MKPtLq6+SksYBbkdVm
/z5/eN0jTP69PQdodlnr/5KnZf0378Qe/NHFHNFs5DSvieq3tvPjew==
#IN KEY 0x4200 4 1 AQOIH7e+H7VhqUUCjms7A6XPQEKXK5GwPhEBZLcjyzJn4jw
YlIGy+iJ1QfTKRxelt9kQ2JroXGwADptQsukIUpSoZ0N2btUBV+F616MKPtLq6+SksYB
bkdVm/z5/eN0jTP69PQdodlnr/5KnZf0378Qe/NHFHNFs5DSvieq3tvPjew==
# (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
Modulus: 0x881fb7be1fb561a945028e6b3b03a5cf4042972b91b03e110164b
723cb3267e23c189481b2fa227541f4ca4717a5b7d910d89ae85c6c000e9b50b2e
9085294a86743766ed50157e17ad7a30a3ed2eaebe4a4b1805b91d566ff3e7f78dd
234cfebd3d07687659ebff92a765fd37efc41efcd1c51cd16ce434af89eab7b6f3e37b
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x16aff3f50548e59c362b17bc89d5f0f7e00b1931ed9d5
fad803b73db4c8866a5b4aec36af329b068e053770bd946494ed82419d164bcaaad19
e2c87c2c0dc371254a786b4bb361a69e790bf2c0ade74e0fe4796437cef6ce317179f
10f2bcd6cdb5e0f1854bc5b68f410a63d0c6cb01b513622440eaac59a8ca9fcc4da
1cc0fb
Prime1: 0xfeb2e4cf120248313214abb197db37bb83e6ddf7b3a694d841e1b5a
017bff1391c8abab6545443a54c87803233e79b90cdcaa318bfca090dd425ee4cb575
a86b
(中略)
Exponent1: 0xa9cc988a0c01857621631d210fe77a7d0299e94fcd19b8902
bebce6aba7ff6261307272438382d18ddafaacc229a67b5de871765d5315b5e8d6
e9eddce4e7047
(中略)
Coefficient: 0xfbd113b31c1d71c694b620ad0f1aff5588f81242796a139a
5f2d83b163569aa46472fdfe0922f450ff0b18bc73d21b11665283d36c6f8e3e2
cc4b32bb8985a8e |
なお、この鍵ペアには秘密鍵が含まれますので、取り扱いには十分に注意してください。
■/etc/ipsec.confの設定
次に/etc/ipsec.confを変更します。実際の設定はリスト4とリスト5を参照してください。事前共有鍵のときに作成したものを基に、
- authbyパラメータの変更
- leftrsasigkeyパラメータの追加
- rightrsasigkeyパラメータの追加
を行っています。
config setup
interfaces="ipsec0=eth0"
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
# defaults for subsequent connection descriptions
conn %default
type=transport
right=10.1.87.157
authby=rsasig
rightrsasigkey=0sAQOIH7e+H7VhqUUCjms7A6XPQEKXK5GwPhEBZLcjyzJn4
jwYlIGy+iJ1QfTKRxelt9kQ2JroXGwADptQsukIUpSoZ0N2btUBV+F616MKPtLq6+SksYB
bkdVm/z5/eN0jTP69PQdodlnr/5KnZf0378Qe/NHFHNFs5DSvieq3tvPjew==
pfs=no
conn kame
left=10.1.87.182
leftrsasigkey=0sAQPp4LSY5zm2qgU9w1Pc/vnvSMT85jBJrHbgd2lCu9/Jq
GYTudPhFikeIUV8MulmZWOLm3LxHkdJuD47cFkngLP9uVSSypMas0KbFZvNlFwMGkAXap
Xz95qLIsKxgwoaMSbZzd3KU9y3o5DX2vu45zW7n+phLaneMevRl0TLYTNsdQ==
auto=start |
リスト4 tripmachineの/etc/ipsec.conf(RSA鍵使用時) |
# /etc/ipsec.conf - FreeS/WAN IPSEC configuration file
config setup
interfaces="ipsec0=eth0"
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
# defaults for subsequent connection descriptions
conn %default
type=transport
right=10.1.87.182
rightrsasigkey=0sAQPp4LSY5zm2qgU9w1Pc/vnvSMT85jBJrHbgd2lCu9/
JqGYTudPhFikeIUV8MulmZWOLm3LxHkdJuD47cFkngLP9uVSSypMas0KbFZvNlFwMGk
AXapXz95qLIsKxgwoaMSbZzd3KU9y3o5DX2vu45zW7n+phLaneMevRl0TLYTNsdQ==
authby=rsasig
pfs=no
conn kame
left=10.1.87.157
leftrsasigkey=0sAQOIH7e+H7VhqUUCjms7A6XPQEKXK5GwPhEBZLcjyzJn
4jwYlIGy+iJ1QfTKRxelt9kQ2JroXGwADptQsukIUpSoZ0N2btUBV+F616MKPtLq6+Sk
sYBbkdVm/z5/eN0jTP69PQdodlnr/5KnZf0378Qe/NHFHNFs5DSvieq3tvPjew==
auto=start |
リスト5 bomberの/etc/ipsec.conf(RSA鍵使用時) |
leftrsasigkeyパラメータおよびrightrsasigkeyパラメータには、生成したRSA鍵ペアファイルの中に格納されている「#pubkey=」で始まる行の内容を設定します。もちろん、「left〜」「right〜」となっているからには、それぞれ対応したホストで生成した鍵ペアに記述された内容を設定する必要があります。
■/etc/ipsec.secretsの設定
実際の設定をリスト6に示します。事前共有鍵のときとは異なり、鍵の種別指定とその内容が含まれます。
: RSA {
# RSA 1024 bits tripmachine.xxxx.co.jp Fri Feb
15 20:12:45 2002
# for signatures only, UNSAFE FOR ENCRYPTION
#pubkey=0sAQOIH7e+H7VhqUUCjms7A6XPQEKXK5GwPhEBZLcjyzJn4jwYlIGy
+iJ1QfTKRxelt9kQ2JroXGwADptQsukIUpSoZ0N2btUBV+F616MKPtLq6+SksYBbkdVm/z
5/eN0jTP69PQdodlnr/5KnZf0378Qe/NHFHNFs5DSvieq3tvPjew==
#IN KEY 0x4200 4 1 AQOIH7e+H7VhqUUCjms7A6XPQEKXK5GwPhEBZLcjyzJ
n4jwYlIGy+iJ1QfTKRxelt9kQ2JroXGwADptQsukIUpSoZ0N2btUBV+F616MKPtLq6+Sks
YBbkdVm/z5/eN0jTP69PQdodlnr/5KnZf0378Qe/NHFHNFs5DSvieq3tvPjew==
# (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
Modulus: 0x881fb7be1fb561a945028e6b3b03a5cf4042972b91b03e11016
4b723cb3267e23c189481b2fa227541f4ca4717a5b7d910d89ae85c6c000e9b50b2e90
85294a86743766ed50157e17ad7a30a3ed2eaebe4a4b1805b91d566ff3e7f78dd234cf
ebd3d07687659ebff92a765fd37efc41efcd1c51cd16ce434af89eab7b6f3e37b
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x16aff3f50548e59c362b17bc89d5f0f7e00b1931ed9
d5fad803b73db4c8866a5b4aec36af329b068e053770bd946494ed82419d164bcaaad1
9e2c87c2c0dc371254a786b4bb361a69e790bf2c0ade74e0fe4796437cef6ce317179f
10f2bcd6cdb5e0f1854bc5b68f410a63d0c6cb01b513622440eaac59a8ca9fcc4da1cc
0fb
Prime1: 0xfeb2e4cf120248313214abb197db37bb83e6ddf7b3a694d841e1
b5a017bff1391c8abab6545443a54c87803233e79b90cdcaa318bfca090dd425ee4cb5
75a86b
(中略)
Exponent1: 0xa9cc988a0c01857621631d210fe77a7d0299e94fcd19b8902
bebce6aba7ff6261307272438382d18ddafaacc229a67b5de871765d5315b5e8d6e9ed
dce4e7047
(中略)
Coefficient: 0xfbd113b31c1d71c694b620ad0f1aff5588f81242796a139
a5f2d83b163569aa46472fdfe0922f450ff0b18bc73d21b11665283d36c6f8e3e2cc4b
32bb8985a8e
} |
リスト6 tripmachineの/etc/ipsec.secrets(RSA鍵使用時) |
なお、このファイルは内容にRSA鍵ペアのうちの秘密鍵を含むので、管理者以外は読めないようにパーミッションを設定してください。
■暗号化通信の様子
ここでも暗号化通信の様子をモニタしてみます。例によって、以下のtelnetの様子で試してみました。
[root@tripmachine /etc]# telnet bomber
Trying 10.1.87.182...
Connected to bomber.xxxx.co.jp.
Escape character is '^]'.
login: kmiya
Password:
Last login: Mon Feb 18 11:49:58 from tripmachine
[kmiya@bomber ~]% |
これをパケットダンプした様子は以下のとおりです。このように、パケットの流れが分からなくなっています。
[root@bomber kmiya]# tcpdump host tripmachine
and bomber
tcpdump: listening on eth0
11:50:58.779154 tripmachine.500 > bomber.500: udp 176 (DF)
11:50:58.779674 bomber.500 > tripmachine.500: udp 80 (DF)
11:50:58.840242 tripmachine.500 > bomber.500: udp 244 (DF)
11:50:58.970237 bomber.500 > tripmachine.500: udp 244 (DF)
11:50:59.106209 tripmachine.500 > bomber.500: udp 172 (DF)
11:50:59.151514 bomber.500 > tripmachine.500: udp 172 (DF)
11:50:59.161343 tripmachine.500 > bomber.500: udp 140 (DF)
11:50:59.163783 bomber.500 > tripmachine.500: udp 116 (DF)
11:50:59.192704 tripmachine.500 > bomber.500: udp 52 (DF)
11:50:59.923218 tripmachine > bomber: ip-proto-50 76 (DF)
11:50:59.923515 bomber > tripmachine: ip-proto-50 76 (DF)
11:50:59.923819 tripmachine > bomber: ip-proto-50 68 (DF)
11:50:59.924459 tripmachine > bomber: ip-proto-50 92 (DF) |
今回のまとめ
今回の記事では、FreeS/WANのコンパイル/インストールから、FreeS/WANをインストールしたホスト同士での通信設定と確認を行いました。ここまでで、FreeS/WANを用いた暗号化通信についてはお分かりいただけたと思います。
しかし、Linux以外のOSとも暗号化通信したいという方も多いと思います。今回はFreeS/WANだけを扱いましたが、近日中にFreeS/WAN
とそれ以外のIPSecスタックとの相互接続について紹介する予定です。
■参照サイト
|
2/2
|
|
Index |
FreeS/WANによるIPSecの導入と運用[後編]
− LinuxでIPSecを使おう − |
|
|
Page
1
事前共有鍵を利用した暗号化通信の設定
動作確認用ネットワーク環境
暗号化通信ポリシーの決定
/etc/ipsec.confの設定
/etc/ipsec.secretsの設定
暗号化通信のモニタリング
暗号化通信の内容のモニタリング |
|
Page 2
RSA鍵ペアを利用した暗号化通信の設定
暗号化通信ポリシー
RSA鍵ペアの作成
/etc/ipsec.confの設定
/etc/ipsec.secretsの設定
暗号化通信の様子
今回のまとめ
参照サイト |
|
Linux Squareフォーラム セキュリティ関連記事 |
Linux & OSS 記事ランキング
本日
月間