码迷,mamicode.com
首页 > 其他好文 > 详细

FTP服务

时间:2019-08-05 09:11:54      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:传输协议   范围   ice   上传下载   默认值   switch   注意   文件路径   存放位置   

FTP服务

  文件传输协议FTP属于File TransferProtocol早期的三个应用级协议之一,它基于C/S结构。并且它的传输格式默认是以二进制方式(可以更改成文本格式,不过不建议)。在主动模式下(服务器主动连接)命令传达服务器是端口是21,客户端随机,数据传达服务器端口是20,客户端还是随机;被动模式(客户端主动连接)命令的传输客户端随机端口,服务器端口是21,数据传达双方端口都是随机的。

  FTP的服务器端软件有vsftpd,Wu-ftpd, Proftpd, Pureftpd, ServU, IIS等;客户端软件有ftp,lftp, lftpget, wget,curl等。

  FTP服务的状态码为

    1XX:信息 125:数据连接打开
    2XX:成功类状态 200:命令OK 230:登录成功
    3XX:补充类 331:用户名OK
    4XX:客户端错误 425:不能打开数据连接
    5XX:服务器错误 530:不能登录

  用户认证

    匿名用户:ftp,anonymous,对应Linux用户ftp
    系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
    虚拟用户:特定服务的专用用户,独立的用户/密码文件
nsswitch:network service switch名称解析框架
pam:pluggable authentication module 用户认证
/lib64/security /etc/pam.d/ /etc/pam.conf

vsftpd 服务

  vsftpd是由vsftpd包提供,可以直接yum安装。用户认证配置文件在/etc/pam.d/vsftpd配置文件是/etc/vsftpd/vsftpd.conf 它分为匿名用户和系统用户以及虚拟用户。其中匿名用户共享文件夹位置在/var/ftp;系统用户共享文件夹位置为用户的家目录;虚拟用户共享家目录为其映射的系统用户的家目录。

  以下设置的配置文件统一为/etc/vsftpd/vsftpd.conf

  命令端口:listen_port=21
  主动模式端口:
    connect_from_port_20=YES(主动模式端口为20)
    ftp_data_port=20(指定主动模式的端口,当然可以随心所欲的设置)
  被动模式端口范围:
    pasv_min_prot=6000
    pasv_max_port=6010(就是说在被动模式下端口只是在这个范围内随机分配)
    max_clients=0(最大并发连接数)
    max_per_ip=0(每个ip同时发起的最大连接数,主要是为了防止有人恶意连接)

  匿名用户:

    anonymous_enabe=YES(支持匿名用户)
    no_anon_password=YES(默认是no,就是用匿名用户登录的时候省掉输入命令那一步)
    anon_upload_enable=YES(支持匿名用户上传,但是要注意文件系统给够用的权限)
    anon_mkdie_write_enable=YES(支持匿名用户建目录)
    anon_world_readable_only(默认yes,就是匿名用户只能下载全部读的文件)
    anon_umask=0333(指定匿名上传文件的umask,默认是077)
    anon_other_write_enable=YES(可以删除和修改上传文件)

  Linux系统用户:

    local_enable=YES(是否允许系统用户登录)
    write_enable=YES(是否允许系统用户上传文件)
    local_umask=022(指定系统用户上传文件的默认权限)
    guest_enable=YES(所有的系统用户都映射成guest用户)
    guest_username=ftp(配合上面选项才生效,指定guest用户)
    local_root=/ftproot(guest用户登录所在的目录)
  为了防止普通用户权限太大,可以把系统用户禁锢在家目录中
    chroot_local_user=YES(默认no,不禁锢,yes就是禁锢系统用户只能在家目录活动)
    chroot_list_enable=YES
    chroot_local_file=/etc/vsftpd/chroot_list(这里说明一下就是禁锢某个文件里面的用户,这个文件的存放位置在/etc/vsftpd/chroot_list这里;有意思的是当chroot_local_user=YES时,则chroot_list中的用户不禁锢;当chroot_local_user=NO是,则chroot_list中的用户禁锢)

  wu-ftp日志:默认是启用

    xferlog_enable=YES(默认开启 启用记录上传下载日志)
    xferlog_std_format=YES(默认开启,使用wu—ftp日志格式)
    xferlog_file=/var/log/xferlog(默认开启 并且这个文件夹自动生成)

  vsftpd日志:默认不启用

    dual_log_enable=YES(使用vsftpd日志格式。默认不开启)
    vsftpd_log_file=/var/log/vsftpd.log(默认的文件夹存放位置,这个也是自动生成的)

  登录提示信息

    ftpd_banner="welcome to mage ftp server"
    banner_file=/etc/vsftpd/ftpbanner.txt(可以在配置文件里直接写登录提示信息,也可以把提示语写到文件里,而且文件里的优先级更高)

  使用pam完成用户认证

    pam_servicce_name=vsftpd
    pam配置文件:/etc/pam.d/vsftpd
    /etc/vsftpd/ftpusers (默认文件中用户拒绝登录)

  是否启用控制用户登录的列表文件

    userlist_enable=YES (默认有此设置)
    userlist_deny=YES(黑名单,不提示口令,NO为白名单)
    userlist_file=/etc/vsftpd.user_list(此为默认值)

  vsftpd服务指定用户身份运行

    nopriv_user=nobody(默认值)

  查看是否支持ssl

    ldd‘which vsftpd‘(能查看到libssl.so即为支持)

  创建自签名证书
    cd /etc/pki/tls/certs/
    make vsftpd.pem
    openssl x509 -in vsftpd.pem -noout -text

  配置vsftpd服务支持ssl:/etc/vsftpd/vsftpd.conf

    ssl_enable=YES (启用ssl)
    allow+anon_ssl=no(匿名用户不支持ssl)
    force+local+logins_ssl=YES (本地用户登录加密)
    force_local_data_ssl=YES(本地用户传输数据加密)
    rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem(指定加密文件路径,当然这个并不是必须的,可以生成在其他目录下的也)

FTP服务

标签:传输协议   范围   ice   上传下载   默认值   switch   注意   文件路径   存放位置   

原文地址:https://blog.51cto.com/14322562/2426557

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!