この記事では、UbuntuVPSでFTPサーバーをセットアップする方法を学習します。 UNIXライクなシステムで最も高速で安全なFTPサーバーとして広く認められているvsftpdサーバーを使用します。
FTPとは何ですか?
FTP(ファイル転送プロトコル)は、TCP/IPプロトコルを使用してインターネット接続を介してコンピューター間でファイルを共有する手段です。また、クライアントサーバーフレームワークとSSL / TLSセキュリティを利用して、安全で信頼性の高いデータ転送を保証します。
これは、HTTP(HypertText Transfer Protocol)またはSMTP(Simple Mail Transfer Protocol)にいくぶん似ています。違いは、FTPがインターネットを介したファイルの転送を担当し、HTTPとSMTPがそれぞれWebページと電子メールの転送を処理することです。
始める前に、Ubuntu18.04でFTPサーバーを構成する手順を説明することを覚えておいてください。したがって、VPSがその特定のOSで実行されていることを確認する必要があります。
UbuntuでFTPサーバーをセットアップする方法
このチュートリアルでは、SSHを介してサーバーに接続する方法を知っている必要があります。 HostingerのVPSを所有している場合、ログインの詳細はサーバーで入手できます。 hPanelのタブ。
- まず、 vsftpd に進む前に、パッケージの更新を取得する必要があります インストール。開始するには、次のコマンドを実行します:
sudo apt-get update
すべてのプロセスが完了するのを待ちます。更新が完了するとすぐに確認が表示されます。
- 完了したら、 vsftpdをインストールします 以下のコマンドを使用するデーモン:
sudo apt-get install vsftpd
確認メッセージが表示され、 Yと入力する必要があります Enterを押します インストールを続行します。
- インストールが完了したら、元のファイルをバックアップして、空の構成ファイルから開始できるようにする必要があります。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
これで、ファイアウォールを構成する準備が整いました。
- Ubuntu FTPサーバーがインターネット経由で通信できるようにするには、ファイアウォールを通過する必要があります。ただし、最初に、ファイアウォールがマシンですでに有効になっているかどうかを確認しましょう。次のコマンドを実行して、ステータスを確認します:
sudo ufw status
次のメッセージが表示された場合:
ufw: command not found
ファイアウォールがインストールされていないことを意味します。次のように入力して、インストールして有効にすることができます:
sudo apt-get install ufw sudo ufw enable
- すでにアクティブになっている場合でも、FTPトラフィックが許可されていることを確認する必要があります。これを行うには、次のコマンドを1つずつ実行します。
sudo ufw allow OpenSSH sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
この一連のコマンドは、いくつかのポートを開きます:
- OpenSSH それでもSSH経由でサーバーにアクセスする場合は、が必要です。このオプションはデフォルトで有効になっている場合があります。
- ポート20 および21 FTPトラフィック用。
- ポート40000:50000 最終的に構成ファイルに設定されるパッシブポートの範囲用に予約されます。
- ポート990 TLSが有効になっている場合に使用されます。
- 次に、ステータスをもう一度見てみましょう。
sudo ufw status
出力は次のようになります。
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 990/tcp ALLOW Anywhere 20/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere 40000:50000/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 20/tcp (v6) ALLOW Anywhere (v6) 21/tcp (v6) ALLOW Anywhere (v6) 990/tcp (v6) ALLOW Anywhere (v6) 40000:50000/tcp (v6) ALLOW Anywhere (v6)
- ファイアウォールを設定したら、FTPアクセスを使用するユーザーを作成する必要があります。これを行う方法は次のとおりです。
sudo adduser hostinger
自分の好みに応じてユーザー名を変更することを忘れないでください。
- 次に、ユーザーのパスワードを入力し、必要なすべての詳細を入力します。
理想的には、セキュリティ上の理由から、FTPは1つの特定のディレクトリに制限する必要があります。そのため、 vsftpd chroot刑務所を使用します 、これはデフォルトでローカルユーザーをホームディレクトリに制限します。
ただし、 vsftpdが原因である可能性があります セキュリティ上、ユーザーはそのディレクトリに書き込めない可能性があります。これを修正するために、ホームフォルダから書き込み権限を削除する必要はありません。代わりに、 chrootとして機能するftpディレクトリを作成します 。必要なファイルを保持するための書き込み可能なディレクトリが含まれています。 - 次のコマンドを使用してFTPフォルダーを作成します:
sudo mkdir /home/hostinger/ftp
次に、以下を使用して所有権を設定します:
sudo chown nobody:nogroup /home/hostinger/ftp
最後に、書き込み権限を削除します:
sudo chmod a-w /home/hostinger/ftp
次に、次のコマンドを使用して権限を確認します。
sudo ls -la /home/hostinger/ftp
出力は次のようになります。
total 8 dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 . drwxr-xr-x 3 hostinger hostinger 4096 Oct 8 11:32 ..
- 次に、ファイル保持ディレクトリを作成し、所有権を割り当てます:
sudo mkdir /home/hostinger/ftp/files sudo chown hostinger:hostinger /home/hostinger/ftp/files
最後に、後ですべてをテストするときに使用されるディレクトリにテストファイルを追加します。
echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt
次のステップは、vsftpdとFTPアクセスを構成することです。この例では、1人のユーザーがローカルシェルアカウントを使用して接続できるようにします。これに必要な2つの主要な構成は、構成( vsftpd.conf )ですでに設定されています。 )ファイル。
- 開始するには、nanoコマンドを使用して vsftpdを開きます 構成ファイル。
sudo nano /etc/vsftpd.conf
コンテンツに次のような設定があることを確認します:
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
同じファイルで、#を削除します (コメント解除)そして、 write_enableが有効になっていることを確認してください 。
. . . write_enable=YES . . .
- chrootのコメントも解除する必要があります FTPユーザーが許可されたディレクトリ内のファイルにのみアクセスするようにします。 いいえを変更します はいの値 、 同じように。このような行は2つあり、両方のコメントを解除する必要があることに注意してください。
. . . chroot_local_user=YES . . .
- ファイルの最後にも追加する必要のある新しい値がいくつかあります。 1つ目はuser_sub_token local_rootディレクトリパス内 。これにより、現在のユーザーまたは後で追加される他のユーザーと構成を連携させることができます:
user_sub_token=$USER local_root=/home/$USER/ftp
- かなりの量の接続を利用できるようにするために、構成ファイルのポート数を制限します:
pasv_min_port=40000 pasv_max_port=50000
- このチュートリアルでは、ケースバイケースでアクセスを許可する予定です。したがって、リストに明示的に追加したユーザーにのみアクセスを許可するように構成を設定します:
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
userlist_denyフラグを設定した場合 いいえ 、指定されたユーザーのみがアクセスを許可されます。完了したら、 CTRL + Xをクリックします 続いてY 保存するには、入力 ファイルの変更を確認します。
- 最後に、ユーザーリストを作成し、ファイルにユーザーを追加します。
echo "hostinger" | sudo tee -a /etc/vsftpd.userlist
次のコマンドを実行して、ユーザーが実際にアクティブであることを確認します。
cat /etc/vsftpd.userlist
このスクリーンショットに示すように、出力は「hostinger」である必要があります。
- 次のコマンドを使用してデーモンを再起動し、構成の変更をロードします。
sudo systemctl restart vsftpd
- デフォルトでは、FTPはデータを暗号化しないため、 SSL / TLSを使用します データ転送を保護するための証明書。最初のステップは、UbuntuFTPサーバーのSSL証明書を作成する必要があることです。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
–日 フラグは証明書を1年間有効にし、2048ビットを含めました プライベートRSA 同じコマンドを入力します。
- プロンプトが表示されたら、表示されたフィールドに対応する個人情報を入力します。
- 証明書の作成が完了したら、構成ファイルを再度開きます:
sudo nano /etc/vsftpd.conf
ファイルの終わりには、 rsaで始まる2行が含まれている必要があります 。
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
次に、作成したばかりの証明書を構成ファイルにポイントします。前の行のすぐ下に次のディレクトリを追加します。
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- 次に、SSLを有効にし、アクティブなSSLを持つクライアントのみが連絡できるようにします。次の行を入力するだけです:
ssl_enable=YES
次に、次の行を追加して、SSLを介した匿名接続を禁止します。
allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
以下を使用してTLSを使用するようにサーバーを構成します:
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
- 次に、さらに2つのオプションを変更します。まず、SSLの再利用を無効にします FTPクライアントが故障するのを防ぐため。次に、高度な暗号化暗号スイートを使用します。これにより、キーの長さが128ビット以上になるようになります。
require_ssl_reuse=NO ssl_ciphers=HIGH
CTRL + X を押して、ファイルをもう一度保存します 続いてY 、次に Enterを押します 。
- vsftpdを再起動しましょう もう一度、新しい構成を適用します:
sudo systemctl restart vsftpd
すごい仕事!これで、SSL/TLSプロトコルで動作するようにUbuntuVPSでFTPサーバーを構成しました。
現在、ほとんどのFTPクライアントはTLS暗号化構成をサポートしています。これは、UbuntuFTPサーバーが正しく機能しているかどうかをテストするための優れた方法です。接続をテストするために、FileZillaFTPクライアントを使用します。
- 開始するには、 FileZillaを起動します サイトマネージャーをクリックします アイコン。次に、新しいサイトをクリックします プロンプトウィンドウのボタンをクリックして、UbuntuFTPサーバーの詳細を入力します。
- 必要なすべての列に、新しく作成したUbuntuFTPサーバー情報を入力します。 TLSを使用するように構成したため、明示的なFTPoverTLSを使用するを選択することもできます。 オプション。最終的な構成は次のようになります。
- 準備ができたら、[接続]をクリックします FTPユーザーのパスワードの入力を求める画面が表示されます。その後、 OKを押します 。
- 最後に、UbuntuVPSでFTPサーバーのSSL証明書を確認する必要があります。確認すると、テストファイルを含むルートディレクトリが画面に表示されます。
それで全部です!これで、コンピューターからUbuntuFTPサーバーへのさまざまなファイル転送を実行できます。
Ubuntu FTPサーバーがあると、UbuntuVPS/サーバーとコンピューター間でファイルを簡単に共有できます。 SSL/TLSセキュリティとTCP/IPプロトコルのおかげで、安全で信頼性の高いデータ転送方法です。
このチュートリアルでは、vsftpdを使用してUbuntu18.04でFTPサーバーをセットアップする方法を学習しました。あなたが従うべき5つのステップがあります。それらをもう一度見てみましょう。
- インストールvsftpd Ubuntuサーバーで、元の構成ファイルをバックアップします。
- ファイアウォールを介したFTP接続を許可します。
- 指定したユーザーだけがアクセスできるユーザーディレクトリを作成します。
- vsftpdを構成します 。
- FTPサーバーを保護します。
- FileZillaを使用してFTP接続をテストします。
頑張ってください。他のVPSチュートリアルも必ず確認してください。