安装vsftpd
yum install vsftpd -y
系统认证
vi /etc/vsftpd/vsftpd.conf[root@localhost pub]# egrep -v \"#|^$\" /etc/vsftpd/vsftpd.confanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES#启动服务service vsftpd start#创建用户useradd -s /sbin/nologin backuppasswd backup #设置密码touch /etc/vsftpd/chroot_list
虚拟用户
yum install db4 db4-utils #进行认证首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包#更改配置文件vi /etc/vsftpd/vsftpd.confanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESascii_upload_enable=YESascii_download_enable=YESchroot_list_enable=YES #开启限制在家目录内chroot_list_file=/etc/vsftpd/chroot_list #限制名单文件路径listen=YES # 开启监听pam_service_name=vsftpd # 使用pam认证模块userlist_enable=YES # 禁止用户登录名单tcp_wrappers=YESguest_enable=YES #开启虚拟用户guest_username=ftp #指定虚拟用户映射到本地的用户//指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 这里的用户也可以用//useradd vsftpuser -s /sbin/nologin -M自行创建user_config_dir=/etc/vsftpd/vuser_conf #指定虚拟用户自定义配置文件路径#创建用户密码本vim /etc/vsftpd/vuser_passwd.txtbackup #user123456 #passwd#生成虚拟用户认证的db文件db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.dbvim /etc/pam.d/vsftpd#全部注释,添加以下两行auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwdaccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd#创建虚拟用户配置文件mkdir /etc/vsftpd/vuser_conf #vsftpd.conf 里面指定的路径vim /etc/vsftpd/vuser_conf/backup #这里文件名必须要和之前创建的vuser_passwd.txt中虚拟用户名一一对应local_root=/databak/data #指定他的主目录write_enable=YES #开启写anon_umask=022 #匿名umask码anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES#创建虚拟用户的指定用户主目录(上传目录)mkdir /databak/data -pchmod 755 /databak #最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置757权限chmod 757 /databak/dataservice vsftpd restart
服务端脚本安装
#!/bin/bash#author:vaedit#date:2017/11/14read -p \"请输出用户名\" nameread -p \"请输入密码\" passwordecho -e \'\\033[32;40;1m开始安装\\033[0m\'yum install vsftpd db4 db4-utils -yuseradd -s /sbin/nologin ftpusermv /etc/vsftpd/vsftpd.conf{,.bak}#创建配置文件cat>/etc/vsftpd/vsftpd.conf <<EOFanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESuserlist_enable=YESchroot_list_enable=YESchroot_local_user=YESchroot_list_file=/etc/vsftpd/chroot_listlisten=YESpam_service_name=vsftpdtcp_wrappers=YESguest_enable=YESguest_username=ftpuseruser_config_dir=/etc/vsftpd/vuser_confvirtual_use_local_privs=YESEOFtouch /etc/vsftpd/chroot_list#创建账户密码文件cat>/etc/vsftpd/vuser_passwd.txt<<EOF$name$passwordEOFdb_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.dbchmod 700 /etc/vsftpd/vuser_passwd.dbcat>/etc/pam.d/vsftpd<<EOFauth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwdaccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwdEOF#创建虚拟用户配置文件mkdir /etc/vsftpd/vuser_conf -pcat>/etc/vsftpd/vuser_conf/$name<<EOFlocal_root=/data/ftp_$namewrite_enable=YESanon_world_readable_only=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESEOFmkdir /data/ftp_$name -pchown ftpuser.ftpuser /data/ftp_$name -Rsetenforce 0service vsftpd startps -ef|grep vsftpdnetstat -ntulp|grep \":21\"
配置文件注意点
#chroot控制1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。#访问控制对用户的访问控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件来控制实现。相关配置命令如下:userlist_enable=YES// 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。userlist_deny=YES// 决定/etc/vsftpd/user_list文件中的用户是允许访问还是不允许访问。若设置为YES,则/etc/vsftpd/user_list 文件中的用户将不允许访问FTP服务器;若设置为NO,则只有vsftpd.user_list文件中的用户,才能访问FTP服务器。
客户端好用的命令行工具ncftp安装使用
yum install ncftp -y#源码安装:tar zxvf ncftp-3.2.3-src.tar.gzcd ncftp-3.2.3/./configure --prefix=/usr/local/ncftpmake && make install#参数-u:指定登录FTP服务器时使用的用户名;-p:指定登录FTP服务器时使用的密码;-P:如果FTP服务器没有使用默认的TCP协议的21端口,则使用此选项指定FTP服务器的端口号。-m:在传之前尝试在目录位置创建目录(用于传目录的情况)-E: 使用主动模式-R:递规传子目录#用法#将本地/root/ssf 文件拷贝到远程ftp的根目录ncftpput -u backup -p 123456 192.168.246.128 . /root/ssf#常用操作命令lls: 列出本地当前目录文件;lmkdir : 本地建立目录;lrename: 本地文件改名;lpwd: 显示当前本地路径;lchmod: 改变本地文件权限;lpage: 显示本地文件内容;lrm: 删除本地文件;lrmdir: 删除本地目录。