Apache の待ち受けポートを変更すると起動できなくなる場合 (CentOS 5.4)
2010/01/30 Tomohiro Kumagai
□ 待ち受けポートを変更すると Apache が起動できなくなる
CentOS 5.4 上で稼働している Apache 2.2.3 で、"/etc/httpd/conf/httpd.conf" 内の "Listen"
ディレクティブの値を調整すると、Apache の再起動時に次のエラーが発生して、Apache が起動できなくなることがありました。
(13)Permission denied: make_sock: could not bind to address [::]:81
no listening sockets available, shutting down
これは SELinux というセキュリティーポリシーによってアクセス制御がされているために発生するもののようでした。
SELinux を設定するためには、まずは次のようにして、vsftp がどの SELinux ドメインで実行されているかを確認します。
ps -eZ | grep httpd
これで、出力結果の ":" で区切られた 3 番目の内容から、Apache (httpd) が "httpd_t" ドメイン内で動作していることが分かります。
後はこのドメインに対して適切な許可を追加することになります。
試してみた感じでは、以下の許可設定を追加すれば大丈夫なようでした。
allow httpd_t amanda_port_t:tcp_socket name_bind;
allow httpd_t
cert_t:file execute;
allow httpd_t httpd_config_t:file execute;
allow httpd_t port_t:tcp_socket name_bind;
allow httpd_t
reserved_port_t:tcp_socket name_bind;
allow httpd_t
soundd_port_t:tcp_socket name_bind;
allow httpd_t
transproxy_port_t:tcp_socket name_bind;
なお、SELinux の設定方法については Linux
のセキュリティ設定 (SELinux) の方に記してありますので、そちらを参考にしてください。