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测试