SELinuxでに悩まされた1日 †RedHad6.3に「vsftpd」をインストールして、ftpサーバーを構築していたのですが、本日突然、/homeにアクセスできない。「FTP エラー 550 Permission Denied」となると障害が発生。数日前までは、問題なく稼働してたのになぜだろうと、調べました。 結局、1日、その調査に掛かり切りになりました。 結論から言うと、SELinuxのftpポリシーが知らない間に変わっていたと言う問題だった。 素直、「SELinux」っなにと言う状態だったので一応メモです。 SELinuxってなによ、どうしたら改善できるの †と言う手探り状態で、Google先生に聞きまくりました。 とりあえず、参考まで。 http://ja.wikipedia.org/wiki/SELinux http://www.linuxmania.jp/selinux_introduction_1.html 全然読んでも分からないけど、「ftphomedir」と言う設定があるらしい。 と言うことで、見よう見真似。 # getsebool ftphomedir ftphomedir --> off # setsebool -P ftphomedir=1 # getsebool ftphomedir ftphomedir --> on # /etc/init.d/vsftpd restart vsftpd を停止中: [ OK ] vsftpd 用の vsftpd を起動中: [ OK ] これで解決しました。 いつの間に変わってしまったかは、謎!? 誰かに聞けばすぐに分かったんだろうか・・・ 自分で調べて解決する喜びと、人に全部教えて貰って解決する喜びには違いがありますが、それは作業時間(コスト)の問題でもあります。 SELinuxを無効化する †SELinuxはセキュリティ管理をしてくれるとても大事なモジュールですが、慣れていないとSELinuxによる強力なアクセス制限によってインストール作業や運用業務でつまづくことがあります。 本来であればSELinuxをマスターすることが必要ですが、緊急時にはSELinuxの機能を停止する方法が手っ取り早い解決策となります。今回はその停止方法、無効化する方法をメモです。 ・SELinux動作状態の確認 # getenforce 結果は、 enforcing SELinux機能、アクセス制御が有効 permissive SElinuxは警告を出力するが、アクセス制限は無効 disabled SElinux機能、アクセス制御が無効 ・更に詳細に確認 # sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted ・SELinuxを一時的に有効・無効化 有効# setenforce 1 無効# setenforce 0 ・SELinuxを恒久的に有効・無効化 # vi /etc/selinux/config SELINUX=enforcing # 有効 or SELINUX=disabled # 無効 再起動して終了。 |