はじめに
UbuntuにFTPサーバーをインストールする場合、vsftpdのシンプルさに勝るものはありません。
FTPはファイル転送プロトコルの略です。ネットワーク経由でデータを転送するための言語を指定するという点で、HTTP(HyperText Transfer Protocol)に似ています。 FTPはデフォルトで暗号化されていないため、FTP自体はデータの安全な送信には適していません。
このガイドは、Ubuntuでvsftpdを使用してFTPサーバーをインストールおよび構成するのに役立ちます。
前提条件
- sudoを使用したユーザーアカウントへのアクセス 特権
- ターミナルウィンドウ/コマンドラインへのアクセス(Ctrl-Alt-T)
- apt パッケージマネージャー、デフォルトで含まれています
ステップ1:システムパッケージを更新する
リポジトリを更新することから始めます–ターミナルウィンドウに次のように入力します:
sudo apt update
システムはリポジトリの更新に進みます。
ステップ2:Ubuntuにvsftpdサーバーをインストールする
Ubuntuで使用される一般的なオープンソースFTPユーティリティはvsftpd 。使いやすさからお勧めです。
1. vsftpdをインストールするには 、コマンドを入力します:
sudo apt install vsftpd
これはUbuntuでの出力の例です。
2.サービスを起動して起動時に有効にするには、次のコマンドを実行します。
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
ステップ3:構成ファイルのバックアップ
変更を加える前に、必ず構成ファイルをバックアップしてください。
1.次のように入力して、デフォルトの構成ファイルのバックアップコピーを作成します。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
ステップ4:FTPユーザーを作成する
次のコマンドを使用して、新しいFTPユーザーを作成します。
sudo useradd -m testuser
sudo passwd testuser
システムは、新しいテストユーザーのパスワードを作成するように要求する必要があります アカウント。
ステップ5:FTPトラフィックを許可するようにファイアウォールを構成する
Ubuntuに標準で付属しているUFWを使用している場合、デフォルトでFTPトラフィックをブロックします。次のコマンドを入力して、ポート20を開きます および21 FTPトラフィックの場合:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
ステップ6:UbuntuFTPサーバーに接続する
次のコマンドを使用してFTPサーバーに接続します。
sudo ftp ubuntu-ftp
ubuntu-ftpを置き換えます システムの名前(コマンドラインから取得)
ログイン testuserを使用する 設定したアカウントとパスワード。これで、FTPサーバーに正常にログインできるはずです。
Ubuntuvsftpdサーバーの構成と保護
デフォルトディレクトリの変更
デフォルトでは、FTPサーバーは / srv / ftpを使用します デフォルトディレクトリとしてディレクトリ。これを変更するには、新しいディレクトリを作成し、FTPユーザーのホームディレクトリを変更します。
FTPホームディレクトリを変更するには、次のように入力します。
sudo mkdir /srv/ftp/new_location
sudo usermod -d /srv/ftp/new_location ftp
vsftpdを再起動します 変更を適用するサービス:
sudo systemctl restart vsftpd.service
これで、FTP経由で共有したいファイルを / srv / ftpに入れることができます。 フォルダ(デフォルトのままにした場合)、または / srv / ftp / new_location / ディレクトリ(変更した場合)。
FTPユーザーの認証
認証されたユーザーにファイルのアップロードを許可する場合は、 vsftpd.confを編集します 次のように入力してファイルを作成します:
sudo nano /etc/vsftpd.conf
write_enable =NOというラベルの付いたエントリを見つけます 、値を「 YES」に変更します 。」
ファイルを保存して終了し、次の手順でFTPサービスを再起動します。
sudo systemctl restart vsftpd.service
これにより、ユーザーはホームディレクトリ内で変更を加えることができます。
FTPの保護
多くのエクスプロイトは、セキュリティで保護されていないFTPサーバーを利用しています。それに応じて、 vsftpd.confにはいくつかの構成オプションがあります FTPサーバーを保護するのに役立ちます。
ユーザーアクセスを制限する
1つの方法は、ユーザーをホームディレクトリに制限することです。 vsftpd.confを開きます エディターで次のコマンドのコメントを解除します:
chroot_local_user=YES
これはnanoのファイルの例です :
ユーザーリストファイルを作成する
リストファイルを作成するには、 /etc/vsftpd.chroot_listを編集します 、および1行に1人のユーザーを追加します。
vsftpd.conf を編集して、このユーザーのリストを自分のホームディレクトリに制限するようにFTPサーバーに指示します。 :
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
この画像は、行われた編集を示しています。
vsftpdを再起動します サービス:
sudo systemctl restart vsftpd.service
デフォルトでは、FTPアクセスからブロックされたユーザーのリストは / etc / ftpusersに保存されます 。ブロックされたユーザーを追加するには、このファイルを編集して、1行に1人のユーザーを追加します。
FTPSでトラフィックを暗号化する
FTPサーバーを保護する別の方法は、トラフィックを暗号化することです。これは、 FTPSを使用して行われます。 – SSLを介したファイル転送プロトコル(Secure Socket Layer)。
これを機能させるには、ユーザーはFTPサーバーでシェルアカウントを設定する必要があります。これにより、FTPトラフィックに安全な暗号化のレイヤーが追加されます。
1.opensslを使用して新しい証明書を作成することから始めます。これを行うには、次のコマンドを実行します:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
2.プロンプトが表示されたら必要な情報を入力するか、 Enterを押してデフォルト構成を維持します 。
3.次に、 vsftpd.confを開きます エディターでファイルを作成し、行を変更します ssl_enable=NO
ssl_enable=YES
へ :
ssl_enable=YES
4.次に、次の行を追加します。
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000
5.変更を保存して、ファイルを終了します。
6.最後に、サービスを再起動して変更を適用します。
sudo systemctl restart vsftpd.service