Linux
 Computer >> コンピューター >  >> システム >> Linux

UbuntuにFTPサーバーを構築する方法:vsftpdを使った5つのステップ

Linuxサーバーを構築するなら、FTPアクセスの準備は欠かせません。そのためには、まずLinuxにFTPサーバーをインストールする必要があります。サーバーOSのインストール直後に最初に行うべき作業の一つと言えるでしょう。

多くのLinuxサーバーはUbuntuで動作しています。そこでこの記事では、Ubuntu ServerにFTPサーバーをセットアップする方法を詳しく解説します。

FTPサーバーとは?

FTP(File Transfer Protocol、ファイル転送プロトコル)は、サーバーへファイルをアップロード(put)したり、サーバーからファイルをダウンロード(get)したりするための仕組みです。過去にウェブからファイルを取得したり画像をアップロードしたりした経験があれば、気づかないうちにFTPを利用していたかもしれません。また、FTPクライアントを使ってFTPファイルサーバーに直接接続したことがある方もいるでしょう。

これらの操作を行うには、ファイルをホストしているリモートサーバーにFTPサーバーソフトウェアがインストールされている必要があります。

自宅用のLinuxサーバー、Webサーバー、ゲームサーバーなど、どんなサーバーを構築する場合でも、システム間でデータを転送する最もシンプルな方法はFTPです。

UbuntuへのFTPサーバーのインストール

UbuntuへのFTPサーバーのインストールは非常に簡単です。中でもおすすめなのが「vsftpd」です。以下の手順に従って、vsftpdを使ったUbuntu上のFTPサーバーをインストール・設定していきましょう。

1. vsftpdをインストールする

すでにvsftpdがインストールされている場合もあります。確認するには、ターミナルウィンドウを開いて以下のコマンドを入力します。

sudo apt list --installed

リストの下の方にvsftpdが見つかるはずです。見つからない場合は、次のコマンドでインストールしましょう。

sudo apt install vsftpd

インストールが完了したら、vsftpdの設定に移ります。まずは元の設定ファイルのコピーを作成しておきましょう。こうしておけば、何か問題が起きたときにデフォルトの設定を復元できます。

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

コピーができたら、次のコマンドでサービスを起動します。

sudo systemctl start vsftpd

さらに、サーバーが自動起動するよう以下のコマンドで有効化します。

sudo systemctl enable vsftpd

これでvsftpdのインストールは完了し、設定作業に入れます。

2. FTPユーザーを作成する

最初に必要なのはFTPユーザーアカウントです。このアカウントがあれば、任意のFTPクライアントからvsftpd経由でサーバー上のファイルにアクセスできます。ターミナルで以下を入力してください。

sudo useradd –m username

※「username」は任意のユーザー名に置き換えてください。

sudo password username

ユーザー名とパスワードを設定したら、動作確認のためアカウントのホームフォルダにテストファイルを作成します。

cd /home/username
sudo nano testfile.txt

初めてUbuntuのFTPサーバーに接続したとき、testfile.txtが表示されれば成功です。

3. UbuntuのFTPサーバーを保護する

接続を確立する前に、UbuntuでFTPポートが開放されていることを確認する必要があります。デフォルトでは、セキュリティ上の理由からufw(Uncomplicated Firewall)によってポートは閉じられています。

ポート20経由のアクセスを許可するには、次のコマンドを使用します。

sudo ufw allow 20/tcp

別のファイアウォールを使用しているディストリビューションの場合や、独自のファイアウォールを導入している場合は、各ドキュメントを参照してポートを開放してください。

また、ユーザーがファイルをアップロードできるように設定する必要があります。これは設定ファイルで行えます。編集用に開きましょう。

sudo nano /etc/vsftpd.conf

「write_enable」を見つけてコメントを解除し、「YES」に設定されていることを確認します。

write_enable=YES

Ctrl+Xで終了し、Yキーで保存します。

