NOTES : 2010-09-25 : WEB

さくらのVPS CentOSでサーバ構築 6 – FTP

さくらのVPS CentOSでサーバ構築 作業ノート6回目。

普通ファイルのアップロードにはSSH経由のSFTPで接続してるので FTP は基本いらないのですが、WordPressの自動アップデート機能でSSH鍵認証させるのが少し面倒なのと、iPadで普段使ってるFTPアプリがSFTPに対応していないので、一応FTPをいれることにしました。

vsftpdのインストール

[root@ ~]# yum -y install vsftpd

続いてサービスの起動と自動起動の設定をします。

[root@ ~]# /etc/rc.d/init.d/vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

[root@ ~]# chkconfig vsftpd on

[root@ ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

起動が問題ないようなので、設定を行います

設定

[root@ ~]# vi /etc/vsftpd/vsftpd.conf

1.匿名アクセス禁止

anonymous_enable=YES
  ↓
anonymous_enable=NO

2.アスキーモード有効

#ascii_upload_enable=YES
#ascii_download_enable=YES
  ↓
ascii_upload_enable=YES
ascii_download_enable=YES

3.シグニチャ隠蔽

#ftpd_banner=Welcome to blah FTP service.
  ↓
ftpd_banner=Welcome to blah FTP service.

4.デフォルトでホームの上位はみせない

#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
  ↓
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

5.サブフォルダを含む一括アップロード・ダウンロードを許可

#ls_recurse_enable=YES
  ↓
ls_recurse_enable=YES

6./etc/vsftpd/user_listのユーザーだけを許可 (ここからはファイルの最後に設定を追加)

userlist_deny=NO

7.ユーザーごとの設定ファイルを有効にする。

user_config_dir=/etc/vsftpd/vsftpd_user_conf

8.タイムスタンプ時間をローカル時間にする

use_localtime=YES

9.設定を簡単にするためにPASVのポート範囲を限定

pasv_min_port=50000
pasv_max_port=50030

10.保存して終了

ESC
:wq

アクセス許可するユーザを/etc/vsftpd/user_listに設定します。FTPはパスワードが平文で転送される為、su や sudo 等の管理者用のコマンドが使えるユーザーは避けましょう。

以下は、シェルが使えず、ホームディレクトリが /var/www のユーザーを作る方法です。

[root@ ~]# adduser --shell /sbin/nologin --home /var/www ftpuser

adduser: warning: the home directory already exists.
Not copying any file from skel directory into it.

ホームディレクトリが存在してるという警告がでますが、気にせずパスワードも設定してください。

[root@ ~]# passwd ftpuser

vi でファイルを開いたら、内容を全部消して「ftpuser」だけを記述します。

[root@ ~]# vi /etc/vsftpd/user_list

ftpuser

上位ディレクトリにアクセス許可するユーザを/etc/vsftpd/chroot_listに設定しますどのユーザーにも許可させないので、そのまま保存して、空のファイルを作ります。

[root@ ~]# vi /etc/vsftpd/chroot_list

尚、既存の一般ユーザーを利用する場合に、FTPの時だけ別のホームディレクトリを指定するには以下のようにします。

[root@ ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@ ~]# vi /etc/vsftpd/vsftpd_user_conf/admin

local_root=/var/www

これでftpuserユーザーだけがアクセスできて、さらにWebコンテンツしか操作できないように設定ができたので、vsftpdを再起動します。

[root@ ~]# /etc/rc.d/init.d/vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]

iptablesの設定追加

実際にアクセスする為に iptables にFTP用の設定追加をします。

[root@ ~]# iptables -A SERVICE -p tcp --dport 20 -j ACCEPT
[root@ ~]# iptables -A SERVICE -p tcp --dport 21 -j ACCEPT
[root@ ~]# iptables -A SERVICE -p tcp --dport 50000:50030 -j ACCEPT
[root@ ~]# /etc/rc.d/init.d/iptables save
[root@ ~]# /etc/rc.d/init.d/iptables restart

これでFTPでのアクセスが可能になりました。

コメント (0件) - 表示・投稿 ▼