CentOS 7 安装ftp 教程

admin 2020-03-06 PM 30℃ 0条

一、通过yum安装vsftpd

yum install -y vsftpd

二、修改vsftpd的配置文件

vi /etc/vsftpd/vsftpd.conf

完成的配置文件

#服务器独立运行
listen=YES
#设定不允许匿名访问
anonymous_enable=NO
#设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
local_enable=YES
#使用户不能离开主目录
chroot_list_enable=YES
chroot_local_user=YES
#设定支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES
#PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd
#设定启用虚拟用户功能
guest_enable=YES
#指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=ftp
#设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
user_config_dir=/etc/vsftpd/vuser_conf
#配置vsftpd日志(可选
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
#开启PASV模式
pasv_enable=YES
#最小端口号
pasv_min_port=30000
#最大端口号
pasv_max_port=40000
#connect_from_port_20=NO
pasv_promiscuous=YES
#当前的IP
pasv_address=192.168.16.148 
# 正常下载
allow_writeable_chroot=YES
listen_ipv6=NO
listen=YES

三、建立虚拟用户

建立虚拟用户和密码

创建并生成vsftpd数据库文件 vim /etc/vsftpd/vuser_passwd,内容如下:

第一行为FTP虚拟用户,登录用户名,第二行为密码,第三行为用户名,依次类推。

-w506

生成数据库文件命令
    db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
配置PAM验证文件

将配置文件vim /etc/pam.d/vsftpd 改为如下两行认证语句:(如果是32位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)

[root@bogon vsftpd]# vim /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

-w580

创建vsftpd映射本地用户
useradd -s /sbin/nologin ftp1

如果想使用自己独立的目录,可以在/etc/vsftpd/vuser_conf目录创建各自的配置文件,如给
ftp1 创建独立的配置文件:

local_root=/home/ftp/$USER
write_enable=YES
anon_umask=022
anon_world_readable_only=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES

-w637

要创建/home/ftp1

mkdir -p /home/ftp1 
chown ftp1:ftp1   /home/ftp2
chmod -R 777 /home/ftp2

如果启用vsftpd日志需手动建立日志文件
[root@server vsftpd]# touch /var/log/xferlog
[root@server vsftpd]# touch /var/log/vsftpd.log

重启,使用客户端登录FTP,测试即可。

启动pasv模式
pasv_enable=YES
port_enable=YES
pasv_min_port=30000
pasv_max_port=30999
pasv_address=192.168.16.148

重启ftp

systemctl restart vsftpd.service


修改配置文件如下:

  1. 不允许匿名访问
    anonymous_enable=NO
  2. 允许使用本地帐户进行FTP用户登录验证
    local_enable=YES
  3. 使用户不能离开主目录
    当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
  1. 解决 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 在末尾添加 allow_writeable_chroot=YES
    如果/etc/vsftpd/chroot_list不存在,则需要创建该文件

    vi /etc/vsftpd/chroot_list
    :wq直接保存并退出就行。
  2. 启动pasv模式

    pasv_enable=YES
    port_enable=YES
    pasv_min_port=30000
    pasv_max_port=30999
    pasv_address=192.168.16.148
  3. 解决 vsftpd 530 login incorrect 的N中情况

    检查/etc/pam.d/vsftpd

    vim /etc/pam.d/vsftpd 
    注释掉 
    #auth    required pam_shells.so
  4. 解决 227 Entering Passive Mode (0,0,0,0,31,84).

    listen_ipv6=NO
    listen=YES
  5. chroot_list添加用户名

    vim /etc/vsftpd/chroot_list

    最后 :wq保存修改,重启vsftpd

    systemctl restart vsftpd.service

三、新建FTP用户

  1. 创建用户

    useradd -d /var/ftp/public_root -g ftp -s /sbin/nologin ftpuser
  2. 修改该FTP用户密码

    passwd ftpuser  
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~