zoukankan      html  css  js  c++  java
  • vsftpd安装配置

    vsftpd安装配置

    vsftpd测试服务器:

    192.168.1.191

    1、安装:

    yum provides */vsftpd  
    yum install vsftpd -y
    

    2、匿名用户最基本配置(生产上不设置匿名用户访问):

    vim /etc/vsftpd/vsftpd.conf
    

    允许匿名用户访问

    anonymous_enable=YES
    

    允许匿名用户上传文件并可以创建目录:

    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    

    修改匿名目录所有者(默认是root):

    chown ftp.ftp /var/ftp/pub/
    

    设置允许匿名用户可上传可读写:

    anon_other_write_enable=YES
    

    注:如果去掉这一条,匿名用户可以创建,上传,但是不能删除。

    3、启动vsftp服务:

    service vsftpd start
    service vsftpd stop
    service vsftpd restart
    

    4、正式部署vsftpd(废弃原来默认的ftp目录:/var/ftp):

    首先修改配置文件

    备份配置文件

    cp -a vsftpd.conf vsftpd.conf.bak
    echo "" > vsftpd.conf
    vim /etc/vsftpd/vsftpd.conf
    

    加入以下内容:

    anonymous_enable=NO
    write_enable=YES
    chroot_local_user=YES
    chroot_list_enable=YES
    use_localtime=YES
    local_enable=YES
    allow_writeable_chroot=YES
    xferlog_enable=YES
    local_umask=022
    pam_service_name=vsftpd
    use_localtime=YES
    listen_port=21
    chroot_local_user=YES
    idle_session_timeout=120
    data_connection_timeout=120
    guest_enable=YES
    guest_username=ftpuser
    user_config_dir=/etc/vsftpd/vuser_conf
    virtual_use_local_privs=YES
    pasv_min_port=10060
    pasv_max_port=10090
    accept_timeout=5
    connect_timeout=1
    ascii_upload_enable=YES
    ascii_download_enable=YES
    

    5、创建宿主用户

    创建用户 ftpuser 指定 /vsftpd 目录:

    useradd -g root -M -d /vsftpd -s /sbin/nologin ftpuser
    

    设置用户 ftpuser 的密码:

    passwd ftpuser
    密码:
    12345678
    

    把 /vsftpd 的所有权给ftpuser.root:

    chown -R ftpuser.root /vsftpd
    

    建立虚拟用户文件:

    touch /etc/vsftpd/vuser_passwd

    编辑虚拟用户名单文件:

    第一行账号,第二行密码,注意:不能使用root做用户名,系统保留。

    vim  /etc/vsftpd/vuser_passwd
    

    编辑内容:

    ftp1
    12345678
    ftp2
    12345678
    

    6、生成虚拟用户数据文件

    db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
    chmod 600 /etc/vsftpd/vuser_passwd.db
    

    7、创建用户配置

    mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件
    cd /etc/vsftpd/vuser_conf   # 进入目录
    touch ftp1 ftp2
    

    每个文件(ftp1和ftp2写入如下内容,local_root=/vsftpd/ftp1#这里写入这个用户的实际存储路劲):

    vim ftp1
    内容:
    local_root=/vsftpd/ftp1
    write_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    
    vim ftp2
    内容:
    local_root=/vsftpd/ftp2
    write_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    

    8、创建用户目录

    mkdir -p /vsftpd/ftp1
    mkdir -p /vsftpd/ftp2
    

    修改权限:

    chown -R ftpuser.root /vsftpd/ftp1
    chown -R ftpuser.root /vsftpd/ftp2
    

    注:原来ftp安装完的默认目录/var/ftp可以废弃。

    9、服务启动

    systemctl restart vsftpd.service # 重启服务
    systemctl start vsftpd.service  # 启动服务
    systemctl status vsftpd.service  # 服务状态查看
    

    10、生成虚拟用户的PAM文件

    cd /etc/pam.d/
    备份vsftpd文件:
    cp -a vsftpd vsftpd.bak
    

    修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib):

    vim vsftpd

    内容:

    #%PAM-1.0
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
    #session  optional   pam_keyinit.so  force revoke
    #auth    required  pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
    #auth    required  pam_shells.so
    #auth    include   password-auth
    #account  include   password-auth
    #session  required   pam_loginuid.so
    #session  include   password-auth
    

    11、客户端调试

    1.首先每次更改配置需要重启vsftpd服务。

    2.上面每个配置文件中的内容最好是手动键入(曾经的我直接粘贴进去,cat就是没问题,但是粘贴进去就是不行)。

    3.客户端windows打开cmd到后台进行连接,网页和资源管理器里面都会有缓存也看不到报错。

    4.服务器tail -f /var/log/secure查看日志(也可以tail -f /var/log/messages,这个看不出什么,前者更精准)。

    查看日志:

    tail -f /var/log/secure

    5.客户端报错示例(坑了我好久,它说chroot没有读到/etc/vsftpd/chroot_list这个文件,所以我们新建这个文件就行,记得重启服务)。

    建立文件:

    touch /etc/vsftpd/chroot_list
    

    6.如果虚拟用户登录到自己的宿主目录后,不能上传文件的话,服务器端需要在宿主目录里面再新建一个文件夹,给这文件夹777权限,就可以了(直接把宿主目录设置777就会登录不了)。

    7.新增用户的话,需要在/etc/vsftpd/vsuser.passwd里面追加用户(删除就是删除用户),

    记得使用db_load重新生成vsuser.passwd文件即可,vuser_confi里面新建一个新建账户的权限文件,宿主目录记得新建存储文件。

    8.建议使用ftp工具和cmd验证。

    测试1:

    ftp 192.168.1.191
    输入:
    ftp1
    密码
    12345678
    ftp 192.168.1.191
    输入:
    ftp2
    密码
    12345678
    

    在ftp>下输入:

    user

    注:输入user可以重新输入用户名和密码。

    测试2:

    ftp://192.168.1.191/

    注:输入ftp1用户名,进入的是ftp1用户的目录(ftp1),输入ftp2用户名,进入的是ftp2用户的目录(ftp2)。

    12、修改端口号(测试的时候没有修改成2121,而是用默认的21端口)

    1.在/etc/vsftpd/vsftpd.conf文件中增加listen_port=21(这里默认是21)。

    2.在vim /etc/services文件中修改如下内容。

    ftp       21/tcp
    ftp       21/udp     fsp fspd
    

    注意:上面修改的只是链接端口号,既然更改了连接端口号,别忘记访问的时候修改端口。

    既然我们设置的是被动模式(服务器被动打开数据端口,只有在数据链接的时候才会使用,

    下面我们用ftp工具能成功连接,当打开某个文件夹的时候(请求数据的时候),才会使用该端口,

    但是我这里使用了iptables,之允许了2121通过我们设置的是10060到10090端口,具体如下)。

    设置防火墙:

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

    注:正常情况下使用默认21端口即可,考虑到安全,可以修改为其它端口。

    转载至:https://www.cnblogs.com/suixhxy/p/14916989.html

    很高兴各位朋友能欣赏作品,本文版权归作者和博客园共有,欢迎转载,请在文章页面明显位置给出原文出处,否则将追究法律责任。 原文链接: https://www.cnblogs.com/strugger-0316
  • 相关阅读:
    树莓派开机启动
    树莓派连接18b20测温度
    树莓派VNC
    树莓派python 控制GPIO
    树莓派笔记
    用nohup执行python程序时,print无法输出
    mysql 函数应用
    mysql 正则表达式判断是否数字
    mysql select into 不支持
    tushare
  • 原文地址:https://www.cnblogs.com/strugger-0316/p/15101625.html
Copyright © 2011-2022 走看看