FTP服务

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     #是否允许本地用户登陆ftp
write_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控制,控制的配置文件叫什么名字,如vsftpd
userlist_enable=YES#是否使用user_list这个文件来控制登陆ftp,YES表示启用
userlist_deny=YES #YES表示表中的用户不能登陆FTP,NO表示只有user_list中的用户可以登陆
max_clients = #  #定义最大用户连接数
max_per_ip =  #  #定义每个IP地址发起几个连接请求

#ftps+ssl的实现
ssl_enable=YES
ssl_tlsv1=YES
ssl_tlsv2=YES
ssl_sslv3=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pem
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem

#开启虚拟用户认证,需添加以下两行
guest_enable=YES
guest_username=vuser  #开启来宾帐户,映射为vuser用户

#虚拟用户实现不同的权限
user_config_dir=/etc/vsftpd/vusers_dir  #需要关闭所有anon的功能

#mkidr /etc/vsftpd/vusers_dir/
#cd /etc/vsftpd/vusers_dir
#touch tony
#vim tony
anon_upload_enable=YES
anon_mkdir_wirte_enable=YES

共享服务权限:文件系统权限*文件共享权限



FTP安全通信方式:

    ftps:ftp+ssl/tls

    sftp:Openssh,subsystem,sftp(SSH实现)









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章