2006年7月26日

安装配置 vsftpd PAM+SSL

Author: Hagen.GoO 转载请注明作者出处
MSN contact:
wantm009@hotmail.com
Keyword: vsftpd,PAM,SSL
Quote:


01 官方下载
最新 2.0.5 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz

02 解压
# tar -zxvf vsftpd-2.0.5.tar.gz

03 进入 vsftpd-2.0.5 目录
# cd vsftpd-2.0.5

04 编辑 builddefs.h (可选)
#undef VSF_BUILD_TCPWRAPPERS 修改成 #define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_SSL 修改成 #define VSF_BUILD_SSL

05 编译安装
# make
# make install
# cp vsftpd.conf /etc

06 给 vsftpd 添加运行帐号 nobody,也可以使用配置文件中 nopriv_user 项指定其他用户名
# mkdir /usr/share/empty/
# useradd -s /sbin/nologin nobody

07 添加处理虚拟用户或匿名用户的系统帐号 ftp
# mkdir /var/ftp
# useradd -d /var/ftp -s /sbin/nologin ftp
此帐号需匹配配置文件中的 ftp_username(匿名用户) 或 guest_username (虚拟用户)。

08 编辑 PAM 配置文件
# echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >> /etc/pam.d/ftp
# echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >> /etc/pam.d/ftp

09 生成 PAM 的用户数据库
先建立一个文本文件,奇数行为用户名,偶数行为用户密码。可以参看安装目录中 EXAMPLE\VIRTUAL_USERS\logins.txt。
# db_load -nT -t hash -f vsftpd_login.txt /etc/vsftpd_login.db

10 用 OpenSSL 生成自签名证书。
# openssl req -x509 -newkey rsa:1024 -keyout /etc/vsftpd.key -out /etc/vsftpd.pem -nodes (注意加上 -nodes 参数。)

11 编辑 vsftpd.conf 文件
# vi vsftpd.conf
修改成:
listen=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file= /etc/vsftpd.key
virtual_use_local_privs=YES


listen=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file= /etc/vsftpd.key
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

12 自启动 vsftpd 服务
方法1: 编辑 rc.local 文件
echo "/usr/local/sbin/vsftpd" >> /etc/rc.d/rc.local
方法2: 使用 xinetd.d ,把安装目录中 xinetd.c/vsftpd 文件复制到系统 xinetd.d
cp /xinetd.d/vsftpd /etc/xinetd.d/
使用此方法,需注解掉 vsftpd.conf 中的 listen=YES

没有评论: