TCP、UDP、SCTP などのトランスポートプロトコルでは、ポート 1-1023 はデフォルトの特権ポートです。特権ポートにバインドするには、プロセスを root 権限で実行する必要があります。1023 より大きいポートは、デフォルトで非特権になっています。ipadm コマンドを使用して特権ポートの範囲を拡張したり、非特権範囲にある特定のポートを特権ポートとしてマークしたりできます。
特権ポートの範囲を管理するには、次のトランスポートプロトコルプロパティーをカスタマイズします。
非特権ポート番号の範囲 (通常のユーザーがバインドできるポート) の開始値を指定します。非特権ポート範囲内の個々のポートを特権ポートとして設定できます。プロパティーの値を表示するには、ipadm show-prop コマンドを使用します。
特権範囲外のポートのうち特権にするポートを指定します。制限するポートを指定するには、ipadm set-prop コマンドを使用します。このプロパティーには複数の値を割り当てることができます。
たとえば、TCP ポート 3001 および 3050 に対するアクセスを、root 役割だけに与えるように制限するとします。smallest_nonpriv_port プロパティーは、1024 が非特権ポートの最小ポート番号であることを示しています。したがって、指定されたポート 3001 と 3050 を特権ポートに変更するには、次のようにします。
# ipadm show-prop -p smallest_nonpriv_port tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp smallest_nonpriv_port rw 1024 -- 1024 1024-32768 # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 -- 2049,4045 1-65535 # ipadm set-prop -p extra_priv_ports+=3001 tcp # ipadm set-prop -p extra_priv_ports+=3050 tcp # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 3001,3050 2049,4045 1-65535 3001,3050
たとえば、特権ポート 4045 を削除するには、次のようにします。
# ipadm set-prop -p extra_priv_ports-=4045 tcp # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,3001 3001,3050 2049,4045 1-65535 3050