Debian GNU/Linux 7.1.0 サーバに FTP サーバ vsftpd を構築する方法についての記録です。
FTP サーバは世の中に pro-FTPD, pure-FTPd 等色々とありますが、使い慣れた vsftpd で FTP サーバを構築します。
以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。
0. 前提条件
- Debian GNU/Linux 7.1.0 での作業を想定。
- 接続元のマシンは Linux Mint 14(64bit) を想定。
- 接続テストでは FileZilla という FTP クライアントを使用する。
1. vsftpd インストール
FTP サーバの vsftpd を以下のようにしてインストールする。
1
|
|
2. vsftpd 設定ファイル編集
以下のように設定を編集する。
File: /etc/vsftpd.conf
1 # anonymous によるログインを無効化
2 anonymous_enable=NO
3 # ローカルアクセスの許可
4 local_enable=YES
5 # 書き込み許可
6 write_enable=YES
7 # アスキーモードでの転送を許可
8 ascii_upload_enable=YES
9 ascii_download_enable=YES
10 # chroot 有効化
11 chroot_local_user=YES
12 # chroot リスト有効化
13 chroot_list_enable=YES
14 # chrootリスト指定
15 chroot_list_file=/etc/vsftpd.chroot_list
16 # ディレクトリごと一括での転送を有効化
17 ls_recurse_enable=YES
3. ホームディレクトリより上層へのアクセス許可設定
ホームディレクトリより上層へのアクセスを許可するユーザのリストを作成する。(上記設定ファイル内の “/etc/vsftpd.chroot_list” のこと)
指定は、1行に1ユーザ。
File: /etc/vsftpd.chroot_list
1 masaru
4. SSL サーバ構築
vsftpd を SSL/TLS で使用できるようにするには SSL サーバが必要であるので、OpenSSL をインストールする。
1
|
|
5. サーバ証明書作成
vsftpd を SSL/TLS で使用できるようサーバ証明書を作成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
作成したサーバ証明書のパーミッションを設定する。(所有者読み込み専用に)
1
|
|
6. vsftpd 設定ファイル編集
サーバ証明書を使用できるよう vsftpd 設定ファイルを以下のように編集する。(最終行に追加する)
File: /etc/vsftpd.conf
1 ssl_enable=YES # <= SSL有効化
2 force_local_data_ssl=YES # <= SSL必須にする
3 force_local_logins_ssl=YES # <= SSL必須にする
7. vsftpd 再起動
設定を有効化するために、vsftpd を再起動する。
1 2 3 |
|
8. ファイアウォール(iptables)設定
外部に公開する場合は、ポートを開放する必要がある。
File: /etc/iptables/rules.v4
1 # 外部からのTCP21番ポート(FTP)へのアクセスを許可
2 -A INPUT -p tcp --dport 21 -j ACCEPT
そして、設定を反映させるために iptables-persistent を再起動する。
1 2 |
|
9. 動作確認
クライアント側から FTP クライアント等を使用して FTP サーバにアクセスしてみる。
以下は、 FileZilla での設定例である。(最低限これだけで良いはず)
「接続」ボタンクリックで、「パスーワード入力」、「鍵認証」を経てログインできるはず。
あとは、ファイルをアップロードしたりダウンロードしたりしてみる。
以上。