一、前言
企业中linux搭建ftp服务器还是很实用的,所以本文针对centos7和centos6搭建ftp服务器教程做个整理
二、搭建步骤
1、安装vsftpd软件
通过rpm -qa | grep vsftpd查看是否安装vsftp软件
如果没有安装则通过yum源进行安装
yum install -y vsftpd
2、启动vsftpd服务
systemctl start vsftpd.service
默认启动后即支持用户宿主目录访问及匿名访问
校验服务是否正常启动
(1)、查看进程是否启动
ps -ef | grep vsftpd
#(2)、查看vsftp的默认端口是否已经处于监听状态
netstat -nltp | grep 21
(3)、关闭防火墙
systemctl stop firewalld
(4)、其它相关命令
重启ftp服务器:systemctl restart vsftpd.service
设置开机启动: chkconfig vsftpd on
(5)、匿名用户和宿主用户
使用匿名用户的作用一般是提供一些共享的文件,匿名FTP用户名:ftp 或anonymous(ftp伪用户宿主目录) 位置在 /var/ftp 下
3、使用浏览器访问ftp服务器
在浏览器的地址栏输入ftp://192.168.0.104
也可以使用cmd窗口登录
ftp 192.168.0.102
相关命令
ls -查看目录下文件
cd -切换目录
lcd -切换下载目录(客户端) 不指定默认下载到登录目录
get - 下载单个文件
mget - 下载多个文件
put - 上传单个文件
mput - 上传多个文件
prompt -关闭交互模式(批量上传下载的时候用)
bye -退出
ftp服务器内的操作
open - 连接服务器
user - 输入FTP服务器用户名和密码
4、vsftpd.conf配置文件说明
进入到ftp的根目录,默认是/etc/vsftpd/文件夹中进行配置
/etc/vsftpd/vsftpd.conf:vsftpd的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
/etc/vsftpd/chroot_list:指定允许使用vsftpd 的用户列表文件。 控制名单下的目录能不能离开ftp根目录
(1)、匿名用户的相关配置
anonymous_enable=NO # YES表示允许匿名用户访问 NO表示不允许(匿名用户只有读权限,没有写权限)
anon_max_rate=10000 #设置匿名用户最大传输速率为 10kb/s
(2)、本地用户的相关配置
local_enable=YES # YES表示允许本地用户登录 NO表示不允许
write_enable=YES # 是否允许写入 YES:允许 NO:不允许
local_umask=022 # 本地用户上传文件的umask
local_max_rate=200000 # 本地用户最大传输速率为200kb/s
注意:若启用SELinux允许用户上传文件到宿主目录,执行命令:
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
关闭SELinux, 编辑/etc/selinux/config
(3)、日志文件的相关配置
xferlog_enable=YES #开启日志
xferlog_std_format=YES #标准格式
xferlog_file=/var/log/xferlog #ftp日志目录 (这3个选项是用来激活上传和下载的日志)
ftpd_banner=Welcome to blah FTP service. #设置欢迎信息
(4)、用户访问控制
A:限制指定用户不能访问,而其它用户可以访问
userlist_enable=YES
userlist_deny=YES #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_file=/etc/vsftpd/vsftpd.user_list #白名单
B:限制指定的用户可以访问,而其它用户不可以访问
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/vsftpd.user_list
userlist_file文件的设置(每个用户一行即可)
[root@localhost vsftpd]# cat vsftpd.user_list
vsftp
dirmessage_enable=YES #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
(5)、设置chroot
chroot:指指ftp用户把宿主目录当作根目录来访问
设置指定的用户不执行chroot
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES #若为NO,则记录在chroot_list_file所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里YES.
chroot_list_file=/etc/vsftpd/chroot_list #设置为YES则下面的控制有效
(6)、其它设置选项
idle_session_timeout=600 #用户会话空闲10分钟后被挂断
max_clients=50 #服务器的总的并发连接数为50
max_per_ip=3 #每个客户机的最大连接数为3
listen_port=10011 #指定非标准端口