SO_BROADCAST ソケット・オプション

IPv4 IP アドレスは、ネットワーク部分、オプションのサブネットワーク部分、 およびホスト部分に分けられます。 通常、UDP および RAW データグラムは、宛先 IP アドレスによって識別される 単一の対等システムに配信されます。 しかし、宛先アドレスがサブネットワークまたは ネットワーク基底アドレス (ホスト部分がすべてゼロ)、またはサブネットワークまたは ネットワークのブロードキャスト・アドレス (ホスト部分がすべて 1) のときは、 データグラムはそのサブネットワークまたはネットワークのあらゆる対等システムに 配信されます。 ソケットのセマンティクスでは、 データグラムを基底アドレスまたはブロードキャスト・アドレスへの送信を 試みる前に、アプリケーションが、SO_BROADCAST オプションをオンに設定する必要があります。 これによって、 アプリケーションが多数のシステムにデータグラムを偶発的に送信するのを防ぎます。 ネットワーク・アクセス制御は、宛先サブネットワークまたはネットワーク・アドレスの 有効範囲内で定義されたほかのセキュリティー・ゾーンの有無、 あるいはデータグラムをこれらのセキュリティー・ゾーンのすべてに送信する許可を ユーザーが得ているかどうかを検査しません。

このソケット・オプションの設定に対する制御を使用して、 システム管理者は、サブネットワークまたはネットワーク・アドレスの使用を、 それを必要とするユーザーまたはプログラムに限定することができます。 このサポートは PFS レイヤーで実施され、すべての z/OS® Communications Server ソケット API に適用されます。

SO_BROADCAST ソケット・オプションを設定する既知の TCP/IP プログラムには、 以下のものが含まれます。

さらに、SUN RPC ライブラリーの clnt_broadcast() サービス、 またはブロードキャスト・パラメーターを設定した NCS RPC ライブラリー の send_pkt(sock、pkt、addr、broadcast) サービスを使用するプログラムは、 すべて SO_BROADCAST ソケット・オプションに対する許可を必要とします。 次の TCP/IP プログラムは、 ブロードキャストへの許可が必要な RPC サービスを使用します。

保護するソケット・オプションは、 リソース名 EZB.SOCKOPT.sysname.tcpname.SO_BROADCAST で表します。 このプロファイルが定義された場合、 このオプションを設定するすべてのプログラムのユーザーに READ 許可が必要です。 このオプションへのアクセスは、セキュリティー・サーバーが、 このリソースを対象とするプロファイルがないことを示した場合も許可されます。 PERMIT WHEN(PROGRAM(...)) などの条件付きアクセス・リストは、 ソケット・オプション・アクセス制御リソースを対象とするプロファイルの場合はサポートされます。 新しい TCP 定義は必要ありません。

ガイドライン: セキュリティー製品には、未定義のリソース・プロファイルと、そのリソース・プロファイルに対する許可を得ていないユーザーとを区別しないものがあります。ご使用の製品がこの区別をしない場合は、 ソケット・オプション・リソース・プロファイルを定義し、SERVAUTH クラスが アクティブなときはいつでもユーザーにその許可を与える必要があります。

以下の例は、その定義を示しています。

RDEFINE SERVAUTH EZB.SOCKOPT.*.*.SO_BROADCAST UACC(NONE)
PERMIT EZB.SOCKOPT.*.*.SO_BROADCAST CLASS(SERVAUTH) ACCESS(READ) ID(OMPROUT)
PERMIT EZB.SOCKOPT.*.*.SO_BROADCAST CLASS(SERVAUTH) ACCESS(READ) ID(*) 
WHEN(PROGRAM(ORPCINFO))

条件付きアクセス・リストにリストされたプログラム名は、 プログラムが呼び出される際の名前でなければなりません。 ほとんどの TCP/IP アプリケーションは、 モジュール名ではなく別名で呼び出されます。 表 1 は、 ブロードキャスト・データグラムを送信する TCP/IP アプリケーションのリストです。

表 1. TCP/IP アプリケーションのロード・モジュールおよび別名
ロード・モジュール 別名
EZAORRTE OMPROUTE
EZASNTPD SNTPD
EZARPCIN RPCINFO
EZARORNP ORPCINFO
ヒント: UNIX システム・サービス環境では、/bin/rpcinfo および /bin/orpcinfo の両方が外部で ORPCINFO にリンクされます。いずれのコマンドも EZARORNP プログラムを実行します。
条件付きアクセス・リストのプログラム名を使用するには、プログラムを、 プログラム制御されたデータ・セットから、制御された環境にロードする必要があります。 TCP/IP アプリケーションは、SEZALOAD ロード・ライブラリーに入れて配布されます。このデータ・セットをプログラム制御するには、以下のように、 これを PROGRAM クラスの ** プロファイルに加える必要があります。
RALTER PROGRAM ** ADDMEMBER('TCPIP.SEZALOAD'//NOPADCHK)
プログラム制御について詳しくは、「z/OS Security Server RACF セキュリティー管理者のガイド」を参照してください。