ftpサーバーを構築したのにダウンロードできない
ちょっと最近のLinuxから離れていたので、ちょっと困った事態になっていました。必要に迫られCentOS 7のftp設定を見ていました。
proftpを使ってftpサーバーを構築してあるCentOS 7でなぜかダウンロードすら出来ないという現象。どうせファイアウォールかアクセス権でしょうと設定を見なおしてみたのですが、全く問題があるように見えないな。。。
ファイアウォールの設定は?
確かにftpはデフォルトでは通過しない設定のようです。ファイアウォールを止めてもダウンロードできません。
そもそも、ローカルでftpコマンドを使ってもダウンロードできないという謎現象。ファイアウォールが原因ではなさそうです。
アクセス権の設定は?
これもよくあることですよね。当然チェックしてみましたが、777のフルアクセスでもダウンロードできないですね。
あれあれ?これは困ったよ。
proftpd.confの設定は?
DefaultRootの設定を見ても問題なさそう。
ユーザー認証で引っかかってる人は多そうですが、ユーザー認証までは問題なくできてるし問題なし。
ファイル一覧は取得できてるのに、ファイルの取得ができない。
ログのエラーを見ると RETR 550 のエラーです。
この際proftpdじゃなくても良いかな?vsftpdでも動けばいいかなと設定してみたけど、同じエラーでダウンロードできない。
ftpの設定の問題ではなく、OS共通の何かが問題な感じでした。
SElinuxって何?
ようやく見つけました。SElinuxなる仕組みが有効になっているとのこと。これも権限に関する設定ができるようです。
ここのページに詳しく書いてました。qiita.com
今のところ構築中のサーバーはイントラネットで動作すれば良いだけなので、最低限のセキュリティでいきましょう。
ということで、こんな余計な仕組みは止めちゃいます。
/etc/selinux/conf の設定を変更すると、起動時から設定が有効になります。
SELINUX=の後ろに設定を書きますが
- enforcingだと有効
- permissiveだと警告がログに残る
- disabledだと無効
です。
設定を無効に書き換えて再起動すると、無事ftpのダウンロードができるようになりました。
日頃使っているのがVineLinux6.2でだいぶ勝手が違ってたので解決まで時間かかってしまいました。
最新のOSだと常識なんでしょうかね。
本来外向きのサーバーにするならSElinuxも活かしつつの設定を考えないとだめでしょう。