FTP:file Transfer protocol
FTP协议:
tcp/21端口:命令连接,控制连接
tcp/20端口:文件传输连接
FTP:文件共享服务,工作在应用层
RPC:Remote Procedure Call,远程过程调用:实现两个进程之间使用二进制格式通信
NFS:Network filesystem:依赖RPC协议
Samba:CIFS/SMB协议,CIFS:Common Inter FileSystem
服务器程序:
wu-ftpd:比较早的的FTP,功能强大,但不是模块化设计
vsftpd:Very Secure ftp Daemon,安全性强
proftpd:
pureftpd:
Serv-U:
filezilla
客户端程序:
CLI:
ftp
lftp
GUI:
gftpd
FlashFXP
Cuteftp
Filezilla
vsftpd:
/etc/vsftpd:配置文件目录
/etc/init.d/vsftpd:服务脚本
/usr/sbin/vsftpd:主程序
基于PAM实现用户认证:
/etc/pam.d/*
/lib/security/*
/lib64/security/*
支持虚拟用户
/var/ftp:文件目录存放路径、
/etc/vsftpd/ftpusers:定义哪些用户不能访问ftp服务
/etc/vsftpd/user_list:定义哪 些用户访问ftp服务
ftp的用户:
匿名用户
虚拟用户
系统用户
/var/ftp:ftp用户的家目录
匿名用户访问目录,即匿名用户映射为了ftp用户
匿名用户帐户:anonymous
vsftpd.conf配置文件
anonymous_enable=YES #开启匿名用户访问anonymous_enable=YES #是否允许本地用户登陆ftpwrite_enable=YES #用户是否可以上传文件(指系统用户)anon_upload_enable=YES #是否允许匿名用户上传文件anon_mkdir_write_enable=YES #是否允许匿名用户写文件anon_other_write_enable=YES #是否开启其他权限,如删除文件dirmessage_enable=YES #用户进入一个目录后,显示欢迎文件,在目录上建立.message文件即可xferlog_enable=YES #是否打开传输日志xferlog_file=/var/log/xferlog #是否打开传输日志文件保存位置xferlog_std_format=YES #日志文件格式#chown_uploads=YES #chown_username=whoever #此项和上一项表示,是否用户上传完成文件,更改文件的属主、属组#idle_session_timeout=600#data_connection_timeout=120 #此项和上一项表示定义会议超时时长的指令#ascii_upload_enable=YES#ascii_download_enable=YES #此项和上一项定义上传下载是否使用ascii格式#chroot_list_enable=YES #表示是不是使用一个用户来定义用户,把他锁在家目录下#chroot_list_file=/etc/vsftpd/chroot_list #在哪个文件创建列表,列表中的哪此用户锁在家目录#chroot_local_user=YES #系统中的所有用户都会被锁在家目录下,需关闭上面两项listen=YES #表示vsftpd是否工作为一个独立的守护进程pam_service_name=vsftpd #vsftpd接受pam控制,控制的配置文件叫什么名字,如vsftpduserlist_enable=YES#是否使用user_list这个文件来控制登陆ftp,YES表示启用userlist_deny=YES #YES表示表中的用户不能登陆FTP,NO表示只有user_list中的用户可以登陆max_clients = # #定义最大用户连接数max_per_ip = # #定义每个IP地址发起几个连接请求#ftps+ssl的实现ssl_enable=YESssl_tlsv1=YESssl_tlsv2=YESssl_sslv3=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESrsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pemrsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem#开启虚拟用户认证,需添加以下两行guest_enable=YESguest_username=vuser #开启来宾帐户,映射为vuser用户#虚拟用户实现不同的权限user_config_dir=/etc/vsftpd/vusers_dir #需要关闭所有anon的功能#mkidr /etc/vsftpd/vusers_dir/#cd /etc/vsftpd/vusers_dir#touch tony#vim tonyanon_upload_enable=YESanon_mkdir_wirte_enable=YES
共享服务权限:文件系统权限*文件共享权限
FTP安全通信方式:
ftps:ftp+ssl/tls
sftp:Openssh,subsystem,sftp(SSH实现)