• 2009-02-24

    debian lenny 下安装vsftpd与本地用户的简单配置 - [服务器区]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://linux.blogbus.com/logs/35663492.html

    debian下安装vsftpd十分简单,apt-get install vsftpd

    vsftp的配置
    创建本地组的FTP服务器目录
    mkdir -p /var/www
    创建本地用户和组
    groupadd vsftp
    useradd -g vsftp -d /var/www -m user01
    设置用户口令
    passwd user01
    修改目录的属主和权限
    chown vsftp.user01 /wwwroot
    chmod 750 /wwwroot
    查看目录
    ll -d /wwwroot

    修改vsftpd.conf :gedit /etc/vsftpd.conf

    /etc/vsftpd/vsftpd.conf
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES

    小技巧:1.把系统内所有的FTP用户都限制在家目录

    我们可以通过更改vsftpd.conf文件,这一行#去掉可以了。

    #chroot_local_user=YES
    2.设定匿名用户的根目录 
    anon_root=

    即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,可自行添加。


    8.6、如何定制欢迎信息;

    如何定制欢迎信息,也就是我们登入有些FTP之后,会出现类似:欢迎您来到LinuxSir FTP,在这里,您会得到最真诚的帮助,如果有什么问题和建议,请来信,多谢。

    实现这个并不难,我们可以查看vsftpd.conf文件中,是否有这行。

    dirmessage_enable=YES

    如果没有就加上,如果dirmessage_enable=YES前面有#号,就把#号去掉。然后我们制定一个.message文件,写上您想要写的东西,比如是.message的内容是如下的:

    --欢迎您来到*****FTP!
    --在这里,您会得到最真诚的帮助;
    --如果有什么问题和建议,请来信,多谢。

    我们可以用编辑器来写这个.message,我想这个过程就不用说了吧。


    注:统的启动与停止

    启动服务

    /etc/init.d/vsftpd start

    重启服务

    /etc/init.d/vsftpd restart

    停止服务

    /etc/init.d/vsftpd stop

    -----------------------------------------------------------------------------------------------------------------------

    基于本地用户方式的vsftpd高级设置

    阅读(19) 评论(1) 发表时间:2008年11月06日 15:03

    本文地址:http://qzone.qq.com/blog/250416058-1225955013

    创建一个专用的FTP数据存储目录:
    # mkdir /ftpserver

    # vi /etc/vsftpd/vsftpd.conf
    设置vsftpd为standalone工作模式
    listen=YES
    tcp_wrappers=YES

    启用本地用户:
    local_enable=YES

    禁用匿名用户:
    anonymous_enable=NO
    #anon_upload_enable=YES
    #anon_mkdir_write_enable=YES

    更改FTP默认监听端口21:
    添加
    ##Set the listen_port
    Listen_port=5200

    设置FTP的PASV模式传输端口,以配合防火墙通过PASV模式传输数据:
    添加
    ##set the pasv ports
    port_enable=NO
    pasv_enable=YES
    pasv_min_port=10021
    pasv_max_port=10025

    设置FTP服务器最大的并发连接数,默认值为0,表示不限最大连接数。
    添加
    max_clients=1000

    设置每个IP地址最大的并发连接数目,默认值为0,表示不限制。
    添加
    max_per_ip=10

    启用锁定主目录用户名单功能:
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    # touch /etc/vsftpd.chroot_list

    启用特定用户独立配置文件功能:
    添加
    ##set the user's private config
    user_config_dir=/etc/vsftpd/user_config/
    # mkdir /etc/vsftpd/user_config/

    创建一个FTP用户,将该用户的主目录指向到/ftpserver,并使其不能登陆shell:
    # useradd jacky -d /ftpserver/jacky -s /sbin/nologin
    # passwd jacky

    锁定jacky用户的主目录
    # vi /etc/vsftpd.chroot_list
    添加
    jacky

    创建jacky用户的独立配置文件:
    # cd /etc/vsftpd/user_config/
    # vi jacky
    ##Allow this user download?
    #download_enable=YES

    ##Uncomment this to enable any form of FTP write command,such as "STOR,DELE,RNFR,RNTO,MKD,RMD,APPE,SITE ..."
    #write_enable=YES

    ##If you set the "write_enable=YES",but don't want to allow "rename or delete ..."
    ##You can open "cmds_allowed",and remove the command which you don't allow.
    ##"delete" = "DELE,RMD" ; "rename" = "RNFR,RNTO" ; "mkdir" = "MKD"
    #cmds_allowed=ABOR,ACCT,ALLO,APPE,CDUP,CWD,DELE,EPRT,EPSV,FEAT,HELP,LIST,MDTM,MKD,MODE,NLST,NOOP,OPTS,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,RMD,RNFR,RNTO,SITE,SIZE,SMNT,STAT,STOR,STOU,STRU,SYST,TYPE,USER,XCUP,XCWD,XMKD,XPWD,XRMD,BYE

    ##Set the max rate for this user,"Bytes/s".
    #local_max_rate=204800

    ##Set the root directory for this user.
    #local_root=

    使jacky用户仅具有下载、上传和创建目录的权限,而没有删除和重命名的权限:
    download_enable=YES
    write_enable=YES
    cmds_allowed=ABOR,ACCT,ALLO,APPE,CDUP,CWD,EPRT,EPSV,FEAT,HELP,LIST,MDTM,MKD,MODE,NLST,NOOP,OPTS,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,SITE,SIZE,SMNT,STAT,STOR,STOU,STRU,SYST,TYPE,USER,XCUP,XCWD,XMKD,XPWD,XRMD,BYE
    限制jacky用户的最大下载速度为200KB左右
    local_max_rate=204800

    重启vsftpd以使配置生效:
    # /etc/init.d/vsftpd restart

    修改防火墙以使FTP通过:
    # vi /etc/sysconfig/iptables
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5200 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10021 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10023 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10024 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10025 -j ACCEPT

    重启防火墙以使策略生效:
    # /etc/init.d/iptables restart

    OK! The end.

    PS(根据实际需要):
    开放root用户的FTP权限:
    # vi /etc/vsftpd.ftpusers
    #root
    # vi /etc/vsftpd.user_list
    #root

    禁止jacky用户的FTP权限
    # vi /etc/vsftpd.ftpusers
    添加
    jacky
    # vi /etc/vsftpd.user_list
    添加
    jacky
    配置备份区
    ====================================================================
    # Example config file /etc/vsftpd.conf
    #
    # The default compiled in settings are fairly paranoid. This sample file
    # loosens things up a bit, to make the ftp daemon more usable.
    # Please see vsftpd.conf.5 for all compiled in defaults.
    #
    # READ THIS: This example file is NOT an exhaustive list of vsftpd options.
    # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
    # capabilities.
    #
    #
    # Run standalone?  vsftpd can run either from an inetd or as a standalone
    # daemon started from an initscript.
    listen=YES
    #
    # Run standalone with IPv6?
    # Like the listen parameter, except vsftpd will listen on an IPv6 socket
    # instead of an IPv4 one. This parameter and the listen parameter are mutually
    # exclusive.
    #listen_ipv6=YES
    #
    # Allow anonymous FTP? (Beware - allowed by default if you comment this out).
    anonymous_enable=YES
    #
    # Uncomment this to allow local users to log in.
    local_enable=YES
    #
    # Uncomment this to enable any form of FTP write command.
    write_enable=YES
    #
    # Default umask for local users is 077. You may wish to change this to 022,
    # if your users expect that (022 is used by most other ftpd's)
    local_umask=022
    #
    # Uncomment this to allow the anonymous FTP user to upload files. This only
    # has an effect if the above global write enable is activated. Also, you will
    # obviously need to create a directory writable by the FTP user.
    #anon_upload_enable=YES
    #
    # Uncomment this if you want the anonymous FTP user to be able to create
    # new directories.
    #anon_mkdir_write_enable=YES
    anon_root=/var/www/public/
    #
    # Activate directory messages - messages given to remote users when they
    # go into a certain directory.
    dirmessage_enable=YES
    #
    # Activate logging of uploads/downloads.
    xferlog_enable=YES
    #
    # Make sure PORT transfer connections originate from port 20 (ftp-data).
    connect_from_port_20=YES
    #
    # If you want, you can arrange for uploaded anonymous files to be owned by
    # a different user. Note! Using "root" for uploaded files is not
    # recommended!
    #chown_uploads=YES
    #chown_username=whoever
    #
    # You may override where the log file goes if you like. The default is shown
    # below.
    #xferlog_file=/var/log/vsftpd.log
    #
    # If you want, you can have your log file in standard ftpd xferlog format
    #xferlog_std_format=YES
    #
    # You may change the default value for timing out an idle session.
    #idle_session_timeout=600
    #
    # You may change the default value for timing out a data connection.
    #data_connection_timeout=120
    #
    # It is recommended that you define on your system a unique user which the
    # ftp server can use as a totally isolated and unprivileged user.
    #nopriv_user=ftpsecure
    #
    # Enable this and the server will recognise asynchronous ABOR requests. Not
    # recommended for security (the code is non-trivial). Not enabling it,
    # however, may confuse older FTP clients.
    #async_abor_enable=YES
    #
    # By default the server will pretend to allow ASCII mode but in fact ignore
    # the request. Turn on the below options to have the server actually do ASCII
    # mangling on files when in ASCII mode.
    # Beware that on some FTP servers, ASCII support allows a denial of service
    # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
    # predicted this attack and has always been safe, reporting the size of the
    # raw file.
    # ASCII mangling is a horrible feature of the protocol.
    #ascii_upload_enable=YES
    #ascii_download_enable=YES
    #
    # You may fully customise the login banner string:
    #ftpd_banner=Welcome to blah FTP service.
    #
    # You may specify a file of disallowed anonymous e-mail addresses. Apparently
    # useful for combatting certain DoS attacks.
    #deny_email_enable=YES
    # (default follows)
    #banned_email_file=/etc/vsftpd.banned_emails
    #
    # You may restrict local users to their home directories.  See the FAQ for
    # the possible risks in this before using chroot_local_user or
    # chroot_list_enable below.
    chroot_local_user=YES
    #
    # You may specify an explicit list of local users to chroot() to their home
    # directory. If chroot_local_user is YES, then this list becomes a list of
    # users to NOT chroot().
    #chroot_list_enable=YES
    # (default follows)
    #chroot_list_file=/etc/vsftpd.chroot_list
    #
    # You may activate the "-R" option to the builtin ls. This is disabled by
    # default to avoid remote users being able to cause excessive I/O on large
    # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
    # the presence of the "-R" option, so there is a strong case for enabling it.
    #ls_recurse_enable=YES
    #
    #
    # Debian customization
    #
    # Some of vsftpd's settings don't fit the Debian filesystem layout by
    # default.  These settings are more Debian-friendly.
    #
    # This option should be the name of a directory which is empty.  Also, the
    # directory should not be writable by the ftp user. This directory is used
    # as a secure chroot() jail at times vsftpd does not require filesystem
    # access.
    secure_chroot_dir=/var/run/vsftpd
    #
    # This string is the name of the PAM service vsftpd will use.
    pam_service_name=vsftpd
    #
    # This option specifies the location of the RSA certificate to use for SSL
    # encrypted connections.
    rsa_cert_file=/etc/ssl/certs/vsftpd.pem

    收藏到:Del.icio.us