ひっきぃのメモ帳

趣味で作るプラモデル製作の過程と作品、日々の資格取得へ向けての活動、Apple中心のIT関連ネタを書いています。

CentOS 7 で ftpサーバーを構築したのにパーミッションが無いと言われダウンロードできない

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も活かしつつの設定を考えないとだめでしょう。