linux上搭建ftl服务 带你走少很多坑
如果不想看我长篇大论,请直接拉到末尾的快速搭建
- 安装vsftpd
- 修改配置文件
- 开放端口和云端安全组
- 测试
一、安装vsftpd
首先检查是否安装vsftpd:
rpm -qa |grep vsftpd
如果已经安装,会如下图所示,并可直接跳到第二步
如果没安装,就什么都没有,我们继续!!!
使用yum安装vsftpd:
yum install vsftpd -y
安装路径默认为/etc/vsftpd
二、修改配置
首先说明下,在网上很多资料都是使用adduser命令去添加新用户,二很多小白不知道adduser是什么,它和vsftpd无关。为了不增加大家的难度,本文就是用linux已有的用户去操作,例如root
介绍下文件结构,如下图:
ftpusers:黑名单,在此文件下默认已经有很多用户记录在里面。
user_list:很多人说这是白名单,但这里和配置文件息息相关。
vsftpd.conf:配置文件。
vsftpd_conf_migrate.sh:启动文件,我们不用理会。
进入正题:
1.把我们要用来登陆的用户从黑名单移除或屏蔽,例如:root
vim /etc/vsftpd/ftpusers
2.把我们要登录的用户添加到白名单,例如root
vim /etc/vsftpd/user_list
ps:必须与vsftpd.conf配置文件中userlist_enable=NO连用。
3.编辑 /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
找到对应的参数进行修改
ps:若没有找到对应参数,自行添加!!!
# 禁用匿名用户登陆
anonymous_enable=NO
# 禁止在根目录返回上传;注意:若为NO的话,登陆后可以访问ftp服务器的任意文件
chroot_local_user=YES
#当chroot_local_user=YES时,必须要添加allow_writeable_chroot=YES(文件内可能没有这参数,需手动添加)
allow_writeable_chroot=YES
#允许本地用户去登陆
local_enable=YES
# 设置FTP主目录,即共享的文件夹,路径可随意修改
local_root=/data/ftp
#使用白名单,当userlist_enable为true时,user_list文件就变为黑名单
userlist_enable=NO
#vsftpd有两种连接方式,分别监听于20和21端口,下方是使用21端口监听的方式。所以必须在iptables里开放20,6000-7000端口,云服务器还需要把这些端口添加到安全组
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
为用户分配主目录
# 创建目录:
mkdir -p /data/ftp/pub
# 设置访问权限:
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
三、开放端口和云端安全组
这里涉及到防火墙,超出本文范围,就简单带一下。
检查防火墙是否打开
service iptables status
下图为打开状态
修改iptables防火墙配置
vim /etc/sysconfig/iptables
添加参数
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6000:7000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
重启防火墙
service iptables restart
ps:若防火墙没打开,使用命令service iptables start打开,当然也可以不开,哈哈
开放安全组
如果云主机必须把21,6000-7000添加到安全组,怎么添加?自行百度。
ps:20不知道要不要开,没测试过,为了避免走坑,还是开着吧。
到这里,就可以启动我们的ftp服务了。
#打开服务
service vsftpd start
#查看服务状态
service vsftpd status
#重启服务,注意:每次修改配置文件都要重启服务才能有效果
service vsftpd restart
四、测试
测试方法有很多种,可以使用服务器本机,但前提是安装了ftp客户端。
1.使用ftp客户端
#检查是否安装
rpm -qa |grep ftp
#安装ftp
yum install ftp -y
安装成功后
ftp 服务器ip
成功的话,加下来会叫你输入用户名和密码。ftp命令如何使用自行百度
2.使用浏览器
在浏览器输入网址处填入ftp://服务器ip
成功的话,加下来会叫你输入用户名和密码
3.使用xftp
ps:百度搜索Xshell可以安装,有免费版
新建回话就可以连接。
快速搭建:
本来使用root作为例子进行用户登录,使用的分享文件路径为 /data/ftp
yum install vsftpd -y
vim /etc/vsftpd/ftpusers
屏蔽ftpusers里的root
vim /etc/vsftpd/user_list
添加root进去user_list
vim /etc/vsftpd/vsftpd.conf
添加或修改以下配置
[
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
local_enable=YES
local_root=/data/ftp
userlist_enable=NO
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
]
mkdir -p /data/ftp/pub
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
vim /etc/sysconfig/iptables
添加以下配置
[
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6000:7000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
]
service iptables restart
如果是云主机的话,添加21,6000-7000端口到安全组
大功告成,启动服务
service vsftpd start