Vsftp安装及配置虚拟用户
采用yum安装
[root@VM_64_122_centos vsftpd]# yum installvsftpd
安装完成以后vsftpd的默认配置文件在/etc/vsftpd
1,创建虚拟用户文本文件,添加虚拟用户和密码
[root@VM_64_122_centos vsftpd]# vivuser.txt
奇数行是用户名,偶数是密码。
比如:
admin 123!@# yunying yunying sheji sheji chanpin chanpin
2,生成虚拟数据库文件
db_load默认没有安装,yum installdb4-utils db4-devel db4安装才能使用。
[root@VM_64_122_centos vsftpd]# yum installdb4-utils db4-devel db4
执行以下命令生成虚拟数据库文件
[root@VM_64_122_centos vsftpd]# db_load -T-t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3,配置PAM文件,目的是对客户端进行验证。批注所有内容,后添加:
[root@VM_64_122_centos vsftpd]# vi/etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser
注意:不能写成db=/etc/vsftpd/vuser.db
4,修改虚拟数据库文件vuser.db的权限为 700
[root@VM_64_122_centos vsftpd]# chmod 700vuser.db
5,增加一个系统用户vuser ,使用它来对应所有虚拟用户,虚拟用户使用系统用户来访问ftp服务器。
useradd vuser mkdir /var/ftp/vuser chown vuser.vuser /var/ftp/vuser
6,修改vsftpd.conf配置文件,使虚拟用户可以访问vsftpd服务器,增加以下参数
pam_service_name=vsftpd ####使用PAM验证 guest_enable=YES ####启用虚拟用户 ####激活虚拟账户 guest_username=vuser ####把虚拟账户绑定为系统账户vuser user_config_dir=/etc/vsftpd/vsftpd_user_conf ####虚拟用户配置文件目录
1,建立vsftpd_user_conf配置文件目录
mkdir /etc/vsftpd/vsftpd_user_conf
2,设置虚拟用户配置文件,与虚拟账户同名。
[root@VM_64_122_centos vsftpd]# vi/etc/vsftpd/vsftpd_user_conf/admin
3,编辑虚拟账户admin的配置文件admin,设置相应的权限。添加以下内容
anon_world_readable_only=NO ###浏览FTP目录和下载 anon_upload_enable=YES ###允许上传 anon_mkdir_write_enable=YES ###允许建立和删除目录 anon_other_write_enable=YES ###允许改名和删除文件 local_root=/var/ftp/vuser ###指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。
4,重新启动ftp服务
[root@VM_64_122_centos vsftpd]# servicevsftpd restart
SELinux 全称 SecurityEnhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。
SElinux就是指明进程能访问那些资源,如果其访问了非指明的资源,SElinux就会阻止他,并告诉这个程序,你没有权限,不能让你访问。
所以需要修改SELinux的权限访问设置,不然连接ftp会出现一些异常报错。比如:
500 OOPS: cannot change directory:/home/*******
553 could not create file
查看ftp相关选项
sestatus-b | grep ftpd
下面是常用的布尔变量:
allow_ftpd_anon_write:关闭这个布尔变量会阻止 vsftpd 读取 public_content_rw_t 类型的文件和目录。如果允许用户通过 FTP 上传文件。必须开放这个布尔变量。
allow_ftpd_full_access:当开放这个布尔变量时只有Linux(DAC)的权限来控制访问,通过验证的用户可以读取和写入标记为 public_content_t 或 public_content_rw_t 类型的文件。
allow_ftpd_use_cif:当开放这个布尔变量时vsftpd 允许 cifs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 Samba 文件系统。
allow_ftpd_use_nfsvsftpd:的当开放这个布尔变量时 vsftpd 允许 nfs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 NFS 文件系统。
ftp_home_dir:当开放这个布尔变量时认证用户可以读写自己的主目录中的文件。
ftpd_connect_db:当开放这个布尔变量时允许vsftpd 连接数据库。
httpd_enable_ftp_server:当开放这个布尔变量时容许的 httpd 作为 FTP 服务器,并且监听 FTP 端口。
tftp_anon_write:当开放这个布尔变量时允许TFTP 访问一个公共的目录
启用以下选项:
setsebool-P ftp_home_dir 1 setsebool-P allow_ftpd_full_access 1
原文地址:http://12676522.blog.51cto.com/12666522/1939846