1.ftp为明码传输
2.客户端和服务端采用两条链路来分别进行命令和数据的传输。数据传输的模式分为主动链接和被动链接。
3.客户端在需要数据的时候,会告知服务器端采取主动或者被动的方式来链接。
4.如果是主动链接,客户端在自己主机上启动一个数据接收端口,通过控制端口告诉服务端,接下来等待服务端主动链接这个端口,并传输数据。
5.采用主动链接的方式,如果客户端躲在NAT主机的后面,将导致服务端链接不到此端口。采用被动链接的方式,需要ftp服务端软件支持,客户端告知服务端采用被动模式传输数据,服务端启动一个数据监听端口,将这个端口告知客户端,并等待客户端连接。
6.ftp登陆者的身份可以分为三种。
1.实体用户:ftp服务默认没有对实体用户进行任何限制,所以实体用户可以对整个文件系统采取任何有权限的操作(linux系统用户)。
2.访客身份:这种身份的用户只能在指定的用户空间内操作。可以限制权限。
3.匿名身份:要做很多限制,如限制最大访问数。
cent OS vsFTPd安装运行:
0.安装:yum install vsftpd
1.关闭防火墙 :service iptables stop
2.关闭selinux :setenforce 0
3.建立ftp实体用户 useradd -d /home/ftpdir ftpuser;passwd ftpuser 123456;(要有用户主目录)
4.默认配置启动:service vsftpd start
主要配置解析:
1.anonymous_enable=NO 是否允许匿名登陆
2.local_enable=YES 是否允许本地用户(添加的实体用户登录)
3.用户目录chroot设置:
A.chroot_local_user=YES
B.chroot_list_enable=YES
C.chroot_list_file=/etc/vsftpd/chroot_list
当A没有设置的时候,处于/etc/vsftpd/chroot_list 文件中的用户将被chroot。当A设置的时候,结果相反。
4.用户访问权限设置
A.userlist_enable=YES
B.userlist_deny=NO
C.userlist_file=/etc/vsftpd/user_list
当三个文件都写的时候,userlist限制访问权限才能起作用。当B为YES的时候,/etc/vsftpd/user_list中的用户不能访问FTP,当B为NO的时候,只有user_list内的用户能访问FTP。
5.PAM权限中vsFTPd访问权限设置:
在文件/etc/pam.d/vsftpd 中,auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed表明,在ftpusers文件中配置的用户无法登陆。
可以使用 man 5 vsftpd.conf命令来查看vsftpd.conf来查看所有的配置和默认值。