VSFTPD をインストール
VSFTPD (Very Secure FTP Daemon) は、サーバー上で FTP を構成するためのソフトウェア プログラムです。このチュートリアルでは、VSFTPD を使用して、コンピューター上の FTP サーバーを構成します。 VSFTPD をインストールする前に、次のコマンドを実行してサーバーのリポジトリを更新してください。
[メール保護]:~$ sudo apt-get-update -and次に、次のコマンドで VSFTPD をインストールします。
[メール保護]:~$ sudo apt-get install vsftpd -and最後に、次のコマンドで vsftpd のバージョンを確認して、インストールを確認します。
[メール保護]:~$ vsftpd -v
上記のコマンドは、インストールが成功した場合に vsftpd のバージョンを出力します。
アクティブ モードの FTP
アクティブ モードでは、FTP クライアントは、クライアント マシンの任意のポートからサーバーのポート 21 への TCP 制御接続を確立することによって、セッションを開始します。次に、クライアントはランダムなポート X でデータ接続のリッスンを開始し、クライアントがポート X でデータ接続をリッスンしていることを TCP 制御接続を介してサーバーに通知します。次にサーバーは、ポート 20 からクライアント コンピューターのポート X へのデータ接続を確立します。
クライアントがファイアウォールの背後にあり、ポート X がブロックされている場合、問題が発生する可能性があります。この場合、サーバーはクライアントへのデータ接続を確立できません。ほとんどの場合、この問題を回避するために、FTP サーバーはパッシブ モードで使用されます。これについては、この記事の後半で説明します。デフォルトでは、VSFTPD はパッシブ モードを使用するため、アクティブ モードに変更する必要があります。
まず、VSFTPD 構成ファイルを開きます。
[メール保護]:~$ sudo Nano /etc/vsftpd.conf次の行をファイルの末尾に追加します。
pasv_enable=いいえ
また、「connect_from_port_20」オプションが「YES」に設定されていることを確認してください。このオプションは、データ接続がサーバーのポート 20 で確立されることを保証します。
次に、FTP サーバーがファイルの保存に使用するディレクトリを作成します。このチュートリアルでは、「/home/ubuntu/ftp/」を FTP サーバーのルート パスとして構成します。
[メール保護]:~$ sudo mkdir /home/ubuntu/ftpここで、「local_root」オプションを変更して、構成ファイルでこのディレクトリを指定します。次のパラメーターは、サーバーのルート パスを構成します。
local_root=/home/ubuntu/ftp
ユーザーが FTP サーバーに書き込みできるようにするには、「write_enable」オプションを有効にする必要があります。
構成ファイルを変更するときは、必ずサーバーを再起動してください。
[メール保護]:~$ sudo systemctl restart vsftpdユーザーのパスワードを設定する
FTP クライアントは、ユーザー名とパスワードを使用してサーバーに接続します。次のコマンドを使用して、デバイスでユーザーのパスワードを設定します。
[メール保護]:~$ sudo passwd ubuntu上記のコマンドは、ユーザー「ubuntu」のパスワードを要求します。
ファイアウォールをアクティブ モードに設定する
FTP がアクティブ モードで使用される場合、FTP サーバーはクライアントとの通信にポート 21 と 22 の 2 つのポートを使用します。ポート 21 はクライアントにコマンドを渡すために使用され、ポート 20 は の任意のポートにデータを送信するために使用されます。お客様を転送します。 ufw を使用して、サーバー上のファイアウォールを構成します。次のコマンドで ufw をインストールします。
[メール保護]:~$ sudo apt-get install ufwここで、サーバー側でポート 20、21、および 22 (SSH 接続用) を開きます。
[email protected]:~$ sudo ufw allow proto tcp from any from any port
次のコマンドで ufw のステータスを有効にして確認します。
[メール保護]:~$ sudo ufw を有効にする[メール保護]:~$ sudo ufw ステータス
注: クラウドで FTP サーバーを構成する場合は、セキュリティ グループでポート 20、21、および 22 も許可する必要があります。
警告: リモート システムで ufw を有効にする前に、必ずポート 22 と必要なポートを有効にしてください。デフォルトでは、ポート 22 トラフィックを許可せずに ufw を有効にすると、UFW はポート 22 トラフィックをブロックするため、SSH 経由でリモート サーバーにアクセスできなくなります。
FTP クライアントをインストール
これで、サーバーがアクティブ モードで構成され、クライアント側からアクセスできるようになりました。クライアント アプリケーションには、FTP クライアント アプリケーションである FileZilla を使用します。次のコマンドで FileZilla をインストールします。
[メール保護]:~$ sudo apt-get install filezilla -andFTP クライアント アプリケーションを開き、FTP サーバーのパブリック IP アドレスとその他の資格情報を入力します。
「Quickconnect」をクリックすると、FTP サーバーに接続され、「/home/ubuntu/ftp」構成ファイルの「local_root」オプションで指定されたディレクトリに自動的に転送されます。
アクティブ モードの問題
FTP をアクティブ モードで使用すると、クライアントがファイアウォールの背後にある場合に問題が発生します。最初の制御コマンドを入力した後、サーバーがランダムなポートでクライアントとのデータ接続を確立すると、ポートがクライアントのファイアウォールによってブロックされ、データ転送が失敗する可能性があります。 FTP をパッシブ モードで使用して、これらのファイアウォールの問題を修正できます。
パッシブ モードの FTP
パッシブ モードでは、クライアントはサーバーのポート 21 でサーバーとの制御接続を確立します。次に、クライアントは特別な「PASV」コマンドを送信して、データ接続がサーバーではなくクライアントによって行われていることをサーバーに通知します。応答として、クライアントはサーバー IP とランダムなポート番号を取得します (このポート番号はサーバーで構成されます)。クライアントは、この IP とポート番号を使用して、サーバーとのデータ接続を確立します。パッシブ モードでは、ファイアウォールがクライアントとサーバー間の通信を妨害しないように、データ接続と制御接続の両方がクライアントによって確立されます。
お好みのエディターで FTP 構成ファイルを開きます。
[メール保護]:~$ sudo Nano /etc/vsftpd.confファイルの「pasv_enable」オプションを「YES」に設定して、サーバーがパッシブ モードでクライアントと通信できるようにします。また、「local_root」オプションを設定してサーバーのルート ディレクトリを指定し、「write_enable」オプションを「YES」に設定して、ユーザーがファイルをサーバーにアップロードできるようにします。
前述のように、データ接続はクライアントによって確立され、サーバーはそのパブリック IP とランダム ポートをクライアントに送信して、データ接続を確立します。サーバー上のこのランダムなポートは、構成ファイル内のポート範囲から指定できます。
サーバーとクライアント間のデータ接続は、1024 ~ 1048 のポートで確立されます。構成ファイルを変更した後、FTP サーバーを再起動してください。
[メール保護]:~$ sudo systemctl restart vsftpdパッシブ モードでファイアウォールを構成する
FTP をパッシブ モードで使用する場合、データ接続は 1024 から 1048 までの任意のポートを介して行われるため、FTP サーバーでこれらすべてのポートを許可する必要があります。
[email protected]:~$ sudo ufw allow proto tcp from any from any port
ファイアウォールですべてのポートを許可した後、次のコマンドを実行して ufw を有効にします。
[メール保護]:~$ sudo ufw を有効にするファイアウォールを有効にする前に、サーバーのポートを常に許可してください。そうしないと、デフォルトでポート 22 をブロックする ufw として SSH 経由でサーバーにアクセスできなくなります。
接続のテスト
FTP サーバーをパッシブ モードでセットアップしたので、クライアント アプリケーションとの FTP 接続を確認できます。これを行うには、システムで FileZilla を開きます。
ホスト、ユーザー名、パスワード、ポートを入力すると、サーバーに接続できるようになります。パッシブ モードで実行されている FTP サーバーに接続したので、サーバーにファイルをアップロードできます。
FTP サーバーで SSL 証明書を構成する
デフォルトでは、FTP サーバーは、セキュリティで保護されていないチャネルを介してクライアントとサーバー間の接続を確立します。クライアントとサーバー間で機密データを交換する場合は、このタイプの通信を使用しないでください。安全なチャネルを介して通信するには、SSL 証明書を使用する必要があります。
SSL 証明書の生成
SSL 証明書を使用して、クライアントとサーバー間の安全な通信を設定します。 openssl を使用してこれらの証明書を生成します。次のコマンドは、サーバーの SSL 証明書を生成します。
[メール保護]:~$ sudo openssl request -x509 -node -tag 365 -新しいキー rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -aus /etc/ssl/private/vsftpd.pem上記のコマンドを実行すると、いくつかの質問が表示されます。これらの質問に答えると、証明書が生成されます。ターミナルで証明書を参照できます。
[メール保護]:~$ sudo ls /etc/SSL/private/
構成ファイルでの証明書の使用
これで、証明書を使用する準備が整いました。通信に SSL 証明書を使用するように「vsftpd.conf」ファイルを構成します。次のコマンドで構成ファイルを開きます。
[メール保護]:~$ sudo Nano /etc/vsftpd.confファイルの末尾に次の行を追加します。これらの変更により、FTP サーバーは新しく生成された SSL 証明書を使用してクライアントと安全に通信できるようになります。
ssl_enable=はいforce_local_data_ssl=いいえ
force_local_logins_ssl=いいえ
ssl_tlsv1=はい
ssl_sslv2=いいえ
ssl_sslv3=いいえ
rsa_cert_file=/etc/SSL/privateプロパティ /vsftpd.pem
rsa_private_key_file=/etc/SSL/Private/vsftpd.pem
これらの変更を有効にするには、FTP サーバーを再起動してください。
[メール保護]:~$ sudo systemctl restart vsftpdサーバーが再起動したら、FileZilla クライアント アプリケーションを使用してサーバーに接続してみます。今度は、クライアント アプリケーションがこれらの証明書を信頼するかどうかを尋ねます。
信頼できる CA からの証明書がある場合、この警告は表示されません。信頼できる CA ではない openssl を使用して証明書を生成したため、この場合は証明書認証を求められました。これで、安全なチャネルを介してクライアントとサーバーの間で通信できます。
匿名構成
FTP サーバーで匿名ログインを有効にすることもできます。この構成を有効にすると、すべてのユーザーが任意のユーザー名とパスワードで FTP サーバーにログインできます。構成ファイルの次のパラメーターは、FTP サーバーに匿名でアクセスできるようにします。
上記の構成は、匿名ユーザーのルート パスを「/home/ubuntu/ftp/anon」に設定し、匿名ユーザーがログインするときにパスワードの入力を求めません。
注: パス「/home/ubuntu/ftp/anon」が FTP サーバーに存在することを確認してください。
FTP サーバーを再起動してください。
[メール保護]:~$ sudo systemctl restart vsftpdサーバーを再起動した後、Google Chrome ブラウザーを介してサーバーへの接続を試みます。次の URL にアクセスしてください。
ftp://3.8.12.52上記の URL は、構成ファイルで指定されている FTP サーバーのルートに移動します。匿名ログインが無効になっている場合、ブラウザから FTP サーバーに接続しようとすると、最初に認証を求めるプロンプトが表示され、次にサーバーのルートにリダイレクトされます。
ローカル アクセスを構成する
構成ファイルを変更して、FTP サーバーへのローカル アクセスを許可またはブロックすることもできます。現在、FTP クライアント アプリケーションを使用せずにローカルで FTP サーバーにアクセスできますが、このアクセスをブロックすることができます。これを行うには、'local_enable' パラメータを変更する必要があります。
まず、FTP サーバーを再起動します。
[メール保護]:~$ sudo systemctl restart vsftpdサーバーが再起動したら、コマンド ライン インターフェイスを使用してローカルで FTP サーバーにアクセスしてみます。 SSH を使用してリモート サーバーにログインします。
[メール保護]:~$ ssh [email protected] -i次のコマンドを入力して、コマンド ライン インターフェイスを使用してローカルで FTP サーバーにログインします。
[メール保護]:~$ ftp localhost上記のコマンドを実行すると、500 エラーがスローされます。
完了
ファイル転送プロトコルは、インターネット経由でファイルやドキュメントを転送するために長年使用されてきました。 VSFTPD は、コンピューターで FTP サーバーとして使用されるパッケージの 1 つです。 VSFTPD には、FTP サーバーのカスタマイズに使用できるさまざまな構成が付属しています。このチュートリアルでは、セキュリティを強化するために TLS を使用して FTP サーバーを構成する方法を示しました。 FTP 構成の詳細については、次のリンクにアクセスしてください。
https://vsftpd.beasts.org/vsftpd_conf.html

Ubuntu20.04LTSにOpenNMSをインストールする方法

Ubuntu20.04にGpartedをインストールする方法

Ubuntu18.04およびUbuntu19.04にuTorrentをインストールする方法