EN JA
MAC_PORTACL(4)
MAC_PORTACL(4) FreeBSD Kernel Interfaces Manual MAC_PORTACL(4)

名称

mac_portaclネットワークポートアクセス制御ポリシ

書式

利用者のカーネルにネットワークポートアクセス制御ポリシをコンパイルするには、次の行をカーネル設定ファイルに入れます:

options MAC
options MAC_PORTACL

代わりに、次の行を利用者のカーネル設定ファイルに入れて、ブート時にポートアクセス制御モジュールをロードします:

options MAC

loader.conf(5) 中に:

mac_portacl_load="YES"

解説

管理者は mac_portacl ポリシによって、管理上のバインディングを sysctl(8) インタフェースを通してローカル UDP と TCP ポートに制限できます。

mac_portacl ポリシを有効にするために、MAC ポリシはソケット ( mac(4) 参照) で強制されなければなりません。そして、 mac_portacl によって保護された複数のポートは net.inet.ip.portrange.reservedlownet.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
このエントリに適用するプロトコルを記述します。 tcpudp のいずれかがサポートされます。
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 は、 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