tencent cloud

LinuxインスタンスでのFTPサービスの構築
最終更新日:2025-11-21 15:37:37
LinuxインスタンスでのFTPサービスの構築
最終更新日: 2025-11-21 15:37:37

概要

Vsftpd(very secure FTP daemon)は、多数のLinuxディストリビューションのデフォルトのFTPサーバーです。本節では、CentOS 7.6 64ビットOSのTencent Cloud Server(CVM)を例に、vsftpdを使用してLinux CVMのFTPサービスを構築します。

ソフトウェアのバージョン

本文では、作成したFTPサービスのコンポーネントバージョンは次のとおりです:
Linux OS :本節では、公開イメージCentOS 7.6を例に説明します。
Vsftpd:本節では、vsftpd 3.0.2を例に説明します。

操作手順

ステップ1:CVMにログインする

標準的な方法を使用してLinuxインスタンスにログインする(推奨)。実際の操作方法に応じて、他のログイン方法を選択することもできます:

手順2:vsftpdのインストール

1. 次のコマンドを実行し、vsftpdをインストールします。
yum install -y vsftpd
2. 次のコマンドを実行し、vsftpdをスタートアップ時に自動起動に設定します。
systemctl enable vsftpd
3. 次のコマンドを実行し、FTPサービスを起動します。
systemctl start vsftpd
4. 次のコマンドを実行し、サービスが起動されているかどうかを確認します。
netstat -antup | grep ftp
次の結果が表示され、FTPサービスが正常に開始されたことを示します。

このとき、vsftpdはデフォルトで匿名アクセスモードを有効化しており、ユーザー名およびパスワードを必要とすることなくFTPサーバーにログインできます。この方法でFTPサーバーにログインするユーザーには、ファイルを変更またはアップロードする権限がありません。

手順3:vsftpdの設定

1. 次のコマンドを実行して、FTPサービス用のLinuxユーザーを作成します。本節では、ftpuserを例に説明します。
useradd ftpuser
2. 次のコマンドを実行して、ftpuserユーザーのパスワードを設定します。
passwd ftpuser
パスワードを入力したら、** Enter **キーを押して確認します。デフォルトではパスワードは表示されません。本節では「tf7295TFY」を例にしています。
3. 次のコマンドを実行して、FTPサービスが使用するファイルディレクトリを作成します。本節では、「/var/ftp/test」を例にしています。
mkdir /var/ftp/test
4. 次のコマンドを実行して、ディレクトリの権限を変更します。
chown -R ftpuser:ftpuser /var/ftp/test
5. 次のコマンドを実行し、「vsftpd.conf」ファイルを開きます。
vim /etc/vsftpd/vsftpd.conf
6. iを押して編集モードに切り替え、必要に応じてFTPモードを選択し、設定ファイルvsftpd.confを変更します
ご注意:
FTPは、アクティブモードとパッシブモードでクライアント端末に接続してデータを転送できます。ほとんどのクライアント端末のファイアウォール設定および実際のIPアドレスを取得できないため、パッシブモードを選択してFTPサービスを構築することをお勧めします。次の変更では、パッシブモードの設定を例として説明します。アクティブモードを選択したい場合は、FTPアクティブモードの設定に進んでください。
6.1 以下の構成パラメータを変更し、匿名ユーザーとローカルユーザーのログイン権限を設定して、指定された例外ユーザーリストファイルのパスを設定し、IPv4 socketsのリスニングを有効にします。
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
6.2 行の先頭に#を付けて、listen_ipv6=YES構成パラメータに注釈を付け、IPv6 socketsのリスニングを無効にします。
#listen_ipv6=YES
6.3 以下の構成パラメータを追加し、パッシブモードを有効にし、ローカルユーザーがログインした後のディレクトリ、およびCVMがデータ転送を確立するために使用できるポート範囲の値を設定します。
local_root=/var/ftp/test
allow_writeable_chroot=YES
pasv_enable=YES
pasv_address=xxx.xx.xxx.xx #ご利用のLinux CVMパブリックIPに変更してください
pasv_min_port=40000
pasv_max_port=45000
7. Escを押して、:wqと入力し、保存して終了します。
8. 次のコマンドを実行して、chroot_listファイルを作成して編集します。
vim /etc/vsftpd/chroot_list
9. iを押して編集モードに入り、ユーザー名を入力します。1つのユーザー名が1行に収まり、設定が完了すると、Escを押し、**:wqを入力して保存して終了します。 設定するユーザーの権限はルートディレクトリに限定されていません。例外ユーザーを設定する必要がない場合は、この手順をスキップでき、:wq**を入力してファイルを終了します。
10. 次のコマンドを実行し、sshサービスを再起動します。
systemctl restart vsftpd

