欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

搭建FTP文件传输服务

程序员文章站 2022-07-13 21:42:49
...

一、FTP文件传输服务
1、FTP连接的端口号
21:传输控制使用,进行身份验证授权访问
20:传输数据使用
2、FTP连接模式
主动模式:服务器端通过20号端口对客户端传输数据,POST指令表示主动连接,默认工作在主动模式
被动模式:服务器端开放指定范围的端口号等待客户端建立数据连接,PASV指令表示被动模式
3、FTP传输模式
文本模式:文本模式不支持传输流媒体数据,支持文本文件
二进制模式:使用广泛支持传输文本文件流媒体数据
4、FTP身份验证的方式
匿名:使用ftp用户或者anonymous账户验证不需要密码
本地身份验证:需要使用账户密码进行身份验证后访问数据
虚拟账户验证:将多个用户映射到一个系统账户进行验证
二、安装配置FTP服务
1、环境搭建,关闭防火墙及selinux

[aaa@qq.com ~]# systemctl stop firewalld	\\关闭防火墙
[aaa@qq.com ~]# setenforce 0	\\临时关闭selinux

2、编辑本地yum源,挂载系统光盘

[aaa@qq.com ~]# cd /etc/yum.repos.d/
[aaa@qq.com yum.repos.d]# vim local.repo
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0
[aaa@qq.com ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载

3、安装服务器端及客户端

[aaa@qq.com ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 	\\安装服务器端
[aaa@qq.com ~]# rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm 	\\安装客户端
[aaa@qq.com ~]# rpm -qa | grep ftp	\\查看已安装程序
vsftpd-3.0.2-22.el7.x86_64
ftp-0.17-67.el7.x86_64

4、配置匿名访问FTP(只允许下载)
1)创建匿名访问FTP根目录

[aaa@qq.com ~]# mkdir -p /var/ftp/soft

2)修改FTP主配置文件支持匿名访问

[aaa@qq.com ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak	\\备份主配置文件
[aaa@qq.com ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES	#开启匿名ftp访问
anon_root=/var/ftp/soft	#更改ftp数据目录位置,默认在/var/ftp/pub

3)录入测试数据,开启服务设置开机自启,客户端访问验证

[aaa@qq.com ~]# echo "hello word" >/var/ftp/soft/cs.txt
[aaa@qq.com ~]# systemctl start vsftpd
[aaa@qq.com ~]# systemctl enable vsftpd

客户端访问,(注:确保网络连通),可以下载查看数据不可以上传数据
搭建FTP文件传输服务
搭建FTP文件传输服务
5、配置本地身份验证ftp(允许下载和上传)
1)修改FTP主配置文件,支持本地身份验证

[aaa@qq.com ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES	#开启本地身份验证
local_root=/var/ftp/local	#本地身份验证ftp根目录
write_enable=YES	#开启写入权限
allow_writeable_chroot=YES	#允许上传数据
local_umask=022	#上传文件目录反码

2)创建目录,添加权限,录入测试文件

[aaa@qq.com ~]# mkdir /var/ftp/local
[aaa@qq.com ~]# echo "local" >/var/ftp/local/bd.txt
[aaa@qq.com ~]# chmod 777 /var/ftp/local/

3)创建本地用户,客户端登录下载上传文件

[aaa@qq.com ~]# useradd tom
[aaa@qq.com ~]# passwd tom

搭建FTP文件传输服务
搭建FTP文件传输服务
6、配置虚拟账户FTP(默认ftp访问目录在本地身份验证ftp目录)
1)创建虚拟账户文件存储账户名和密码

[aaa@qq.com ~]# vim /etc/vsftpd/vuser.list	#奇数行账户偶数行密码
aaa
aaa@qq.com
bbb
aaa@qq.com
ccc
aaa@qq.com

2)将存储虚拟账户名和密码文件转换成数据库

[aaa@qq.com ~]# db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db

3)创建pam文件加载虚拟账户数据库

[aaa@qq.com ~]# vim /etc/pam.d/vsftpd.vu
#%PAM-1.0   
auth    required   pam_userdb.so   db=/etc/vsftpd/vuser
account required   pam_userdb.so   db=/etc/vsftpd/vuser

4)创建系统账户指定ftp根目录位置

[aaa@qq.com ~]# useradd -d /ftproot -s /sbin/nologin virtual

5)修改ftp主配置文件支持虚拟账户

[aaa@qq.com ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES	#开启虚拟账户功能
guest_username=virtual	#系统账户映射虚拟账户
user_config_dir=/etc/vsftpd/vsftpd_dir	#存储虚拟账户权限目录
pam_service_name=vsftpd.vu	#开启pam验证

6)配置虚拟账户访问权限,创建aaa用户只读权限,创建aaa权限文件

[aaa@qq.com ~]# mkdir /etc/vsftpd/vsftpd_dir	#创建目录
[aaa@qq.com ~]# touch /etc/vsftpd/vsftpd_dir/aaa	#创建aaa权限文件
[aaa@qq.com ~]# systemctl restart vsftpd

客户端访问只可以下载不允许上传
搭建FTP文件传输服务
搭建FTP文件传输服务
7)配置bbb用户允许下载和上传权限

[aaa@qq.com ~]# touch /etc/vsftpd/vsftpd_dir/bbb
[aaa@qq.com ~]# vim /etc/vsftpd/vsftpd_dir/bbb
anon_upload_enable=YES
[aaa@qq.com ~]# systemctl restart vsftpd

客户端访问允许下载和上传
搭建FTP文件传输服务
搭建FTP文件传输服务
8)配置ccc完全控制权限

[aaa@qq.com ~]# touch /etc/vsftpd/vsftpd_dir/ccc
[aaa@qq.com ~]# vim /etc/vsftpd/vsftpd_dir/ccc
anon_upload_enable=YES	#允许上传数据
anon_mkdir_write_enable=YES	#允许创建目录或者文件
anon_other_write_enable=YES	#允许删除或者覆盖文件或目录
[aaa@qq.com ~]# systemctl restart vsftpd

客户端访问,完全控制
搭建FTP文件传输服务
搭建FTP文件传输服务

相关标签: linux服务