事前共有鍵を使用する場合は、ipsecinit.conf ファイルのポリシーエントリごとに 1 つの事前共有鍵が必要です。IPsec と IKE が動作している間に新しいポリシーエントリを追加すれば、in.iked デーモンはそれらの新しいキーを読み込むことができます。この手順では、次の条件がすでにそろってるものとします。
in.iked デーモンが動作している。
IPsec を使って保護したいインタフェースが、次のように、両システムの /etc/hosts ファイルのエントリとして存在する。
192.168.15.7 ada |
両システムの /etc/inet/ipsecinit.conf ファイルに新しいポリシーエントリが追加されている。たとえば、enigma のエントリが次のようになっている。
{laddr enigma raddr ada} ipsec {auth_algs any encr_algs any sa shared} |
たとえば、ada のエントリが次のようになっている。
{laddr ada raddr enigma} ipsec {auth_algs any encr_algs any sa shared} |
両システムの /etc/inet/ike/config ファイルの ada 上にそのインタフェースの規則が作成されている。たとえば、enigma の規則が次のようになっている。
### ike/config file on enigma, 192.168.116.16 … ## The rule to communicate with ada { label "Enigma-ada" local_addr 192.168.116.16 remote_addr 192.168.15.7 p1_xform { auth_method preshared oakley_group 5 auth_alg md5 encr_alg blowfish } p2_pfs 5 } |
たとえば、ada の規則が次のようになっている。
### ike/config file on ada, 192.168.15.7 … ## The rule to communicate with enigma { label "ada-to-Enigma" local_addr 192.168.15.7 remote_addr 192.168.116.16 p1_xform { auth_method preshared oakley_group 5 auth_alg md5 encr_alg blowfish } p2_pfs 5 } |
auth_method のすべての引数は同じ行になければなりません。
システムコンソールから、スーパーユーザーになるか、同等の役割を引き受けます。
リモートログインすると、セキュリティ上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システム全体のセキュリティがリモートログインセッションレベルに低下します。
in.iked デーモンがキー情報の変更を許可するかどうか確認します。
# /usr/sbin/ikeadm get priv Current privilege level is 0x2, access to keying material enabled |
コマンドから 0x1 または 0x2 の権限レベルが戻された場合には、キー情報を変更できます。レベル 0x0 の場合には、キー情報を操作できません。デフォルトでは、in.iked デーモンは 0x0 の権限レベルで実行されます。
in.iked デーモンがキー情報の変更を許可しない場合は、デーモンを強制終了します。デーモンを強制終了してから、正しい権限レベルでデーモンを再起動します。
たとえば、次のように指定します。
# pkill in.iked # /usr/lib/inet/in.iked -p 2 Setting privilege level to 2! |
ランダム鍵を生成し、その出力を結合して 64 から 448 ビットの鍵を作成します。
Solaris システムでは、od コマンドを使用できます。
# od -X -A n /dev/random | head -4 0fb834c5 8d1fb4ee 500e2bea 071deb2e 781cb483 74411af5 a9671714 672bb174 9ad9364d 53574f27 4aacea56 c34861bb b4509514 145c1845 f857ff2b 6e5e3766 |
コマンドの説明については、乱数を生成する方法と od(1) のマニュアルページを参照してください。
このキーを何らかの方法で通信するシステムの管理者に送信します。
両者は、同じ事前共有鍵を同時に追加する必要があります。
ikeadm コマンドモードの add preshared サブコマンドを使って新しいキー情報を追加します。
ikeadm> add preshared { localidtype id-type localid id remoteidtype id-type remoteid id ike_mode mode key key } |
id-type |
id のタイプ |
id |
IP アドレス (id-type が IP の場合) |
mode |
IKE モード。有効な値は main だけ |
key |
事前共有鍵 (16 進数形式) |
たとえば、ホスト enigma で新しいインタフェース ada 用のキー 192.168.15.7 を追加します。
# ikeadm ikeadm> add preshared { localidtype ip localid 192.168.116.16 remoteidtype ip remoteid 192.168.15.7 ike_mode main key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d } ikeadm: Successfully created new preshared key. |
ホスト ada でも、次のようにして同じキーを追加します。
# ikeadm ikeadm> add preshared { localidtype ip localid 192.168.15.7 remoteidtype ip remoteid 192.168.116.16 ike_mode main key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d } ikeadm: Successfully created new preshared key. |
Error: invalid preshared key definition というメッセージは、add preshared コマンドの引数が正しくないことを示しています。パラメータに入力ミスがあるかもしれません。パラメータを指定していない可能性もあります。コマンドを正確に入力し直して鍵を追加してください。
ikeadm コマンドモードを終了します。
ikeadm> exit # |
システムごとに、in.iked デーモンの権限レベルを低くします。
# ikeadm set priv base |
システムごとに、ipsecinit.conf ファイルを有効にして、追加したインタフェースを保護します。
# ipsecconf -a /etc/inet/ipsecinit.conf |
このコマンドの実行時には警告を読んでください。ソケットがすでにラッチされている (使用されている) 場合には、システムへ侵入される恐れがあります。
システムごとに、ikeadm コマンドを実行して新しい規則を読み込みます。
ada と enigma の新しい規則の例がこの手順の始めにあります。規則は /etc/inet/ike/config ファイルに格納されているため、ファイルの名前を指定する必要はありません。
# ikeadm read rules |
IKE 事前共有鍵がリブート時に確実に使用できるように、/etc/inet/secret/ike.preshared ファイルを編集します。
システムごとに、add preshared コマンドに対する引数をファイルに入力します。
たとえば、enigma システムで、次のキー情報を ike.preshared ファイルに追加します。
# ike.preshared on enigma for the ada interface #… { localidtype IP localid 192.168.116.16 remoteidtype IP remoteid 192.168.15.7 # enigma and ada's shared key in hex (32 - 448 bits required) key 04413a3e68854b732742024d19995f7972136a2f33e5d302bdd7b2624e4c6429 } |
ada システムで、次のキー情報を ike.preshared ファイルに追加します。
# ike.preshared for the ada interface, 192.168.15.7 #… { localidtype IP localid 192.168.15.7 remoteidtype IP remoteid 192.168.116.16 # ada and enigma's shared key in hex (32 - 448 bits required) key 04413a3e68854b732742024d19995f7972136a2f33e5d302bdd7b2624e4c6429 } |