公開向けのFTPサーバーでは、各ユーザーのアクセス範囲を制限することが重要です。chroot機能を使えば、各ユーザーを自分のホームディレクトリ内に制限できます。vsftpd.conf内で以下の行を見つけてコメント記号(#)を削除し、コメントを解除してください。

chroot_local_user=YES

同様にCtrl+Xで終了し、Yキーで保存します。

複数のユーザーがいる場合は、リストで管理する方がスマートです。

まず、テキストエディタでvsftpd.chroot_listを開きます。

sudo nano /etc/vsftpd.chroot_list

ここに、各自のフォルダ内に制限したいユーザー名を列挙します。保存して終了したら、vsftpd.confに戻り、chroot_local_user=YESがコメントアウトされていることを確認します。

#chroot_local_user=YES

代わりに、以下の行のコメントを解除します。

chroot_list_enable=YES

そして次の行もコメントを解除します。

chroot_list_file=/etc/vsftpd.chroot_list

設定は以下のようになります。

UbuntuにFTPサーバーを構築する方法:vsftpdを使った5つのステップ

再度保存して終了します。最後に、FTPサービスを再起動しましょう。

sudo systemctl restart vsftpd.service

続いて、hostnameコマンドでUbuntuサーバーのホスト名を確認します。このホスト名を使ってFTPサーバーに接続できます。IPアドレスを使いたい場合はip addressコマンドを実行し、表示されたアドレスを控えておきましょう。

4. 暗号化された接続:FTP+SSL=FTPS

SSL/TLSを使用して、UbuntuのFTPサーバーとの間の通信を強制的に暗号化することも可能です。

vsftpd.confファイル内の「SSL encrypted connections」に関する記述を探し、以下の行を追加します。

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ファイルを保存して終了すれば、FTPクライアントで接続プロトコルとしてFTPSを指定できるようになります。

5. UbuntuにFTPクライアントをインストールする

別のシステムからは、コマンドラインツールまたはデスクトップアプリを使ってUbuntuのFTPサーバーに接続できます。

Linuxでは、ターミナルから次のコマンドでサーバーにアクセスできます。

sudo ftp hostname

「hostname」は必ずご自身のサーバーのホスト名に置き換えてください。IPアドレスを使うこともできます。

sudo ftp ipaddress

プロンプトが表示されたら、先ほど設定したユーザー名とパスワードを入力します。その後、getコマンドやputコマンドでデータを転送できます。

もっと直感的な操作を望む場合や、他のOSからFTPサーバーにアクセスしたい場合は、FTPクライアントが必要です。中でも定評があるのが「FileZilla」です。オープンソースのソリューションで、Windows(サーバー版もあり)、macOSに対応し、Linux向けにも32bit版と64bit版が提供されています。残念ながら、UbuntuなどのLinuxディストリビューション向けのFileZilla FTPサーバー版は存在しません。

ダウンロード: FileZilla(無料)

FileZillaクライアントを使ってUbuntuのFTPサーバーに接続するには、アプリをインストールして起動し、以下の手順に従います。

  1. ファイル > サイトマネージャ をクリック
  2. 新しいサイト をクリック
  3. 右側のペインで FTP を選択
  4. FTPSを使用する場合は 暗号化 で TLS を選択
  5. ホスト にホスト名またはIPアドレスを入力し、ポート を追加
  6. ログオンタイプ の ユーザー と パスワード にアカウント情報を入力
  7. 接続 をクリック
UbuntuにFTPサーバーを構築する方法:vsftpdを使った5つのステップ

これで、UbuntuのFTPサーバーとの間で自由にデータのアップロード(put)やダウンロード(get)が行えます。移動したいファイルをドラッグ&ドロップするだけです。

別のFTPクライアントを使用する場合も、手順はほぼ同じですが、詳細については各アプリのドキュメントを確認してください。

UbuntuでFTPサーバーを構築できました

Ubuntuのデスクトップ版とサーバー版のどちらを使用していても、これでFTPサーバーが稼働しています。Webページのアップロードから重要なデータへの簡単なアクセス提供まで、さまざまな用途に活用できます。FTPを使えば、サーバーマシンに物理的にアクセスすることなく、必要なときにいつでもデータを取得できます。

  1. UbuntuにPipをインストールする方法を徹底解説【Python 2/3対応】

    Linuxには実に多くのパッケージマネージャーが存在します。Ubuntuにはaptが標準搭載されていますが、プログラミング言語の多くも独自のパッケージマネージャーを持っています。Node.jsにはnpm、Rubyにはgem、そしてPythonにはpipが用意されています。 Pipは「Python Installs Packages」の略で、Python Package Index(PyPI)からパッケージを簡単にインストールできるツールです。他のインデックスからインストールすることも可能ですが、通常必要となるパッケージの大半はPyPIで入手できます。pipを使ってパッケージを導入するには、ま

  2. Windows 10 / 11 に Ubuntu をインストールする3つの方法【WSL・USB起動・仮想マシン】

    Windows 10 や Windows 11 のパソコンで Ubuntu Linux を使ってみたいと思ったことはありませんか?この記事では、その手順を初心者の方にもわかりやすく解説します。 実は、Windows 上で Ubuntu をインストールして動かす方法はひとつだけではありません。本記事では、代表的な3つのアプローチをご紹介します。① Windows Subsystem for Linux(WSL)を使って Linux コマンドを実行する方法、② USB メモリから直接起動する方法、そして③ 仮想マシン(VM)上で動かす方法です。 それぞれの特徴と手順を順番に見ていきましょう。 方法