FTPは、すべてのパスワードとすべてのデータがクリアテキストで転送されるため、非常に安全でないプロトコルです。 TLSを使用することにより、通信全体を暗号化できるため、FTPの安全性が大幅に向上します。この記事では、Ubuntu 15.10サーバーでTLSを使用してProFTPdをセットアップする方法、FTPユーザーを追加する方法、およびFileZillaを使用してTLSに安全に接続する方法について説明します。
1予備メモ
このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.1.100を使用します。これらの設定はユーザーによって異なる場合があるため、必要に応じて置き換える必要があります。
このチュートリアルのすべてのステップをroot権限で実行する必要があるため、このチュートリアルのすべてのコマンドの前に文字列sudoを付けるか、「
」と入力して今すぐrootになります。sudo su
このチュートリアルでは、nanoエディターを使用して構成ファイルを編集します。 nanoも使用したいが、まだインストールしていない場合は、このコマンドを実行してnanoをインストールします。
apt-get install nano
2ProFTPdとOpenSSLをインストールします
TLSにはOpenSSLが必要です。 ProFTPdとOpenSSLをインストールするには、次のコマンドを実行するだけです。
apt-get install proftpd openssl
質問があります:
proftpdを実行します:<-スタンドアロン
セキュリティ上の理由から、次の行を/etc/proftpd/proftpd.confに追加する必要があります。
nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]
最初のオプションはFTPユーザーのホームディレクトリへのchrootingを有効にし、2番目のオプションは使用されたFTPサーバーソフトウェア、バージョン、またはOSに関する情報を含まないServerIdentメッセージを有効にして、潜在的な攻撃者がこれらの詳細をシルバーで取得しないようにしますプレート。
3TLSのSSL証明書を作成する
TLSを使用するには、SSL証明書を作成する必要があります。 / etc / proftpd / sslに作成するので、最初にそのディレクトリを作成します:
mkdir /etc/proftpd/ssl
その後、次のようにSSL証明書を生成できます。
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
国名(2文字のコード)[AU]:<-国名を入力します(例:「DE」)。
州名または州名(フルネーム)[一部の州]:<-州を入力しますまたは州名。
地域名(例:市)[]:<-市区町村を入力してください。
組織名(例:会社)[Internet Widgits Pty Ltd]:<-組織名を入力してください(例:会社名)
組織単位名(例:セクション)[]:<-組織単位名(例:「IT部門」)を入力します。
一般名(例:あなたの名前)[]:<-システムの完全修飾ドメイン名を入力します(例: "server1.example.com")。
メールアドレス[]:<-メールアドレスを入力します。
生成された証明書ファイルを保護します。
chmod 600 /etc/proftpd/ssl/proftpd.*
4ProFTPdでTLSを有効にする
ProFTPdでTLSを有効にするには、/ etc / proftpd / proftpd.conf ...
を開きます。nano /etc/proftpd/proftpd.conf
...そしてインクルード/etc/proftpd/tls.conf行のコメントを外します:
[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]
次に、/ etc / proftpd / tls.confを開き、次のように表示します。
nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
</IfModule>
TLSRequiredをオンに使用すると、TLS接続のみが許可されます(これにより、TLSをサポートしていない古いFTPクライアントを持つすべてのユーザーがロックアウトされます)。その行をコメントアウトするか、TLSRequiredをオフに使用することにより、FTPクライアントがサポートするものに応じて、TLS接続と非TLS接続の両方が許可されます。
その後、ProFTPdを再起動します:
systemctl restart proftpd.service
それでおしまい。これで、FTPクライアントを使用して接続を試みることができます。ただし、TLSを使用するようにFTPクライアントを構成する必要があります(TLSRequiredを使用する場合は必須です)。FileZillaでこれを行う方法については、次の章を参照してください。
TLSに問題がある場合は、TLSログファイル/var/log/proftpd/tls.logを確認できます。
5FTPユーザーを追加します
このチュートリアルで使用されるProFTPD構成は、Linuxシステムのユーザーデータベース(/ etc/passwdおよび/etc/ shadow)に対してユーザーを認証します。このステップでは、FTPログインにのみ使用されるユーザー「tom」を追加します。
useradd --shell /bin/false tom
これにより、シェル/ bin/falseを使用してユーザー「tom」が追加されます。このシェルにより、彼はFTPでログインできますが、SSHではログインできません。ユーザーのホームディレクトリは、デフォルトでは/ home / [USERNAME]であり、この場合は/ home/tomです。 ProFTPDは、ユーザーをホームディレクトリに移動するように構成されているため、ユーザーは/ home/tomの外部にあるシステムファイルにアクセスできません。別のホームディレクトリを設定する場合は、次のコマンドを使用します。
useradd --home /srv/tomftp --create-home --shell /bin/false tom
このコマンドは、別のホームディレクトリを設定します。この例の場合、ユーザーのディレクトリ/ srv/tomftpです。
次のステップは、ユーザーtomのパスワードを設定し、passwdコマンドを実行することです。
passwd tom
必要に応じて、新しいパスワードを2回入力します。
6TLS用のFileZillaの構成
FTPをTLSで使用するには、FileZillaなどのTLSをサポートするFTPクライアントが必要です。
FileZillaで、サイトマネージャーを開きます:
TLSでProFTPdを使用するサーバーを選択します。 [サーバーの種類]ドロップダウンメニューで、通常のFTPではなくFTPESを選択します。
これでサーバーに接続できるようになり、FileZillaがパスワードを要求します。
これを初めて行う場合は、サーバーの新しいSSL証明書を受け入れる必要があります。
すべてがうまくいけば、サーバーにログインする必要があります:
7このセットアップをVMとしてダウンロード
このチュートリアルで説明されているセットアップは、HowtoForgeサブスクライバーにダウンロードできます。 OVA / OVF形式ですぐに使用できる仮想マシンは、VMWareおよびVirtualboxと互換性があります。
VMのログインの詳細
仮想マシンには、「administrator」という名前と「howtoforge」というパスワードを持つSSHユーザーがいます。このSSHユーザーにはsudo権限があります。
FTPユーザー「tom」のパスワードは「tom」です。
VMのIPアドレスは192.168.1.100で、IPはファイル/ etc / network/interfacesで変更できます。
VMをライブシステムとして使用する前に、すべてのユーザーのパスワードを変更してください。
8リンク
- ProFTPd:http://www.proftpd.org/
- FileZilla:http://filezilla-project.org/
- Ubuntu:http://www.ubuntu.com/