GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuLinuxでFTPサーバーをセットアップして使用する方法

FTPは「ファイル転送プロトコル」の略で、リモートサーバーまたはローカルサーバーからファイルをダウンロードしたり、サーバーにファイルをアップロードしたりするための優れたプロトコルです。 FTPを使用することは、適切にセットアップされた後、かなり基本的なタスクであることがわかります。これは、クライアントからの接続(デフォルトではポート21)をリッスンするサーバーを持つことで機能します。クライアントは、自分のユーザーアカウントを使用してリモートディレクトリにアクセスし、付与されているアクセス許可に応じて、そこでファイルをダウンロードまたはアップロードできます。匿名認証を構成することもできます。つまり、ユーザーはFTPサーバーに接続するために自分のアカウントを必要としません。

Ubuntu Linuxでは、さまざまなFTPサーバーおよびクライアントソフトウェアパッケージを利用できます。デフォルトのGUIおよびコマンドラインツールをFTPクライアントとして使用することもできます。非常に人気があり、高度に構成可能なFTPサーバーパッケージはvsftpdであり、Ubuntuを含む多くのLinuxシステムで利用できます。

このガイドでは、Ubuntuにvsftpdをインストールするための手順を段階的に説明します。また、さまざまな設定でFTPサーバーを構成する方法、次にコマンドライン、GNOME GUI、またはFTPクライアントソフトウェアを使用してFTPサーバーに接続する方法についても説明します。

警告
FTPで十分な場合もありますが、インターネット経由の接続にはSFTPをお勧めします。これは、資格情報とデータが暗号化なしで送信されるため、FTPをインターネット接続で使用するのは安全ではないためです。 SFTPの「S」は「Secure」の略で、SSHを介してFTPプロトコルをトンネリングし、安全な接続を確立するために必要な暗号化を提供します。 SFTPの詳細については、SFTPを使用してファイルを安全に転送する方法に関するガイドを参照してください。

このチュートリアルでは、次のことを学びます。

  • Ubuntuにvsftpdをインストールして設定する方法
  • FTPユーザーアカウントを設定する方法
  • コマンドラインからFTPサーバーに接続する方法
  • GUIを介してFTPサーバーに接続する方法
  • 匿名FTPログインを構成する方法
  • デフォルトのFTPリスニングポートを変更する方法
  • 「接続が拒否されました」FTP接続エラーのトラブルシューティング

UbuntuLinuxでFTPサーバーに接続する

ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
システム Ubuntu Linux
ソフトウェア vsftpd
その他 rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド。
コンベンション –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

vsftpdのインストール

ターミナルに次のコマンドを入力して、Ubuntuシステムにvsftpdをインストールします。

$ sudo apt install vsftpd

vsftpdサーバーの構成

  1. 後で問題が発生した場合に備えて、元の構成ファイルのバックアップコピーを保持することを常にお勧めします。デフォルトの設定ファイルの名前を変更しましょう:
    $ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_orig
    
  2. nanoまたは任意のテキストエディタを使用して、新しいvsftpd構成ファイルを作成します:
    $ sudo nano /etc/vsftpd.conf
    
  3. 次の基本構成をファイルにコピーします。この構成は基本的なFTPサーバーには十分であり、これが正しく機能していることを確認したら、後で環境の特定のニーズに合わせて調整できます。
    listen=NO
    listen_ipv6=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    chroot_local_user=YES
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO
    pasv_enable=Yes
    pasv_min_port=10000
    pasv_max_port=10100
    allow_writeable_chroot=YES

    上記の行を新しく作成した/etc/vsftpd.confに貼り付けます ファイルを作成し、変更を保存してファイルを閉じます。

  4. vsftpd構成ファイル

  5. Ubuntuの組み込みファイアウォールはデフォルトでFTPトラフィックをブロックしますが、次のコマンドはトラフィックを許可するためにUFWで例外を作成します:
    $ sudo ufw allow from any to any port 20,21,10000:10100 proto tcp
    
  6. 構成ファイルを保存し、ファイアウォールルールを更新したら、vsftpdを再起動して、新しい変更を適用します。
    $ sudo systemctl restart vsftpd
    

FTPユーザーを作成する

FTPサーバーは着信接続を受信する準備ができているので、FTPサービスへの接続に使用する新しいユーザーアカウントを作成します。

  1. この最初のコマンドを使用して、ftpuserという新しいアカウントを作成します 、およびアカウントのパスワードを設定する2番目のコマンド:
    $ sudo useradd -m ftpuser
    $ sudo passwd ftpuser
    New password: 
    Retype new password: 
    passwd: password updated successfully
    
  2. すべてが正しく機能していることを確認するには、ftpuserのホームディレクトリに少なくとも1つのファイルを保存する必要があります。このファイルは、次の手順でFTPにログインしたときに表示されるはずです。
    $ sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"
    

コマンドライン経由でFTPサーバーに接続

これで、IPアドレスまたはホスト名のいずれかでFTPサーバーに接続できるようになります。まず、次のコマンドを実行して、デフォルトのFTPクライアントユーティリティがシステムにインストールされていることを確認します。ソフトウェアをインストールするか、システムにすでに存在していることを通知します。

$ sudo apt install ftp

コマンドラインから接続してすべてが機能していることを確認するには、ターミナルを開き、Ubuntuのftpコマンドを使用してループバックアドレス(127.0.0.1)に接続します。

$ ftp 127.0.0.1

コマンドライン経由でFTPサーバーに接続する

上のスクリーンショットでわかるように、前に構成したユーザー名とパスワードを指定することでFTPサーバーにログインできました。次に、lsを発行してみましょう コマンド。前の手順で作成したテストファイルが一覧表示されます。

