サーバー設定 · 1 min read · Dec 23, 2025
Debian Squeeze における vsftpd + TLS の設定
Debian Squeeze における vsftpd + TLS の設定
バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください
FTPは非常に安全でないプロトコルであり、すべてのパスワードとすべてのデータが平文で転送されます。TLSを使用することで、通信全体を暗号化でき、FTPをはるかに安全にします。この記事では、Debian SqueezeサーバーでTLSを使用してvsftpdを設定する方法を説明します。
これがあなたにとって機能することを保証するものではありません!
1 予備ノート
このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。
2 vsftpd と OpenSSL のインストール
TLSにはOpenSSLが必要です。vsftpdとOpenSSLをインストールするには、次のコマンドを実行します:
apt-get install vsftpd openssl3 TLS用のSSL証明書の作成
TLSを使用するためには、SSL証明書を作成する必要があります。私は/etc/ssl/privateに作成します。ディレクトリが存在しない場合は、今すぐ作成してください::
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/privateその後、次のようにSSL証明書を生成できます:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem国名(2文字コード) [AU]: <– あなたの国名を入力してください(例: “DE”)。
州または県名(フルネーム) [Some-State]: <– あなたの州または県名を入力してください。
市町村名(例: 市) []: <– あなたの市を入力してください。
組織名(例: 会社) [Internet Widgits Pty Ltd]: <– あなたの組織名を入力してください(例: 会社名)。
組織単位名(例: 部門) []: <– あなたの組織単位名を入力してください(例: “IT部門“)。
共通名(例: あなたの名前) []: <– システムの完全修飾ドメイン名を入力してください(例: “server1.example.com”)。
メールアドレス []: <– あなたのメールアドレスを入力してください。
4 vsftpdでのTLSの有効化
vsftpdでTLSを有効にするには、/etc/vsftpd.confを開きます…
vi /etc/vsftpd.conf… そして次のオプションを追加または変更します:
| [...] # SSLをオンにする ssl_enable=YES # 匿名ユーザーが安全なSSL接続を使用できるようにする allow_anon_ssl=YES # すべての非匿名ログインは、データ接続でデータを送受信するために安全なSSL接続を使用することを強制されます。 force_local_data_ssl=YES # すべての非匿名ログインは、パスワードを送信するために安全なSSL接続を使用することを強制されます。 force_local_logins_ssl=YES # TLS v1プロトコル接続を許可します。TLS v1接続が優先されます ssl_tlsv1=YES # SSL v2プロトコル接続を許可します。TLS v1接続が優先されます ssl_sslv2=NO # SSL v3プロトコル接続を許可します。TLS v1接続が優先されます ssl_sslv3=NO # SSLセッションの再利用を無効にします(WinSCPに必要) require_ssl_reuse=NO # vsftpdが暗号化されたSSL接続に許可するSSL暗号を選択します(FileZillaに必要) ssl_ciphers=HIGH # このオプションは、SSL暗号化接続に使用するRSA証明書の場所を指定します。 rsa_cert_file=/etc/ssl/private/vsftpd.pem [...] |
force_local_logins_ssl=YESおよびforce_local_data_ssl=YESを使用すると、TLS接続のみが許可されます(これにより、TLSサポートのない古いFTPクライアントを使用しているユーザーはロックアウトされます)。force_local_logins_ssl=NOおよびforce_local_data_ssl=NOを使用すると、FTPクライアントがサポートするものに応じて、TLS接続と非TLS接続の両方が許可されます。
TLSオプションの他に、非匿名ログインを有効にするために、vsftpd.confに次の設定があることを確認してください:
| [...] # ローカルユーザーがログインできるようにするには、これをコメント解除します。 local_enable=YES # # FTPの書き込みコマンドのいかなる形式を有効にするには、これをコメント解除します。 write_enable=YES # # ローカルユーザーのデフォルトumaskは077です。ユーザーがそれを期待する場合は、これを022に変更することをお勧めします(022はほとんどの他のftpdで使用されています) local_umask=022 [...] # ローカルユーザーをホームディレクトリに制限することができます。これを使用する前に、FAQで可能なリスクを確認してください。 chroot_local_user=YES [...] |
その後、vsftpdを再起動します:
/etc/init.d/vsftpd restartこれで完了です。FTPクライアントを使用して接続を試みることができます。ただし、FTPクライアントをTLSを使用するように設定する必要があります(force_local_logins_ssl=YESおよびforce_local_data_ssl=YESを使用する場合は必須です) - 次の章でFileZillaを使用してこれを行う方法を見てみましょう。
5 TLS用のFileZillaの設定
TLSを使用してFTPを利用するには、TLSをサポートするFTPクライアントが必要です。FileZillaなどです。
FileZillaで、サーバーマネージャーを開きます:
vsftpdを使用してTLSを使用するサーバーを選択します。サーバータイプのドロップダウンメニューで、通常のFTPの代わりにFTPESを選択します:

これでサーバーに接続できます。初めてこれを行う場合は、サーバーの新しいSSL証明書を受け入れる必要があります:

すべてがうまくいけば、サーバーにログインしているはずです:

6 リンク
- vsftpd: https://security.appspot.com/vsftpd.html
- FileZilla: http://filezilla-project.org/
- Debian: http://www.debian.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。