阿里云ECS的CentOS7下搭建FTP服务器

 

转载http://www.javashuo.com/article/p-xdlpzhwn-co.htmllinux

在网上看了一些别人的笔记,不少不适合新手看,结果各类问题,不是代码错误,就是省略了一些步骤。最后本身整了几天才把经常使用的功能整理完,包括使用虚拟用户来分配不一样用户的权限。不过仍是要感谢前人的笔记。vim

目录安全

准备服务器

安装vsftpd服务器网络

建立系统用户tcp

修改配置文件(重点)post

/etc/vsftpd/vsftpd.conf  核心配置文件阿里云

vim /etc/vsftpd/user_list 白名单spa

vim /etc/vsftpd/chroot_list无限制名单.net

建立/添加/删除虚拟用户

链接FTP服务器

Xftp或 FlashFXP链接FTP

xftp 提示没法显示远程文件夹:

用户身份验证失败:

若是须要截图部分的代码,请到这里下载。https://download.csdn.net/download/jiance520/10894330

vsftpd.conf部分经常使用参数说明:https://mp.csdn.net/postedit/85723550。


准备

使用环境是阿里云ECS服务器,系统CentOS7

全部操做是在关闭防火墙的状况下演示,若是你的服务器很重要,请不要关闭。

systemctl stop firewalld

刷新防火墙:iptables -F。

阿里云ECS开放相关端口。54301:54305端口你本身定义。用于pasv被动模式的数据传输。这是不少人容易忽略的步聚

若是服务器不在阿里云,如在本机,请执行如下操做开放端口。

A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 54301:54305 -j ACCEPT

检查SElinux状态并关闭,SElinux是 Linux 的一个安全子系统。

getsebool -a|grep ftp

若是没有关闭,  把 SELINUX=SeLinux 改成SELINUX=disable。

vim /etc/sysconfig/selinux

安装vsftpd服务器

检查是否已经安装vsftpd

rpm -qa| grep vsftpd

若是没有安装,执行yum安装

yum -y install vsftpd

启动vsftpd

systemctl start vsftpd

查看vsftpd服务的状态

systemctl status vsftpd

设置vsftpd服务开机自启

systemctl enable vsftpd

建立系统用户

useradd ftpuser3

passwd ftpuser3指定密码123456。密码你本身写。

passwd ftpuser3

给建立的用户文件夹受权,默认是/home/ftpuser3

chmod 777 -R /home/ftpuser3

若是要修改主目录,把/home/ftpuser3改为你本身指定的目录

usermod -d /home/ftpuser3

修改配置文件(重点)

主要配置文件:

 /etc/vsftpd/vsftpd.conf      核心配置文件

 /etc/vsftpd/user_list 白名单,里面存放容许登录ftp的帐号,一行一个帐号名,若是不想让某个帐号登录ftp,就别填那个帐号进来。

 /etc/vsftpd/ftpusers 黑名单,和列表,user_list差很少,能够忽略。

 /etc/vsftpd/chroot_list无限制名单:指定其中的用户容许登和访问主目录和上级目录(前提是chroot_list_enable=NO)。                                  反过来,不在这里面的用户只能访问本身的主目录。

      /etc/pam.d/vsftpd     PAM接口配置文件

      /var/ftp              匿名用户的工做目录

/etc/vsftpd/vsftpd.conf  核心配置文件

全部配置文件的修改,请自行备份,备份:cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

修改配置文件,并:wq保存退出。

vim /etc/vsftpd/vsftpd.conf

如下为我修改后的内容,如须要匿名访问,请改anonymous_enable=YES。

pasv_address=xxx.xxx.xxx.xxx填写你本身的ECS虚拟主机IP。

vim /etc/vsftpd/user_list 白名单

增长用户,由你本身决定是否增长匿名用户,若是启用了user_list,必须添加建立的用户ftpuser3

ftp
anonymous
ftpuser3

vim /etc/vsftpd/chroot_list无限制名单

增长如下用户

ftpuser3

修改配置之后,必须重启ftp。

systemctl restart vsftpd

若是启动失败,提示错误:Job for vsftpd.service failed because the control process exited with error,Failed to start Vsftpd ftp daemon,vsftpd,99%是你的vsftpd.conf中代码错误,乱码等。

还有一些其它缘由,中文乱码^M,格式问题。

建立/添加/删除虚拟用户

虚拟用户对系统更安全。能够针对不一样的用户指定不一样的工做目录。

首先查看compat-db

rpm -qa| grep compat-db

若是没有,执行安装

yum install -y  compat-db

修改用户配置文件

vim /etc/vsftpd/ftpuser.conf

添加,第一行用户名,第二行密码

ftpuser3
123456

根据虚拟用户配置文件ftpuser.conf生成ftpuser.db文件

db_load -T -t hash -f /etc/vsftpd/ftpuser.conf /etc/vsftpd/ftpuser.db

修改pam

vim /etc/pam.d/vsftpd

建立/配置虚拟用户权限配置文件,指定虚拟用户操做的目录,以及所拥有的操做权限。

建立用户配置文件目录

mkdir /etc/vsftpd/virconf

新建并编辑用户ftpuser3配置文件

vim /etc/vsftpd/virconf/ftpuser3

根据本身的状况,指定虚拟用户ftpuser3访问目录,并拥有如下指定的权限。

咱们能够重复建立多个不一样的虚拟用户,共用一个宿主用户ftpuser3

最后别忘记建立白名单用户

vim /etc/vsftpd/chroot_list

以前咱们在在user_list中添加了用户ftpuser3,若是咱们须要用户拥有更大的访问权限,请在chroot_list中也添加ftpuser3。

链接FTP服务器

Xftp或 FlashFXP链接FTP

最后就是咱们能够在Xftp或 FlashFXP上配置本身的host:xxx.xxx.xxx.xxx主机IP地址和端口21,使用ftp方式访问FTP服务器。远程文件夹目录填写你的主目录,如:/home/ftpuser3

也能够在个人电脑上添加一个网络位置。来访问FTP。还能够在IDEA上配置。

xftp 提示没法显示远程文件夹:

xftp远程文件夹目录填写跟local_root=/home/ftpuser3不一致,没有访问权限。

若是配置没有错误,有该提示,并不影响操做,若是要去掉,能够在chroot_list中也添加ftpuser3,可是会增长用户的访问权限。

用户身份验证失败:

没有生成db数据文件。或数据文件ftpuser.db中没有该账户。

用户名或密码错误。

其主目录文件夹没有建立。或指定的主目录不一致。

防火墙拦截,没有开放端口。

没有使用pasv被动模式。

文件夹没有受权chmod 777 -R

账户没有加入user_list

allow_writeable_chroot=YES

没有重起更新修改。

必定要记得,修改虚拟用户密码或新增虚拟用户后要再次执行生成数据文件ftpuser.db,修改vsftpd.conf要记得重起。或者reboot重启系统,关闭防火墙。

db_load -T -t hash -f /etc/vsftpd/ftpuser.conf /etc/vsftpd/ftpuser.db

systemctl restart vsftpd

若是须要截图部分的代码,请到这里下载https://download.csdn.net/download/jiance520/10894330

vsftpd.conf部分经常使用参数说明https://mp.csdn.net/postedit/85723550