Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87523
  • 博文数量: 19
  • 博客积分: 1863
  • 博客等级: 上尉
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-20 13:58
文章分类
文章存档

2013年(2)

2012年(3)

2011年(12)

2010年(2)

我的朋友

分类: 系统运维

2012-02-28 14:15:08

1.Installation of vsftpd
  # cd /usr/ports/ftp/vsftpd
  # make install clean

2.修改/etc/rc.conf文件,加入一下一行
  vsftpd_enable=YES

3.由于虚拟用户会使用pam认证,于是安装pam_pwdfile
  # cd /usr/ports/security/pam_pwdfile
  # make install clean

4.由于需要使用htpasswd创建密码文件,安装htpasswd
  # cd /usr/ports/security/py-htpasswd
  # make install clean
  # rehash
  安装完成后执行命令为 htpasswd.py,直接输入命令可查看用法

5.使用htpasswd.py创建虚拟账号和密码
  # cd /usr/local/etc
  # mkdir vsftpd
  # cd vsftpd
  # htpassword.py -bc vsftpd-users username password
  (其中vsftpd-users为账号文件名)
  继续添加帐户使用以下命令
  htpassword.py -b username1 passwod1
  (可重复使用添加多个账户)
  
  于是现在/usr/local/etc/vsftpd目录下存在一个账户文件vsftpd-users,里面保存着我们的虚拟账户名和密码

6. 配置pam认证
  进入/etc/pam.d
  使用ls命令可以看到已经有ftp和ftpd两个模板文件,我们使用模板文件创建出一个配置文件
  # cp ftp vsftpd
  使用文本编辑器打开vsftpd配置文件,将里面的内容全部注释或者删除,添加入以下两行内容:
  auth  required  /user/local/lib/pam_pwdfile.so pwdfile  /user/local/etc/vsftpd/vsftpd-users
  account required /user/lib/pam_permit.so

7. 配置vsftpd.conf
   建议先备份vsftpd.conf
  # cd /usr/local/etc
  # cp vsftpd.conf vsftpd.conf.bak
  
  # enable background mode
   background=YES
   # disables anonymous FTP
   anonymous_enable=NO
   # enables non-anonymous FTP
   local_enable=YES
   local_umask=022 
   # enables uploads and new directories
   write_enable=YES
   # the virtual user is restricted to the virtual FTP area
   chroot_local_user=YES
   # runs vsftpd in standalone mode
   listen=YES

   以上为基本配置,下面是虚拟用户的配置
   guest_enable=YES
   # 这里的vsftpd和第6步中创建的vsftpd文件是一致的
   pam_service_name=vsftpd
   user_sub_token=$USER
   local_root=/home/vsftpd/$USER
   anon_root=/home/vsftpd/ftp
   
   # 这三项配置只允许上传和下载,不允许其他操作,若有其他需求,请参考相关配置参数
   virtual_use_local_privs=NO
   anon_world_readable_only=NO
   anon_upload_enable=YES
   
8.创建第7步中配置到的相关目录
   # cd /home
   # mkdir -p vsftpd
   # cd vsftpd
   # mkdir -p username
   # mkdir -p username1
   # mkdir -p ftp
   # chown ftp:ftp ftp
   # chown ftp:ftp username
   # chown ftp:ftp username1

9.改变ftp用户的家目录
   # pw usermod ftp -d /home/vsftpd

10.启动vsftpd服务
   # /usr/local/etc/rc.d/vsftpd start

11. 测试
   # ftp localhost
   输入username 和password,但是不能正常登陆,会出现错误
   500 OOPS: vsftpd: refusing to run with writable root inside chroot()
   上网搜了下原因,是ftp根目录不能有写权限(不知道为啥,linux上貌似没问题),于是将目录的写权限去掉
   # cd /home/vsftpd
   # chmod u-w username
   # chmod u-w username1
   # chmod u-w ftp

12.但是这样一来用户就没法上传文件了,因为没有写权限,解决办法:可以再根目录下创建子文件夹,子文件夹设置为可写,然后就可以正常在子文件夹中上传文件了
   # cd /home/vsftpd/username
   # mkdir -p pub
   # chown ftp:ftp pub


基本配置OK了,可以根据需求改变各种权限参数,实现不同的权限控制
  
阅读(2929) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

qm20092012-12-05 22:22:18

用上了,不错,纠正一下,有目录错了
auth  required  /user/local/lib/pam_pwdfile.so pwdfile  /user/local/etc/vsftpd/vsftpd-users
  account required /user/lib/pam_permit.so

usr写成user了

sunting_bcwl2012-03-08 14:37:19

新手来鸟: FreeBSD,纯正的UNIX,高贵的血统!.....

新手来鸟2012-03-02 02:59:37

FreeBSD,纯正的UNIX,高贵的血统!