vsftpdのインストール(ftp over SSL仕様)

今まで、proFTPdを使ってきたのですが、最近のLinuxディストリビューションにはvsftpdがデフォルトでインストールされているようです。
SSL対応など、いろいろとあるので、そろそろvsftpdを覚えようかと思い、インストールしてみました。

※最近、ftpプロトコルそのものを使わずにSSH (scp) でファイルの転送を行うようになってきたのは承知の上です。
しかし、WordPressのプラグイン自動アップデートのように、まだFTPプロトコルをベースとしたシステムがありますので。

今回はセキュリティ面も考えて、FTP over SSLで設定してみましょうか。

vsftpdはyumでインストールしたことを前提としています。

/etc/vsftpd/vsftpd.confに設定を行います。
主要な設定のみを抜き出していますので、細かい説明はgoogle先生に聞いて下さい。

# ローカルユーザのログインを可能にする
local_enable=YES
# ローカルユーザのumask設定
local_umask=022
# 書き込みを可能にする
write_enable=YES
# asciiファイルのダウンロード/アップロードを可能にする
ascii_download_enable=YES
ascii_upload_enable=YES
# activeモードでアップロードする場合のポート番号を20番へ固定
connect_from_port_20=YES
# passiveモードを有効にする
pasv_enable=YES
# passiveモードで接続するポート番号を指定する
# pasv_min_portに小さい番号を、pasv_max_portに大きいポートを指定
# 1024番を超えるポート番号を指定する。安心なのは4000番以上
pasv_min_port=任意のポート番号
pasv_max_port=任意のポート番号
# pamで指定するサービス名
# yumでインストールした場合、”vsftpd”でインストールされるので変更する
# デフォルトは”ftp”
pam_service_name=vsftpd
# ログイン制御用の設定
# この設定であれば、userlist_fileで指定したファイル内に記述された
# アカウントはアクセスできない
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
# chrootでログインできるユーザを指定する設定
# ログインを許可するユーザ名をchroot_list_fileで指定されたファイルへ記述
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
# SSL
ssl_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
force_local_logins_ssl=YES
force_local_data_ssl=YES

certfileを作成する

# cd /etc/pki/tls/certs
# make vsftpd.pem
・・・・以下、SSL認証キー生成の際に入力する内容と同一

iptablesにてポートをオープンする。

# vi /etc/sysconfig/iptables

以下を追加
※「RH-Firewall-1-INPUT」の部分はサーバ環境に応じて変更して下さい。
※「min_port」はpasv_min_port、「max_port」はpasv_max_portで指定したポート番号を設定

-A RH-Firewall-1-INPUT -p tcp –dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp –dport min_port:max_port -j ACCEPT

# /etc/init.d/iptables restart

vsftpdを起動

# /etc/init.d/vsftpd start

抜けがあったら補足します。

[401] [401] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `401 Unauthorized` response: {"__type":"com.amazon.paapi5#UnrecognizedClientException","Errors":[{"Code":"UnrecognizedClient","Message":"The Access K (truncated...)

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Webサイトのこと、WordPressのこと、何でもお問い合わせ下さい