搭建FTP文件传输服务
一、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
客户端访问,(注:确保网络连通),可以下载查看数据不可以上传数据
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
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
客户端访问只可以下载不允许上传
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
客户端访问允许下载和上传
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
客户端访问,完全控制
上一篇: 容器相关术语介绍
下一篇: LVS集群架构NAT模型机制。