vsftpd ubuntu14.04服务端配置手册
1、安装需要的软件
vsftpd
db-util (用于虚拟用户密码加密) 命令为:
sudo apt-get install vsftpd sudo apt-get install db-util
2、添加虚拟用户口令文件
在/etc/vsftpd目录(如不存在则手动创建)下创建虚拟用户文本文件 sudo gedit /etc/vsftpd/vftpuser.txt
在文件中增加相应的用户和密码,用户名和密码各占一行,奇数行为用户名,偶数行为密码。例如: test test123456
3、生成虚拟用户口令认证文件(生成db文件)
sudo db_load-T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
4、编辑vsftpd的PAM认证文件(vsftpd默认PAM认证文件为/etc/pam.d/vsftpd)
#新建PAM认证文件
sudo gedit /etc/pam.d/vsftpd 将里面的内容全部注释掉,增加如下行:
auth requiredpam_userdb.so db=/etc/vsftpd/vftpuser accountrequired pam_userdb.so db=/etc/vsftpd/vftpuser
5、建立本地映射用户并设置宿主目录权限
本地映射用户为ftp,目录权限为700(linux系统用户,ftp虚拟用户登陆后映射为ftp用户)
创建ftp用户组命令为(如果存在则忽略): sudo groupadd ftp 创建ftp用户命令为:
sudo useradd -m -g ftp -s /sbin/nologin ftp
在磁盘上创建ftp仓库目录,本说明以/home目录的FtpDir为例: sudo mkdir /home/FtpDir
sudo chown -R ftp:ftp /home/FtpDir
6、配置vsftpd.conf(设置虚拟用户配置项)
sudo gedit /etc/vsftpd.conf
编辑如下选项(参数可根据实际部署调整): #禁止匿名用户登录 anonymous_enable=NO #允许本地用户登录 local_enable=YES #可以上传,全局控制 write_enable=YES #空闲连接超时时间 idle_session_timeout=600 #数据连接超时时间
data_connection_timeout=600 #锁定用户目录 chroot_local_user=YES #允许侦听 listen=YES
#主动式连接使用的数据通道 connect_from_port_20=YES
#支持数据流的被动式连接模式,设置是否允许pasv模式(即被动模式) pasv_enable=YES
#开启userlist,只允许allowed_users中指定的用户登录 userlist_enable=YES userlist_deny=NO
userlist_file=/etc/vsftpd/allowed_users
#锁定用户目录,以上面创建的Ftp主目录FtpDir为例 local_root=/home/FtpDir #虚拟用户test专用配置文件目录
user_config_dir=/etc/vsftpd/virtual_conf #开启虚拟用户功能 guest_enable=yes
#虚拟用户映射的本地实际用户 guest_username=ftp #vsftpd的pam认证文件 pam_service_name=vsftpd #允许存在写权限的用户目录切换 allow_writeable_chroot=YES #欢迎信息
ftpd_banner=welcome to The FTP service
注意:其他参数根据需要调整,如无需调整请保持原有配置。
7、test用户专用配置文件
#文件名要跟用户名一致
sudo gedit /etc/vsftpd/virtual_conf/test 文件添加内容如下(可根据需要增删):
#锁定用户目录,以上面创建的Ftp主目录FtpDir为例 local_root=/home/FtpDir #可以浏览和下载(yes 只读权限)