在阿里云的公共镜像中,使用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后面有空格等一些特殊符号