超详细linux vsftpd配置大全文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FTP服务的配置
ftp服务器的软件——vsftpd,其全称是“Very Secure FTP Daemon”。Vsftpd的配置文件在/etc/vsftpd/目录下
1 ftpusers PAM模块 /etc/pam.d/vsftpd 所指定的那个无法登录的用户配置文件。
2 user_list 默认的情况下,写在这个文件里帐号都不允许登录vsftpd,它能否生效与vsftpd.conf中的参数userlist_enable 、userlist_deny有关。
本地用户管理:
1)selinux布尔值ftp_home_dir 改为on,
setsebool -P ftp_home_dir on
2)配置文件vsftpd.conf中的local_enable=YES,即默认设置
此时,这些实体用户能可以离开他们默认的目录即/home/~,如果需要将实体用户限制在他们的默认目录下,不允许他们到其他目录需要进行一下设置:
Chroot_local_user=NO,(默认此行被注释,即不启动),修改这行下面的参数
Chroot_list_enable=YES和chroot_list_file=/etc/vsftpd/chroot_list,然后
在/etc/vsftpd/目录下创建chroot_list文件,将需要限制离开默认目录的实体用户的名字写进去。
修改user_list_enable=YES user_deny=YES,则可将不允许登录的用户写入/vsftpd目录下的user_list。
实体用户能上传、下载、删除默认目录下的文件。
修改默认发布目录
1)建立发布目录。mkdir -p /share/doc
2)修改发布目录权限、属主和selinux安全上下文。
chmod 775 /share
chown root.ftp /share/doc
chcon –t public_content_rw_t /share/doc
3)修改配置文件vsftpd.conf,加一行anon_root=/share
匿名用户相关的配置:
能上传文件
1) selinux布尔值allow_ftpd_anon_write改为on,
setsebool -P allow_ftpd_anon_write on ;
2 ) 将pub目录的安全上下文改为public_content_rw_t;
3)修改pub的所属用户为root,所属组为ftp,权限为775(上传上的文件的权限所属主和组都是ftp)。
4 ) 修改配置文件vsftpd.conf中的write_enable=YES;
5 )修改配置文件vsftpd.conf中的anon_upload_enable=YES,
能创建目录
前四条想相同,5)修改vsftpd.conf中的anon_mkdir_write_enable=YES。能下载
前四条同上,5)anon_world_readable_only=YES(只要ftp用户在系统中具有读权限,就可以下载文件,即允许anonymous具有下载可读文件的权限)
能删除重命名文件
前四条同上,5)修改vsftpd.conf中的anon_other_write_enable=YES。
虚拟用户
vsftpd中的用户有三种形式。第一种是匿名,其权限对应系统中名为ftp的用户。第二种是本地用户,也就是系统中建立的用户,用户名和密码存放在/etc/passwd文件中。第三种是虚拟用户,一般情况下是不能在系统中登录的。
说说它的优点:首先,虚拟用户是ftp专有用户,使用虚拟用户登录
ftp只能访问ftp服务器提供的资源。大大增强了系统的安全,即这些用户并不在ftp服务器本地存在(不能用这些用户名登录到服务器中,而只能登录到ftp)。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。最后,虚拟用户的帐号权限设置更加方便,存储位置也可以灵活多样,便于与其他系统的集成。实现方式有两种:本地数据文件和数据库服务器。
PAM(plugable authentication module,可插拔认证模块)是一种完成通用认证功能的程序,它可以被其他程序调用,是vsftpd支持的一种认证方式。当使用PAM时,程序不需要重新编译,只需要通过编辑一个配置文件来决定认证模块如何插入到程序之中。下面以PAM认证为例,介绍vsftpd虚拟用户的配置方法:
步骤如下:
1. 建立虚拟用户口令文件;
2. 生成vsftpd的认证文件;
3. 建立虚拟用户所需的PAM配置文件;
4. 创建虚拟用户帐号映射的系统帐号;
5. 修改vsftpd.conf配置文件;
6. 设置虚拟用户的权限。
1)建立虚拟用户口令文件。在/etc/vsftpd目录中创建文件users,里面单数行为虚拟帐号名,双数行为上一行的密码,如:
user1
123
user2
456
2) 生成虚拟账户数据库,安装数据库yum install db4-utils,
在/etc/vsftpd目录中执行db_load –T -t hash –f users
login.db 生成本地口令认证文件login.db
3)然后编辑/etc/pam.d/virtual文件,内容如下:
auth required pam_userdb.so db=/etc/vsftpd/users account required pam_userdb.so db=/etc/vsftpd/users
4)建立所有ftp虚拟用户帐号映射的操作系统帐号,并设置该帐号工作目录的权限, useradd -d /home/vftp –s /sbin/login vftp chmod 700 /home/vftp
也可以指定为系统中已有的ftp用户,这种情况下,其账户目录必须
在/var/ftp目录下。
5) 在vsftpd.conf中,加入guest_enable=YES,guest_username=vftp 两行,修改pam_service_name=virtual,virtual为vsftd与pam进行对接的配置文件。
6)设置虚拟用户的权限
在vsftpd.conf中加入使用virtual_use_localprivs=YES配置,其功能是使虚拟用户的权限与操作系统中所对应用户的权限(虚拟用户映射的用户如vftp)的权限一样,这样可以通过设置本地用户权限来决定虚拟用户的权限。如果不加此参数,虚拟用户能上传文件到自己的家目
录/home/vftp,但是不能查看目录中的内容,加上此参数和实体用户差不多。
如果要求多个虚拟用户具有不同的权限,则要在vsftpd.conf中加入一行,指定放置用户配置文件的目录是/etc/vsftpd,
user_config_dir=/etc/vsftpd。
接着,在/etc/vsftpd目录下建立文件名为虚拟用户名的配置文件,并根据要求编辑不同的文件。例如:
vim /etc/vsftpd/user1
local_root=/home/virtual/user1
vim /etc/vsftpd/user2
local_root=/home/virtual/user2
write_enable=YES #服务器解手与写有关的控制
anon_upload_enable=YES
anon_mkdir_write_enable=YES