实验环境:CentOS Linux release 7.3.1611 (Core)
内核版本:Linux version 3.10.0-514.el7.x86_64
1.查看系统自带的vsftpd软件包版本
# yum list vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
Installed Packages
vsftpd.x86_64 3.0.2-21.el7 @base
2.开始安装
# yum install -y vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.njupt.edu.cn
Resolving Dependencies
–> Running transaction check
—> Package vsftpd.x86_64 0:3.0.2-21.el7 will be installed
–> Finished Dependency ResolutionDependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
vsftpd x86_64 3.0.2-21.el7 base 169 kTransaction Summary
================================================================================
Install 1 PackageTotal download size: 169 k
Installed size: 348 k
Downloading packages:
vsftpd-3.0.2-21.el7.x86_64.rpm | 169 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : vsftpd-3.0.2-21.el7.x86_64 1/1
Verifying : vsftpd-3.0.2-21.el7.x86_64 1/1Installed:
vsftpd.x86_64 0:3.0.2-21.el7Complete!
安装成功!
3.查看vsftpd配置文件目录
# ll /etc/vsftpd/
/etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件
/etc/vsftpd/ftpusers //黑名单,这个里面的用户不允许访问FTP服务器
/etc/vsftpd/user_list //白名单,允许访问FTP服务器的用户列表
/etc/vsftpd/vsftpd_conf_migrate.sh //vsftpd操作的一些变量和设置脚本
4.重命名原有vsftpd.conf配置文件
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
5.新建vsftpd.conf 并插入下面参数保存并退出
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //拒绝匿名用户
local_enable=YES //接受本地用户
write_enable=YES //可以上传(全局控制)
local_umask=022 //本地用户上传文件的umask
dirmessage_enable=YES //用户进入一个目次后,是否给出静态提示。默认YES,默认即可
xferlog_enable=YES //表明将记录的上传下载情况写在xferlog_file所指定的文件中
connect_from_port_20=YES //FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。
xferlog_std_format=YES //是否采用标准格式记录日志
chroot_local_user=YES //所有的用户均不能切换到其他目录。
chroot_list_enable=YES //所有的用户均不能切换到其他目录
chroot_list_file=/etc/vsftpd/chroot_list //凡是加入vsftpd.chroot_list中的用户都不受限止,即;可以浏览其主目录的上级目录.
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd //虚拟用户使用PAM认证方式。
userlist_enable=YES //是否启用vsftpd.user_list文件。
tcp_wrappers=YES //设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制
allow_writeable_chroot=YES //解决500 OOPS错误
注意:请去掉“//”和“后面的文字”否则启动ftp服务器可能会失败。
6.创建文件chroot_list文件
# touch /etc/vsftpd/chroot_list //默认留空
7.启动ftp服务
# systemctl enable vsftpd.service //设置开机自启动
# systemctl start vsftpd.service //启动ftp服务
# ss -antup | grep ftp //查看ftp服务端口
tcp LISTEN 0 32 :::21 :::* users:((“vsftpd”,pid=6354,fd=3))
显示21端口表示已经启动成功
8.新建ftp用户,其中/home/renwole是我自己的ftp目录,可以根据需要进行相应更改
# useradd -g ftp -d /home/renwole -s /sbin/nologin renwole
-g //用户组 指定用户所属的附加组
-d //目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-s /sbin/nologin //指定用户只能用于ftp登录,拒绝登录系统
9.设置ebadu用户密码为“renwoletest123”
# passwd renwole
输入两次相同密码回车设置成功
10.设置防火墙,否则无法连接ftp服务器,当然你也可以关闭防火墙。
# firewall-cmd –permanent –zone=public –add-service=ftp //将ftp服务器服务加入防火墙
# firewall-cmd –reload //不重启firewall防火墙使其重载生效
11.设置SELinux:
# getsebool -a | grep ftp
# setsebool -P ftpd_full_access on
vsftpd服务器已经配置安装完成,现在可以测试连接ftp服务器了。