操作系统

vsftp_config
作者 perry001 2007年12月15日 03:57

    在Readhat as4下编译通过

    #tar zxf vsftpd-2.0.3.tar.gz

    # cd vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录

    # vi builddefs.h //编辑builddefs.h 文件,文件内容如下:

    #ifndef VSF_BUILDDEFS_H

    #define VSF_BUILDDEFS_H

    #define VSF_BUILD_TCPWRAPPERS

    #undef VSF_BUILD_PAM

    #define VSF_BUILD_SSL

    #endif /* VSF_BUILDDEFS_H */

    将以上undef都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL

    # make //直接在vsftpd-2.0.3里用make编译

    # ls -l vsftpd

    -rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd //可执行程序已被编译成功

    创建必要的帐号,目录:

    # useradd nobody //可能你的系统已经存在此帐号,那就不用建立

    # mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立

    # mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立

    # useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立

    # chown root:root /var/ftp

    # chmod og-w /var/ftp

    请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,

    安装vsftp配置文件,可执行程序,man等:

    # install -m 755 vsftpd /usr/local/sbin/vsftpd

    # install -m 644 vsftpd.8 /usr/share/man/man8

    # install -m 644 vsftpd.conf.5 /usr/share/man/man5

    # install -m 644 vsftpd.conf /etc/vsftpd.conf

    这样就安装完成了,那么我们开始进行简单的配置

    对于用DB库存储用户名及密码的方式来说:

    (1)查看系统是否有相应软件包

    # rpm –qa | grep db4

    db4-devel-4.2.52-7.1

    db4-4.2.52-7.1

    db4-utils-4.2.52-7.1

    (2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如

    # vi /home/logins.txt

    test1

    12345

    test2

    12345

    (3)建立数据库文件并设置文件属性

    # db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db

    # chmod 600 /etc/vsftpd_login.db

    (4)建立认证文件

    # vi /etc/pam.d/ftp 插入如下两行

    auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

    account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

    (5)建立一个虚拟用户

    useradd -d /home/vsftpd -s /sbin/nologin vsftpd

    只要更改这个虚拟用户的目录,那么ftp登录之后的目录也就随之更改

    ls -ld /home/vsftpd

    drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/

    (6)编写配置文件

    # vi /etc/vsftpd.conf

    listen=YES //使用standalone启动vsftpd

    listen_port=2121

    max_clients=100 //可接受的最大连接数

    max_per_ip=5 //每个IP最大的连接数

    local_max_rate=5120000 //本地用户的传输比率(b/s)

    tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)

    anonymous_enable=NO //禁用匿名账户

    local_enable=YES //PAM方式此处必须为YES

    write_enable=NO //全局控制不可以上传

    anon_upload_enable=NO //匿名用户不可以上传

    anon_mkdir_write_enable=NO //匿名用户不可以建目录

    anon_other_write_enable=NO //匿名用户不可以修改

    chroot_local_user=YES //不充许用户更改根目录

    guest_enable=YES

    guest_username=vsftpd //这两行的意思是采用虚拟用户形式

    virtual_use_local_privs=YES //虚拟用户和本地用户权限相同

    user_config_dir=/etc/vsftpd_user_conf //定义虚拟用户配置文件目录

    pasv_enable=YES //建立资料联机采用被动方式

    pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。

    pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。

    xferlog_enable=YES //开启日志记录

    xferlog_file=/var/log/vsftpd.log //日志存放文件位置

    idle_session_timeout=600 //空闲连接超时

    data_connection_timeout=120 //数据传输超时

    accept_timeout=60 //PAVS请求超时

    connect_timeout=60 // PROT模式连接超时

    (7)建立每个用户的根目录、配置文件的目录和配置文件

    # mkdir /home/vsftpd/test1

    # mkdir /etc/vsftpd_user_conf

    # vi /etc/vsftpd_user_conf/test1 文件内容如下

    local_root=/home/vsftpd/test1

    write_enable=YES

    anon_world_readable_only=NO

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    anon_other_write_enable=YES

    # vi /etc/vsftpd_user_conf/test2 文件内容如下

    local_root=/home/vsftpd/test1

    write_enable=NO

    anon_world_readable_only=NO

    anon_upload_enable=NO

    anon_mkdir_write_enable=NO

    anon_other_write_enable=NO

    # chmod 700 /home/vsftpd/test1

    # chown vsftpd.vsftpd /home/vsftpd/test1

    这样,test1用户可以下载、上传、修改 /home/vsftpd/test1里的文件,而test2用户只能下载/home/vsftpd/test1里面的文件。

    (8)启动程序 、测试

    

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/22176/showart_442876.html

打开APP阅读全文

vsftp_config

vsftp_config

长按识别二维码 进入IT168查看全文

请长按保存图片
{{data.thematic.text}}

相关文章

加载中...

分享到

请使用浏览器的分享功能
分享到微信等