FTP链接及传输模式linux
控制链接:TCP 21,用于发送FTP命令信息数据库
数据链接:TCP 20,用于上传、下载数据安全
数据链接的创建类型:服务器
主动模式:服务端从20端口主动向客户端发起链接ide
被动模式:服务端在指定范围内某个端口被动等待客户端链接工具
环境准备:(同网段两台虚拟机、一台客户机、一台服务器)测试
注意:iptables和Selinux对服务的影响:ui
两台虚拟机IP:加密
服务器搭建:spa
㈠、匿名用户操做:
匿名用户登陆实验:(实现匿名用户上传、下载、建立,删除、目录、文件)
服务端安装软件(vsftpd)
客户端须要安装FTP软件
服务端修改配置文件(/etc/vsftpd/vsftpd.conf)
客户端登陆:
此时客户端登陆后上传文件显示的仍是失败:
这时,咱们先查看一下,FTP服务默认开放目录的权限:
发现,目录并无权限支持用户上传,这时咱们更改目录的权限(更改目录拥有者为FTP)
这时,重启服务后,再登陆就能够上传了
上传:
下载:
建立目录:
删除:
㈡、本地用户操做实验:
注意:iptables和Selinux对实验的影响
服务器端:
安装软件(vsftpd)
修改配置文件:
建立登陆用户:
启动服务客户端验证:
客户端:
须要安装ftp工具(ftp)
测试上传、下载:
因为此时虽然是用户登陆,可是用能够任意切换到某个目录下,查看相应文件,这对系统的安全存在很大的隐患,咱们须要采起措施来限制用户来禁止离开本身的家目录:
这时咱们要引入chroot机制,修改服务器端配置文件:
注意:将配置文件中此三项所有开启以后:效果是:
在/etc/vsftpd/建立chroot_list文件,在此文件中添加的用户将容许离开本身的家目录。
此时咱们系统中有三个,测试用户:
在chroot_list文件中添加cwy用户,容许cwy用户离开本身的家目录,其余用户则禁止:
客户端测试:
发现,chroot_list文件中添加的cwy用户能够离开本身的家目录,未被添加进去的用户zhangsan则被禁止离开。
此时在服务器端修改第二种状况:
开启后面两个,获得的效果是:添加的用户将被禁止离开家目录,未被添加进去的用户,则能够离开
客户端验证:
为了加强ftp服务器的安全性,这里能够禁止特定的恶意用户登录:
这里分为两种状况:userlist_enable=YES&&userlist_deny=YES
userlist_enable=YES&&userlist_deny=NO
当userlist_enable=YES&&userlist_deny=YES时:
(/etc/vsftpd/user_list文件中的用户将被禁止登录)
客户端验证:
当userlist_enable=YES&&userlist_deny=NO时:
(/etc/vsftpd/user_list文件中外的用户将被禁止登录)
客户端验证:
注意:出如今/etc/vsftpd/ftpusers文件中的用户将被所有禁止登陆,无论userlist相关文件作什么设置,ftpusers权限高于其余!
㈢、虚拟用户登陆实验:
建立用户文件:
在/etc/vsftpd/目录下建立virtual.list
生成用户数据库文件:
进入/etc/pam.d/目录下,建立pam认证模块配置:
建立虚拟映射用户:
修改配置文件,开启虚拟用户模块:
建立vsftpd_dir目录,并为不一样用户,设置不一样权限:
u1用户能够上传
u2用户能够建立目录
u3用户能够给文件更名
客户端测试:
注意:为用户所设置的权限,配置文件中必需要添加,与之对应,不然不生效!
Openssl+vsftpd加密验证方式:
因为ftp在传输过程当中使用密码明文传输方式,这样用户的密码、帐户等信息都暴露在互联网上,极大地加强了服务器的风险:
例如:当用户在登陆过程当中:
此时密码和帐户信息是能够被破解的:
这时须要对用户登陆过程过程加密:
安装软件
检查vsftpd是否支持ssl
生成加密信息:
把证书存放到特定目录:
修改配置文件/etc/vsftpd/vsftpd.conf
客户端验证: