热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux下vsftpd的安全化的配置

文章标题:Linux下vsftpd的安全化的配置。Linux是中国IT实验室的一个技术频道。包含桌面应用,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   * linux.org.uk">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


推荐阅读
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文探讨了Unix和Linux操作系统的起源和发展历程。从20世纪60年代计算机技术的初期阶段,到Unix的诞生及后续Linux的崛起,文章详细介绍了这些操作系统如何逐步成为现代计算不可或缺的一部分。 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了如何在Linux系统中获取库源码,并在从源代码编译软件时收集所需的依赖项列表。 ... [详细]
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
author-avatar
白白加黑黑99_889
这个家伙很懒,什么也没留下!
RankList | 热门文章