文章目录
一、 FTP服务
FTP的定义
ftp定义:ftp:// ##文件传输协议 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一 FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端 其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源 在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上 由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议 默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息 但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关 如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定
同大多数Internet服务一样,FTP也是一个客户/服务器系统 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序 依照 FTP协议提供服务,进行文件传送的计算机就是FTP服务器 而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端 用户要连上FTP服务器,就要用到FTP客户端软件,通过lftp命令连接
二、配置ftp服务
步骤一:
打开server虚拟机,并且reset,保证一个纯净的实验环境
==步骤二:==给server配置网络
==步骤三:==给server主机改名
步骤四:
配置本地yum源
由于server主机是7.0系统所以需要使用7.0的镜像配置yum源
yum源配置成功。
步骤五:
vim /etc/sysconfig/selinux 关闭内核加强型防火墙,改SELINUX=disabled
步骤六:
reboot重启后输入,getenforce命令,发现是Disabled即可
步骤七:
给防火墙中加入ftp服务
####为什么使用ftp######
ftp在文件传输方面很优秀,企业中常用的是vsftpd(安全性高) http:// ftp:// yum search ftp 可以找到安装ftp服务的软件包
######ftp服务的基本信息#####
软件安装包 | vsftpd |
---|---|
默认发布目录 | var/ftp |
默认发布目录的子目录 | /var/ftp/pub/ |
协议接口 | 21/tcp |
服务i配置文件 | /etc/vsftpd/vsftpd.conf |
##########报错id的解析#####
500 | 文件系统权限过大 |
---|---|
530 | 用户认证失败 |
550 | 服务本身功能未开放 |
553 | 本地文件系统权限过小 |
########搭建ftp服务器,以及进行测试######
步骤一:
寻找安装ftp的安装包
步骤二:
yum install 安装vsftpd和lftp
步骤三:
设置开启vsftpd服务,以及开机启动
步骤四:
访问验证是否搭建成功
三、vsftpd服务配置参数
主机以什么样的身份配置ftp服务器,这些都需要在ftp服务器的客户端配置文件里面配置 在配置文件/etc/vsftpd/vsftpd.conf当中修改参数,每次修改后需要重启服务才能生效 systemctl restart vsftpd
1、匿名用户设定
匿名用户登陆限制
可以看到匿名用户可以访问ftp服务器
当在配置文件里改了参数后,重启服务
发现匿名用户不可以访问ftp服务器
匿名用户上传
发现不可以上传,报错550,然后编辑配置文件,开启功能
重启服务,再次上传
报错553,表示权力过小
然后chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub 因为匿名用户是以ftp用户的身份访问ftp服务器的,所以将ftp目录的所有组改成ftp以及赋予它775较大的权限,这样匿名用户才可以上传
发现已经可以上传了。
如果你将权限改成了777
匿名用户登陆的时候,访问ftp服务器会提示500权限过大,所以我们只给775的权限,chmod 775 /var/ftp/
匿名用户家目录修改
匿名用户默认的家目录在/var/ftp/下,现在想要更改它的默认家目录,在配置文件里写下
然后退出保存,
重启服务
在/westos下建立5个file,cd进入,ls查看存在
再次匿名登陆,ls查看,更改成功
匿名用户上传文件默认权限修改
匿名用户默认上传文件 600,在配置文件里修改,
重启服务
可以看出文件的权限已经更改,passwd权限644.
匿名用户建立目录
anon_mkdir_write_enable=YES|NO
匿名用户下载
NO表示匿名用户可以下载
重启服务
文件下载到桌面下了
下载目录,用mirror命令
匿名用户删除
anon_other_write_enable=YES|NO
重启服务
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
重启服务
可以看到用户id是1000,1000是student用户的id
最大上传速率
anon_max_rate=102400
我们先划一个1.5G的文件,然后在没有限制速度的情况下,上传速度非常快平均83.2M/s,然后更改完配置文件后重新启动服务,发现匿名用户上传的速度变成了设置的102400k左右。
最大连接数
max_clients=2
设置最大连接为2
第一个,第二个都可以登陆,第三个客户端就不行了。
2、本地用户设定
本地用户登陆限制
student用户可以登陆且访问
在配置文件中,修改
重启服务
本地用户就不可以登陆了。
本地用户写权限限制
编辑配置文件
重启服务
本地用户家目录修改
local_root=/yty
重启服务
先在student用户的家目录下创建file{1…3},再创建一个新的/yty目录当作修改的家目录,然后创建file{1…10}
家目录修改完成。
本地用户上传文件权限
local_umask=
重启服务
可见我们上传的/etc/group的权限是600
限制本地用户浏览/目录
chroot_local_user=YES
chmod u-w /home/student
用户被锁定在家目录中不能cd切换到/目录下
3、用户的黑白名单
本地用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
重启服务
建立两个新用户westos,lee,并给与密码
vim /etc/vsftpd/chroot_list 黑名单加入westos和student,表示westos和student不能登陆
测试:
student不能登陆
westos不能登陆
lee可以登陆
本地用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
重启服务
白名单加入westos和student,表示westos和student可以登陆,其他用户都不能登陆
student可以登陆
westos可以登陆
lee不能登陆
==限制本地用户登陆(永久)
vim /etc/vsftpd/ftpusers ##用户黑名单
cd /etc/vsftpd/ 然后 vim ftpusers,加入student用户
黑名单设置成功
用户临时黑名单
vim /etc/vsftpd/user_list
加入westos用户,表示westos用户不能访问ftp服务器
student用户和lee用户可以
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在文件中出现的用户才可以登陆ftp服务器
重启服务
可见在名单中的westos用户可以登陆
而不在白名单的lee和student用户就不可以登陆ftp服务器
四、ftp虚拟用户的设定
1.创建虚拟帐号身份
ftp虚拟用户的设定(创建虚拟帐号身份)
给ftp服务器创建虚拟帐号身份,这样更安全。 vim /etc/vsftpd/westosfile ##文件名称任意,创建一个虚拟帐号的名单,里面的帐号是不存在的
vim /etc/vsftpd/westosfile
文件名称任意
设定虚拟用户和登陆密码
db_load 加密命令 -T 转换 -t 建立 -f 指定文件 /etc/vsftpd/westosfile被加密文件 /etc/vsftpd/westosfile.db加密的文件
查看vsftpd.conf认证时用的是pam认证
在/etc/pam.d/下创建westos(
文件名称任意
)对应westosfile
account auth 帐号和密码 required 请求访问允许或拒绝 pam_userdb.so 验证程序 db=/etc/vsftpd/westosfile(.db) 在该文件里面验证
将pam_service_name的指向改为westos原本(vsftpd),使westos中的账户和密码生效,再加入guest_enable=YES 允许游客登陆
重启服务
然后分别用user1,user2,user3登陆均可以登陆ftp服务器
并且是已匿名用户的虚拟帐号,默认家目录在/var/ftp/
2、虚拟帐号身份指定
vim /etc/vsftpd/vsftpd.conf
重启服务
chmod u-w /home/lee 给虚拟用户去掉写权限
在lee用户家目录下创建file
lftp 172.25.254.115 -u user1 匿名用户登陆ftp服务器,可以看到家目录下的文件file,即以lee身份登陆
3、虚拟帐号家目录独立设定
虚拟帐号家目录独立设定
(使虚拟用户登陆进去不再使ftp用户的默认家目录)
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
vim /etc/vsftpd/vsftpd.conf
重启服务
验证,此时可以看到此时user1的家目录是他自己家目录
4、虚拟帐号独立配置
虚拟帐号独立配置(想让哪个用户干什么就干什么)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
重启服务
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/user1 ==在此文件中设定配置文件的参数,此文件的优先级最高。
此文件设定的参数,此文件的优先级最高
允许user1 匿名上传
上传成功。
再试一下user2可不可以上传
发现也可以,是因为之前的anon_upload_enable=YES没有变成NO
vim /etc/vsftpd/vsftpd/conf
重启服务
发现user2不能上传文件了
再用user1登陆,发现user1仍可以上传文件
配置成功。