FTP(ファイル転送プロトコル)を介したファイルの転送は、おそらくサーバーにファイルをアップロードするための最も一般的な方法の1つです。 ProFTPDは、オープンソースソフトウェアとして利用可能で、安全な接続のためにTLS(SSL)をサポートする人気のある用途の広いFTPサーバーです。
デフォルトでは、パスワードとデータはクリアテキストで転送されるため、FTPは安全でないプロトコルです。このガイドで行うようにTLSを使用することで、すべての通信を暗号化してFTPをより安全にすることができます。
この記事では、Ubuntuサーバー20.04LTSでTLSを使用してproftpdを構成する方法について説明します。 。
前提条件
- Ubuntu Server20.0464ビット
- sudo/root権限
このチュートリアルで行うこと
- ProFTPDとTLSをインストールします。
- ProFTPDを設定します。
- FTPユーザーを追加します。
- ProFTPDでTLSを設定します。
- テスト。
ProftpdとOpenSSLをインストールする
ProftpdとOpenSSLはUbuntuリポジトリで利用できるため、aptコマンドでインストールできます:
sudo apt-get install -y proftpd openssl
ProFTPDは以下のようにインストールされます。インストールプロセスは入力を要求しません。
ここで、proFTPDがインストールされ、開始されていることを確認します。次のコマンドを実行します:
sudo proftpd --version
インストールされているProFTPDのバージョンを確認します。次に、サービスステータスを確認し、systemctlコマンドを使用してクエリを実行します。
sudo systemctl status proftpd
ProFTPDを設定する
ProFTPDをインストールしたら、完全に機能する安全なサーバーになるように構成を調整する必要があります。 ProFTPD設定ファイルは/etc/ proftpd /ディレクトリにあります–ファイルproftpd.confを編集してください。
sudo nano /etc/proftpd/proftpd.conf
サーバー名の行で、値をホスト名またはドメインに置き換えます:
ServerName "My FTP-Server"
DefaultRoot行のコメントを解除して、すべてのユーザーのjailを有効にします。
DefaultRoot〜
次の方法でsystemctlコマンドを使用してProFTPDを再起動します。
sudo systemctl restart proftpd
FTPユーザーを追加する
使用可能なFTPユーザーには、匿名FTPユーザーと「通常の」FTPユーザーの2種類があります。
- 匿名FTP :FTPサーバーは、ユーザーアカウントとパスワードがなくても、誰にでもアクセスできるようにします。これは、公開されているサーバーでは使用しないでください。ただし、ホームサーバーまたは会社のLANのオプションである可能性があります。
- FTPユーザー :ユーザーアカウントとパスワードを持っている人だけがFTPサーバーにアクセスできます。
FTPサーバーのユーザーを作成する前に、/ bin/falseを/etc/shellsファイルに追加してください。
sudo echo "/ bin / false">> / etc / shells
次に、特定のホームディレクトリを持つユーザーを作成し、シェルアクセスを無効にしてから、FTPサーバーに許可します。
sudo useradd -m -s / bin / false tomsudo passwd tom
上記のコマンドは、ホームディレクトリ/ home / tom /を持ち、シェルアクセス/ bin/falseのないtomという新しいユーザーを作成します。
次に、ユーザーtomがFTPサーバーにアクセスできるようにProFTPDを構成します。
sudo nano /etc/proftpd/conf.d/tom.conf
この構成ファイルを追加して、ユーザーtomがログインし、サーバーとの間でファイルをアップロード/ダウンロードできるようにします:
Umask 022 022 AllowOverwrite off AllowUser tom DenyALL Order Allow、Deny AllowUser tom Deny ALL AllowUser tom Deny ALL
ファイルは次のようになります:
ファイルを保存してnanoを終了します。次に、ProFTPDを再起動します。
sudo systemctl restart proftpd
この段階ではすでにFTPを使用できますが、次のステップでTLSを使用することでより安全になります。
proftpdでTLSを構成する
TLSを使用するには、SSL証明書を作成する必要があります。 OpenSSLコマンドを使用してSSL証明書を生成します:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
上記のコマンドは、/ etc / ssl / certs /ディレクトリに証明書ファイルproftpd.crtを生成し、/ etc / ssl /private/ディレクトリに証明書キーファイルproftpd.keyを生成します。
次に、証明書ファイルのアクセス許可を600に変更します:
sudo chmod 600 /etc/ssl/certs/proftpd.crtsudo chmod 600 /etc/ssl/private/proftpd.key
ここで、/ etc / proftpdディレクトリに戻り、生成したSSL証明書を使用するようにProFTPDを構成します。
nano /etc/proftpd/proftpd.conf
TLS行のコメントを解除します:
/etc/proftpd/tls.confを含める
tls.confファイルを保存して終了します。
次に、TLS構成ファイルを編集して、安全な認証を有効にします:
nano /etc/proftpd/tls.conf
これらすべての行のコメントを解除します:
TLSEngine onTLSLog /var/log/proftpd/tls.logTLSProtocol SSLv23TLSRSACertificateFile /etc/ssl/certs/proftpd.crtTLSRSACertificateKeyFile /etc/ssl/private/proftpd.keyTLSOptions NoCertRequest EnableDiags NoSessionReuseRequiredTLSVerifyClient保存して終了。最後のステップは、ProFTPDサーバーを再起動することです:
sudo systemctl restart proftpdProFTPDのテスト
構成をテストするには、FileZillaなどのソフトウェアを使用してFTPサーバーに接続してみてください(私は FileZillaを使用しています ここに)、サーバーのIP、ユーザー名、パスワード、ポートを入力します:
サーバーIP:192.168.0.100ユーザー名:tomPassword ******ポート:21次に、[クイック接続]をクリックします。
[OK]をクリックして、自己署名SSL証明書を確認します。
TLS/SSL証明書を使用してFTPサーバーにログインしていることがわかります。
リンク
- ProFTPDソフトウェアプロジェクト。リンク