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

  • 相关阅读:
    QOMO Linux 4.0 正式版发布
    LinkChecker 8.1 发布,网页链接检查
    pgBadger 2.1 发布,PG 日志分析
    Aletheia 0.1.1 发布,HTTP 调试工具
    Teiid 8.2 Beta1 发布,数据虚拟化系统
    zLogFabric 2.2 发布,集中式日志存储系统
    开源电子工作套件 Arduino Start Kit 登场
    Piwik 1.9 发布,网站访问统计系统
    Ruby 1.9.3p286 发布,安全修复版本
    toBraille 1.1.2 发布,Java 盲文库
  • 原文地址:https://www.cnblogs.com/tudachui/p/14890323.html
Copyright © 2011-2022 走看看