阿里云学生机搭建FTP实战(日后完善)

机型 1核2G 40SSD 应用镜像 LNMP环境 基于CentOS 7.x

**老规矩 科普(不喜直接跳过) **【转】
我们知道计算机网络具有五层结构:
物理层
链路层
网络层
传输层
应用层
在每一层都有其特有的协议帮助数据进行通信交流。比如我们比较熟悉的HTTP协议(超文本传输协议)、DNS(域名解析服务)等协议就是应用层的协议。而我们在winscp看到的FTP、SFTP以及SCP也是应用层上的协议。我们可以简单了解一下这些协议:
SSH:
SecureShell是建立在传输层基础上的安全协议。
FTP(百度百科):
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

FTP的工作方式:
客户端向服务器的FTP端口(21、22)发送链接请求,服务器接收连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器,让服务器去链接客户端。于是客户端从20端口向客户端的端口发送连接请求,建立一条数据链路传送数据。
SFTP:
安全文件传输协议,可以为传输文件提供一种安全的加密方法。SFTP作为SSH的一部分,是一种传输文件到服务器的安全方式。
SCP:
Secure copy用于远程文件复制的,并且复制的过程是加密的,数据传输使用ssh,并且和使用和ssh相同的认证方法。
简而言之:
FTP 基于TCP来传输文件,明文传输用户信息和数据。
SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。

简单了解一下服务器:
一般来说,服务器通过网络对外提供服务。可以通过Intranet对内网提供服务,也可以通过Internet对外提供服务。服务器的最大特点,就是运算能力须非常强大,在短时间内就要完成所有运算工作,即使是一部简单的服务器系统,至少就要有两颗*处理器同时工作。

服务器上有三个环境:服务器环境、服务语言执行环境以及数据库环境。比如用PHP进行开发的网站,一般会考虑配置LNMP环境。LNMP是Linux系统下Nginx+MySQL+PHP这种网站服务器架构。其中,nginx处理静态资源响应,NGINX处理php进程(NGINX类似Apache),mysql负责数据存储,redis负责经常需要进行调用的临时性数据。
衡量服务器的性能一般有CPU数量和内存大小。服务器的CPU决定服务器的运算速率,内存决定了一个程序系统能够再一定时间内存放的变量和数据结构的吞吐。如果内存不够,会导致程序无法完成高效的内存数据读写。
服务器会遇到的问题:响应迟缓,我们就要考虑是不是用户量太多,导致服务器难以处理。调整服务器配置或者优化代码性能是一种方式,另一种最简单粗暴的方式就是“加机器”—横向拓展服务器。
在使用接触服务器时时常会听到一个词:均衡负载。那什么是均衡负载呢? 我们知道,无论如何,一台服务器的进程是有限的,我们不能够无限的把一台服务器的cpu增加到64个,或者内存增加到1T。因此,均衡负载技术的出现,通过将多台服务器组合成一组可以完成相同任务的服务器,当用户发出请求时,根据每台服务器的运行状态,让那些相对富余的服务器执行用户请求


本文来自 张镇鸿 的**** 博客 ,全文地址请点击:https://blog.****.net/Jolesen/article/details/77505840?utm_source=copy (谢谢大佬的总结 已粉 部分段落被我修改过)
科普完开始干活
1.部署镜像
阿里云学生机搭建FTP实战(日后完善)

阿里云学生机搭建FTP实战(日后完善)
2.接入root用户
A. 输入rpm -qa|grep vsftpd 查看是否安装了ftp,我安装的阿里云默认应用镜像是没有,如果有的话 输入rpm -e vsftpd 进行卸载
B. 然后安装 vsftpd : yum -y install vsftpd。(vim也要安)
C. 设置为开机自启:chkconfig vsftpd on。
3.vsftpd软件的使用
使用vsftpd软件,主要包括如下几个命令:
启动ftp:service vsftpd start
停止ftp:service vsftpd stop
重启ftp:service vsftpd restart

vsftpd的配置
ftp的配置文件主要有三个,在centos中位于/etc/vsftpd/目录下,分别是:
ftpusers 该文件用来指定那些用户不能访问ftp服务器。
user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
vsftpd.conf vsftpd的主配置文件
4.vim编辑 /etc/vsftpd/vsftpd.conf (i 进入编辑 Esc :wq退出编辑并保存)
阿里云学生机搭建FTP实战(日后完善)
阿里云学生机搭建FTP实战(日后完善)

用户登录控制:
anonymous_enable=YES,允许匿名用户登录。
no_anon_password=YES,匿名用户登录时不需要输入密码。
local_enable=YES,允许本地用户登录。
deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。
banned_email_file=/etc/vsftpd/banned_emails,保存电子邮件黑名单的目录(默认)

用户权限控制:
write_enable=YES,开启全局上传
local_umask=022, 设置本地用户默认文件掩码022# FTP上本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022
anon_upload_enable=YES,允许匿名用户上传,当然要在write_enable=YES的情况下。同时必须建立一个允许ftp用户读写的目录。
anon_mkdir_write_enable=YES,允许匿名用花创建目录
chown_uploads=YES,匿名用户上传的文件属主转换为别的用户,一般建议为root。
chown_username=whoever,改此处的whoever为要转换的属主,建议root
chroot_list_enable=YES,用一个列表来限定哪些用户只能在自己目录下活动。
chroot_list_enable=/etc/vsftpd/chroot_list,指定用户列表文件
nopriv_user=ftpsecure,指定一个安全账户,让ftp完全隔离和没有特权的账户
其他的建议不要配置。
allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置,解决报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

用户连接和超时设置:
idle_session_timeout=600,默认的超时时间
data_connection_timeout=120,设置默认数据连接的超时时间

4.服务器日志和欢迎信息
dirmessage_enable=YES,允许为配置目录显示信息
ftpd_banner=Welcome to blah FTP service. ftp的欢迎信息
xferlog_enable=YES 打开日志记录功能
xferlog_file=/var/log/xferlog 日志记录文件的位置