一、 概述
- 最近搭建vstftp服务,反复尝试几天不断安装卸载,遇见不少坑,本人linux新手学习,特记录该笔记。使用的的是Ubuntu16.04,安装vsftpd版本为3.0.3.
二、 卸载vsftpd
- apt-get purge vsftpd (完全卸载及附属相关文件, 建议) apt-get remove vsftpd (卸载软件)
三、 安装vsftpd
- apt-get install vsftpd (安装)
- vsftpd –v (查看版本)
四、 配置vsftpd
-
cp /etc/vsftpd.conf /etc/vsftpd.conf.old (备份)
配置讲解:
-
设置 vsftpd是否可以独立运行 守护进程从 initscript 开始(默认NO) #设置为NO, 独立运行 #设置为YES,开启监听网络模式
listen =NO
-
是否监听IPV6端口
listen_ipv6=YES
-
是否允许匿名访问FTP
anonymous_enable=NO
-
是否允许本地用户登陆
local_enable=YES
-
启用任何形式的FTP命令(CRUD)
write_enable=YES
-
本地用户默认上传文件权限为077 你可以将其改为022或其他
#local_umask=022
-
是否允许匿名FTP用户上传文件(不允许)
#anon_upload_enable=YES
-
是否允许匿名FTP用户创建文件夹(不允许)
#anon_mkdir_write_enable=YES
-
是否允许匿名FTP用户创建文件夹(不允许)*
#anon_mkdir_write_enable=YES
-
激活目录消息 用户切换目录会发送给他消息
dirmessage_enable=YES
-
如果启用 vsftpd将显示目录列表与时间默认GMT
use_localtime=YES
-
激活 上传/下载 的日志记录
xferlog_enable=YES
-
确保端口传输链接源来自端口20
connect_from_port_20=YES
-
上传匿名文件
#chown_uploads=YES
#chown_username=whoever -
日志
xferlog_file=/var/log/vsftpd.log -
启用 xferlog 默认位置 /var/log/xferlog
#xferlog_std_format=YES
-
允许的空闲时间
#idle_session_timeout=600
-
允许的数据传输时间
#data_connection_timeout=120
-
#启用port模式
#port_enable=YES
-
启用主动模式
#pasv_enable=YES
#pasv_min_port=最小端口
#pasv_max_port=最大端口 -
建议您在您的系统上定义一个独特的用户,ftp服务器可以用作完全隔离和非特权用户。
#nopriv_user=ftpusername
-
启用此功能服务器能识别异步ABOR请求
#async_abor_enable=YES
-
启用ASCII模式 (不要启用会被Dos攻击)
#ascii_upload_enable=YES
#ascii_download_enable=YES -
设置FTP登陆欢迎语
ftpd_banner=欢迎来到我的FTP服务器
-
设置禁止登陆的Emal用户列表
#deny_email_enable=YES
# (默认列表文件位置)
#banned_email_file=/etc/vsftpd.banned_emails -
Chroot限制模式#####################
-
将本地用户限制在其主目录(禁止跨目录), 配置为YES.
-
默认为所有用户启用 chroot 环境在这种情况下
-
#chroot_list_file 定义了不受 chroot 限制的用户列表。
chroot_local_user=YES
-
配置ftp根目录权限不可写,否则会登录时报:500 OOPS错误
-
配置ftp根目录权限可写, vsftp2.3.5之后版本需要手动添加配置
allow_writeable_chroot=YES
-
设置chroot_list_file是否有效
chroot_list_enable=YES
-
当chroot_list_enable=YES时文件生效,配置chroot_local_user=YES, 配置如果所有用户被限制只能访问家目录,文件内的用户为特权用户,可以不被限制地访问家目录之上的目录, 配置chroot_local_user=NO,所有用户都不被限制,都可以访问上级目录。则该文件内部的用户为被限制的用户,只能访问各自家目录,禁止访问上级目录
chroot_list_file=/etc/vsftpd.chroot_list
-
激活内置 -R 选项
#ls_recurse_enable=YES
-
定义 sftpd的空目
secure_chroot_dir=/var/run/vsftpd/empty
-
vsftpd将使用的PAM服务的名称
-
可选ftp | sftpd | vsftpd
pam_service_name=sftpd
-
rsa证书位置
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
-
rsa密钥位置
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
-
是否启用SSL
ssl_enable=NO
-
设置vsftpd使用utf8编码的文件系统
utf8_filesystem=YES
-
是否使userlist_file配置的文件生效
userlist_enable=YES
-
设置为YES时,userlist_file指定文件内的用户被禁止连接,类似于ftpusers 设置为NO时,只允许userlist_file指定文件内的用户连接,限制其他一切用户 userlist_deny=NO
-
文件名和路径可自由指定
userlist_file=/etc/vsftpd.allowed_users
-
设置固定目录,在结尾添加。如果不添加这一行
各用户对应自己的目录,当然这个文件夹自己建local_root=/home/uftp/
五、 配置步骤vsftpd
-
1.根据上述vsftpd.conf配置项,进行配置。
-
添加一个用户组ftpgroup。
groupadd ftpgroup
-
添加xx用户归属ftpgroup组
useradd -g ftpgroup -d /ftp/xiezepeng -M xiezepeng
-
-创建对应目录并授权。
sudo mkdir /ftp sudo mkdir /ftp/xiezepeng chmod 777 /ftp/xiezepeng
-
- 设置对应组用户密码并再次确认。
password xiezepeng
-
** 启动|停止|重启服务。**
service vstfpd start | stop | restart
-
检查服务。
-
查看状态:
systemctl status vsftpd.service status vsftpd.service
-
查看端口:
netstat –ntl
-
查看目录:
whereis vsftpd