centos7下vsftp安装配置:
yum安装vsftpd yum install -y vsftpd 启动服务 systemctl start vsftpd.service&&systemctl enable vsftpd.service 修改配置文件 vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO #12行 不允许匿名访问 local_enable=YES #16行 设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。write_enable=YES #19行 设定可以进行写操作。 local_umask=022 #23行 设定上传后文件的权限掩码,文件644,文件夹755 anon_upload_enable=NO #29行 禁止匿名用户上传文件。 anon_mkdir_write_enable=NO #33行 禁止匿名用户建立目录。 dirmessage_enable=NO #37行 设定开启目录标语功能 看自己需求。 xferlog_enable=YES #40行 设定开启日志记录功能。 chown_uploads=NO #48行 设定禁止上传文件更改宿主。 xferlog_file=/var/log/vsftpd.log #53行 设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。xferlog_std_format=YES #57行 设定日志使用标准的记录格式。 idle_session_timeout=600 #60行 设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒。 nopriv_user=vsftpd #67行 设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。 async_abor_enable=YES #72行 设定支持异步传输功能。 ascii_upload_enable=YES #83行 设定支持ASCII模式的上传功能。 ascii_download_enable=YES #84行 设定支持ASCII模式的下载功能。 #cmds_allowed=ABOR,RETR,ACCT,ALLO,APPE,CDUP,CWD,EPRT,EPSV,FEAT,HELP,LIST,MDTM,MKD,MODE,NLST,NOOP,OPTS,PASS,PASV,PORT,PWD,QUIT,REIN,REST,SITE,SIZE,SMNT,STAT,STOU,STRU,SYST,TYPE,USER,XCUP,XCWD,XMKD,XPWD,XRMD,BYE,STOR #cmds_allowed需自己添加可以对vsftpd权限控制更加细化中间并不能有空格和回车 chroot_local_user=YES #101行 将所有用户限制在主目录 chroot_list_enable=NO #102行 所有用户都被限制在其主目录下。如果配置为YES,chroot_list_file指定的用户列表,将不受限制。pam_service_name=vsftpd #126行 设定,启用pam认证,并指定认证文件名/etc/pam.d/vsftpd。 userlist_enable=YES #127行 设定userlist_file中的用户将不得使用FTP。 tcp_wrappers=YES #128行 设定支持TCP Wrappers。 #connect_from_port_21=YES #43行 默认21端口 注释掉。 pasv_enable=YES #需添加 开启被动模式 listen_port=20021 #需添加 添加监听端口 pasv_min_port=20022 #需添加 设置被动模式的端口范围,最小端口号~最大端口号 pasv_max_port=20025 #需添加 端口范围自己调整 #local_root=/var/ftp/ #需添加 用户登录路径,local_root 针对系统用户 #anon_root=/var/ftp/ #需添加 anon_root 针对匿名用户 allow_writeable_chroot=YES #需添加(重要) 新版析vsfptd加入了安全需求,切根不允许写,要加这个选项 user_config_dir=/etc/vsftpd/userconfig #需添加 用户配置目录 防火墙开放端口 firewall-cmd --zone=public --add-port=20021-20025/tcp --permanent firewall-cmd --reload 关闭selinux vi /etc/sysconfig/selinux SELINUX=enforcing 改为 SELINUX=disabled 重启服务reboot
添加用户及用户组 groupadd vsftpd useradd -g vsftpd -d /var/ftp -s /sbin/nologin vsftpd之后配置pam认证 创建用户列表(一行用户名,一行密码) vi /etc/vsftpd/userconfig/user_list 例: testuser testpasswd 用户文件建立后生成数据库文件 db_load -T -t hash -f /etc/vsftpd/userconfig/user_list /etc/vsftpd/userconfig/user_list.db
修改pam认证文件,vi /etc/pam.d/vsftpd
注释掉所有行,添加以下两行auth required pam_userdb.so db=/etc/vsftpd/userconfig/user_list account required pam_userdb.so db=/etc/vsftpd/userconfig/user_list 最后在/etc/vsftpd/userconfig目录下建立与用户名相同的文件并配置相应的权 例: vi /etc/vsftpd/userconfig/testuser local_root=/var/ftp/testuser write_enable=YES #允许虚拟用户有写得权限 anon_world_readable_only=YES #允许匿名用户可以下载和读取的权限 anon_upload_enable=YES #允许匿名用户有上传文件权限,在write_enable=YES时有效 anon_mkdir_write_enable=YES #允许匿名用户有创建目录权限write_enable=YES时有效 anon_other_write_enable=YES #允许匿名用户有其他权限(删除,重命名),在write_enable=YES时有效