zoukankan      html  css  js  c++  java
  • centos7配置vsftpd服务器 风行天下

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

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

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

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

    新建总虚拟账户virtusers,

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

    修改/opt/vsftp/passwd

    需要 生成虚拟用户数据文件

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

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

    然后重新启动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身份进行。

    一、设置用户账号。

    #创建用于登陆的FTP的账号

    useradd myftp -s /sbin/nologin -U

    #修改myftp密码

    passwd myftp

    二、修改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

    三、创建必须的文件

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

    chroot_list 这个一般是没有的,建个空的吧

    user_list 这个一般默认就存在,里面存放允许登陆的账号,一行一个账号名,如果不想让某个账号登陆ftp,那么这里就别填那个账号进来。

    ftpusers 这个一般默认就存在,里面存放禁止登陆的账号,一行一个账号名。

    PS:user_list和ftpusers功能差不多的,可以只用user_list 这个来管理,把 ftpusers 里面内容都删掉。

    四、允许第一步创建的账号名myftp登陆。

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

    查验一下/etc/vsftpd/ftpusers是否有myftp,如果有,就要删掉,不然就被禁止登陆了。

    五、创建用于ftp的文件夹

    mkdir -p /var/ftp

    六、创建允许ftp用户操作的文件夹

    mkdir -p /var/ftp/share

    chmod 777 /var/ftp/share

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

    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

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

    setsebool -P ftpd_full_access 1

    setenforce 0

    setenforce 1

    #可以通过以下指令查看ftpd_full_access 是否为ON状态

    getsebool -a|grep ftpd_full_access

    九、启动ftp服务

    systemctl restart vsftpd.service

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

    systemctl enable vsftpd.service

    十、现在可以尝试用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 就可以了

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

  • 相关阅读:
    怎样解决:未找到路径“……”的控制器或该控制器未实现 IController?
    错误:org.springframework.jdbc.support.SQLErrorCodesFactory
    springbean的生命周期
    注解到处excel
    nio读取文件,输出文件
    AtomicReference
    唯一id
    hashmap1.7的死锁模拟
    数组模拟stack
    环形队列
  • 原文地址:https://www.cnblogs.com/yaok430/p/9140652.html
Copyright © 2011-2022 走看看