科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Linux下vsftpd的安全化的配置

Linux下vsftpd的安全化的配置

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文向大家介绍Linux下vsftpd的安全化的配置。

作者:佚名 来源:ChinaITLab 2010年4月17日

关键字: VSFTPd Linux

  • 评论
  • 分享微博
  • 分享邮件

  项目介绍

  目前主要的FTPserver有三个vsftpd和ProFTPd,wu-ftpd 其中vsftpd 安全性高,性能也比较好一些。 (没有做过详细调整,不正确也有可能,随时更正)

  主要使用它的站点:

  * ftp.redhat.com * ftp.suse.com * ftp.debian.org * ftp.openbsd.org * ftp.freebsd.org * ftp.gnu.org * ftp.gnome.org * ftp.kde.org * ftp.kernel.org * rpmfind.net * ftp.linux.org.uk * ftp.gimp.org * ftp-stud.fht-esslingen.de * gd.tuwien.ac.at * ftp.sunet.se * ftp.ximian.com * ftp.engardelinux.org * ftp.sunsite.org.uk * ftp.isc.org

  有上面这些著名的站点使用它,那么我也可以放心大胆了。

  主要配置

  基本缟

  实现让本地用户可以使用FTP,每个用户只能看到他自己的目录这个只需要配置vsftpd.conf文件,配置文件的英文说明足够了。

  chroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_listvsftpd.chroot_list里写上可以chroot的用户名。

  不在LIST的用户被限制在自己的HOME目录中。

  高手缟

  使用虚拟用户,这些用户在系统上都以一个用户名存在,可以设置不同的HOME DIR,

  1)创建guest用户

  groupadd virtualuseradd -d /home/ftpsite -m virtual可以check一下/etc/passwd文件,确保virtual用户的shell是/bin/false,这样做是禁止通过ssh或telnet以及本地login

  2)生成虚拟用户

  apt-get install libdb3-util

  注意这里一定要用db3_load生成hash文件,不是系统默认的db4.2_load

  cat login.txtusera123userb456db3_load -T -t hash -f login.txt /etc/vsftpd.login.dbchmod 600 /vsftpd.login.db,只能ROOT读取。

  zless /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/README.gz

  其中有如下内容:

  NOTE: Many systems have multiple versions of "db" installed, so you mayneed to use e.g. db3_load for correct operation. This is known to affectsome Debian systems. The core issue is that pam_userdb expects its logindatabase to be a specific db version (often db3, whereas db4 may be installedon your system)

  3)生成/etc/pam.d/vsftpd.vu文件,内容如下:

  auth required /lib/security/pam_userdb.so db=/etc/vsftpd.loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd.login

  注意后面没有db的后缀。

  4)修改vsftpd.conf文件,内容如下:

  listen=YES#listen_port=10021 //你可以在这里指定监听的端口,也可以用默认的connect_from_port_20=YESftpd_banner=Welcome to virtual FTP service.anonymous_enable=NO //不许匿名登录local_enable=YES //允许本地用户登录write_enable=NOanon_upload_enable=NO //这里先把虚拟用户的权限设置成最低的anon_mkdir_write_enable=NO //然后针对不同用户设置相应的权限anon_other_write_enable=NOchroot_local_user=YESguest_enable=YES //允许虚拟用户登录guest_username=virtualpasv_min_port=30000pasv_max_port=30999pam_service_name=vsftpd.vu //这里的pam根据步骤3,设成相应的user_config_dir=/etc/vsftpd_user_conf //指定用户配置文件的目录xferlog_enable=YES //设置日志文件xferlog_file=/var/log/vsftpd.log

  5)用户权限配置

  注意最好用chmod 600把所有的文件设成只有root读写方式。

  anon_world_readable_only=NO //打开浏览权限write_enable=YES //打开写权限anon_upload_enable=YES //上传权限anon_mkdir_write_enable=YES //建立目录权限anon_other_write_enable=YES //更改和删除权限local_root=/tmp 用于更改root.

  上面的这些可以组合起来使用。

  上传、下载、删除需要的设置:

  anon_world_readable_only=NOwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/usr/www/kjcroot/yangliudi
 
  只能上传不能删除的配置为:   anon_world_readable_only=NOwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=NOlocal_root=/usr/www/kjcroot/yangliudi
 
  只能下载的:   anon_world_readable_only=YESwrite_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NOlocal_root=/usr/www/kjcroot/yangliudi
 
  6)/etc/init.d/vsftpd start

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章