CentOS 7 に FTP (vsftpd) をインストールして特定のIPからのみアクセスを許可したいなぁということで Firewalld のリッチルールでポリシー追加をしてみたのですが、いざクライアントPCからFTP接続しようとしても「ディレクトリの取得に失敗」とか言われて繋がりませんでした。
いろいろと確認したところ、どうやらパッシブモードだとつながらない感じ。
というわけで対応してみましたのでその流れをメモしておきたいとおもいます。
最初に追加したポリシー
FTP(ポート21)を追加しとけばOKやろ、と思って下記コマンドでFirewalldに追加したのですが。
パッシブモードだと繋がりませんでした。
原因と対策
原因はパッシブモードで利用するポートを開けていなかったから。
というわけでまず vsftpd.conf にパッシブモードで利用するポートの制限を追加します。
これでパッシブモードの際にはポート4000~4029を利用することになります。
続いてFirewalldで該当のポートを開けます。
これで無事に接続できるようになりました。