1. 目标系统
使用vsftp程序及pam组件来完成vsftp搭建,实现ftp功能。 2. 系统要求 1. ftp功能 2. 用户锁定目录 3. 上传下载可行 4. 不使用系统帐户验证 5. 多用户支持 3. 需要组件 vsftpd-2.0.7 db4-devel-4.2.52-7.1 db4-4.2.52-7.1 db4-utils-4.2.52-7.1 4. 安装过程 4.1. 安装组件 首先下载vsftp组件 wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.7.tar.gz 解压至目录 #tar zxvf vsftpd-2.0.7.tar.gz #cd vsftpd-2.0.7 清除编译环境 #make clean 开始进入编译预准备 #vi builddefs.h 将其中VSF_BUILD_TCPWRAPPERS、VSF_BUILD_PAM、VSF_BUILD_SSL所在行undef改为define。 在vsftpd的目录里编译 #make 随后创建必要的帐号,目录: #useradd nobody //可能你的系统已经存在此帐号,那就不用建立 #mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立 #mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立 #useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立 #chown root:root /var/ftp #chmod og-w /var/ftp 请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin 开始安装 #install -m 755 vsftpd /usr/local/sbin/vsftpd-pam #install -m 644 vsftpd.8 /usr/share/man/man8 #install -m 644 vsftpd.conf.5 /usr/share/man/man5 #install -m 644 vsftpd.conf /etc/vsftpd-pam.conf 4.2. 配置基础环境 1. 查看系统是否有相应软件包 #rpm –qa | grep db4 db4-utils-4.3.29-9.fc6 db4-4.3.29-9.fc6 db4-devel-4.3.29-9.fc6 如果没有则需要安装 2. 建立一个logins.txt的文件,单行为用户名,双行为密码 #vi /home/logins.txt test 123456 3. 建立数据库文件并设置文件属性 #db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db #chmod 600 /etc/vsftpd_login.db 4. 建立认证文件 新建文件 #vi /etc/pam.d/ftp 并加入下面两行 auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login 5. 建立一个虚拟用户 useradd -d /home/vsftpd -s /sbin/nologin vsftpd 6. 修改配置文件 #vi /etc/vsftpd-pam.conf 在配置文件修改或添加以下选项 listen=YES listen_port=21 tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式) anonymous_enable=NO local_enable=YES //PAM方式此处必须为YES,如果不是将出现如下错误: 500 OOPS: vsftpd: both local and anonymous access disabled! write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES guest_username=vsftpd //这两行的意思是采用虚拟用户形式 virtual_use_local_privs=YES //虚拟用户和本地用户权限相同 pasv_enable=YES //建立资料联机采用被动方式 anon_world_readable_only=NO 7. 启动程序 #/usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf & 报错:500 OOPS: bad bool value in config file for: tcp_wrappers 8. 测试连接 # ftp 127.0.0.1 报错:[root@lvs3 vsftpd-2.0.7]# ftp localhost Connected to lvs3. 500 OOPS: vsftpd: cannot locate user specified in 'guest_username':vsftpd Connected to 127.0.0.1. 220 (vsFTPd 2.0.7) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (127.0.0.1:root): pool1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir 227 Entering Passive Mode (127,0,0,1,83,150) 150 Here comes the directory listing. 226 Directory send OK. ftp> quit 221 Goodbye. 4.3. 配置用户环境 1. 建立所有需要登录用户 #vi /home/logins.txt test 123456 test 234567 单行为用户名,双行为密码 2. 更新数据文件 #db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db 3. 配置用户环境 #mkdir /etc/vsftpd_user_conf/ #vi /etc/vsftpd-pam.conf 加入如下语句 user_config_dir=/etc/vsftpd_user_conf -----------------------以下为单用户循环配置,每用户都需要建立------------------------------ #mkdir /home/vsftpd/test #vi /etc/vsftpd_user_conf/test 添加内容 local_root=/home/vsftpd/test write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 保存退出 修改配置及目录权限 # chmod 700 /home/vsftpd/test # chown vsftpd.vsftpd /home/vsftpd/test/ ---------------------------------用户配置结束--------------------------------------- 4. 测试用户是否登录到自己目录及上传下载正常 5. 客户端测试 1. 在建立好的每个用户/目录下建立测试文件两个(文件名不要相同); 2. 使用客户端软件从外部测试; 3. 分别登录两个以上的帐号,通过察看根目录存在文件检查是否引导到不同/目录下; 4. 尝试下载测试文件到本地; 5. 尝试删除测试文件; 6. 尝试上传文件到测试帐号; 7. 测试完成。 |
Vsftp安装配置手册(更新版)
最新推荐文章于 2023-10-15 14:08:51 发布