ホームページ

Recent Trackbacks

« 荻窪まで(ブロンプトンで未舗装路を楽しむ) | Main | Happy-Colaがとまらない »

2007.01.05

FTPのディレクトリアクセス権限を設定 FedoraCore5 SELinux

 FTPでホームディレクトリにしかファイルの書き込みができず、ホームページのアップロードに手間がかかっていたが、やっとのことで直接アップロードできるようになったので、ここに記録しておくことにした。

 まず、いろいろやっていて行き詰ったのが、vsftpdを起動しようとすると、"vsftpd dead but subsys locked" のメッセージが出て起動できないという事象。
 ネットで検索しても、confファイルをオリジナルに戻すとか、再インストールという情報しかなく、これらをやってもだめだった。
 結局、これはSELinuxのFTPのポリシー修正で「inetdを使わない直接 ftpd の実行を許可する」のチェックを外していたためだった。

 そして、本来のアクセス権限。
 最初はvsftpdの設定かと思っていたが、SELinuxを無効にすると、アップロードできたのので、SELinuxが原因とわかった。

 Fedora Core5では、SELinuxのソースをインストールしなくても、ポリシーの追加が可能になっているとのこと。
 詳細は割愛するが、/var/log/messages からSELinuxの関連ログを切り出して、自動的にポリシーを追加する方法をやってみた。
 すると以下のようなエラーが出て、行き詰ってしまった。

[root@xxxx module]# audit2allow -i local.log -M local
Generating type enforcment file: local.te
Compiling policy
checkmodule -M -m -o local.mod local.te
semodule_package -o local.pp -m local.mod
/usr/bin/audit2allow: libsepol.policydb_read: policydb module version 6 does not match my version range 4-5
semodule_package: Error while reading policy module from local.mod
[root@xxxx module]#

 とりあえず、パッケージアップデータで関連しそうなパッケージをアップデートしてみた。
 パッケージアップデータはアップデート可能な大量のすべてのパッケージがチェック(アップデート指定)されてしまう。
 すべてをアップデートするのは、怖かったのと、時間もかかりそうだったので、地道にチェックを外した。
 関連するパッケージは記録し忘れたが、確か、libse×××とか、selinuxのような名前のものだったような・・・
 また、適用しようとすると、未指定の関連パッケージが表示されるので、一度指定画面に戻ってから、これらも追加で指定してから適用した。

 適用後、再度、audit2allowコマンドを実行すると、成功。

----------------------------------------------------------------------
[root@xxxxx module]# audit2allow -i local.log -M local
Generating type enforcment file: local.te
Compiling policy
checkmodule -M -m -o local.mod local.te
semodule_package -o local.pp -m local.mod

******************** IMPORTANT ***********************

In order to load this newly created policy package into the kernel,
you are required to execute

semodule -i local.pp

[root@xxxxx module]#
----------------------------------------------------------------------

 最後は表示されるとおり、sedmoduleでモジュールを追加して完了。

----------------------------------------------------------------------
[root@xxxxx module]# semodule -i local.pp
----------------------------------------------------------------------

 /var指定ではなにも見えないが、/var/www指定だと配下のディレクトリ、ファイルが見える。
 ログの内容が適切で無かったのか、これで実現できたのは、参照のみ。
 作成された local.te を以下のように修正して、audit2allowの実行結果に表示されるコマンドを実行して、追加したポリシーを書き換えた。

----------------------------------------------------------------------
修正前(audit2allowの出力)
[root@xxxxx module]# cat local.te
module local 1.0;

require {
class dir { getattr read search };
class file getattr;
type ftpd_t;
type httpd_sys_content_t;
role system_r;
};

allow ftpd_t httpd_sys_content_t:dir { getattr read search };
allow ftpd_t httpd_sys_content_t:file getattr;
[root@xxxxx module]#

修正後
[root@xxxxx module]# cat local.te
module local 1.0;

require {
class dir { add_name create getattr read remove_name rmdir search write };
class file { append create getattr read rename unlink write};
type ftpd_t;
type httpd_sys_content_t;
role system_r;
};

allow ftpd_t httpd_sys_content_t:dir { add_name create getattr read remove_name rmdir search write };
allow ftpd_t httpd_sys_content_t:file { append create getattr read rename unlink write};
[root@xxxxx module]#

登録手順
[root@xxxxx module]# checkmodule -M -m -o local.mod local.te
checkmodule: loading policy configuration from local.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 6) to local.mod
[root@xxxxx module]# semodule_package -o local.pp -m local.mod
[root@xxxxx module]# semodule -i local.pp

----------------------------------------------------------------------

 上記でやっとアップロードが可能になった。
 もっとSELinuxを理解しないと、いろいろ問題にぶつかりそうだ・・・

« 荻窪まで(ブロンプトンで未舗装路を楽しむ) | Main | Happy-Colaがとまらない »

パソコン・インターネット」カテゴリの記事

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference FTPのディレクトリアクセス権限を設定 FedoraCore5 SELinux:

« 荻窪まで(ブロンプトンで未舗装路を楽しむ) | Main | Happy-Colaがとまらない »

March 2021
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Books

無料ブログはココログ