Linux(RHEL5)构建FTP文件传输服务器
? 建立基于基本用户的vsftpd服务
匿名FTP
1. 调整匿名用户上传目录权限,并准备下载测试文件
# chown ftp /var/ftp/pub
2. 修改vsftpd.conf配置文件,开放匿名用户访问权限、上传许可
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //允许匿名访问
local_enable=NO //不需要启用本地用户时,建议将此项设置为NO
write_enable=YES //允许开发写权限
anon_umask=022 //匿名用户上传文件的权限掩码
anon_upload_enable=YES //允许匿名用户上传文件
anon_mkdir_write_enable=YES //允许匿名用户有写权限
anon_other_write_enable=YES //允许匿名用户有其他写权限(慎用,可能带来安全隐患)
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port=20
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=NO //未启用本地用户时,可以将用户列表功能禁用
tcp_wrapper=YES
3. 重启服务
4. 客户端下载测试
# ftp 192.168.10.1
# ftp
# ls
# get ftpconfig.tar.bz2
# cd pub
# put install.log / wget ftp://192.168.10.1/ftpconfig.tar.ba2 (只是下载时)
# ls
# quit/bye
本地FTP
1. 添加测试用户
# useradd wang
# passwd wang
# ls -lh /etc/*.conf* >/home/wang/etcconf.list
2. 修改配置文件
anonymous_enable=NO //若不需要启用匿名访问,此项设为NO
local_enable=YES //允许本地用户访问
write_enable=YES //开发写权限
local_umask=022 //本地用户上传文件的权限掩码
chroot_local_enable=YES //将本地用户禁锢在宿主目录中,处于安全考虑
max_clients=20 //限制客户端并发客户端连接数最多为20
max_per_ip=2 //现在来自同一IP客户端的最大并发连接数
local_max_rate=1024000 //本地用户上传下载限速为1M/s
pasv_enable=YES //允许被动模式并设置端口范围
pasv_min_port=24500
pasv_max_port=24600
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port=20
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrapper=YES
3. 重启服务
# service vsftpd restart
4. 在客户端验证(此处验证不再复述)
建立基于虚拟用户的vsftpd服务
1. 建立虚拟用户名/密码数据库
# rpm -ivh --aid --nodeps db4-utils-4.3.29-9.fc6.i386.rpm
# vi /mima
wang //奇数行用户名
123 //偶数行密码
nan
123
# db_load -T -t hash -f /mima /etc/vsfpd/vusers.db
-T : 允许非Berkeley DB的应用程序从文本格式转换的DB数据文件
-t hast :指定读取数据文件的方法
-f : 用于指定用户名/密码文件列表
# file /etc/vsftpd/vusers.db
# chmod 600 /etc/vsftpd/vusers.db
2. 建立FTP访问的根目录及虚拟用户对应的系统账号
# useradd -d /var/ftproot -s /sbin/nologin mei //建立映射账户mei并指定宿主目录
# chmod 755 /var/ftproot //更改FTP更目录权限
# ls -lh /boot > /var/ftproot/vutest.list //建立测试文件
3. 建立PAM认证文件
# vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
4. 修改vsftpd配置文件,添加用户支持
anonymous_enable=NO //若不需要启用匿名访问,此项设为NO
local_enable=YES //使用虚拟用户,需要启用本地用户
anon_umask=022
write_enable=YES
guest_enable //启用用户映射功能
guest_username=mei //将映射用户指定为mei
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port=20
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu //修改使用的PAM文件位置
userlist_enable=YES
tcp_wrapper=YES (到此即可以访问)
5. 为不同的用户建立独立的配置文件
# vi /etc/vsftpd/vsftpd.conf
# user_config_dir=/etc/vsftpd/vusers_dir //添加此行配置项,指定用户配置目录
# mkdir /etc/vsftpd/vusers_dir/ //创建用户配置目录
# cd /etc/vsftpd/vusers_dir
# vi wang
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1000000
# vi mei (配置在此省略)
6. 重启服务
# service vsftpd restart
7. 使用虚拟用户访问FTP,验证