Linux下Vsftpd安装配置(1)--安装

一、安装

直接通过yum来安装。


yum install vsftpd

安装成功通过vsftpd -v 来查看安装的版本。

二、vsftpd配置

1、创建系统账号(用于更改vsftpd的宿主用户以及虚拟用户)


useradd vsftpd -s /sbin/nologin
useradd www -s /sbin/nologin

2、备份配置文件并修改:

备份文件


cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup

vsftpd.conf文件做如下修改,里面有简单注释说明。


anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022

anon_upload_enable=NO
anon_mkdir_write_enable=NO

dirmessage_enable=YES
connect_from_port_20=YES

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

chown_uploads=NO
#chown_username=whoever

#idle_session_timeout=600
#data_connection_timeout=120

nopriv_user=vsftpd
#宿主主机
#设定支持异步传输功能。
async_abor_enable=YES
#设定支持ASCII模式的上传和下载功能。
ascii_upload_enable=YES
ascii_download_enable=YES

ftpd_banner=Welcome to blah FTP service.

#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails

#将虚拟用户限制在其目录下
chroot_local_user=YES
#启用特殊用户不受限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#禁止用户登陆FTP后使用"ls -R"的命令。
ls_recurse_enable=NO
#

listen=YES
#listen_ipv6=YES

pam_service_name=vsftpd
#设定userlist_file中的用户将不得使用FTP。
userlist_enable=YES
tcp_wrappers=YES

#默认没有,需要手动添加
guest_enable=YES
#设定启用虚拟用户功能。
guest_username=www
#指定虚拟用户的宿主用户。
virtual_use_local_privs=YES
#设定虚拟用户的权限符合他们的宿主用户。
user_config_dir=/etc/vsftpd/vconf
#设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。

创建和设置日志文件及相关目录


touch /etc/vsftpd/chroot_list
touch /var/log/vsftpd.log
chown vsftpd.vsftpd /var/log/vsftpd.log
mkdir -p /etc/vsftpd/vconf

三、设定PAM验证文件,并指定虚拟用户数据库文件进行读取。

通过上面的配置文件,我们已经启用了pam认证方式(pam_service_nam属性,以及guest_enable=YES下面那些配置)。这里需要创建我们要登录的ftp用户和密码。

1、设置PAM文件

查看并备份


cat /etc/pam.d/vsftpd
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup

修改/etc/pam.d/vsftpd文件,尾部加入下面2行


echo "auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers" >>/etc/pam.d/vsftpd
echo "account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers" >>/etc/pam.d/vsftpd

同时做如下修改


auth required pam_shells.so
换为
auth sufficient pam_shells.so

完整内容如下:


#%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 sufficient pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

2、创建虚拟用户和密码


touch /etc/vsftpd/virtusers
#用户 密码 格式很简单:“一行用户名,一行口令”。
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db #生成用户密码数据文件。
chmod 600 /etc/vsftpd/virtusers.db

3、创建虚拟用户对应的配置

/etc/vsftpd/vconf下创建用户名文件,并指定访问路径。这里在/etc/vsftpd/vconf下创建steven文件(和用户名一致),内容:


local_root=/data/web/
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=300
data_connection_timeout=90
max_clients=1
max_per_ip=1
local_max_rate=25000

4、做好了上面的配置后需要在系统中添加该用户,并且对要访问的目录设置下权限。


useradd steven -s /sbin/nologin

chown -R www.www /data/web/

四、启动和停止vsftpd

做好了上面的相关配置后可以通过下面的命令来启动和停止服务。


service vsftpd start
service vsftpd stop
service vsftpd restart

五、新增一个用户流程

1、添加系统用户css


useradd ccs -s /sbin/nologin

2、virtusers 中加入用户和密码,并生成db文件

/etc/vsftpd/virtusers 加入


ccs
ccs111

生成db文件


db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

3、/etc/vsftpd/vconf下创建用户名文件,并指定访问路径。

4、给访问路径设置chown

chown -R www.www /data/web/php/

5、如果启用了目录限制,想不受限制,在/etc/vsftpd/chroot_list指定,这样就不受限制。

六、可能碰见的错误汇总

1、查看日志
tail -f /var/log/secure

2、bad bool value in config file for: chroot_local_user
chroot_local_user=yes 后面多了一个空格 汗

3、check pass; user unknown

useradd steven -s /sbin/nologin

4、Refused user steven for service vsftpd

在/etc/vsftpd/ftpusers里的用户都不能登录ftpd ,将steven从中移除掉。

5、530 Permission denied.

user_list 文件中 将steven移除掉。

6、user 'steven' granted access,但是提示530.

/etc/pam.d/vsftpd中
auth required pam_shells.so
换为
auth sufficient pam_shells.so

7、查看当前用户
/etc/passwd

七、参考

http://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html

你可能感兴趣的:(Linux下Vsftpd安装配置(1)--安装)