搭建FTP服务器

FTP:文件传输协议,工作模式[客户端/服务器]

FTP:服务端口号:tcp/21,tcp20

  • 主动模式:

从服务器方主动发送链接tcp21

  • 被动模式:

从客户端发送链接请求tcp20

  • 访问方式

系统用户:anxing,stu1,…

虚拟用户:ftp

匿名用户:/bin/nologin

ftp服务安装

  • yum安装
原理:自动到软件仓库去下载相应的软件包进行自动安装
软件存放的位置(软件仓库):
网络源:http://... 或 https://
FTP源:ftp://.....
本地源:file://....
yum源文件存放位置(必须在这个位置):cd /etc/yum.repos.d/
系统默认源文件:
可以制作本地yum源文件:
可以制作阿里云网络免费源文件:
制作源文件时必须把:、etc/yum/repos.d/下的文件备份。默认是用系统的。必须删除
后制作。
yum安装命令:
1. rpm -qa | grep 软件名称 :查看软件是否已经安装
2. 列出仓库的所有软件包:yum list | grep vsftpd :能找到表示系统yum源可以用。
3. 安装软件:yum install 软件包名称
4. 卸载软件:yum remove 软件包名称
生成之前需要切换到指定用户
ssh-keygen -t rsa
第一个回车就好
第二个设置配对的密码:例123456
在.ssh文件下有连个文件:id_rsa存放私钥的文件
存放公钥的文件(id_rsa.pub)改为:authorized_keys
其他用户要登录:把id_rsa
如果要以student用户登录,公钥文件应该放在那里
5. 清除yum缓存:yum clean all
6. 生成yum缓存: yum makecache

1.使用默认yum源安装包

安装命令:#yum install vsftpd ftp

vsftpd:server服务端
ftp:client客户端

查看安装是否完成:rpm -qa | grep vsftpd

rpm -qa |grep ftp

2.启动vsftpd服务

#systemctl start vsftpd:启动服务

#systemctl status vsftpd:查看服务状态

#systemctl enable vsftpd:开机自启

配置防火墙:
关闭防火墙:systemctl stop firewalld
查看安全机制状态:getenforce
关闭安全机制:setenforce 0

3.访问ftp服务器

1).Linux系统中使用ftp命令访问
ftp 127.0.0.1
输入用户名称:匿名用户名称:ftp
		   不需要输入密码
		   默认访问目录:/var/ftp
2).在win客户端访问ftp服务器

ftp软件
浏览器:ftp://192.168.133.128
电脑文件搜索:ftp://192.168.133.128

3).匿名用户访问
  1. 修改配置文件:/etc/vsftpd/vsftpd.conf
  2. 找到:anonymous_eanble=YES :允许匿名用户访问
  3. local_eanble=YES :本地用户也可以访问
  4. anon…开头的:是针对匿名用户的设置
  5. 添加:no_anon_password=YES :表示匿名用户不输入密码
  6. 可以设置警告信息:ftpd_banner= welcome to our home!
  7. 修改配置文件使win等可以上传文件:
找到:anon_upload_eanble=YES :YES允许上传
找到:anon_mkdir_write_eanble=YES :YES可以新建,写入文件
添加:anon_other_write_enable=YES :yes具有删除权限。
重启服务:systemctl restart vsftpd
任然不能上传:文件pub没有权限写入。
要ftp服务和pub文件权限都有写入权限,才能写入。
添加权限:1. chmod777 pub :不推荐使用
2.setfacl -m u:ftp:rwx pub 推荐使用
如果还不能访问:查看setenforce 0 是否修改。
  1. umask值:
    决定了新建文件和文件夹的默认权限
umask值的表示方法:
文件夹:0777 - 0022 =0755权限
文件:0666- 0022 = 0644 权限
umask 0055 :修改umask
创建的文件的权限将变化。
  1. 默认访问的目录是:/var/ftp/
可以设置:vim /etc/vsftpd/vsftpd.conf
添加:anon_root=/var/public
不可以设置为其他用户的家目录。

4.配置系统用户访问

关闭匿名用户访问,只允许系统用户访问。

1.#vim /etc/vsftpd/vsftpd.conf
2.修改:
anonymous_enable=no:关闭匿名用户访问
local_eanble=YES:允许系统用户访问
local_umask=022:设置umask
3.重启服务:systemctl restart vsftpd
4.登录以后默认访问用户家目录,具有上传,新建,删除权限,还可以切换到系统的其他目录

设置只能访问自己的目录并具有所有权限,不允许切换到系统的其他目录

5.限制用户登录

1.黑名单文件(禁止):/etc/vsftpd/ftpusers 白名单(允许):/etc/vsftpd/user_list
2. vim /etc/vsftpd/vsftpd.conf
3. 启用userlist用户列表(系统默认设置):userlist_enable=YES
4. 只允许列表中的用户登录:userlist_deny=NO

6.vsftpd日志管理

#vim /etc/vsftpd.conf

查看: xferlog_enable=YES :开启ftp服务器记录上传下载的情况。
xferlog_std_format=YES :日志格式
xferlog_file=路径 :指定日志文件

7.配置虚拟用户访问ftp服务器

1. 创建虚拟用户:/bin/nologin
2. 创建用户列表(更系统用户没有任何关系)——> 生成用户列表数据
库
3. 认证文件 :建立对应关系
4. 权限:用户配置文件。

8.FTP服务器安全加固

FTP服务器存在的安全隐患及安全加固方法:

1.人们都知道他是21号端口,所以改端口是一种加固方法。

2.匿名用户可以访问FTP服务器,所以不可取。

3.系统用户可以访问,但是可以切换到其他目录,限制用户访问是一种加固方法。

4.根据ftp服务器不同的应用环境做出不同的加固方案

详细的加固方案见如下链接,希望对你有帮助。