温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

FTP 文件共享服务

发布时间:2020-05-25 14:14:43 来源:网络 阅读:454 作者:何焘 栏目:建站服务器

FTP 文件共享服务 基于tcp协议  端口:tcp 21(三次握手建立连接);tcp 20(数据传输)

工作模式  应用层

根据客户端的角度划分的:

[主动模式]

客户端开启一个1024以上的动态端口如:(2000)

--》连接服务器21号端口进行三次握手建立连接,三次握手的过程中会有延迟,延迟过程中:

客户端再次开启一个比上一个端口大1的端口(2001),监听

--》客户端给服务器发送命令Port2001,告知服务器,客户端的数据传输端口的2001

--》服务器端开启20端口与客户端的2001号端口建立连接进行数据通信


[被动模式]

客户端开启一个动态端口(2000)

--》连接服务器21号端口进行三次握手建立连接,三次握手的过程中会有延迟,延迟过程中:

客户端再次开启一个比上一个端口大1的端口(2001),监听

--》客服端给服务器端发送pasv命令,告知服务器,客户端现在处于被动模式,等待服务器端主动连接客户端

--》服务器端给客户端发送Port3000命令,告知给客户端,服务器端的数据传输端口的3000

--》客户端拿着2001号端口与服务器端的3000号端口建立连接进行数据通信


实验准备

两台服务器linux系统 centos 7.1

关闭防火墙

systemctl stop firewalld 临时关闭 

systemctl disable firewalld 永久关闭

关闭selinux 

setenforce 0 临时关闭

sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config 永久关闭

yum -y install ftp    客户端安装FTP服务

yum -y install vsftpd  服务端安装vsftp服务 

启动服务

systemctl enable vsftpd  开启自动启动服务

systemctl restart vsftpd 重启服务

systemctl stop vsftpd   停止服务



主配置文件 /etc/vsftpd/vsftpd.conf


#12 开启匿名访问

#16 允许本地的实体账户登陆

#19 允许实体账户有写权限

#23 创建文件的权限644(实体用户)

#29 允许匿名用户上传(只能上传文件不能上传目录)

#33 匿名创建目录的权限

#37 记录访问开启

#40 开启日志记录功能

#43 开启20号端口数据传输

#48、49  改变上传文件的属主

#53 日志所在的路径及文件名

#57 日志记录时是否采用标准格式

#60 会话连接超时时间600s

#63 数据传输超时时间120s

#82 上传数据传输模式

#90 不允许匿名用户的邮箱地址作为其密码

#92 记录文件的邮箱地址

#100 实体账户只让其在默认登录的位置活动

#101 开启其列表功能

#103 列表的存放位置及路径

#114 拒绝监听(ipv4)

#123 ipv6监听,能帮助监听ipv4

#125 用户认证  映射认证列表

#126 只要在用户列表中的用户都不能登录ftp


实验一

在配置文件中的特殊设置(实体用户切换目录限制)

【不允许实体用户切换路径,只能在默认访问位置活动】

vim /etc/vsftpd/vsftpd.conf


100行 解注释(即将#号去掉) 开启实体用户切换目录功能

chroot_local_user = yes

手动添加

allow_writeable_chroot = yes 允许用户进行登陆


101行 解注释

chroot_list_enable = YES 开启用户列表功能,在该列表中的用户可以切换路径


103行 解注释

chroot_list_file = /etc/vsftpd/chroot_list 

指定用户列表所在路径及文件名,手动创建 

vim /etc/vsftpd/chroot_list 

加入到列表中的用户可以切换路径,列表外的用户不可以


重启服务验证



实验二

vim  etc/vsftpd/vsftpd.conf

在配置文件中特殊权限设置 (允许匿名用户使用权限)

【实现匿名用户上传、创建目录、删除等权限】

29行 解注释

anon_upload_enable = YES 开启匿名用户上传功能,只能上传文件


33行 解注释

anon_mkdir_write_enable = YES 创建目录权限


34行 解注释

anon_other_write_enable = YES 手动添加,开启匿名用户的其他写权限


重启服务验证


客户端验证

用户名:ftp

密码:任意


修改匿名用户默认登陆位置的安全权限(属主、属组)

chown -R ftp.ftp /var/ftp/pub


重启服务验证

客户端:可以上传、创建目录、删除等




实验三

用户限制配置文件 /etc/vsftpd

【限制实体系统用户的登陆】

用户列表文件:ftpusers、user_list


ftpusers:

只要在给列表中的用户都拒绝访问


user_list:

在主配置文件中设置

userlist_enable = yes/no

若该项值为YES -》 开启用户列表功能,在user_list中用户拒绝登录

若该项值为NO -》 user_list列表失效


userlist_enable = yes

若userlist_deny = YES 表示列表内用户不允许登陆,列表外用户只能命令行登陆

若userlist_deny = NO  只有在列表中用户可以登录



实验四

虚拟用户:w


思想:客户端需要通过账号和密码登录,但是该账户不是系统中的实体账号,而是一个虚拟账号

在服务器端创建一个实体账户,将该账户映射到多个虚拟账号上


1.新创建虚拟账号文本文件 /etc/vsftpd

vim vftpuser (奇数行写用户名,偶数行写密码)

snow

123

lisa

321

不能有多余的空行

保存退出


2.将文本文件制作数据库文件

命令:db_load -T -t hash -f /vftpuser  /etc/vsftpd/vftpuser.db

-T :将文本文件中内容导入到数据库文件中

-t :指定加密算法为hash

-f :指定文本文件,生成的库文件所在路径及文件名


3.配置验证文件  /etc/pam.d/vsftpd  

将原验证文件备份

cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam  /etc/pam.d/vsftpd 拷贝模板验证文件


vim /etc/pam.d/vsftpd

auth required pam_userdb.so db = /etc/vsftpd/vftpuser

account required pam_userdb.so db = /etc/vsftpd/vftpuser

执行数据库文件的位置及文件名,注意不需要加.db


4.创建实体账户,将其映射到多个虚拟账户

#useradd -d /var/ftp/vftp test  创建新账户test  并指定家目录路径

#chmod 777 /var/ftp/vftp


修改主配置文件 vim /etc/vsftpd/vsftpd.conf  

在最下面一行添加

guest_enable = yes 开启虚拟用户

guest_username = test 映射的实体账号



5.重启服务验证

[注]开启虚拟用户功能后,所有实体账户都不能登录

若要实体账户登录,需将实体用户加入到~/vftpuser中

systemctl status vsftpd -l 显示详细状态


实验五:


限制虚拟用户的权限

vim /etc/vsftpd/vsftpd.conf

【将所有的匿名功能关闭】

在最下一行添加 

user_config_dir = /etc/vsftpd/vftp


【设置所有虚拟用户的权限限制文件的路径】

#cd /etc/vsftpd/vftp

vim snow

anon_world_readable_only = yes 开启读权限

write_enable = yes 开启写权限

anon_upload_enable = yes 上传

anon_mkdir_write_enable = yes 创建目录

anon_other_write_enable = yes 其它写权限

保存退出,重启服务验证










向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI