zoukankan      html  css  js  c++  java
  • ftpd服务常见配置总结

    默认配置文件目录:/etc/vsftpd/vsftpd.conf

    命令端口:

    listen_port=21

    注意:该信息默认没有,使用的话,需要用户自己添加。默认是21。

    主动模式端口:

    connect_from_port_20=YES 主动模式端口为20(该项配置文件默认已经添加)

    ftp_data_port=20 指定主动模式的端口

    注意:如果要修改主动模式的链接端口,只需要修改"ftp_data_port"的配置,不需要修改"connect_from_port_20=YES"的配置,有点儿诡异。另外"ftp_data_port"man帮助中并没有说明。

    被动模式端口范围:

    pasv_min_port=6000 (0为随机分配)

    pasv_max_port=6010(这两项定义了可以同时执行下载链接的数量。)

    注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。

    注意:在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。

    注意:"ss -nt"显示已建立的链接;

    注意:主动模式、被动模式是有客户端来指定的。

    注意:有的时候,重启服务的时候,需要杀死正在连接的进程,如果该进程不断,那么就不能重启服务。也就造成重启服务特别慢,尤其是在实际生产中,建议使用reload。

     

    使用当地时间:

    use_localtime=YES 使用当地时间(默认为NO,使用GMT,建议设置成YES。)

    匿名用户:

    anonymous_enable=YES:支持匿名用户(默认yes,支持匿名链接)

    no_anon_password=YES:匿名用户略过口令检查(默认NO)

    注意:匿名用户登录,默认情况下,只可以下载pub下的文件,不允许上传,需要使用上传权限,还需要开启下面的选项。

    anon_world_readable_only:只能下载全部读的文件 (默认YES)

    anon_upload_enable=YES:允许匿名上传文件;

    注意:该项配置中就有,不过被注释掉了。

    注意:仅仅开启"anon_upload_enable"项是不够的,因为ftp进程的执行者的身份是服务端中的"ftp"用户,所以,要保证该用户在文件系统中有指定的权限;此项"anon_upload_enable"关闭的话,上传文件的报错是"Permission denied.",打开"anon_upload_enable"后,上传文件,报错是"Could not create file.",这是因为ftp目录在pub目录上,没有"w"权限。建议使用acl。

    注意:下载的时候,是使用nobody的身份的,所以要保证nobody用户有该文件的"r"权限。

    anon_mkdir_write_enable=YES:允许匿名建立文件夹(默认也被注释了)

    anon_other_write_enable=YES:可删除和修改上传的文件;

    注意:匿名用户上传文件使用的是匿名ftp用户的身份,但是删除的时候,使用的是nobody用户的权限。所以在ftp客户端上,如果想要删除文件,还要打开该项配置,并且还要保证文件系统上nobody的权限。(注意:删除的权限是ftp的父进程nobody删除的!)

    anon_umask=077:指定匿名上传umask(默认没有该行)

    注意:如果想要让ftp用户可以上传文件、也可以下载该文件,可以添加"anon_umask=022"。

    chown_uploads=YES:(默认NO)指定上传文件的默认的所有者和权限;

    chown_username=wang:指定匿名用户上传文件的所属者是"wang"

    chown_upload_mode=0644:指定匿名用户上传文件的权限。

    注意:不允许ftp用户的"家目录"有写权限。禁止登录并报错"421 Service not available, remote server has closed connection"

    注意:删除、下载操作是以nobody用户执行的。

     

     

    Linux系统用户:

    guest_enable=YES:开启用户身份映射;

    guest_username=ftp:映射登录的用户的身份为guest用户,配合上面选项生效;

    注意:开启映射功能之后,用户登录的时候。就是以该guest用户的身份运行的。只是在登录的时候,用到了系统用户的用户名和密码。

    注意:将系统用户映射成为ftp用户的话,同样不允许ftp用户对他的家目录有"w"权限。

    local_enable=YES:是否允许linux用户登录;

    write_enable=YES:允许linux用户上传文件(默认已经有了该项);

    local_umask=022:指定系统用户上传文件的默认权限;

    local_root=/ftproot:非匿名用户登录的时候所在目录,默认是自己的家目录。

    注意:此时是不禁锢用户的,用户可以随意切换目录配合"guest_enable、guest_username"两个选项,可以实现将所有非匿名用户禁锢在特定的明目下。

    注意:设置的默认登录的目录,要保证该用户对该目录有"x"权限。如果有"w"权限,是禁止用户登录的。

    注意:匿名用户上传数据,不仅需要文件系统上对该目录有"w"权限,还需要ftp服务开启允许匿名上传的功能。而系统用户,只要保证对该目录有"w"权限即可上传文件。

    禁锢所有系统用户在家目录中:

    chroot_local_user=YES:(默认NO,不禁锢)禁锢系统用户

    注意:禁锢用户的目录,要保证该用户没有"w"权限。而没有写权限,就没有办法上传文件,所以,可以在禁锢的目录下,新创建一个目录,付给该用户"w"权限,就可以上传文件了。

    注意:匿名用户本身就是禁锢的;

    禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反:

    chroot_list_enable=YES

    chroot_list_file=/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:优先上面项生效

    注意:"cat test.txt"时显示颜色的方法,就是"echo -e "33[31mwarning!!!33[0m" > test.txt"

    注意:建议不要写"welcome",免得引起法律纠纷。

    访问目录的提示信息:

    dirmessage_enable=YES:(默认)

    message_file=.message:(默认)信息存放在指定目录下.message

    使用pam(Pluggable Authentication Modules)完成用户认证

    pam_service_name=vsftpd:该配置默认就有

    /etc/vsftpd/ftpusers:默认文件中用户拒绝登录

    pam配置文件:/etc/pam.d/vsftpd

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

    userlist_enable=YES:默认有此设置

    userlist_deny=YES:(默认值)黑名单,不提示口令,NO为白名单

    userlist_file=/etc/vsftpd/users_list:此为默认值

    连接限制:

    max_clients=0:最大并发连接数

    max_per_ip=0:每个IP同时发起的最大连接数

    vsftpd服务指定用户身份运行:

    nopriv_user=nobody

    传输速率:字节/秒

    anon_max_rate=0:匿名用户的最大传输速率

    local_max_rate=0:本地用户的最大传输速率

    注意:建议设置一下限速。

    注意:可以使用wget --ftp-user=wang --ftp-password=centos ftp://ip/f1测试

    连接时间:秒为单位

    connect_timeout=60:主动模式数据连接超时时长

    accept_timeout=60:被动模式数据连接超时时长

    data_connection_timeout=300:数据连接无数据输超时时长

    idle_session_timeout=60:无命令操作超时时长

    优先以文本方式传输:(不建议使用)

    ascii_upload_enable=YES

    ascii_download_enable=YES

    注意:ftp中下载有两种方式,binary模式(二进制模式、默认),ascII模式(asc码模式)。

    注意:不同的操作系统的编码机制是不同的,所以,在windows中编写的脚本,拿到linux中运行是执行失败的。可以使用"cat -A 文件名"查看。如果使用ascII模式上传/下载,就会自动做一下转换。

    centos6中配置FTP服务以非独立服务方运行:

    首先修改配置文件/etc/vsftpd/vsftpd.conf,添加一条

    listen=NO

    默认是"yes",以独立服务运行;

    然后安装xined服务(yum install telnet-server),并创建一个vsftpd的配置文件:

    #cat /etc/xinetd.d/vsftpd

    service ftp

    {

    flags = REUSE

    socket_type = stream

    wait = no

    user = root

    server = /usr/sbin/vsftpd

    log_on_failure += USERID

    disable = no

    }

    实现基于SSL的FTPS:

    ftp服务,默认是不加密的,基于安全考虑,可以使用类似于https的方式tls(http),使用ftps=tls(ftp)。

    查看是否支持SSL:

    ldd `which vsftpd`:查看到libssl.so

    创建自签名证书:

    cd /etc/pki/tls/certs/

    make vsftpd.pem

    注意:生成的私钥文件和证书文件混在一起。

    openssl x509 -in vsftpd.pem -noout –text

    建议将vsftpd.pem证书文件,拷到执行目录下"/etc/vsftpd/"目录下。

    配置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/vsftpd/vsftpd.pem

    用filezilla等工具测试(注意:客户端的ftp工具是无法使用加密的。)。

    vsftpd虚拟用户:

    虚拟用户:

    所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号的家目录;

    各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定;

    虚拟用户帐号的存储方式:

    文件:编辑文本文件,此文件需要被编码为hash格式,文件的格式为奇数行为虚拟用户的用户名,偶数行为密码。

    运行命令:db_load -T -t hash -f vusers.txt vusers.db

    注意:"*.db"格式的数据库是伯克利大学开发的数据库格式。我们需要创建一个文本文件,里面记录着用户名和密码,然后使用"db_load -T -t hash -f vusers.txt vusers.db"命令,将文本文件生成为数据库文件。

    注意:建议将文件权限设置成600;

    注意:如果是要添加虚拟用户的话,只能更改文本文件中的记录,然后再创建成vusers.db文件。使用该方法不是很便利,所以建议使用mysl数据库的方式存储虚拟用户的用户名。

    关系型数据库中的表中:

    实时查询数据库完成用户认证;

    mysql库:pam要依赖于pam-mysql

    /lib64/security/pam_mysql.so

    /usr/share/doc/pam_mysql-0.7/README

    注意:虚拟用户默认是会禁锢的,所以,映射的用户所登录得目录是不可以有写权限的。
    ————————————————
    版权声明:本文为CSDN博主「sigmoidhan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/han156/article/details/78386406

  • 相关阅读:
    FastDFS--storage文件上传和下载问题
    Ubuntu18.04中安装virtualenv和virtualenvwrapper
    详解文件包含漏洞
    pikachu-数字型注入-sqlmap
    sqlmap命令手册
    SQL注入详解及技巧
    Linux中更新firefox
    DVWA-SQL注入
    CTF杂项题解题思路
    ubuntu搭建环境
  • 原文地址:https://www.cnblogs.com/tudachui/p/14890323.html
Copyright © 2011-2022 走看看