在阿里云的公共镜像中,使用CentOS6.8安装FTP服务可谓是步步艰辛,原因不多说了,百度搜索在给我们提供方便的同时,也会带来不少的麻烦,接下来我们看看如何保持正确姿势搭建FTP服务

1.查看是否已经安装vsftpd

rpm -qa | grep vsftpd

2.如果没有安装,就安装并设置开机启动


yum -y install vsftpd
chkconfig vsftpd on

3.修改配置文件

vim /etc/vsftpd/vsftpd.conf


找到以下配置并修改为


chroot_local_user=YES
 chroot_list_enable=YES
 # (default follows)
 chroot_list_file=/etc/vsftpd/chroot_list


并在文件末尾添加

#You need to add content
 background=YES
 guest_enable=YES
 guest_username=ftpde
 user_config_dir=/etc/vsftpd/user_config
 max_clients=10
 max_per_ip=20
 pasv_enable=YES
 pasv_min_port=60000
 pasv_max_port=60010

4.创建用户

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码


useradd -d /ftp -g ftp -s /sbin/nologin ftpde

其中/ftp为我们设置的ftp虚拟目录,用于管理ftp服务操作文件

ftpde是我们创建的系统用户

5.设置ftp目录权限

创建ftp目录


mkdir -p /ftp

修改文件权限


chmod 700 /ftp


chown -R ftpde:ftpde /ftp

6.创建ftp用户

首先创建passwd.file文件


vim /etc/vsftpd/passwd.file

并在文件中添加以下内容

ftpdemo 
123456

生成用户数据库文件


db_load -T -t hash -f /etc/vsftpd/passwd.file /etc/vsftpd/ftpuser_passwd.db

创建用户信息配置文件夹


mkdir /etc/vsftpd/user_config

配置文件以FTP用户名为文件名称,每个FTP用户一个文件,例如ftedemo 


vim /etc/vsftpd/user_config/ftpdemo

并添加以下内容

local_root=/ftp
 write_enable=YES
 anon_umask=022
 anon_world_readable_only=NO
 anon_upload_enable=YES
 anon_mkdir_write_enable=YES
 anon_other_write_enable=YES



7.配置PAM认证

vim /etc/pam.d/vsftpd


修改为

auth       required     pam_userdb.so db=/etc/vsftpd/ftpuser_passwd
 account    required     pam_userdb.so db=/etc/vsftpd/ftpuser_passwd


8.修改防火墙配置

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -m state --state NEW -p TCP --dport 60000:60010 -j ACCEPT


保存并重启

service iptables save
service iptables restart



8.启动FTP服务

service vsftpd start



9.安装ftp客户端,并测试

yum -y install ftp



安装完成后,执行

ftp 127.0.0.1


此时如果连接成功,会提示输入用户名密码

ok,到这一步ftp服务基本已经搭建完成了,但是我想说此时,外网并不能访问此ftp服务,原因在于阿里云服务器的安全组策略默认是关闭除系统端口之外的一切端口的,所以我们需要登录到阿里云控制台,并在云服务器CES下添加安全组策略,添加完成后即可访问

如果此时外网还不能访问到ftp服务,那么请按一下操作来

vim /etc/selinux/config


查看SELINUX的值是否为disabled

修改后重启服务器

reboot



异常解决方案:

如果ftp出现异常提示,那么我们就按照提示去修改对应的参数配置文件,例如

vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable

此处是因为/etc/vsftpd/vsftpd.conf文件中的anonymous_enable值出现异常,解决方法

vim /etc/vsftpd/vsftpd.conf


并修改anonymous_enable的值,此处注意,有时我们检查发现此值并没有任何问题,但就是报错,此刻我们需要仔细检查是否是因为YES或NO后面有空格等一些特殊符号