![]() |
LINUX |
vsftpdのインストール
*FTPサーバの利用
*vsftpd-2.2.2をソースからインストールし、設定します
*listen=YES (default)になっています
*ipv4 standalone mode がデフォルトです
**以降はコメントです
*ソースの取得、削除は略します
*エディタ、ファイラーの操作は省略します
*Enterキーを省略します
*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :vsftpd-2.2.2.tar.gz | (http://vsftpd.beasts.org/) |
参照ファイル
インストール環境| :OS | CentOS 5.5 |
| :selinux | disabled or permissive |
| :インストール先 | /etc /usr/local |
| :作業 | /usr/src |
| :言語 | LANG=en_US.UTF-8 |
| :ユーザー | rootで実行 |
*メンテナンスの場合は一般ユーザから行います
vsftpd-2.2.2
vsftpdの停止・既存のファイルの保存# cd /etc # cp init.d/vsftpd init.d/vsftpd-ORG # cp vsftpd.ftpusers vsftpd.ftpusers-ORG # cp vsftpd.user_list vsftpd.user_list-ORG # service vsftpd stop # rpm -e vsftpd
展開・インストール*man用のディレクトリがないとエラーがでます
# cd /usr/src # tar zxvf vsftpd-2.2.2.tar.gz # chown -R root:root vsftpd-2.2.2 # cd vsftpd-2.2.2
*builddefs.h、Makefileを修正します (下記参照)
# vi builddefs.h # vi Makefile
# make
# mkdir -p /usr/local/man/{man5,man8}
# make install
*pam用ファイル等をコピーします
# mkdir /etc/vsftpd
# cp vsftpd.conf /etc/vsftpd
# cp RedHat/vsftpd.log /etc/logrotate.d/vsftpd
# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
# touch /var/log/vsftpd.log
# cd ..
# tar jcvf vsftpd-2.2.2-100522.tar.bz2 vsftpd-2.2.2/
:builddefs.h
#ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
:Makefile
*省略
CFLAGS = -O2 -march=pentium3 -Wall -W -Wshadow
*省略
anonymous接続用のディレクトリを作ります*ftp接続時に、ftpユーザのホームディレクトリをcheckします
*その後に、anon_rootで設定したディレクトリに移動します
*パーミッションを(0755 root ftp) または (0555 ftp ftp) にします
*ftpのホームディレクトリがない場合、作成します
# mkdir /var/ftp # mkdir -p /home/ftp/pub # chown -R root:ftp /home/ftp
vsftpd.confの修正:/etc/vsftpd/vsftpd.conf
*ローカルLANでの利用を想定しています
*asciiアップロード・ダウンロードを可能にします
*chrootを有効にします
*pamファイル名をvsftpdにします
*ログインユーザを制限します
*time表示を日本時間にします
*pasvポートはiptablesに合わせます
*uid・gidをネームベースに変更します
*xinetd起動の場合、listen=NOにします
*tcp_wrappersを利用します
default YES default (none) default NO default NO default 077 default NO default NO default NO default NO default NO default NO default root default /var/log/xferlog default NO default 300 default 300 default nobody default NO default NO default NO default default NO default default NO default NO default default NO default ftp default NO default NO default NO default 0 (use any port) default 0 (use any port) default default NO default NO |
anonymous_enable=YES anon_root=/home/ftp/pub local_enable=YES write_enable=YES local_umask=022 #anon_upload_enable=YES #anon_mkdir_write_enable=YES dirmessage_enable=YES xferlog_enable=YES #connect_from_port_20=YES #chown_uploads=YES #chown_username=whoever xferlog_file=/var/log/vsftpd.log #xferlog_std_format=YES #idle_session_timeout=600 #data_connection_timeout=120 #nopriv_user=ftpsecure #async_abor_enable=YES ascii_upload_enable=YES ascii_download_enable=YES #ftpd_banner=Welcome to blah FTP service. #deny_email_enable=YES #banned_email_file=/etc/vsftpd.banned_emails chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list ls_recurse_enable=YES pam_service_name=vsftpd userlist_enable=YES use_localtime=YES text_userdb_names=YES pasv_min_port=50000 pasv_max_port=50030 listen=YES #listen_ipv6=YES tcp_wrappers=YES |
vsftpd.chroot_listの設定:/etc/vsftpd.chroot_list (root root 600)
*chroot_local_userの設定により意味が変わります
*chroot_local_user=NO (デフォルト) の場合、chroot()jailに置き換えられるユーザ
*chroot_local_user=YESの場合、chroot()jailに置き換えられないユーザ
sola
ftpusersファイルの作製:/etc/ftpusers (root root 600)
*pam認証のときに参照されます
vsftpd.user_listの作製:/etc/vsftpd.user_list (root root 600)
*uselist_enable=YESのときに有効
*userlist_deny=YES(デフォルト)ならば、このリストのユーザはログイン拒否
*userlist_deny=NOならば、このリストのユーザのみログイン
/etc/hosts.allowで制御します*ローカルからのみ接続を許可します
ALL: 127.0.0.1 vsftpd: 192.168.0.0/255.255.255.0
vsftpd自動起動スクリプト
selinuxヘの対応 (selinxが有効の場合):新規インストールファイルのselinuxラベルを修正
# restorecon -Rv /etc # restorecon -Rv /usr/local # restorecon -Rv /var/log
xinetdによるvsftpd起動の停止*/etc/xinetd.d/vsftpdの修正
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = yes
}
*xinetdの再起動
# service xinetd restart
vsftpdの起動# chkconfig --add vsftpd # service vsftpd start
*起動の確認
# service vsftpd status
*vsftpd.confの既述に誤りがあると起動しません
*vsftpd.lockファイルを削除して、起動をやり直します
vsftpdログのローテーション:/ete/logrotate.d/vsftpd
/var/log/vsftpd.log {
# ftpd doesn't handle SIGHUP properly
nocompress
missingok
}
参考ファイル
ftpusers# Users that are not allowed to login via ftp root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody
vsftpd.user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file,
# and do not even prompt for a password.
# Note that the default vsftpd pam config also checks
/etc/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
local_port_rangeの調べ方*ローカルの使用するportの範囲
# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000
PASV接続の例gftpのコネクションログの例では
PASV 227 Entering Passive Mode (134,160,38,1,206,165)
グローバルアドレス 134.160.38.1 port 52901 (256x206+165=52901) で接続しています
ftp のレスポンスコード![]() |
Copyright(c) 528p.com All Rights Reserved. |

