服务器 频道

经验谈:安全应用vsftpd服务器(上)

安装安装FTP服务器

    目前几乎所有Linux发行版本都确省用vsftpd,如果在安装系统时没有选择安装FTP服务器,可以通过RHEL 4.0中的“添加/删除应用程序”工具进行安装。具体方法是:选择“主选单”—“系统设置”—“添加/删除应用程序”,在弹出的界面中选中FTP服务器,单击“更新”即可。

    1.vsftpd安装启动

    如果无法确认是否安装了该软件,可以使用以下命令查看:
    #rpm -qa|grep vsftpd
    vsftpd-1.1.3-8
    启动FTP服务器,套用RHEL 4.0的预设范例直接启动Vsftpd。
    # /sbin/service vsftpd start
   vsftpd启动vsftpd: [确定]

    2.了解Vsftpd配置文件结构

    Vsftpd服务器的文件结构如表1所示。

表1 Vsftpd服务器的文件结构
 
    此外,还有一些说明文档和手册文件。

    3.了解vsftpd配置文件中的安全选项

    Vsftpd的主配置文件/etc/vsftpd/vsftpd.conf是个文本文件。以“#”字符开始的行是注释行。每个选项设置为一行,格式为“option=value”,注意“=”号两边不能留空白符。除了这个主配置文件外,还可以给特定用户设定个人配置文件。Vsftpd包中所带的vsftpd.conf比较复杂。这里介绍一下和安全相关的设置,以使得Vsftpd更加实用。

    (1)用户登录控制

    ① pam_service_name=vsftpd
    指出Vsftpd进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。
    ② /etc/vsftpd.ftpusers
    Vsftpd禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。
    ③ userlist_enable=YES|NO
    此选项被激活后,Vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,Vsftpd查到该用户名在列表中,Vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步聚。默认值为NO。
    ④ userlist_file=/etc/vsftpd.user_list
    指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。
    ⑤ userlist_deny=YES|NO
    决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。NO,只允许在文件中的用户登录FTP服务器。
    ⑥ tcp_wrappers=YES|NO
在Vsftpd中使用tcp_wrappers远程访问控制机制,默认值为YES。

    (2)目录访问控制

    ① chroot_list_enable=YES|NO
    锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。
    ② chroot_list_file=/etc/vsftpd/chroot_list
指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/ chroot_list。此选项默认不设置。
    ③ chroot_local_users=YES|NO
    将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。
    ④ passwd_chroot_enable
    当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。

    (3)文件操作控制

    ① hide_ids=YES|NO
    是否隐藏文件的所有者和组信息。YES,当用户使用“ls –al”之类的指令时,在目录列表中所有文件的拥有者和组信息都显示为ftp。默认值为NO。
    ② ls_recurse_enable=YES|NO
    YES,允许使用“ls –R”指令。这个选项有一个小的安全风险,因为在一个大型FTP站点的根目录下使用“ls –R”会消耗大量系统资源。默认值为NO。
    ③ write_enable=YES|NO
    控制是否允许使用任何可以修改文件系统的FTP的指令,比如STOR, DELE, RNFR, RNTO, MKD, RMD, APPE和SITE。默认值为NO,不过自带的简单配置文件中打开了该选项。
    ④ secure_chroot_dir=
    此选项指向一个空目录,并且ftp用户对此目录无写权限。当Vsftpd不需要访问文件系统时,这个目录将被作为一个安全的容器,用户将被限制在此目录中。默认目录为/usr/share/empty。

    (4)新增文件权限设定

    ① anon_umask=
    匿名用户新增文件的umask 数值。默认值为077。
    ② file_open_mode=
    上传档案的权限,与chmod 所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。
    ③ local_umask=
    本地用户新增档案时的umask 数值。默认值为077。不过,其他大多数的FTP服务器都是使用022。如果你的用户希望的话,可以修改为022。在自带的配置文件中此项就设为了022。

0
相关文章