Memo

メモ > サーバ > 構築: Webサーバ設定 > FTPD

■FTPD
※FTPサーバを構築する ※SSHでもファイルを転送できる(SFTP)ので、FTPDは必須ではない EC2にvsftpをセッティングする際のハマリポイント - Qiita https://qiita.com/dogyear/items/289b314db9af42e15cfa vsftpdの設定(vsftpd.conf) http://www.nina.jp/server/redhat/vsftpd/vsftpd.conf.html [AWS] EC2でFTPを使いたい - Qiita https://qiita.com/Yuki_BB3/items/deeb84c360c6f3c37f51 【AWS】AWSでFTPサーバー立てる時に気をつけるべき2つのこと+α | DevelopersIO https://dev.classmethod.jp/articles/to-be-aware-of-when-settingup-ftpserver-with-aws/ VPSにFTPを可能にするVsftpd設定 | WEB担当者の備忘録 https://liapoc.com/vsftpd.html 【AWS】閉域網のEC2にFTPサーバーを構築 - Hanatare's PaPa https://www.hanatare-papa.jp/entry/technology-aws-ftp-1 AWS EC2でWebサーバーを立てる - Qiita https://qiita.com/niyute/items/ea02d93fa3a5ee2868d7 FTPでの接続には、パッシブモードとアクティブモードがある パッシブモードはアクティブモードの欠点をカバーする接続方法 特に理由が無ければパッシブモードを使えばいいので、この解説でもパッシブモードを前提とする FTPのアクティブモードとパッシブモードの違いを徹底解説!|ITトレンド https://it-trend.jp/file_transfer/article/104-0006 FTPにおけるアクティブモードとパッシブモードの違い http://cos.linux-dvr.biz/archives/131 ■ポート番号の確認 現在利用できるポートを確認する この範囲内でパッシブモード接続用のポート番号を決定する
$ cat /proc/sys/net/ipv4/ip_local_port_range 32768 60999
今回は以下の範囲を使用するとする(毎回この値で設定して問題ないはず) 60001〜60010 ■FTPDをインストール
# yum -y install vsftpd … vsftpdをインストール # vi /etc/vsftpd/vsftpd.conf … vsftpdの設定ファイルを編集
anonymous_enable=NO … 匿名ユーザーのログインは許可しない dirmessage_enable=NO … 新しいディレクトリに初めて移動してもメッセージは表示しない connect_from_port_20=NO … アクティブモードを無効にする xferlog_enable=YES … ログを記録する xferlog_file=/var/log/vsftpd.log … ログを記録するファイル xferlog_std_format=NO … wu-ftpdではなく,vsftpdログ形式でログを記録する ascii_upload_enable=YES … アスキーモードのアップロードを有効にする ascii_download_enable=YES … アスキーモードのダウンロードを有効にする ftpd_banner=Welcome to blah FTP service. … ログイン時にソフト名とバージョンが表示されないようにする ls_recurse_enable=YES … 「ls -R」コマンド(ディレクトリリストを再帰的に表示)の使用を許可する # ファイルの最後にある設定 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=NO … 変更(ホストへのアクセスを制御しない / EC2の場合はセキュリティグループで設定する) # ファイルの最後に追加する設定 use_localtime=YES … ローカルタイムを使用する(デフォルトはGMT) force_dot_files=YES … .(ドット)で始まるファイルを表示する pasv_enable=YES … パッシブモードを有効にする pasv_addr_resolve=YES … パッシブモード接続先IPアドレスをホスト名から取得する pasv_address=203.0.113.1 … サーバのグローバルIPアドレス pasv_min_port=60001 … パッシブモード接続で使用するポート番号の最小値 pasv_max_port=60010 … パッシブモード接続で使用するポート番号の最大値
pasv_addressには、そのサーバのグローバルIPアドレスを設定する 「pasv_addr_resolve=YES」なら、「refirio.net」のようにホスト名を設定してもいい EC2にvsftpをセッティングする際のハマリポイント - Qiita https://qiita.com/dogyear/items/289b314db9af42e15cfa 【AWS】AWSでFTPサーバー立てる時に気をつけるべき2つのこと+α | DevelopersIO https://dev.classmethod.jp/articles/to-be-aware-of-when-settingup-ftpserver-with-aws/
# systemctl start vsftpd # systemctl enable vsftpd
SSHでログインしない、つまり「--shell /sbin/nologin」を指定したユーザのFTP接続を許可するため、以下の指定を行う
# vi /etc/shells
/sbin/nologin … ファイルの最後に追加
■FTPD用ユーザを作成 SSHでのログインを許可しない、ホームディレクトリが「/var/www」のユーザを作成する場合 (ホームページ更新用なら、基本的にこの方法で作成するといい)
# adduser --shell /sbin/nologin --home /var/www username1 # usermod -a -G apache username1 # passwd username1 abcd1234
上記の制限を行わないユーザを作成する場合 (ホームディレクトリは「/home/ユーザ名」になる)
# adduser username2 # usermod -a -G apache username2 # passwd username2 abcd1234
■ポートを開放 セキュリティグループで21番ポートを開放しておく ソースは、可能なら「203.0.113.1/32」などのようにIP制限をかけておく ポート範囲 ソース 21 0.0.0.0/0 60000 - 60010 0.0.0.0/0 EC2にvsftpをセッティングする際のハマリポイント - Qiita https://qiita.com/dogyear/items/289b314db9af42e15cfa CentOS7環境の場合、以下のように設定する
# firewall-cmd --permanent --add-service=ftp … ファイヤーウォールを設定 # firewall-cmd --permanent --add-port=60000-60010/tcp … ファイヤーウォールを設定 # firewall-cmd --reload … ファイヤーウォールの設定を反映
CentOS6環境の場合、以下のように設定する
# vi /etc/sysconfig/iptables … ファイヤーウォールを設定
#FTPを許可 -A MY-FIREWALL -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A MY-FIREWALL -m state --state NEW -m tcp -p tcp --dport 60000:60010 -j ACCEPT … 追加
# service iptables restart … ファイヤーウォールを再起動
■FTPDの接続テスト FileZillaから以下でFTPアクセスを試す プロトコル: FTP ホスト: 192.168.33.10(接続先のIPアドレス) 暗号化: なし ユーザ名: username1 パスワード: abcd1234 転送モード: デフォルト 暗号化は、 「使用可能なら明示的な FTP over TLS を使用」もしくは 「平文の FTP のみを使用する(安全でない)」を選択する EC2環境の場合、転送モードが「デフォルト」もしくは「パッシブ」にすると接続できた 「アクティブ」だと、以下のエラーになって接続できなかった
状態: サーバーはルーティング不可能なアドレスでパッシブ応答を送信しました。代わりにサーバーのアドレスを使用します。 コマンド: LIST エラー: 非アクティブになってから 20 秒後に接続がタイムアウトになりました エラー: ディレクトリ リスト表示の取り出しに失敗しました
なお、設定を変更して再接続テストする場合、FTPソフトの再起動を行うこと 前回接続したときの情報がキャッシュされているようで、接続できない設定でも接続できているように見えることがある

Advertisement