データサイエンティスト基礎講座

[Fedora] vsFTPdの設定

今まで 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 にしてみましたが、状況は変わらず。

これはおかしい!何かが違う!ということで、さっそくグーグル様に頼ることに。いろいろ調べていると、こんな記事がありました。

どうやら、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の存在は全く知りませんでした。全く、お恥ずかしい話です。

スポンサーリンク

この記事をシェア

アカウントをフォロー