今まで RedHat Linux ES4 で動いていたシステムを、急遽 Fedora5 に移植することになりました。既存の Fedora5 システムを流用しての作業のため、ほぼゼロからの設定になりました。その際の作業手順ということで、特に苦戦したしたFTPdの設定。
まず、FTPdが入っていないので、インストールから。 yum を使ってインストールします。
# yum install vsftpd
画面の指示に従っていけば、そのままインストールが完了します。
次に、自動起動設定をします。
# chkconfig vsftpd on
これで、ランレベル2~5のときに自動起動するように設定ができました。確認は、
# chkconfig --list vsftpd
でOKです。
TCP_Wrapper の設定をします。
# vi /etc/hosts.allow
vsftpd: 192.168.0.0/255.255.255.0 < 追加
# vi /etc/hosts.deny
vsftpd: ALL < 追加
全ての接続を拒否させて、192.168.0 のネットワークからの接続のみ許可します。これで vsftpd を立ち上げれば接続できる!・・・はずが、できません。FTPクライアントのログには、以下のようなエラーが・・・。
ホストに接続しています - 192.168.0.*** (192.168.0.***:21)
220 (vsFTPd 2.0.4)
>USER ******
331 Please specify the password.
>PASS ******
500 OOPS: cannot change directory:/home/******
500 OOPS: child died
< ホストから切断されました。 >
< エラー : コマンドを送信できませんでした。 (1013-0) >
< ホストにログインできませんでした。 >
どうやら、ユーザーディレクトリに入れない様子。権限を確認したら、所有者のみ全て許可になっています。念のため chmod で 777 にしてみましたが、状況は変わらず。
これはおかしい!何かが違う!ということで、さっそくグーグル様に頼ることに。いろいろ調べていると、こんな記事がありました。
FC5上のvsFTPD設定(リンク切れ)
どうやら、SELinux の仕業じゃないかとのこと。はて、SELinux ってナンダロウ?新しいディストリビューションの名前かと思ったら、どうやら Linux のファイルシステムを監視?しているセキュリティ関係らしいです。う~ん、ES4にはこんな機能なかったような・・・見落としてたのかな(汗)
どうせ社内の開発に使うだけのPCだし、そこまで強固なセキュリティはいらない、ということで、この SELinux を Permissive モードにしてみました。
# getenforce < モードの確認
Enforcing
# setenforce 0 < Permissive モードに変更
Permissiveモードに変更して、FTPで接続を試みると・・・つながりました!どうやら SELinux が悪さをしていたようです。ちなみに、Enforcing モードに戻すには、setenforce 1 とすれば良いらしい。
今まで、RHLは6~9、ESは1~4、FCは1~2しか触っていなかったので、FC3から追加されたという、このSELinuxの存在は全く知りませんでした。全く、お恥ずかしい話です。
コメント