zoukankan      html  css  js  c++  java
  • Linux安装vsftpd总结

    我使用的是CentOS6安装的vsftpd,转载请注明出处,以下是我的记录:

    #查看是否已经安装了vsfptd

    vsftpd -v

    #安装

    yum -y install vsftpd

    #创建:chroot_list 文件

    touch /etc/vsftpd/chroot_list

    ----- 配置虚拟用户登录 -----

    首先安装 FTP 虚拟用户需要用到的软件及认证模块

    yum install pam* db4* --skip-broken –y

    #创建一个ftpusers.txt文件

    vim /etc/vsftpd/ftpusers.txt

    #写入账号及密码,用来保存虚拟用户账号及密码信息,格式是:比如第1行为账号,第2行就是秘密,依此类推:

    test1
    123456
    test2
    654321

    注意:如果直接复制以上账号密码会自动在后面添加空格,导致登录不成功。

    #修改权限:

    chmod 700 /etc/vsftpd/ftpusers.txt

    #生成虚拟用户数据库文件:

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

    db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

    #修改权限:

    chmod 700 /etc/vsftpd/vsftpd_login.db

    #设置PAM验证文件,并制定虚拟用户数据库文件进行读取
    对原验证文件备份后进行更改:

    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back

    #修改/etc/pam.d/vsftpd文件:

    vim /etc/pam.d/vsftpd

    在最顶部添加以下两项:

    auth       sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account    sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login

    #创建虚拟用户配置目录,用来单独配置不同虚拟用户访问不同目录等。

    mkdir /etc/vsftpd/vsftpd_user_conf

    #创建一个与虚拟用户同名称的文件,用来单独配置这个虚拟用户的访问目录。

    vim /etc/vsftpd/vsftpd_user_conf/test1

    #写入配置内容:

    local_root=/home/www/test1
    write_enable=YES
    anon_world_readable_only=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

    #创建test1用户访问的目录:

    mkdir -p /home/www/test1

    #创建 vsftpd 映射本地用户:

    所有的 FTP 虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。 主要用来做虚拟用户映射使用。

    useradd -d /home/www -s /sbin/nologin ftpuser

    #设置权限:

    chown -R ftpuser:ftpuser /home/www

    #备份vsftpd.conf文件:

    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

    #清空vsftpd.conf内容:

    cat /dev/null > /etc/vsftpd/vsftpd.conf

    #修改

    vim /etc/vsftpd/vsftpd.conf

    写入以下内容:

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/var/log/vsftpd.log
    idle_session_timeout=600
    data_connection_timeout=6
    listen=YES
    listen_port=21
    allow_writeable_chroot=YES
    local_root=/home/www
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    userlist_enable=YES
    userlist_deny=YES
    userlist_file=/etc/vsftpd/user_list
    pasv_enable=YES
    pasv_min_port=10240
    pasv_max_port=10260
    pam_service_name=vsftpd
    guest_enable=YES
    guest_username=ftpuser
    virtual_use_local_privs=YES
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    reverse_lookup_enable=NO

    #然后在防火墙规则(CentOS6)

    vim /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 20:21 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10240:10260 -j ACCEPT

    CentOS7

    systemctl start firewalld
    firewall-cmd --zone=public --add-port=20-21/tcp --permanent
    firewall-cmd --zone=public --add-port=10240-10260/tcp --permanent
    firewall-cmd --reload

    #如果用的云服务器,还要在云服务器在安全组设置开放端口:20-21和10240-10260

    #刚安装的vsftpd默认是没有启动的。全部配置好了之后启动以下vsftpd。

    #vsftpd开启、关闭、重启服务(以下只适合CentOS6及CentOS6以下版本,CentOS7命令不同

    设置开机自启:chkconfig vsftpd on                                        (CentOS7使用systemctl enable vsftpd)

    启动:/etc/init.d/vsftpd start 或者 service vsftpd start             (CentOS7使用systemctl start vsftpd)

    停止:/etc/init.d/vsftpd stop 或者 service vsftpd stop              (CentOS7使用systemctl stop vsftpd)

    重启: /etc/init.d/vsftpd restart 或者 service vsftpd restart         (CentOS7使用systemctl restart vsftpd)

    查看状态:/etc/init.d/vsftpd status 或者 service vsftpd status

    #卸载vsftpd
    rpm -e vsftpd

    客户端电脑安装“FileZilla”连接ftp服务器,这个是免费的,Mac、Windows版都有,如果连接错误(提示被动模式的问题,则在FileZilla中的设置项中被动模式设置为:退回到主动模式)

    vsfptd.conf配置详解:

    # vsftp conf /etc/vsftpd.conf

    #不允许匿名用户登陆
    anonymous_enable=NO

    #vsftpd所在系统的用户可以登录vsftpd
    local_enable=YES

    #允许使用任何可以修改文件系统的FTP的指令
    write_enable=YES

    #匿名用户新增文件的umask数值
    local_umask=022

    #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
    dirmessage_enable=YES

    #启用一个日志文件,用于详细记录上传和下载
    xferlog_enable=YES

    #开启20端口
    connect_from_port_20=YES

    #记录上传下载文件的日志
    xferlog_file=/var/log/vsftpd.log

    #如果使用者在600秒内都没有命令动作,就会断开连接
    idle_session_timeout=600

    #如果服务器与客户端的数据联机已经成功建立 (不论主动还是被动联机),但是可能由于线路问题导致6秒内还是无法顺利的完成数据的传送,那客户端的联机就会被我们的 vsftpd 强制剔除!
    data_connection_timeout=6

    listen=YES
    listen_port=21

    #从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。所以2.3.5之后的版本需要设置此项
    allow_writeable_chroot=YES

    #用户默认访问的根目录
    local_root=/home/www

    #限制用户在自己的家目录之内,如果chroot_local_user=YES且chroot_list_enable=YES则在chroot_list中的用户都是不受限制的用户。如果chroot_local_user=NO且chroot_list_enable=YES则在chroot_list中的用户都是受限制的用户
    chroot_local_user=YES

    #限制某用户只能访问自己的目录,与chroot_list_flie有关!这个项设置要开启,否则chroot_list_file文件会无效
    chroot_list_enable=YES

    #限制某用户只能访问自己的目录,将用户名写进这个文件,要确保设置chroot_list_enable=YES才有效
    chroot_list_file=/etc/vsftpd/chroot_list

    #是否借助 vsftpd 的抵挡机制来处理某些不受欢迎的账号,与userlist_deny设置有关
    userlist_enable=YES

    #当userlist_enable=YES时才会生效,若为YES则当使用者账号被列入到相应的文件时,在该文件内的使用者将无法登入vsftpd服务器!该文件名与userlist_file设置有关
    userlist_deny=YES

    #若userlist_deny=YES,则这个设置才有用!在这个文件内的账号都无法使用vsftpd
    userlist_file=/etc/vsftpd/user_list

    pasv_enable=YES
    pasv_min_port=10240
    pasv_max_port=10260

    #设定pam服务下的vsftpd验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置
    pam_service_name=vsftpd

    ###### 以下是关于虚拟用户支持的重要配置项目,默认.conf配置文件中是不包含这些项目的,需手动添加。 ######

    #启用虚拟用户功能
    guest_enable=YES

    #指定虚拟的宿主用户
    guest_username=ftpuser

    #设定虚拟用户的权限符合他们的宿主用户
    virtual_use_local_privs=YES

    #设定虚拟用户个人vsftp的配置文件存放路径。这个被指定的目录里,将被存放每个虚拟用户个性的配置文件,注意的地方是:配置文件名必须和虚拟用户名相同
    user_config_dir=/etc/vsftpd/vsftpd_user_conf

    #禁止反向域名解析,若是没有添加这个参数可能会出现用户登陆较慢,或则客户链接不上ftp的现象
    reverse_lookup_enable=NO

    #快速清空vsftpd.conf内容的另一种方法:

    vim /etc/vsftpd/vsftpd.conf 打开文件

    用输入“G”跳到最后一行,再输入“:1,.d”即可清空。

    ----- 配置系统用户登录 ----- 

    #创建系统用户登录

    useradd test_user

    passwd test_user

    使用test_user用户登录vsftpd会自动创建一个/home/www/test_user的目录

  • 相关阅读:
    leetcode@ [68] Text Justification (String Manipulation)
    leetcode@ [205] Isomorphic Strings
    leetcode@ [274/275] H-Index & H-Index II (Binary Search & Array)
    leetcode@ [174] Dungeon Game (Dynamic Programming)
    Java 开发@ JDBC链接SQLServer2012
    leetcode@ [97] Interleaving Strings
    leetcode@ [131/132] Palindrome Partitioning & Palindrome Partitioning II
    leetcode@ [263/264] Ugly Numbers & Ugly Number II
    py-day1-1 python的基本运算符和语句
    py-day1 pycharm 的安装 以及部分设置
  • 原文地址:https://www.cnblogs.com/pengyunjing/p/7355433.html
Copyright © 2011-2022 走看看