ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (IP サービス) Oracle Solaris 10 8/11 Information Library (日本語) |
1. Oracle Solaris TCP/IP プロトコル群 (概要)
5. TCP/IP ネットワークサービスと IPv4 アドレス指定の構成 (作業)
10. TCP/IP と IPv4 の詳細 (リファレンス)
18. DHCP コマンドと DHCP ファイル (リファレンス)
IPsec で 2 つのシステム間のトラフィックを保護するには
IPsec を使って Web 以外のトラフィックから Web サーバーを保護する方法
IPsec セキュリティーアソシエーションを手動で作成する方法
IPsec によってパケットが保護されていることを確認する方法
トンネルモードのトンネルを使用して VPN を IPsec で保護する例
IPsec で VPN を保護する作業のためのネットワークトポロジの説明
IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法
IPv6 トンネルモードの IPsec トンネルで VPN を保護する方法
IPv4 トランスポートモードの IPsec トンネルで VPN を保護する方法
21. IP セキュリティーアーキテクチャー (リファレンス)
25. Oracle Solaris の IP フィルタ (概要)
29. モバイル IP のファイルおよびコマンド (リファレンス)
次の作業マップに、インターネット経由のトラフィックを保護するように IPsec を構成する手順を示します。これらの手順を使用すると、インターネットで隔てられている 2 つのシステムの間に、セキュリティー保護された仮想プライベートネットワーク (VPN) を設定できます。この技術の一般的な使用法の 1 つは、自宅勤務者と会社のオフィスの間のトラフィックを保護することです。
|
この節以降に説明する手順では、次の設定がすでになされているものとします。図 20-2 はこのネットワークを表しています。
各システムは IPv4 アドレス空間を使用します。
IPv6 アドレスを使用する同様の例については、「IPv6 トンネルモードの IPsec トンネルで VPN を保護する方法」を参照してください。
各システムには 2 つのインタフェースがあります。hme0 インタフェースはインターネットに接続しています。この例では、インターネット IP アドレスは 192.168 で始まります。hme1 インタフェースは社内の LAN、すなわちイントラネットに接続します。この例では、イントラネット IP アドレスは 10 で始まります。
各システムには、SHA–1 アルゴリズムを使用した ESP 認証が必要です。SHA–1 アルゴリズムには 160 ビットのキーが必要です。
各システムには、AES アルゴリズムを使用した ESP 暗号化が必要です。AES アルゴリズムは 128 ビットのキーまたは 256 ビットのキーを使用します。
各システムは、インターネットに直接アクセスするルーターに接続できます。
各システムは、共有セキュリティーアソシエーションを使用します。
図 20-2 インターネットで隔てられているオフィス間の VPN の例
前の図に示すように、IPv4 ネットワーク向けの手順では次の構成パラメータを使用します。
|
手順では次の IPv6 アドレスを使用します。トンネル名は同じです。
|
トンネルモードでは、内側の IP パケットによって、その内容を保護する IPsec ポリシーが決まります。
この手順は、「IPsec で 2 つのシステム間のトラフィックを保護するには」の手順の応用です。設定については、「IPsec で VPN を保護する作業のためのネットワークトポロジの説明」を参照してください。
注 - 両方のシステムでこの手順を実行してください。
この手順では、2 つのシステムを接続するだけでなく、これら 2 つのシステムに接続している 2 つのイントラネットを接続します。この手順における 2 つのシステムはゲートウェイとして機能します。
始める前に
システムまたは共有 IP ゾーンの IPsec ポリシーの構成は、大域ゾーンで行う必要があります。排他的 IP ゾーンについては、非大域ゾーンで IPsec ポリシーを構成します。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
注 - リモートログインすると、セキュリティー上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティーがリモートログインセッションレベルに低下します。セキュリティー保護されたリモートログインには、ssh コマンドを使用してください。
# routeadm Configuration Current Current Option Configuration System State -------------------------------------------------- IPv4 forwarding disabled disabled IPv4 routing default (enabled) enabled …
IP 転送と IP 動的経路制御が有効の場合は、無効にします。
# routeadm -d ipv4-routing -d ipv4-forwarding # routeadm -u
IP 転送をオフにすると、このシステムを経由したネットワーク間のパケット送信ができなくなります。routeadm コマンドの説明については、routeadm(1M) のマニュアルページを参照してください。
# ndd -set /dev/ip ip_strict_dst_multihoming 1
IP 厳密宛先マルチホームをオンに設定すると、システムの宛先アドレスのうちの 1 つに宛てたパケットは、正しい宛先アドレスに必ず到着します。
厳密宛先マルチホームが有効な状態では、特定のインタフェースに到着したパケットに、そのインタフェースのいずれかのローカル IP アドレスを指定する必要があります。その他のパケットは、システムのほかのローカルアドレスが指定されているものも含めてすべて捨てられます。
注 - 「制限付き」SMF プロファイルでシステムをインストールした場合、この手順は省略できます。Solaris Secure Shell 以外のネットワークサービスは無効になります。
ネットワークサービスを無効にすると、IP パケットがシステムにダメージを与えるのを防止できます。たとえば、SNMP デーモン、telnet 接続、rlogin 接続などを最大限に活用できます。
次のオプションのいずれかを選択します。
Solaris 10 11/06 以降のリリースが稼働している場合は、「制限付き」SMF プロファイルを実行します。
# netservices limited
それ以外の場合は、ネットワークサービスを個別に無効にします。
# svcadm disable network/ftp:default # svcadm disable network/finger:default # svcadm disable network/login:rlogin # svcadm disable network/nfs/server:default # svcadm disable network/rpc/rstat:default # svcadm disable network/smtp:sendmail # svcadm disable network/telnet:default
ループバックマウントと ssh サービスが稼働していることを確認します。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
次のオプションのいずれかを選択します。
SA 用のキーを管理するように IKE を設定します。「IKE の設定 (作業マップ)」のいずれかの手順に従って、VPN 用の IKE を構成します。
キーを手動で管理する決定的な理由がある場合は、「IPsec セキュリティーアソシエーションを手動で作成する方法」を参照してください。
/etc/inet/ipsecinit.conf ファイルを編集して、VPN 用の IPsec ポリシーを追加します。ポリシーを強化する方法については、例 20-12 を参照してください。その他の例については、「トンネルモードのトンネルを使用して VPN を IPsec で保護する例」を参照してください。
このポリシーでは、ローカル LAN 上のシステムとゲートウェイの内部 IP アドレスの間に IPsec 保護は必要でないため、bypass 文を追加します。
# LAN traffic to and from this host can bypass IPsec. {laddr 10.16.16.6 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# LAN traffic to and from this host can bypass IPsec. {laddr 10.1.3.3 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
ファイルの構文は次のとおりです。
system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
192.168.116.16 router
192.168.13.213 router
IP 転送とは、別のインタフェースから到着したパケットを転送できることを意味します。IP 転送はまた、送信するパケットがもともとは別のインタフェースから発信されたパケットである可能性も意味します。パケットを正しく転送するには、受信インタフェースと送信インタフェースの IP 転送をオンに設定しておきます。
hme1 インタフェースはイントラネットの「内部」にあるため、hme1 の IP 転送はオンに設定しておきます。さらに、ip.tun0 はインターネットを通してこれら 2 つのシステムを接続するため、ip.tun0 の IP 転送はオンに設定しておきます。
hme0 インタフェースの IP 転送はオフです。そのため、「外部」からパケットが保護イントラネットに侵入するのを防ぐことができます。「外部」とはインターネットを意味します。
10.16.16.6 private
10.1.3.3 private
hme0 の IP 転送がオフになっていても、経路制御プロトコルの実装によっては、このインタフェースを通知することがあります。たとえば、in.routed プロトコルは、イントラネット内のピアにパケットが転送される際に hme0 を有効なインタフェースとして通知する場合があります。インタフェースの「private」フラグを設定して、このような通知が行われないようにします。
デフォルトルートは、インターネットに直接アクセスできるルーターでなければなりません。
# route add default 192.168.116.4
# route add default 192.168.13.5
hme0 インタフェースはイントラネットの一部ではありませんが、インターネットを介してそのピアシステムにアクセスする必要があります。hme0 は、自身のピアを見つけるために、インターネット経路制御情報を必要とします。インターネットの残りの要素にとって、VPN システムは、ルーターというよりもホストのような存在です。したがって、デフォルトルーターを使用するか、ルーター発見プロトコルを実行すれば、ピアシステムを見つけることができます。詳細については、route(1M) と in.routed(1M) のマニュアルページを参照してください。
注 - 次の手順は、Solaris 10 4/09 リリースより前のリリースを実行しているシステムでトンネルを構成するためのものです。
ifconfig コマンドを使用してポイントツーポイントインタフェースを作成します。
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 system1-point system2-point \ tsrc system1-taddr tdst system2-taddr
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 10.1.3.3 10.16.16.6 \ tsrc 192.168.13.213 tdst 192.168.116.16
# ipsecconf
# ifconfig ip.tun0 router up
# ifconfig hme1 router
IP 転送とは、別のインタフェースから到着したパケットを転送できることを意味します。IP 転送はまた、送信するパケットがもともとは別のインタフェースから発信されたパケットである可能性も意味します。パケットを正しく転送するには、受信インタフェースと送信インタフェースの IP 転送をオンに設定しておきます。
hme1 インタフェースはイントラネットの「内部」にあるため、hme1 の IP 転送はオンに設定しておきます。さらに、ip.tun0 はインターネットを通してこれら 2 つのシステムを接続するため、ip.tun0 の IP 転送はオンに設定しておきます。
hme0 インタフェースの IP 転送はオフです。そのため、「外部」からパケットが保護イントラネットに侵入するのを防ぐことができます。「外部」とはインターネットを意味します。
# ifconfig hme0 private
hme0 の IP 転送がオフになっていても、経路制御プロトコルの実装によっては、このインタフェースを通知することがあります。たとえば、in.routed プロトコルは、イントラネット内のピアにパケットが転送される際に hme0 を有効なインタフェースとして通知する場合があります。インタフェースの「private」フラグを設定して、このような通知が行われないようにします。
デフォルトルートは、インターネットに直接アクセスできるルーターでなければなりません。
# route add default 192.168.116.4
# route add default 192.168.13.5
hme0 インタフェースはイントラネットの一部ではありませんが、インターネットを介してそのピアシステムにアクセスする必要があります。hme0 は、自身のピアを見つけるために、インターネット経路制御情報を必要とします。インターネットの残りの要素にとって、VPN システムは、ルーターというよりもホストのような存在です。したがって、デフォルトルーターを使用するか、ルーター発見プロトコルを実行すれば、ピアシステムを見つけることができます。詳細については、route(1M) と in.routed(1M) のマニュアルページを参照してください。
system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
# cat /etc/hostname.hme0 ## enigma 10.16.16.6 private
# cat /etc/hostname.hme1 ## enigma 192.168.116.16 router
# cat /etc/hostname.hme0 ## partym 10.1.3.3 private
# cat /etc/hostname.hme1 ## partym 192.168.13.213 router
# routeadm -e ipv4-routing # routeadm -u
経路制御プロトコルを実行する前に経路制御プロトコルの構成が必要な場合があります。詳細は、「Oracle Solaris の経路制御プロトコル」を参照してください。手順については、「IPv4 ルーターの構成方法」を参照してください。
例 20-10 テスト時に一時的なトンネルを作成する
この例では、管理者が Solaris 10 4/09 システムでトンネルの作成をテストします。あとで 「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順を使用して、これらを永続的なトンネルにします。テスト中に、管理者はシステム system1 および system2 で次の一連の手順を実行します。
両方のシステムで、管理者は 「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の最初から 5 番目までの手順を完了します。
管理者は ifconfig コマンドを使用して、一時的なトンネルを plumb して構成します。
system1 # ifconfig ip.tun0 plumb system1 # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213 # ssh system2 Password: admin-password-on-system2 system2 # ifconfig ip.tun0 plumb system2 # ifconfig ip.tun0 10.1.3.3 10.16.16.6 \ tsrc 192.168.13.213 tdst 192.168.116.16
管理者はトンネルに対して IPsec ポリシーを有効にします。このポリシーは、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順 4 で作成したものです。
system1 # svcadm refresh svc:/network/ipsec/policy:default system2 # svcadm refresh svc:/network/ipsec/policy:default
管理者はインターネットインタフェースをルーターにし、経路制御プロトコルがイントラネットインタフェースを越えないようにします。
system1 # ifconfig hme1 router ; ifconfig hme0 private system2 # ifconfig hme1 router ; ifconfig hme0 private
両方のシステムで 「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順 12 と 手順 22 を実行して、ルートを手動で追加し、経路制御プロトコルを実行します。
例 20-11 コマンド行を使用して以前のバージョンの Solaris システムにトンネルを作成する
Solaris 10 7/07 リリースでは、ifconfig コマンドの構文が簡素化されました。この例では、Solaris 10 7/07 リリースより前のバージョンの Solaris を実行しているシステムに対するトンネルの作成を管理者がテストします。ifconfig コマンドの元の構文を使用すれば、通信する 2 つのシステムで同じコマンドを使用できます。あとで 「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順を使用して、これらを永続的なトンネルにします。
テスト中に、管理者はシステム system1 および system2 で次の手順を実行します。
両方のシステムで、管理者は 「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の最初から 5 番目までの手順を完了します。
管理者はトンネルを plumb して構成します。
system1 # ifconfig ip.tun0 plumb system1 # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213 \ encr_algs aes encr_auth_algs sha1 system1 # ifconfig ip.tun0 router up
# ssh system2 Password: admin-password-on-system2 system2 # ifconfig ip.tun0 plumb system2 # ifconfig ip.tun0 10.1.3.3 10.16.16.6 \ tsrc 192.168.13.213 tdst 192.168.116.16 \ encr_algs aes encr_auth_algs sha1 system2 # ifconfig ip.tun0 router up
管理者はトンネルに対して IPsec ポリシーを有効にします。このポリシーは、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順 4 で作成したものです。
system1 # svcadm refresh svc:/network/ipsec/policy:default system2 # svcadm refresh svc:/network/ipsec/policy:default
管理者はインターネットインタフェースをルーターにし、経路制御プロトコルがイントラネットインタフェースを越えないようにします。
system1 # ifconfig hme1 router ; ifconfig hme0 private system2 # ifconfig hme1 router ; ifconfig hme0 private
両方のシステムで 「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順 12 と 手順 22 を実行して、ルートを追加します。
例 20-12 LAN 上のすべてのシステムでの IPsec ポリシーの要求
この例では、手順 4 で構成した bypass ポリシーをコメントにして、保護を強化します。このポリシーを構成した場合は、LAN 上のすべてのシステムが、ルーターと通信するために IPsec を有効にしなければなりません。
# LAN traffic must implement IPsec. # {laddr 10.1.3.3 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1}
例 20-13 IPsec を使用して Telnet トラフィックと SMTP トラフィックを異なる方法で保護する
この例の最初の規則は、ポート 23 の telnet トラフィックを Blowfish と SHA-1 で保護します。2 番目の規則はポート 25 の SMTP トラフィックを AES と MD5 で保護します。
{laddr 10.1.3.3 ulp tcp dport 23 dir both} ipsec {encr_algs blowfish encr_auth_algs sha1 sa unique} {laddr 10.1.3.3 ulp tcp dport 25 dir both} ipsec {encr_algs aes encr_auth_algs md5 sa unique}
例 20-14 トンネルモードの IPsec トンネルを使用して、ほかのネットワークトラフィックとは異なる方法でサブネットを保護する
次のトンネル構成は、トンネルを経由するサブネット 10.1.3.0/24 からのすべてのトラフィックを保護します。
{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
次のトンネル構成は、トンネルを経由するサブネット 10.1.3.0/24 からほかのサブネットへのトラフィックを保護します。10.2.x.x で始まるサブネットはトンネルを経由します。
{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.1.0/24} ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}
{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.2.0/24} ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}
{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.3.0/24} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
IPv6 ネットワークで VPN を使用するには、IPv4 ネットワークの場合と同じ手順を実行します。ただし、コマンドの構文は少し違います。特定のコマンドを実行する理由についての詳細は、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の該当する手順を参照してください。
注 - 両方のシステムでこの手順を実行してください。
この手順では、次の構成パラメータを使用します。
|
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
注 - リモートログインすると、セキュリティー上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティーがリモートログインセッションレベルに低下します。セキュリティー保護されたリモートログインには、ssh コマンドを使用してください。
これらのコマンドの効果については、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の手順 2 を参照してください。
# routeadm Configuration Current Current Option Configuration System State -------------------------------------------------- … IPv6 forwarding disabled disabled IPv6 routing disabled disabled
IP 転送や IP 動的経路制御が有効な場合は、次のように入力して無効にします。
# routeadm -d ipv6-forwarding -d ipv6-routing # routeadm -u
# ndd -set /dev/ip ip6_strict_dst_multihoming 1
注意 - システムの起動時に、ip6_strict_dst_multihoming の値はデフォルトに戻ります。変更した値を持続させる方法については、「IP のスプーフィングを防止する方法」を参照してください。 |
注 - 「制限付き」SMF プロファイルでシステムをインストールした場合、この手順は省略できます。Solaris Secure Shell 以外のネットワークサービスは無効になります。
ネットワークサービスを無効にすると、IP パケットがシステムにダメージを与えるのを防止できます。たとえば、SNMP デーモン、telnet 接続、rlogin 接続などを最大限に活用できます。
次のオプションのいずれかを選択します。
Solaris 10 11/06 以降のリリースが稼働している場合は、「制限付き」SMF プロファイルを実行します。
# netservices limited
それ以外の場合は、ネットワークサービスを個別に無効にします。
# svcadm disable network/ftp:default # svcadm disable network/finger:default # svcadm disable network/login:rlogin # svcadm disable network/nfs/server:default # svcadm disable network/rpc/rstat:default # svcadm disable network/smtp:sendmail # svcadm disable network/telnet:default
ループバックマウントと ssh サービスが稼働していることを確認します。
# svcs | grep network online Aug_02 svc:/network/loopback:default ... online Aug_09 svc:/network/ssh:default
次のオプションのいずれかを選択します。
SA 用のキーを管理するように IKE を設定します。「IKE の設定 (作業マップ)」のいずれかの手順に従って、VPN 用の IKE を構成します。
キーを手動で管理する決定的な理由がある場合は、「IPsec セキュリティーアソシエーションを手動で作成する方法」を参照してください。
/etc/inet/ipsecinit.conf ファイルを編集して、VPN 用の IPsec ポリシーを追加します。
# IPv6 Neighbor Discovery messages bypass IPsec. {ulp ipv6-icmp type 133-137 dir both} pass {} # LAN traffic to and from this host can bypass IPsec. {laddr 6000:6666::aaaa:1116 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip6.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# IPv6 Neighbor Discovery messages bypass IPsec. {ulp ipv6-icmp type 133-137 dir both} pass {} # LAN traffic to and from this host can bypass IPsec. {laddr 6000:3333::eeee:1113 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip6.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
2001::aaaa:6666:6666 inet6 router
2001::eeee:3333:3333 inet6 router
6000:6666::aaaa:1116 inet6 private
6000:3333::eeee:1113 inet6 private
注 - 次の手順は、Solaris 10 4/09 リリースより前のリリースを実行しているシステムでトンネルを構成するためのものです。
# ifconfig ip6.tun0 inet6 plumb # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333
# ifconfig ip6.tun0 inet6 plumb # ifconfig ip6.tun0 inet6 6000:3333::eeee:1113 6000:6666::aaaa:1116 \ tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666
# ipsecconf
# ifconfig ip6.tun0 router up
# ifconfig hme1 router
# ifconfig hme0 private
デフォルトルートは、インターネットに直接アクセスできるルーターでなければなりません。
このエントリは、手順 14 で ifconfigコマンドに渡されたパラメータを複製します。
6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 \ tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# cat /etc/hostname6.hme0 ## enigma 6000:6666::aaaa:1116 inet6 private
# cat /etc/hostname6.hme1 ## enigma 2001::aaaa:6666:6666 inet6 router
# cat /etc/hostname6.hme0 ## partym 6000:3333::eeee:1113 inet6 private
# cat /etc/hostname6.hme1 ## partym 2001::eeee:3333:3333 inet6 router
# routeadm -e ipv6-routing # routeadm -u
経路制御プロトコルを実行する前に経路制御プロトコルの構成が必要な場合があります。詳細は、「Oracle Solaris の経路制御プロトコル」を参照してください。手順については、「IPv6 ルーターの構成」を参照してください。
トランスポートモードでは、外側のヘッダーによって、内側の IP パケットを保護する IPsec ポリシーが決まります。
この手順は、「IPsec で 2 つのシステム間のトラフィックを保護するには」の手順の応用です。この手順では、2 つのシステムを接続するだけでなく、これら 2 つのシステムに接続している 2 つのイントラネットを接続します。この手順における 2 つのシステムはゲートウェイとして機能します。
この手順では、「IPsec で VPN を保護する作業のためのネットワークトポロジの説明」で説明されている設定を使用します。特定のコマンドを実行する理由についての詳細は、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の該当する手順を参照してください。
注 - 両方のシステムでこの手順を実行してください。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
注 - リモートログインすると、セキュリティー上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティーがリモートログインセッションレベルに低下します。セキュリティー保護されたリモートログインには、ssh コマンドを使用してください。
# routeadm Configuration Current Current Option Configuration System State -------------------------------------------------- IPv4 forwarding disabled disabled IPv4 routing default (enabled) enabled …
IP 転送や IP 動的経路制御が有効な場合は、次のように入力して無効にします。
# routeadm -d ipv4-routing -d ipv4-forwarding # routeadm -u
# ndd -set /dev/ip ip_strict_dst_multihoming 1
注意 - システムの起動時に、ip_strict_dst_multihoming の値はデフォルトに戻ります。変更した値を持続させる方法については、「IP のスプーフィングを防止する方法」を参照してください。 |
注 - 「制限付き」SMF プロファイルでシステムをインストールした場合、この手順は省略できます。Solaris Secure Shell 以外のネットワークサービスは無効になります。
ネットワークサービスを無効にすると、IP パケットがシステムにダメージを与えるのを防止できます。たとえば、SNMP デーモン、telnet 接続、rlogin 接続などを最大限に活用できます。
次のオプションのいずれかを選択します。
Solaris 10 11/06 以降のリリースが稼働している場合は、「制限付き」SMF プロファイルを実行します。
# netservices limited
それ以外の場合は、ネットワークサービスを個別に無効にします。
# svcadm disable network/ftp:default # svcadm disable network/finger:default # svcadm disable network/login:rlogin # svcadm disable network/nfs/server:default # svcadm disable network/rpc/rstat:default # svcadm disable network/smtp:sendmail # svcadm disable network/telnet:default
ループバックマウントと ssh サービスが稼働していることを確認します。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
次のオプションのいずれかを選択します。
SA 用のキーを管理するように IKE を設定します。「IKE の設定 (作業マップ)」のいずれかの手順に従って、VPN 用の IKE を構成します。
キーを手動で管理する決定的な理由がある場合は、「IPsec セキュリティーアソシエーションを手動で作成する方法」を参照してください。
/etc/inet/ipsecinit.conf ファイルを編集して、VPN 用の IPsec ポリシーを追加します。ポリシーを強化する方法については、例 20-15 を参照してください。
# LAN traffic to and from this host can bypass IPsec. {laddr 10.16.16.6 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# LAN traffic to and from this host can bypass IPsec. {laddr 10.1.3.3 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
192.168.116.16 router
192.168.13.213 router
10.16.16.6 private
10.1.3.3 private
注 - 次の手順は、Solaris 10 4/09 リリースより前のリリースを実行しているシステムでトンネルを構成するためのものです。
ifconfig コマンドを使用してポイントツーポイントインタフェースを作成します。
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 system1-point system2-point \ tsrc system1-taddr tdst system2-taddr
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 10.1.3.3 10.16.16.6 \ tsrc 192.168.13.213 tdst 192.168.116.16
# ipsecconf
# ifconfig ip.tun0 router up
# ifconfig hme1 router
# ifconfig hme0 private
デフォルトルートは、インターネットに直接アクセスできるルーターでなければなりません。
# route add default router-on-hme0-subnet
system1-point system2-point tsrc system1-taddr \ tdst system2-taddr encr_algs aes encr_auth_algs sha1 router up
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 \ tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 \ tdst 192.168.116.16 router up
# cat /etc/hostname.hme0 ## enigma 10.16.16.6 private
# cat /etc/hostname.hme1 ## enigma 192.168.116.16 router
# cat /etc/hostname.hme0 ## partym 10.1.3.3 private
# cat /etc/hostname.hme1 ## partym 192.168.13.213 router
# routeadm -e ipv4-routing # routeadm -u
例 20-15 すべてのシステムにトランスポートモードで IPsec ポリシーを要求する
この例では、手順 4 で構成した bypass ポリシーをコメントにして、保護を強化します。このポリシーを構成した場合は、LAN 上のすべてのシステムが、ルーターと通信するために IPsec を有効にしなければなりません。
# LAN traffic must implement IPsec. # {laddr 10.1.3.3 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1}
例 20-16 推奨されなくなった構文を使用してトランスポートモードの IPsec トンネルを構成する
この例では、Solaris 10 7/07 システムを、Solaris 10 リリースを実行しているシステムに接続します。したがって、管理者は構成ファイルで Solaris 10 の構文を使用し、ifconfig コマンドに IPsec アルゴリズムを含めます。
管理者は、「IPv4 トランスポートモードの IPsec トンネルで VPN を保護する方法」の手順に従いますが、構文を次のように変更します。
手順 4 で、ipsecinit.conf ファイルの構文は次のとおりです。
# LAN traffic to and from this address can bypass IPsec. {laddr 10.1.3.3 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {} ipsec {encr_algs aes encr_auth_algs sha1}
手順 14 から手順 16 で、セキュアトンネルを構成するための構文は次のとおりです。
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213 \ encr_algs aes encr_auth_algs sha1 # ifconfig ip.tun0 router up
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213 \ encr_algs aes encr_auth_algs sha1
ifconfig コマンドに渡す IPsec ポリシーは、ipsecinit.conf ファイルに指定されている IPsec ポリシーと同じでなければなりません。各システムは、リブート時にそのポリシーを含む ipsecinit.conf ファイルを読み込みます。
手順 20 で、hostname.ip.tun0 ファイルの構文は次のとおりです。
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 \ tdst 192.168.13.213 encr_algs aes encr_auth_algs sha1 router up
IPv6 ネットワークで VPN を使用するには、IPv4 ネットワークの場合と同じ手順を実行します。ただし、コマンドの構文は少し違います。特定のコマンドを実行する理由についての詳細は、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」の該当する手順を参照してください。
注 - 両方のシステムでこの手順を実行してください。
この手順では、次の構成パラメータを使用します。
|
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
注 - リモートログインすると、セキュリティー上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティーがリモートログインセッションレベルに低下します。セキュリティー保護されたリモートログインには、ssh コマンドを使用してください。
# routeadm Configuration Current Current Option Configuration System State -------------------------------------------------- … IPv6 forwarding disabled disabled IPv6 routing disabled disabled
IP 転送や IP 動的経路制御が有効な場合は、次のように入力して無効にします。
# routeadm -d ipv6-forwarding -d ipv6-routing # routeadm -u
# ndd -set /dev/ip ip6_strict_dst_multihoming 1
注意 - システムの起動時に、ip6_strict_dst_multihoming の値はデフォルトに戻ります。変更した値を持続させる方法については、「IP のスプーフィングを防止する方法」を参照してください。 |
ループバックマウントと ssh サービスが稼働していることを確認します。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
次のオプションのいずれかを選択します。
SA 用のキーを管理するように IKE を設定します。「IKE の設定 (作業マップ)」のいずれかの手順に従って、VPN 用の IKE を構成します。
キーを手動で管理する決定的な理由がある場合は、「IPsec セキュリティーアソシエーションを手動で作成する方法」を参照してください。
/etc/inet/ipsecinit.conf ファイルを編集して、VPN 用の IPsec ポリシーを追加します。
# IPv6 Neighbor Discovery messages bypass IPsec. {ulp ipv6-icmp type 133-137 dir both} pass {} # LAN traffic can bypass IPsec. {laddr 6000:6666::aaaa:1116 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip6.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1}
# IPv6 Neighbor Discovery messages bypass IPsec. {ulp ipv6-icmp type 133-137 dir both} pass {} # LAN traffic can bypass IPsec. {laddr 6000:3333::eeee:1113 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {tunnel ip6.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
2001::aaaa:6666:6666 inet6 router
2001::eeee:3333:3333 inet6 router
6000:6666::aaaa:1116 inet6 private
6000:3333::eeee:1113 inet6 private
注 - 次の手順は、Solaris 10 4/09 リリースより前のリリースを実行しているシステムでトンネルを構成するためのものです。
# ifconfig ip6.tun0 inet6 plumb # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333
# ifconfig ip6.tun0 inet6 plumb # ifconfig ip6.tun0 inet6 6000:3333::eeee:1113 6000:6666::aaaa:1116 \ tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666
# ipsecconf
# ifconfig ip6.tun0 router up
# ifconfig hme1 router
# ifconfig hme0 private
デフォルトルートは、インターネットに直接アクセスできるルーターでなければなりません。
このエントリは、手順 14 で ifconfigコマンドに渡されたパラメータを複製します。
6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 \ tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# cat /etc/hostname6.hme0 ## enigma 6000:6666::aaaa:1116 inet6 private
# cat /etc/hostname6.hme1 ## enigma 2001::aaaa:6666:6666 inet6 router
# cat /etc/hostname6.hme0 ## partym 6000:3333::eeee:1113 inet6 private
# cat /etc/hostname6.hme1 ## partym2001::eeee:3333:3333 inet6 router
# routeadm -e ipv6-routing # routeadm -u
例 20-17 推奨されなくなった構文を使用して IPv6 トランスポートモードの IPsec トンネルを構成する
この例では、Solaris 10 7/07 システムを、Solaris 10 リリースを実行しているシステムに接続します。したがって、管理者は構成ファイルで Solaris 10 の構文を使用し、ifconfig コマンドに IPsec アルゴリズムを含めます。
管理者は、「IPv6 トランスポートモードの IPsec トンネルで VPN を保護する方法」の手順に従いますが、構文を次のように変更します。
手順 4 で、ipsecinit.conf ファイルの構文は次のとおりです。
# IPv6 Neighbor Discovery messages bypass IPsec. {ulp ipv6-icmp type 133-137 dir both} pass {} # LAN traffic can bypass IPsec. {laddr 6000:3333::eeee:1113 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {} ipsec {encr_algs aes encr_auth_algs sha1}
手順 14 から手順 17 で、セキュアトンネルを構成するための構文は次のとおりです。
# ifconfig ip6.tun0 inet6 plumb # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 \ encr_algs aes encr_auth_algs sha1 # ifconfig ip6.tun0 inet6 router up
ifconfig コマンドに渡す IPsec ポリシーは、ipsecinit.conf ファイルに指定されている IPsec ポリシーと同じでなければなりません。各システムは、リブート時にそのポリシーを含む ipsecinit.conf ファイルを読み込みます。
手順 20 で、hostname6.ip6.tun0 ファイルの構文は次のとおりです。
6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 \ encr_algs aes encr_auth_algs sha1 router up
システムがパケットの復号化を試みずに別のインタフェースに転送することを防止するには、IP のスプーフィングをチェックする必要があります。その方法の 1 つは、ndd コマンドを使用して IP 厳密宛先マルチホームのパラメータを設定することです。SMF マニフェストでこのパラメータが設定されている場合、システムのリブート時にこのパラメータが設定されます。
注 - 両方のシステムでこの手順を実行してください。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
次のサンプルスクリプト /var/svc/manifest/site/spoof_check.xml を使用します。
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <service_bundle type='manifest' name='Custom:ip_spoof_checking'> <!-- This is a custom smf(5) manifest for this system. Place this file in /var/svc/manifest/site, the directory for local system customizations. The exec method uses an unstable interface to provide a degree of protection against IP spoofing attacks when this system is acting as a router. IP spoof protection can also be achieved by using ipfilter(5). If ipfilter is configured, this service can be disabled. Note: Unstable interfaces might be removed in later releases. See attributes(5). --> <service name='site/ip_spoofcheck' type='service' version='1'> <create_default_instance enabled='false' /> <single_instance /> <!-- Don't enable spoof protection until the network is up. --> <dependency name='basic_network' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/milestone/network' /> </dependency> <exec_method type='method' name='start' exec='/usr/sbin/ndd -set /dev/ip ip_strict_dst_multihoming 1' <!-- For an IPv6 network, use the IPv6 version of this command, as in: exec='/usr/sbin/ndd -set /dev/ip ip6_strict_dst_multihoming 1 --> timeout_seconds='60' /> <exec_method type='method' name='stop' exec=':true' timeout_seconds='3' /> <property_group name='startd' type='framework'> <propval name='duration' type='astring' value='transient' /> </property_group> <stability value='Unstable' /> </service> </service_bundle>
# svccfg import /var/svc/manifest/site/spoof_check.xml
マニフェストで定義されている名前 /site/ip_spoofcheck を使用します。
# svcadm enable /site/ip_spoofcheck
# svcs /site/ip_spoofcheck