MAC_PORTACL(4) | FreeBSD Kernel Interfaces Manual | MAC_PORTACL(4) |
名称
mac_portacl — ネットワークポートアクセス制御ポリシ書式
利用者のカーネルにネットワークポートアクセス制御ポリシをコンパイルするには、次の行をカーネル設定ファイルに入れます:
options MAC_PORTACL
代わりに、次の行を利用者のカーネル設定ファイルに入れて、ブート時にポートアクセス制御モジュールをロードします:
と loader.conf(5) 中に:
mac_portacl_load="YES"
解説
管理者は mac_portacl ポリシによって、管理上のバインディングを sysctl(8) インタフェースを通してローカル UDP と TCP ポートに制限できます。mac_portacl ポリシを有効にするために、MAC ポリシはソケット ( mac(4) 参照) で強制されなければなりません。そして、 mac_portacl によって保護された複数のポートは net.inet.ip.portrange.reservedlow と net.inet.ip.portrange.reservedhigh sysctl(8) MIB によって指定された範囲に含まれていてはなりません。
mac_portacl ポリシはユーザプロセス (TCP ソケットを listen (接続を受け付け)/発信のため、または UDP ソケットを送信/受信のためのいずれか) によって明白にバインドされたポートに影響するだけですこのポリシはプロセスが明白にポートを選択していない発信の接続のためにポートの暗黙のバインドを制限しません: これらは IP スタックによって自動的に選択されます。
mac_portacl が有効にされるとき、 security.mac.portacl.port_high sysctl(8) 変数で設定されたポート番号までポートへのバインドをおこなうアクセスを制御します。デフォルトで、 mac_portacl 制御されたポートにバインドするすべての試みはポートアクセスコントロールリストによって明白に許されていないなら、失敗しますが、 sysctl(8) 変数 security.mac.portacl.suser_exempt が 0 以外の値に設定されているなら、スーパユーザによるバインドは許されます。
実行時設定
次の sysctl(8) MIB はこの MAC ポリシの実施を微調整するために利用可能です。 security.mac.portacl.rules を除いて、すべての sysctl(8) 変数は loader.conf(5) 中の loader(8) (ローダ) 調整変数でも設定できます。- security.mac.portacl.enabled
- mac_portacl ポリシを強制します。 (デフォルト: 1)。
- security.mac.portacl.port_high
- 最も高いポート番号 mac_portacl が規則を強制します。 (デフォルト: 1023)。
- security.mac.portacl.rules
-
ポートアクセスコントロールリストは次の形式で指定されます:
idtype: id: protocol: port[ , idtype: id: protocol: port, ...]
- idtype
-
実行されるために一致するサブジェクトのタイプを記述します。ユーザ ID マッチングのための
uid
かグループ ID マッチングのためのgid
のいずれかです。 - id
-
(
idtype による) ユーザかグループ ID は指定されたポートにバインドすることができます。
注: ユーザとグループ名は有効ではありません。実際の ID 番号だけを使用することができます。
- protocol
-
このエントリに適用するプロトコルを記述します。
tcp
かudp
のいずれかがサポートされます。 - port
-
このエントリに適用するポートを記述します。
注: MAC セキュリティポリシは net.inet.ip.portrange.reservedlow / net.inet.ip.portrange.reservedhigh などのように、それらが拒絶するかもしれないアクセスを許すことによって、他のセキュリティシステムポリシを上書きしません。指定されたポートが指定された範囲内に収まるなら、 mac_portacl エントリは機能しません (すなわち、指定されたユーザ/グループでさえ指定されたポートにバインドすることができません)。
- security.mac.portacl.suser_exempt
- ポートアクセスコントロールリストが明白にこれを許可しなくても、スーパユーザ (すなわち、root) をすべての mac_portacl の保護されたポートにバインド可能とします。 (デフォルト: 1)。
- security.mac.portacl.autoport_exempt
- アプリケーションをポート 0 への自動バインドの使用を可能とします。アプリケーションは、IP アドレスをソケットにバインドするとき、自動ポート割り付けの要求としてポート 0 を使用します。この調整変数はポート 0 の割り付けの規則のチェックを免除します。 (デフォルト: 1)。
関連項目
mac(3), ip(4), mac_biba(4), mac_bsdextended(4), mac_ifoff(4), mac_mls(4), mac_none(4), mac_partition(4), mac_seeotheruids(4), mac_test(4), mac(9)歴史
MAC は、 FreeBSD 5.0 ではじめて登場し、 mac_portacl は、 FreeBSD 5.1 ではじめて登場しました。作者
このソフトウェアは、 DARPA CHATS 研究プログラムの一環として、 DARPA/SPAWAR 契約 N66001-01-C-8035 (“CBOSS”) の下で NAI Labs, the Security Research Division of Network Associates Inc. によって FreeBSD プロジェクトに寄贈されました。December 9, 2004 | FreeBSD |