ftp> ls

FTPサーバーのコンテンツを表示できることを確認するためのテストファイルの一覧表示

出力は上のスクリーンショットのようになり、ログインが成功し、lsであることを示します。 以前に作成したテストファイルを表示するコマンド。

GNOMEGUIを介してFTPサーバーに接続する

必要に応じて、GUIを使用してFTPサーバーに接続することもできます。 FTPクライアントには多くのオプションがありますが、UbuntuのデフォルトのGNOME GUIには、ファイルマネージャーからFTPサーバーに接続する機能がすでに備わっています。これを使用してFTPサーバーに接続する方法は次のとおりです。

  1. [アクティビティ]メニューまたはクイック起動バーからファイルマネージャを開きます。
  2. 「その他の場所」をクリックして、ftp://127.0.0.1と入力します。 ウィンドウの下部にある[サーバーに接続]ボックスで、[接続]をクリックします。
  3. GNOMEファイルマネージャーを介したFTPサーバーへの接続

  4. 「登録ユーザー」を選択し、前に設定したFTPアカウントの資格情報を入力して、[接続]をクリックします。
  5. FTPユーザーのクレデンシャルを入力する

  6. 接続が成功すると、前に作成したテストファイルが表示されます。これで、このファイルをダウンロードして表示したり、独自のコンテンツをディレクトリにアップロードしたりできるようになります。
  7. FTPサーバーへの接続に成功し、テストファイルが表示されます

vsftpdで匿名アクセスを許可する

これまで、FTPサーバーにアクセスできる新しいユーザーを作成する方法を見てきました。ユーザー名とパスワードを指定せずに他のユーザーがFTPサーバーにアクセスできるようにする場合は、匿名認証を構成できます。以下の手順に従ってセットアップしてください。

  1. まず、/etc/vsftpd.confを編集する必要があります ファイルなので、nanoまたはその他のテキストエディタで開きます。
    $ sudo nano /etc/vsftpd.conf
    
  2. 次に、anonymous_enable=NOを探します 行を入力し、設定をYESに変更します 。
    anonymous_enable=YES
    
  3. 完了したら、新しい変更を保存しながらこのファイルを終了し、vsftpdサービスを再起動して変更を有効にします。
    $ sudo systemctl restart vsftpd
    
  4. 匿名ログインをテストするには、ftp 127.0.0.1を発行します コマンド、anonymousを使用 ユーザー名、および空白のパスワードとして。 230 Login successfulを受け取るはずです 下のスクリーンショットに示すようなメッセージ。
  5. 匿名でFTPサーバーにログインする

デフォルトのFTPポート番号を変更する

デフォルトでは、FTPプロトコルはポート21でユーザー認証をリッスンし、ポート20でデータ転送をリッスンします。ただし、/etc/vsftpd.confを少し編集することで、この動作を変更できます。 ファイル。ファイルの下部で、listen_portを使用します vsftpdが使用する別のポートを指定するディレクティブ。たとえば、次の行を追加すると、vsftpdはポート2121でリッスンするように指示されます。

listen_port=2121

まとめ

このガイドでは、vsftpdソフトウェアパッケージを使用してUbuntuLinuxでFTPサーバーを作成する方法を説明しました。また、コマンドラインまたはGNOMEGUIをFTPクライアントとして使用してサーバーに接続する方法も学習しました。このガイドに従うことで、ローカルネットワーク上のコンピューターは、コマンドラインまたは優先FTPクライアントを介して、システムにアクセスしてファイルを保存および取得できます。

トラブルシューティング

表示される可能性のある最も一般的なエラーは、サーバーに接続しようとしたときに「接続が拒否されました」というメッセージです。これにはさまざまな理由が考えられますが、通常、ファイアウォールが接続をブロックしているか、vstpdファイルが正しく構成されていないことに関連しています。次のコマンドを実行して、FTPポートがファイアウォールによってブロックされていないことを確認します。

$ sudo ufw allow from any to any port 20,21,10000:10100 proto tcp

また、vsftpdサービスのステータスをチェックして、サービスが実行中であり、起動エラーが発生していないことを確認します。

$ systemctl status vsftpd

vsftpdサービスのステータスを確認する

次のコマンドを使用して、vsftpdを開始するか、構成の変更を適用した後にサービスを再起動します。

$ sudo systemctl start vsftpd
OR
$ sudo systemctl restart vsftpd

最後に、ルーターまたは外部ファイアウォールも接続のブロックに関与している可能性があることに注意してください。 ftp 127.0.0.1を使用してFTPサーバーに正常に接続できる場合 サーバー自体でコマンドを実行し、上記のトラブルシューティング手順を実行しましたが、リモートシステムからFTPサーバーに接続できない場合は、2つのシステムの間に接続をブロックしているデバイスが存在する可能性があります。


Ubuntu
  1. UbuntuLinuxにHubotをインストールして使用する方法

  2. Ubuntu20.04LTSにTelnetをインストールして使用する方法

  3. Ubuntu20.04にユニバーサルメディアサーバーをインストールしてセットアップする方法

  1. Ubuntu 20.04 FocalFossaLinuxでFTPサーバーをセットアップする方法

  2. Ubuntu20.04でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. Ubuntu18.04でVSFTPDを使用してFTPサーバーをセットアップする方法

  1. Ubuntu18.04LTSでKerberosサーバーとクライアントをセットアップする方法

  2. Plex Media ServerUbuntu16.04をインストールしてセットアップする方法

  3. Ubuntu16.04にRabbitMQをインストールしてセットアップする方法