centos7搭建FTP服务器

上篇介绍了在windows下搭建FTP站点服务器, 

附上链接: http://www.cnblogs.com/maxiaoyi-feihui/p/7416758.html

这一篇介绍在centos7下搭建FTP服务器。

一. 在centos7上搭建FTP服务器,首先需要安装ftp软件;

1.1 查看所有可获取安装的ftp软件;

[user@dell ~]$ sudo yum search ftp   

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirror.bit.edu.cn
=============================== N/S matched: ftp ===============================
ftp.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
lftp-scripts.noarch : Scripts for lftp
syslinux-tftpboot.x86_64 : SYSLINUX modules in /var/lib/tftpboot, available for
                         : network booting
tftp.x86_64 : The client for the Trivial File Transfer Protocol (TFTP)
tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
vsftpd.x86_64 : Very Secure Ftp Daemon
vsftpd-sysvinit.x86_64 : SysV initscript for vsftpd daemon
curl.x86_64 : A utility for getting files from remote servers (FTP, HTTP, and
            : others)
lftp.i686 : A sophisticated file transfer program
lftp.x86_64 : A sophisticated file transfer program
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols

  Name and summary matches only, use "search all" for everything.
1.2 查看系统是否安装vsftpd,如果没有,选择安装vsftpd。

[user@dell ~]$ rpm -q vsftpd    //查看vsftpd包是否安装

[user@dell ~]$ sudo yum install -y vsftpd  //开始安装vsftpd,安装过程简单,在此略过。

1.3 安装完成之后,启动vsftpd服务。

[user@dell ~]$ systemctl start vsftpd  //启动vsftpd服务;

[user@dell ~]$ service vsftpd status  //查看vsftpd服务状态,绿色(Running)表示正在运行,红色表示启动失败。

 Redirecting to /bin/systemctl status  vsftpd.service
vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-08-23 10:52:16 CST; 1h 35min ago
  Process: 10491 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 10492 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─10492 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
如此,表示已经成功运行。

1.4 设置vsftpd服务开机自启动。

[user@dell ~]$ sudo systemctl enable vsftpd

二. 配置vsftpd.conf

vsftpd的配置文件所在位置为 /etc/vsftpd/目录下;

首先对配置文件进行备份,以防文件损坏;

[user@dell ~]$ sudo cp   /etc/vsftpd/vsftpd.conf    /etc/vsftpd/vsftpd.conf.bak

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

[user@dell ~]$ sudo vi /etc/vsftpd/vsftpd.conf

修改以下环境变量:

anonymous_enable=NO

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_local_user=YES

idle_session_timeout=600

 #此外,需在文件末尾添加以下内容;

use_localtime=YES
listen_port=21
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
三. 建立用户

3.1 建立用户文件

[user@dell ~]$ sudo vi /etc/vsftpd/virtusers

#添加用户名与密码,第一行用户名,第二行密码,不能使用root为用户名;可以添加多个用户名,第二个用户名添加到第三行,依次类推。

user

password

3.2 生成用户数据文件

检查是否有db_load这个命令

安装之前先查询一下 

[user@dell ~]$ sudo yum  search compat-db

安装

[user@dell ~]$ sudo yum install -y  compat-db.x86_64 

生成db文件

[user@dell ~]$ sudo db_load -T -t hash-f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

 

设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

[user@dell ~]$ sudo chmod 400  /etc/vsftpd/virtusers.db     //如果只需做下载(400 只读即可),若要提供上传(600 读写权限)

3.3 修改/etc/pam.d/vsftpd文件

[user@dell ~]$ vi /etc/pam.d/vsftpd

#添加以下两行内容

auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

3.4 新建系统用户vsftpd

[root@dell ~]# useradd vsftpd -d/home/vsftpd -s /bin/false

[root@dell ~]# chown -R vsftpd:vsftpd /home/vsftpd

四. 用户个人配置与防火墙配置

4.1 建立虚拟用户人人配置文件

[user@dell ~]$  sudo mkdir   /etc/vsftpd/vconf

建立用户根目录,即FTP服务器的根目录;

[user@dell ~]$  sudo mkdir  -p /home/vsftpd/user/

建立虚拟用户文件,并添加配置如下

[user@dell ~]$  sudo vi /etc/vsftpd/vconf/user

#添加以下内容

local_root=/home/vsftpd/user/

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

4.2 防火墙设置

如果系统启用了防火墙和SELinux,那么还要做以下配置(默认情况下centos7是使用firewall和selinux的,不在使用iptables)

防火墙添加FTP服务:

[root@ldell ~]# firewall-cmd --permanent --zone=public --add-service=ftp

[root@ldell ~]# firewall-cmd --reload

设置SELinux:

[root@ldell ~]# getsebool -a | grep ftp

[root@ldell ~]# setsebool -P ftpd_full_access on

五. 检查与测试

5.1 重启vsftpd服务

[root@ldell ~]#  systemctl restart  vsftpd.service

查看vsftpd服务状态

[root@ldell ~]#  systemctl statusvsftpd.service

5.2 在根目录/home/vsftpd/user/下建立几个文件或者文件夹进行测试

[root@ldell ~]#  mkdir -r /home/vsftpd/user/{1..5}/{1..4}

5.3 在浏览器里面输入ftp://172.29.100.132测试

posted @ 2017-08-23 13:48  蚂小蚁  阅读(361)  评论(0编辑  收藏  举报