搭建 ftp 服务

Posted by chuwei on October 17, 2018
  1. 添加虚拟用户口令文件
    1
    
    vi /etc/vsftpd/vftpuser.txt
    

    添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
    bobyuan #用户名
    123456 #密码
    markwang #用户名
    123456 #密码

  2. 生成虚拟用户口令认证文件 将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。 首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。
    1
    2
    
    rpm –qa |grep db4-utils
    rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm
    

    下面使用db_load命令生成虚拟用户口令认证文件。

    1
    
    db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
    
  3. 编辑vsftpd的PAM认证文件 在/etc/pam.d目录下,
    1
    
    vi /etc/pam.d/vsftpd
    

    将里面其他的都注释掉,添加下面这两行:

    1
    2
    
    auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
    account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
    
  4. 建立本地映射用户并设置宿主目录权限
    所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
    1
    2
    
    useradd –d /home/vftpsite –s /sbin/nologin vftpuser
    chmod 700 /home/vftpsite
    
  5. 配置vsftpd.conf(设置虚拟用户配置项)
    1
    
    vi /etc/vsftpd/vsftpd.conf
    
    1
    2
    3
    
    guest_enable=YES #开启虚拟用户
    guest_username=vftpuser #FTP虚拟用户对应的系统用户
    pam_service_name=vsftpd #PAM认证文件
    
  6. 重启vsftpd服务
    1
    
    service vsftpd restart
    
  7. 测试虚拟用户登录FTP
    1
    2
    3
    4
    5
    6
    7
    
    C:/User/Administrator>ftp 192.168.120.240
    连接到192.168.120.240。
    220 Welcome to BOB FTP server
    用户(192.168.120.240(none)):markwang
    331 Please specify the password.
    密码:
    230 Login successful.
    

    Q&A
    在设置好ftp后使用xftp软件连接时可以连上但是提示如下,无法显示远程文件夹
    Image text 问题原因
    由于ftp连接模式port模式和pasv模式。设置ftp 链接模式为port (主动模式) ,ftp客户端一般默认使用的pasv(被动模式) 。如果不修改模式,用户链接服务器后,目录一直不能显示。所以要修改为主动模式。