PR

allow文の確認ポイント

 結果を見てみると、見慣れないものが二つ出てきます。1行目のタイプを見ると、port_typeのような、httpd_port_tとは一見関係ないものが出てきています。そして、行頭には「ET」「DT」のような謎の文字が付与されています。

 まず、port_typeというのは「アトリビュート」と呼ばれるタイプをグルーピングしたものです。ドメインタイプと同様にallow文で使われるため紛らわしいですが名称で見分けます。ドメインタイプは「_t」で終わる名前ですが、逆に「_t」で終わらない名前の場合はアトリビュートになります。今回port_typeは_tで終わらないためアトリビュートです。アトリビュートがどんなタイプをグルーピングしているのかは、seinfoコマンドで調べられます。

# seinfo --attribute=port_type -x

以下のようにアトリビュートでグルーピングされているタイプの一覧が出てきます。

port_type
afs3_callback_port_t
afs_bos_port_t
   <略>
http_port_t
   <略:合計283タイプ>

つまり、先ほどのsesearchの結果では、httpd_tは、http_port_tを含む283個のタイプが付与されたポートすべてにtcp_port name_connect(TCPポートを指定した接続)アクセスを許可されていることを意味します。

 次に「ET」「DT」というのは「boolean」というパラメーター設定を1や0に設定することで、有効(ET)になったり無効(DT)になったりする設定です。対応するbooleanパラメーターは行末尾(下線)に出てきています。例えば、1行目は、すべてのポートへの接続を許可しているallow文でしたが、行頭がDTですので、このallow文は無効になっています。また関連するbooleanパラメーターは、「httpd_can_network_connect」で、今回は行頭がDTなのでこのパラメーターが0に設定されていることが分かります。