FTP文件共享服务-创新互联

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

崇州ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

工作模式  应用层

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

[主动模式]

客户端开启一个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 其它写权限

保存退出,重启服务验证

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:FTP文件共享服务-创新互联
网页网址:http://azwzsj.com/article/ccpohp.html