centos7配置vsftpd服务器

参考网站:https://blog.csdn.net/lianghongge/article/details/78209445html

============================================================linux

 https://www.cnblogs.com/Confession/p/6813227.html    (比较全)web

https://blog.csdn.net/m0_37355951/article/details/76854141     (阿里云搭建FTP服务器)数据库

新建总虚拟帐户virtusers,安全

修改用户家目录  usermod -d /var/ftp/ virtusers服务器

修改/opt/vsftp/passwdsession

须要 生成虚拟用户数据文件app

db_load -T -t hash -f   /opt/vsftp/passwd  /opt/vsftp/passwd.dbasync

须要注意的是,之后对虚拟用户的增删操做完以后须要再次执行上述命令,使其生成新的数据文件tcp

而后从新启动vsftpd

=============================================================

限制用户登陆权限:         https://blog.csdn.net/zgy621101/article/details/78902020

userlist_enable=YES

而后把须要限制的用户添加进文件/etc/vsftpd/user_list当中去。

 

=============================================================

新建用户并限制访问的目录文件夹:

https://blog.csdn.net/dxmgood/article/details/51895574

https://zhidao.baidu.com/question/2205911713706365028.html       (好像说反了,没在文件 /etc/vsftpd/chroot_list里面设置的用户名才会限制访问目录)

 (1)用户ftptest为useradd建立的用户,相关设置,限制访问默认目录,及访问的默认目录

 

chroot_local_user=YES         #(修改成NO之后,虚拟帐户就不限制切换上下级目录了)
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
local_root=/var/ftp/pub
anon_root=/var/ftp/pub

[root@smcweb01 ~]# cat /etc/vsftpd/chroot_list
user2
[root@smcweb01 ~]#

(2)虚拟用户test,相关配置,及访问的默认目录

 在这个文件内设置:/etc/vsftpd/vconf/test

 新建的虚拟用户存放的文件地址  : /opt/vsftp/passwd

设置PAM验证文件,并制定虚拟用户数据库文件进行读取:     /etc/pam.d/vsftpd   添加如下两行

#####64位系统配置
auth    sufficient      /lib64/security/pam_userdb.so     db=/opt/vsftp/passwd
account sufficient      /lib64/security/pam_userdb.so     db=/opt/vsftp/passwd

=============================================================

 个人vsftpd.conf设置内容以下:::::::

# grep -v '^#' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=3600
nopriv_user=vsftpd
async_abor_enable=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
local_root=/var/ftp/pub
anon_root=/var/ftp/pub
ls_recurse_enable=NO
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

 

guest_enable=YES
guest_username=virtusers
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
reverse_lookup_enable=NO

 

 

=============================================================

CentOS7搭建FTP服务器

 

如下操做均要以ROOT身份进行。

1、设置用户帐号。

#建立用于登录的FTP的帐号

useradd myftp -s /sbin/nologin -U

#修改myftp密码

passwd myftp

 

2、修改vsftpd的主要配置文件。

#修改/etc/vsftpd/vsftpd.conf 文件,确认如下内容是否一致:

#容许用帐号密码的方式登录

local_enable=YES

#容许文件的写入操做

write_enable=YES

#链接的超时时间设定

idle_session_timeout=600

data_connection_timeout=120

#全部登录的用户都做为nobody身份,更安全。

nopriv_user=nobody

 

#如下内容默认是没有,添加进vsftpd.conf 文件的最后

#使用被动模式链接
pasv_enable=YES

#被动模式超时时间
accept_timeout=60

#被动模式所使用的端口范围
pasv_min_port=65400
pasv_max_port=65410

#启动并指定开放的用户列表
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#监听的端口
listen_port=21
listen=YES
#开放用户帐号登录
guest_enable=YES
guest_username=ftp

#限制用户的上传下载速度,0为不限制,单位: bytes/秒
local_max_rate=0

#限制登录用户的到默认的位置,默认为/var/ftp文件夹
chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

#进入文件夹后提示的欢迎内容,若是没有/etc/vsftpd/welcome.txt这个文件就本身新建一个,随便写点东西进去。
dirmessage_enable=YES
banner_file=/etc/vsftpd/welcome.txt
#使用pam托管的帐号
pam_service_name=vsftpd
#容许上传等写入操做

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

 

3、建立必须的文件

检查下/etc/vsftpd/目录里是否有如下3个文件,若是没有就建个空的。

chroot_list 这个通常是没有的,建个空的吧

user_list 这个通常默认就存在,里面存放容许登录的帐号,一行一个帐号名,若是不想让某个帐号登录ftp,那么这里就别填那个帐号进来。

ftpusers 这个通常默认就存在,里面存放禁止登录的帐号,一行一个帐号名。

PS:user_list和ftpusers功能差很少的,能够只用user_list 这个来管理,把 ftpusers 里面内容都删掉。

4、容许第一步建立的帐号名myftp登录。

在/etc/vsftpd/user_list 添加一行内容是myftp

查验一下/etc/vsftpd/ftpusers是否有myftp,若是有,就要删掉,否则就被禁止登录了。

5、建立用于ftp的文件夹

mkdir -p /var/ftp

6、建立容许ftp用户操做的文件夹

mkdir -p /var/ftp/share

chmod 777 /var/ftp/share

7、防火墙开放相关的端口,并重启防火墙,输入如下指令,一行一行运行:

firewall-cmd --permanent --zone=public --add-port=20/tcp

firewall-cmd --permanent --zone=public --add-port=21/tcp

firewall-cmd --permanent --zone=public --add-port=65400-65410/tcp

firewall-cmd --permanent --zone=trusted --add-port=20/tcp

firewall-cmd --permanent --zone=trusted --add-port=21/tcp

firewall-cmd --permanent --zone=trusted --add-port=65400-65410/tcp

systemctl restart firewalld.service

#能够经过如下指定查看端口是否已添加进去

firewall-cmd --zone=public --list-ports

firewall-cmd --zone=trusted --list-ports

8、selinux开放相关权限,并重启selinux:

setsebool -P ftpd_full_access 1

setenforce 0

setenforce 1

#能够经过如下指令查看ftpd_full_access 是否为ON状态

getsebool -a|grep ftpd_full_access

9、启动ftp服务

systemctl restart vsftpd.service

#若是想开机启动ftp还要运行如下指令:

systemctl enable vsftpd.service

10、如今能够尝试用ftp帐号登录了,能够参考下图,登录时间可能须要几秒,若是登录不了就重启服务器再试下吧。

 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

更改ftp访问的共享文件夹

参考网站:https://www.cnblogs.com/huangye-dream/p/3454595.html

修改ftp的根目录只要修改/etc/vsftpd/vsftpd.conf文件便可:

加入以下几行:

local_root=/var/www/html
chroot_local_user=YES
anon_root=/var/www/html

注:local_root 针对系统用户;anon_root 针对匿名用户。

从新启动服务:

service vsftpd restart

任何一个用户ftp登陆到这个服务器上都会chroot到/var/www/html目录下。

=======================================================

问题:用户不能上传文件?注意修改文件目录权限 chmod 777 就能够了

=======================================================