トランスポート層プロトコル TCP、SCTP、および UDP は、Oracle Solaris の標準パッケージの一部です。 通常、これらのプロトコルは、ユーザーの介入なしで正常に動作します。ただし、サイトの条件によっては、トランスポート層プロトコルの上で動作するサービスをログまたは変更しなければならない場合があります。次に、サービス管理機能 (SMF) を使ってこれらのサービスのプロファイルを変更する必要があります。SMF については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。
inetd デーモンは、システムが起動されると、標準的なインターネットサービスを起動します。これらのサービスは、TCP や SCTP、UDP をそのトランスポート層プロトコルとして使用するアプリケーションなどです。SMF コマンドを使えば、既存のインターネットサービスの組み合わせを変更したり、新しいサービスを追加したりできます。inetd についての詳細は、「inetd インターネットサービスデーモン」を参照してください。
トランスポート層プロトコルが関係する操作には、次の操作があります。
すべての着信 TCP 接続を記録する
トランスポート層プロトコル (たとえば、SCTP) の上で動作するサービスを追加する
アクセス制御のために TCP ラッパー機能を構成する
inetd デーモンの詳細は、inetd(1M) のマニュアルページを参照してください。
ローカルシステムで「ネットワーク管理者」役割になるか、スーパーユーザーになります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
inetd で管理されるすべてのサービスに対して TCP トレースを使用可能にします。
# inetadm -M tcp_trace=TRUE |
SCTP トランスポートプロトコルは、TCP に類似した方法でアプリケーション層プロトコルにサービスを提供します。ただし、SCTP では 2 つのシステム間での通信が可能です。これらのシステムは、片方または両方がマルチホームであってもかまいません。SCTP 接続は「アソシエーション」と呼ばれます。アソシエーションでは、アプリケーションがデータを分割し、1 つまたは複数のメッセージストリームとして伝送します (マルチストリーム化)。SCTP 接続は、複数の IP アドレスを持つエンドポイントに到達できます。これは、テレフォニーアプリケーションにとって特に重要です。IP Filter や IPsec を使用する場合、SCTP のマルチホーム機能はセキュリティーの点で考慮を要します。考慮点については、sctp(7P) のマニュアルページを参照してください。
デフォルトで SCTP は Oracle Solaris に組み込まれています。したがって、構成を別に行う必要はありません。ただし、SCTP を使用するためには、一定のアプリケーション層サービスを明示的に構成しなければならない場合があります。このようなアプリケーションの例としては、echo や discard があります。次の手順は、ワンツーワンスタイルの SCTP ソケットを使用する echo サービスの追加方法を示しています。
さらに、次の手順を使えば、TCP や UDP のトランスポート層プロトコル用のサービスを追加できます。
次の作業では、inetd デーモンによって管理される SCTP inet サービスを SMF リポジトリに追加します。さらに、作業の後半では、サービス管理機能 (SMF) コマンドを使ってこのサービスを追加します。
SMF コマンドについては、『Solaris のシステム管理 (基本編)』の「SMF コマンド行管理ユーティリティー」を参照してください。
構文については、SMF コマンドのマニュアルページを参照してください (手順を参照)。
SMF の詳細は、smf(5) のマニュアルページを参照してください。
次の手順を実行する前に、サービスのマニフェストファイルを作成してください。この手順では、例として、echo サービス用のマニフェスト echo.sctp.xml を使用します。
システムファイルに対する書き込みアクセス権を持つユーザーアカウントでローカルシステムにログインします。
/etc/services ファイルを編集し、新しいサービスの定義を追加します。
service-name |port/protocol | aliases |
新しいサービスを追加します。
サービスマニフェストが格納されているディレクトリに移り、次のように入力します。
# cd dir-name # svccfg import service-manifest-name |
svccfg の詳しい構文については、svccfg(1M) のマニュアルページを参照してください。
現在 service.dir ディレクトリにあるマニフェスト echo.sctp.xml を使用して、SCTP の新しい echo サービスを追加するとします。その場合、次のように入力します。
# cd service.dir # svccfg import echo.sctp.xml |
サービスマニフェストが追加されているか確認します。
# svcs FMRI |
FMRI 引数には、サービスマニフェストの Fault Managed Resource Identifier (FMRI) を使用します。たとえば、SCTP の echo サービスの場合は、次のコマンドを使用します。
# svcs svc:/network/echo:sctp_stream |
次のような出力が表示されます。
STATE STIME FMRI disabled 16:17:00 svc:/network/echo:sctp_stream |
svcs コマンドの詳細は、svcs(1) のマニュアルページを参照してください。
出力は、新しいサービスマニフェストが使用不可になっていることを示しています。
サービスの属性をリストして、変更を加える必要があるかどうかを決めます。
# inetadm -l FMRI |
inetadm コマンドの詳細は、inetadm(1m) のマニュアルページを参照してください。
たとえば、SCTP echo サービスの場合は、次のように入力します。
# inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" . . default tcp_trace=FALSE default tcp_wrappers=FALSE |
新しいサービスを使用可能にします。
# inetadm -e FMRI |
サービスが使用可能になっていることを確認します。
たとえば、新しい echo サービスの場合、次のように入力します。
# inetadm | grep sctp_stream . . enabled online svc:/network/echo:sctp_stream |
次の例では、使用するコマンドと、echo サービスで SCTP トランスポート層プロトコルを使用するために必要なファイルエントリを示します。
$ cat /etc/services . . echo 7/tcp echo 7/udp echo 7/sctp # cd service.dir # svccfg import echo.sctp.xml # svcs network/echo* STATE STIME FMRI disabled 15:46:44 svc:/network/echo:dgram disabled 15:46:44 svc:/network/echo:stream disabled 16:17:00 svc:/network/echo:sctp_stream # inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" user="root" default bind_addr="" default bind_fail_max=-1 default bind_fail_interval=-1 default max_con_rate=-1 default max_copies=-1 default con_rate_offline=-1 default failrate_cnt=40 default failrate_interval=60 default inherit_env=TRUE default tcp_trace=FALSE default tcp_wrappers=FALSE # inetadm -e svc:/network/echo:sctp_stream # inetadm | grep echo disabled disabled svc:/network/echo:stream disabled disabled svc:/network/echo:dgram enabled online svc:/network/echo:sctp_stream |
「TCP ラッパー」は tcpd プログラムによって実装されます。TCP ラッパーは、送られてくるサービス要求とサービスデーモンの間で動作することによって、ftpd などのサービスデーモンにセキュリティー対策を追加します。TCP ラッパーは、正常および異常な接続の試みを記録します。さらに、TCP ラッパーはアクセス制御の機能を備えています。したがって、要求の発行元がどこかによって接続を許可することも拒否することもできます。TCP ラッパーを使えば、SSH、Telnet、FTP などのデーモンを保護できます。さらに、sendmail アプリケーションでも TCP ラッパーを使用できます。詳細は、『Solaris のシステム管理 (ネットワークサービス)』の「sendmail の version 8.12 からの TCP ラッパーのサポート」を参照してください。
ローカルシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
TCP ラッパーを使用可能にします。
# inetadm -M tcp_wrappers=TRUE |
TCP ラッパーのアクセス制御ポリシーを構成します (hosts_access(3) のマニュアルページを参照)。
このマニュアルページは、Oracle Solaris CD-ROM と一緒にパッケージ化されている SFW CD-ROM の /usr/sfw/man ディレクトリにあります。