查看是否安装了FTP:rpm -qa|grep vsftpd
安装:yum -y install vsftpd
chkconfig vsftpd on安全
启动vsftpd: systemctl start vsftpd.service服务器
vsftpd几种用户:本地用户、虚拟用户、匿名用户。app
主动模式、被动模式:异步
PORT主动 FTP模式:
命令链接:客户端>1024端口 -> 服务器21端口
数据链接:客户端>1024端口 <- 服务器20端口async
PASV被动 FTP模式:
命令链接:客户端>1024端口 -> 服务器21端口
数据链接:客户端>1024端口 <- 服务器>1024端口tcp
文件说明:
ll /etc/vsftpd/ftpusers:指定哪些用户帐号不能访问FTP服务器,如root等。
ll /etc/vsftpd/user_list:该文件里用户帐号默认状况下不能访问FTP服务器,仅当vsftpd.conf配置文件里启用userlist_enabled=NO选项时才容许访问。ide
vsftpd 虚拟用户配置说明。性能
cat /etc/vsftpd/vsftpd.conf测试
anonymousenable=NO #设定不容许匿名访问 localenable=YES #设定本地用户能够访问。注意:主要是为虚拟宿主用户,若是该项目设定为NO,全部虚拟用户将没法访问。 writeenable=YES #设定能够进行写操做。 localumask=022 #设定上传后文件的权限掩码。 anonuploadenable=NO #禁止匿名用户上传。 anonmkdirwriteenable=NO #禁止匿名用户创建目录。 dirmessageenable=YES #设定开启目录标语功能。 xferlogenable=YES #设定开启日志记录功能。 connectfromport20=YES #设定端口20进行数据链接。 chownuploads=NO #设定禁止上传文件更改宿主。 xferlogfile=/var/log/vsftpd.log #设定Vsftpd的服务日志保存路径。 xferlogstdformat=YES #设定日志使用标准的记录格式。 asyncaborenable=YES #设定支持异步传输功能。 asciiuploadenable=YES asciidownloadenable=YES #设定支持ASCII模式的上传和下载功能。 ftpdbanner=This Vsftp server supports virtual users ^^ #设定Vsftpd的登录标语。 chrootlistenable=NO #禁止用户登出本身的FTP主目录。 lsrecurseenable=NO #禁止用户登录FTP后使用"ls -R"的命令。该命令会对服务器性能形成巨大开销。若是该项被容许,那么当多用户同时使用该命令时将会对该服务器形成威胁。 listen=YES #设定该Vsftpd服务工做在StandAlone模式下。 pamservicename=vsftpd #设定PAM服务下Vsftpd的验证配置文件名。所以,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。 userlistenable=YES #设定userlistfile中的用户将不得使用FTP。 tcpwrappers=YES #设定支持TCP Wrappers #pasvpromiscuous=yes #关闭ftp被动模式PASV的安全检查。 chrootlocaluser=yes #将全部用户限制在主目录。ftp用户不能够向上切换到其余目录以外 chrootlistenable #是否启动限制用户的名单/etc/vsftpd/chrootlist 。 YES为启用,则/etc/vsftpd/chrootlist文件用户不受限制。 NO禁用(包括注释掉也为禁用) chrootlistfile=/etc/vsftpd/chrootlist #是否限制在主目录下的用户名单,至因而限制名单仍是排除名单,这取决于chrootlocaluser的值。 allowwriteablechroot=YES #vsftpd在2.3.5以后,vsftpd为真强安全检查,若是用户被限制在其主目录下,则该用户的主目录下再也不具备写权限。如发现写权限,就会报错误。修复错误一个方法是增长vsftpd.conf配置文件加allowwriteablechroot=YES。 #如下关于Vsftpd虚拟用户支持的重要配置项目,须要本身手动添加配置 guestenable=YES #设定启用虚拟用户功能。 guestusername=ftpuser #指定虚拟用户的宿主用户。 virtualuselocalprivs=YES #设定虚拟用户权限与本都用户同样权限。 #pamservicename=vsftpd #虚拟用户启用pam认证 userconfigdir=/etc/vsftpd/vuserconf #设定虚拟用户配置文件所在目录*
useradd ftpuser -d /home/vsftpd -s /sbin/nologin chown ftpuser:ftpuser /data/vsftpd -R
建虚拟用户文件:ui
cat /etc/vsftpd/vftpuser test test@123
生成虚拟用户数据文件:
db_load -T -t hash -f /etc/vsftpd/vftpuser /etc/vsftpd/vftpuser.db chmod 600 /etc/vsftpd/vftpuser.db
配置pam认证文件:
cat /etc/pam.d/vsftpd #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vftpuser account required pam_userdb.so db=/etc/vsftpd/vftpuser
建立用户配置:
ll /data/vsftpd/
drwxrwxrwx 3 ftpuser ftpuser 4096 2月 1 17:26 test
编辑每一个虚拟用户配置文件:
cat /etc/vsftpd/vuser_conf/test local_root=/data/vsftpd/test anon_world_readable_only=no write_enable=yes anon_upload_enable=yes anon_mkdir_write_enable=yes anon_other_write_enable=yes
建立用户目录
mkdir -p /data/vsftpd/test
重启vsftpd: systemctl start vsftpd.service
本地ftp测试:
ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.2) Name (127.0.0.1:root): test 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>