手順4:セキュリティグループの設定

FTPサービスを構築した後、実際に使用するFTPモードに従って、Linux CVMにインバウンドルールをインターネットにオープンする必要があります。詳細については、セキュリティグループルールの追加 をご参照ください。 ほとんどのクライアント端末はLANにあり、IPアドレスが変換されたものです。FTPのアクティブモードを選択した場合は、クライアントマシンが真のIPアドレスを取得したことを確認してください。取得していない場合、クライアントがFTPサーバーにログインできない場合があります。
アクティブモードの場合:ポート21を開きます。
パッシブモードの場合:ポート21と、および 設定ファイルの変更 で設定されているpasv_min_port からpasv_max_portまでのすべてのポートを開きます。(本節では、ポート40000~45000を開きます)。

手順5:FTPサービスの検証

FTPクライアントソフトウェア、ブラウザ、またはファイルエクスプローラなどのツールを使用してFTPサービスを検証できます。本節では、クライアントのファイルエクスプローラを例に説明します。
1. クライアントのInternet Explorerを開き、ツール>インターネットオプション>詳細設定を選択し、選択したFTPモードに応じて変更します:
アクティブモードの場合:「パッシブFTPを使用する」のチェックを外します。
パッシブモードの場合:「パッシブFTPを使用する」のチェックを入れます。
2. 次の図に示すように、クライアントでWindowsエクスプローラーを開き、アドレスボックスに次のアドレスを入力して、Enterキーを押します:
ftp://云服务器公网IP:21



3. ポップアップされた「ログインID」画面に vsftpdを設定する で設定されたユーザー名とパスワードを入力します。 本節で使用するユーザー名が「ftpuser」、パスワードが「tf7295TFY」です。
4. ログインが成功したら、ファイルをアップロード及びダウンロードできます。

付録

FTPのアクティブモードの設定

アクティブモードで変更が必要な設定は次のとおりであり、それ以外の設定項目はデフォルトのままにします:
anonymous_enable=NO #匿名ユーザーのログインを禁止する
local_enable=YES #ローカルユーザーのログインを許可する
chroot_local_user=YES #すべてのユーザーがルートディレクトリのみにアクセスするように制限する
chroot_list_enable=YES #例外ユーザーリストを有効にする
chroot_list_file=/etc/vsftpd/chroot_list #ユーザーリストファイルを指定します。このリストのユーザーの権限はルートディレクトリに限定されていません
listen=YES #IPv4 socketsをリスニングする
#行の先頭に#を付けて、次のパラメータをコメントアウトします
#listen_ipv6=YES #IPv6 socketsのリスニングをオフにする
#次のパラメータを追加する
allow_writeable_chroot=YES
local_root=/var/ftp/test #ローカルユーザーがログインした後の常駐するディレクトリを設定する
Esc を押して:wqを入力し、保存して終了します。手順8 に進み、vsftpdの設定を完了します。

FTPクライアントからのファイルアップロード処理がエラー

問題の説明

Linuxシステム環境では、vsftp経由でファイルをアップロードする時に、下記のようなエラー情報が表示されます。
553 Could not create file

ソリューション

1. 次のコマンドを実行し、サーバーのディスク領域の使用率を確認します。
df -h
ディスクに十分な空き容量がない場合、ファイルをアップロードできないため、ディスク上の大容量のファイルを削除することをお勧めします。
ディスク容量が十分な場合は、次のステップを実行してください。
2. 次のコマンドを実行し、FTP ディレクトリへの書き込み権限があるかどうかを確認します。
ls -l /home/test
# /home/testはFTP ディレクトリです。実際のFTPディレクトリに変更してください。
戻された結果に「w」がない場合は、当該ユーザーに書き込み権限がないことを示し、次のステップを実行してください。
返された結果の中にwがあれば、チケットを提出 してフィードバックしてください。
3. 次のコマンドを実行し、FTPディレクトリへの書き込み権限を付与します。
chmod +w /home/test
# /home/testはFTP ディレクトリです。実際のFTPディレクトリに変更してください。
4. 次のコマンドを実行し、書き込み権限が正常に設定されたかどうかを再度確認します。
ls -l /home/test
# /home/testはFTP ディレクトリです。実際のFTPディレクトリに変更してください。

この記事はお役に立ちましたか?
営業担当者に お問い合わせ いただくか チケットを提出 してサポートを求めることができます。
はい
いいえ

フィードバック