FTP(FileTransferProtocol,文件传输合同)
一种用于在计算机网路中传输文件的标准合同。它容许用户通过顾客端程序与远程服务器进行文件交换,支持文件的上传、下载、删除、重命名等操作。FTP服务常用于将网站文件上传到服务器linux 创建ftp用户,或则在公司内部网路中共享大文件。
FTP工作原理
FTP基于顾客端-服务器模型,工作时使用两个独立的联接:控制联接和数据联接。
控制联接(CommandChannel):数据联接(DataChannel):
FTP的工作模式
主动模式(PORT模式):被动模式(PASV模式):
FTP的主要特征
单向传输:命令和响应合同:支持匿名访问:支持大文件传输:安全性问题:
FTP命令和响应
一些常用的FTP命令包括:
FTP响应是三位数字代码,表示操作的结果,比如:
FTP顾客端
常见的FTP顾客端程序包括:
FileZilla:开源的FTP顾客端,支持FTP、FTPS和SFTP。WinSCP:Windows平台的FTP顾客端,支持多种合同。Cyberduck:支持FTP、SFTP、WebDAV等合同的跨平台顾客端。
安全性与FTP的扩充
为了提升FTP的安全性,不仅FTPS和SFTP外,还有其他一些提高安全性的合同和扩充:
FTPS:FTPSecure,基于SSL/TLS加密传输。SFTP:SSHFileTransferProtocol,基于SSH合同加密传输,一般与SSH一齐使用。FTPoverTLS/SSL:TLS(传输层安全合同)和SSL(安全套接字层)提供了加密的通道,保护FTP数据免受监听。
/etc/serveice下记录了所有端口服务信息
第一部份:基础五步
1,挂载光碟,并写镜像源便捷装包
Linux编撰本地库房
2,找寻我们须要的软件包
yumsearchftp
3,安装软件包
yuminstall-yvsftpd
4,关掉selinux
vim/etc/selinux/config
修改配置文件以后再重启centOS-7,再查看setenforce0
5,关掉防火墙systemctlstopfirewalld.service
实验一,匿名传输
6,查询配置文件路径rpm-qcvstfpd
7,更改配置文件vim/etc/vsftpd/vsftpd.conf
分别更改12/16/19/23/29/33/37行为YES
8,之后再重启FTP服务systemctlrestartvsftpd
9,通过windows主机访问ftp服务器验证实验疗效
发觉只有有限权限,难以新建文件夹或目录
这是由于linux中这个目录本身权限的问题
匿名访问的Windows用户相对于Linux是其他人other,只有读和执行权限r-x。这么就须要使用更安全的方式在linux前面给目录加权限
chmodo+w/var/ftp/pub
这个时侯windows就可以新建目录和文件了
实验二,本地用户访问
6-8步骤同实验一
9,创建用户并设置密码
useradduser1
useradduser2
echo123456|passwd--stdinuser1
echo123456|passwd--stdinuser2
查看创建用户密码疗效
tail-2/etc/passwd
tail-2/etc/shadow
10,在克隆的centOS7验证实验疗效(6-8步骤早已开启了容许匿名与本地用户访问)
实验三,严禁user1登陆ftp服务器
1,步入vsftpd的配置文件路径cd/etc/vsftpd/
其中ftpuser一般是一个专门为FTP访问创建的用户帐号。那些用户一般用于管理和配置FTP服务器上的文件访问权限。ftpuser的具体功能和角色可能会依照不同的FTP服务器软件(如vsftpd、ProFTPD、Pure-FTPd等)以及系统配置而有所不同。
2,之后设置user1不容许登陆,即在ftpusers文件上面写入不容许登入的用户
添加user1linux软件下载,表示user1不容许登陆ftp服务器
3,之后验证user1是否还能否登陆
发觉早已user1不能否登陆
实验四,准许,严禁用户访问
1、进入vsftpd的配置文件路径
cd/etc/vsftpd/
ls
2、修改配置文件不容许user2登陆vimuser_list
3,验证实验疗效
4,见第2步的截图,可以通过更改配置文件/etc/vsftpd/vsftpd.conf调整容许user2登陆
vim/etc/vsftpd/vsftpd.conf
userlist_deny=NO#最后一行添加内容
5,重启服务systemctlrestartvsftpd
6,在192.168.23.142验证实验疗效
实验五,查找配置文件的帮助指南
1、还原实验三(将配置文件中的userlist_deny=NO删掉或则注释)
2、查找帮助manvsftpd.conf
/EX
n—-按n跳转
max_per_ip
3、修改主配置文件vim/etc/vsftpd/vsftpd.conf
max_per_ip=1#最后一行添加
4、因为对主配置文件进行了更改,所以须要重启服务systemctlrestartvsftpd
5、通过windows的command验证实验疗效
第一次ftp登陆成功ftp192.168.23.157
第二次ftp登陆失败
实验六,设置vsftp的虚拟帐户
1,给虚拟用户创建用户数据库
mkdir/vftp
db_load:
db_load是BerkeleyDB的一个命令行工具,拿来将数据从文本文件加载到BerkeleyDB数据库中。
-T:
这个选项指定使用事务模式。在BerkeleyDB中,事务模式可以确保在对数据库进行读写时,数据的一致性和完整性得以维护。事务模式容许你在发生错误时回滚所有的修改。
-thash:
-t选项指定数据库的类型为哈希数据库。哈希数据库是基于哈希表实现的,常用于须要快速通配符查找的场景。
若果不指定-t,默认使用B+树类型的数据库,但使用-thash时,会显式告诉BerkeleyDB使用哈希表作为数据储存结构。
-f/vftp/vuser.txt:
-f选项指定输入文件,也就是数据源文件。/vftp/vuser.txt是一个包含要加载到数据库的数据的文件。
该文件通常是文本格式,一般每行表示一个键名对,适宜导出哈希数据库。
/vftp/vuser.db:
这是目标数据库文件,即数据将会被加载到这个文件中。假如这个文件不存在,db_load会创建一个新的数据库文件。
假如目标数据库早已存在,则会依照选项决定是覆盖还是合并数据linux 创建ftp用户,一般须要确保文件权限正确。
注意事项:
输入文件/vftp/vuser.txt必须依照特定的格式组织,例如每行包含一个键名对,适用于哈希表的储存结构。假如/vftp/vuser.db早已存在,加载数据时要确保没有冲突或覆盖错误
vim/vftp/vuser.txt
admin1
123456
admin2
123456
2,储存用户的txt文件生成数据库
db_load-T-thash-f/vftp/vuser.txt/vftp/vuser.db
ls/vftp
3,在真实业务环境下,须要更改数据库文件达到合适的权限
chmod700/vftp/vuser.db
ls-ld/vftp/vuser.db
4,更改PAM文件
vim/etc/pam.d/vsftpd
须要把原文件默认配置全部注释掉,添加相应数组
authrequiredpam_userdb.sodb=/vftp/vuser#做虚拟认证
accountrequiredpam_userdb.sodb=/vftp/vuser#做虚拟帐户的认证
#认证恳求pam数据库数据库文件
批量注释:
1,跳转到批量注释的行
2,按住ctrl+v步入可视化块模式
3,按上下方向键选中要注释的行
4,按I在行首输入
5,按#注释
6,按两次esc
5redhat linux 下载,创建用户(给虚拟用户做映射)
useradd-d/var/ftp/vuservuser
chownvuser.vuser/var/ftp/vuser
chmod555/var/ftp/vuser
ls-ld/var/ftp/vuser
6、创建文件和目录(为了测试)
mkdir/var/ftp/vuser/dir1
touch/var/ftp/vuser/file1
ls/var/ftp/vuser
7、修改配置文件vim/etc/vsftpd/vsftpd.conf
12#anonymous_enable=YES#关掉匿名访问
13anonymous_enable=NO
30anon_upload_enable=NO#关掉匿名上传
31#anon_upload_enable=YES
35anon_mkdir_write_enable=NO#关掉匿名创建目录
36#anon_mkdir_write_enable=YES
17local_enable=YES#开启本地用户登入
104chroot_local_user=YES#囚禁用户只能在自己的家目录中
105#chroot_local_user=YES
106allow_writeable_chroot=YES#添加,容许用户在自己家目录中可写
134guest_enable=YES#添加,开启虚拟用户登入
135guest_username=vuser#添加,指定虚拟用户名
136pam_service_name=vsftpd#指定pam的服务名
120listen=YES#容许侦听ipv4
121#listen=NO
130listen_ipv6=NO#不容许侦听ipv6
131#listen_ipv6=YES
8、重启服务systemctlrestartvsftpd
9,验证配置疗效
ftp192.168.23.157
ls#列举刚创下来的文件
cd/etc/#由于配置文件中设置囚禁在自己的家目录中