CentOS 5.5 创建 ftp

支持虚拟用户的vsftp
1 安装 vsftp
yum install vsftpd*
2 安装 pam
yum install pam*
3 安装 db4 支持文件数据库
yum install db4*
------------------------------------
创建用户
1 创建vsftpd服务的宿主用户
# useradd vsftpd -s /sbin/nologin     可参阅linux useradd 命令
2 创建vsftpd虚拟宿主用户
# useradd myftp -s /sbin/nologin
由于虚拟用户并不是系统用户,也就是ftp 用户在系统中并不存在的。他们的权限是集中寄托在某一个系统用户中的。所谓vsftpd的虚拟宿主用户就是一个支持所有虚拟用户的宿主用户。
由于他支持所有的虚拟用户,所以他本身的权限会影响所有的虚拟用户。因此处于安全考虑需要调整 vsftpd 配置文件。
3 调整 vsftpd 配置文件
1 编辑前现备份
     # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
2 编辑 vsftpd.conf
     #  vi /etc/vsftpd/vsftpd.conf

#anonymous_enable=YES
anonymous_enable=NO
设置不允许匿名用户登录
local_enable=YES
设置本地用户可以访问
#chown_uploads=YES
chown_uploads=NO

#chown_username=whoever
chroot_local_user=YES
设定登录后只可以访问自己的属性目录,不可以访问上一目录

#nopriv_user=ftpsecure
nopriv_user=vsftpd

#async_abor_enable=YES
async_abor_enable=YES
支持异步传输功能

ascii_upload_enable=YES
ascii_download_enable=YES

ftpd_banner=Welcome to blah FTP service.

#chroot_list_enable=YES
chroot_list_enable=NO
禁止登出自己的ftp主目录

#ls_recurse_enable=YES
ls_recurse_enable=NO

guest_enable=YES
设定启用虚拟用户功能
guest_username=myftp
指定虚拟用户的宿主用户
virtual_use_local_privs=YES
设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf
设定个人用户的配置文件 vsftpd.conf 的存放目录

  3 创建 vsftpd 的日志文件,并更改为宿主为 vsftpd 的服务宿主用户
    # touch /var/log/vsftpd.log
    # chown vsftpd.vsftpd /var/log/vsftpd.log
  4 创建虚拟用户配置文件存放路径
    # mkdir /etc/vsftpd/vconf/

----------------------------------------
制作虚拟用户数据库文件
1 # touch /etc/vsftpd/myftp
2 # vi /etc/vsftpd/myftp
  myftpname
  myftppassword
  . . . . . .
  一行用户,一行密码
3 用户数据文件
  # db_load -T -t hash -f /etc/vsftpd/myftp /etc/vsftpd/myftp.db
  注意: 添加用户后,需要再次 db_load

-----------------------------------------
设定PAM验证文件,并指定虚拟用户数据库文件进行读取
1 查看原来的vsftpd的PAM 验证配置文件:
  # cat /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so

2 在编辑前现备份好文件
# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

3 编辑vsftpd
# vi /etc/pam.d/vsftpd
注释所有,并添加以下两行
auth       required     /lib/security/pam_userdb.so     db=/etc/vsftpd/myftp
session    required     /lib/security/pam_userdb.so     db=/etc/vsftpd/myftp

---------------------------------------
虚拟用户的配置
1 创建虚拟用户的主路径
# mkdir /opt/vsftp/
2 创建用户的ftp用户目录
# mkdir /opt/vsftp/myftpname
3 创建虚拟用户模板
# cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vconf/vsftpd.tmp
4 编辑虚拟用户
# vi /etc/vsftpd/vconf/vsftpd.tmp

local_root=/opt/vsftpd/myftp
pam_service_name=vsftpd
chroot_local_user=YES

myftp 这个就是以后要指定虚拟的具体主要路径
5 更改虚拟用户的主目录的属性为虚拟宿主用户
# chowm -R myftp.myftp /opt/vsftp/
6 检测权限
# ll /opt/vsftp/

--------------------
定制测试用户
1 从虚拟用户模板复制
# cp /etc/vsftpd/vconf/vsftpd.tmp /etc/vsftpd/vconf/myftpname
2 针对用户进行定制
# vi /etc/vsftpd/vconf/myftpname
local_root=/opt/vsftpd/myftpname
pam_service_name=vsftpd
chroot_local_user=YES

---------------------
service vsftpd restart















猜你喜欢

转载自leijiao.iteye.com/blog/1071622