`
8366
  • 浏览: 810382 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

vsftpd FTP服务器架设

阅读更多

在windows上完了完server-u,很简单,一个小时就能完成ftp服务器的假设,在liunx下要架设一个ftp就没那么容易了,在网上
找了找资料


 

     在windows上架设 FTP 首选 Server-u,看看资料,点点下一步,基本上10分钟就能架设一个ftp服务器了,在linux下面架设ftp服务器,确实费了我一番功夫,现在想起来,需要总结的就是 看资料的时候一定要全面,并且做好一个资料要看完。

 

   最终我选择了 vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。vsftpd (号称最安全的ftp 服务器)

 

 

下面讲下linux 下使用vsftpd 的步骤:

 

1.首先下载需要的 软件,双机直接安装:

 

  a.vsftpd-2.0.1-5.EL4.5.i386.rpm (在liunx4 的第一张光盘)

  b.db4-utils-4.2.52-7.1.i386.rpm (在liunx4 的第三张光盘) ,用来加密虚拟用户密码等文件的工具

 

2.启动vsftpd服务

  在控制台执行 service vsftpd start ,如果没有什么问题,你可以看到 服务启动的进程号,如果出现了问题,你可以试着将 gssftp 这个服务停掉,执行service vsftpd stop 因为这个服务或许会造成冲突

查看vsftpd服务器启动情况 service vsftpd status

 

3.用客户端工具连接ftp服务器

 

在window操作系统下,打开命令提示符,输入 ftp 133.64.81.164 回车

 

然后 使用默认的用户名(ftp)和密码(ftp) ,就可以登录ftp服务器了,或者你也可以使用系统用户的用户名和口令登录ftp服务器。

 

 

经过以上3个步骤我们就完成了ftp服务器的假设,但是这里有许多问题

 

a.安全性,匿名用户也可以登录,进行操作

b.用户登录以后并没有锁定目录

c.用户的权限配置没有体现

 

还有其他的问题,基于这些问题,需要我们了解下 vsftpd的工作 原理,上面的操作都是基于一下的3个配置文件的

 

vsftp相关配置文件说明
   /etc/vsftpd/vsftpd.conf
   /etc/vsftpd.ftpusers
  /etc/vsftpd.user_list
  其中,/etc/vsftpd/vsftpd.conf 是主配置文件。/etc/vsftpd.ftpusers 中指定了哪些用户不能访问FTP服务器。/etc/vsftpd.user_list 中指定的用户默认情况( 即在/etc/vsftpd/vsftpd.con中设置了userlist_deny=YES)下也不能访问FTP 服务器,当在/etc/vsftpd/vsftpd.con中设置了userlist_deny=NO时,仅仅允许/etc/vsftpd.user_list 中指定的用户访问FTP 服务器。

 

 

下面我们重点讲下 虚拟用户的设置:

 

如果 你不想把 匿名登录打开,也不想告诉对方 linux的系统账号(为了安全),防止他用系统账号做别的事,那么就需要建立一个虚拟用户了,在ftp中建立虚拟用户,然后映射成linux的系统用户,但是虚拟用户只有ftp的使用权限,并不能登录linux系统,很多FTP服务器都要密码和用户才能下到你要的好东西,你是不是也想要过下这个隐呢?给别人一个用户名和密码,这个配置其实也很简单。虚拟用户(virtual users)的FTP 服务器的配置。虚拟用户只能访问为其提供的FTP 服务,虚拟用户不能像本地的实用户那样登录系统而访问系统的其他资源。若用户对FTP
服务器站内具有写权限并且不允许访问系统的其他资源,则该用户应该使用虚拟用户才能提高系统的安全性

 

 

 

 

传统的FTP 服务器采用如下的方法实现虚拟用户:
1、 在本地建立普通用户账号并设置密码
2、将其登录shell 设为不可登录
3、由passwd/shadow 口令系统进行认证
vsftpd 的虚拟用户采用了不与系统账户口令文件合二为一的方法,也就是说,为了认证这
些虚拟用户vsftpd 使用单独的口令库文件(pam_userdb),由可插拔认证模块(PAM)进行认证。使用这种方式更加安全,并且配置更灵活。配置简单的虚拟用户FTP 服务器
1、生成虚拟用户口令库文件

2、配置生成vsftpd 的认证文件
3、建立虚拟用户所要访问的目录并设置相应权限
4、建立配置文件//生成虚拟用户口令库文件,为了建立此口令库文件,先要生成一个文本文件

 

下面我们开始完成建立一个 虚拟用户的 步骤:

 用户:xinlisn

 密码:123456

 

第一步:建立虚拟用户名和密码对应的文本文件,logins.txt 放在/home,ftp服务弄好以后记得删除这个文件,为了安全

 

xinlisn
123456


此文本文件的格式是:单数行为用户名,偶数行为口令,即:用户xinlisn的口令为123456

 

第二步:下面使用db_load 命令生成口令库文件,需要安装 db4-utils-4.2.52-7.1.i386.rpm

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

chmod 600 /etc/vsftpd_login.db

 

第三步:给虚拟用户创建目录


mkdir /home/snuser/ftp

chmod 700 /home/snuser/ftp

 

第四步:创建虚拟ftp用户登录后映射的linux 用户,注-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/home/snuser/ftp

 

useradd –s /sbin/nologin –d /home/snuser/ftp ftpuser

 

第五步:编辑生成虚拟用户所需的PAM 配置文件

vi /etc/pam.d/ftp.vu

 

插入如下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

 

第六步:生成主配置文件 vsftpd.conf,也就是虚拟用户启动所需要的配置文件,不是执行  service vsftpd starts 所默认执行的  /ect/vsftpd/vsftpd.conf 的配置文件,把它放在/etc/vsftpd.conf

# Example config file /etc/vsftpd/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.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out)
#禁止匿名登录
anonymous_enable=NO
#
# 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=002
#
# 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
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容 
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=600
#
# 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 turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#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 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
#定义PAM 所使用的名称,预设为vsftpd
#pam_service_name=vsftpd
#若启用此选项,userlist_deny选项才被启动
userlist_enable=YES
anon_umask=000
#enable for standalone mode
#绑定到listen_port指定的端口
listen=YES
#开启tcp_wrappers支持
tcp_wrappers=YES

guest_enable=YES
pam_service_name=ftp.vu
guest_username=ftpuser
pasv_enable=YES
#virtual_use_local_privs=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
#是否能使用ls -R命令以防止浪费大量的服务器资源
ls_recurse_enable=YES
#允许删除
anon_other_write_enable=YES

 

 

 

特别注意: anon_umask=000

 

理解umask:

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7 。

 

umask = 022 时,新建的目录 权限是755,文件的权限是 644
umask = 077 时,新建的目录 权限是700,文件的权限时 600
vsftpd的local_umask和anon_umask借鉴了它
默认情况下vsftp上传之后文件的权限是600,目录权限是700
想要修改上传之后文件的权限,有两种情况
如果使用vsftp的是本地用户
则要修改配置文件中的 local_umask 的值
如果使用vsftp的是虚拟用户
则要修改配置文件中的 anon_umask 的值 

 

也就是一个匿名用户上传文件以后,这个文件的权限 是由 文件最大权限666和 目录最大权限777 与umask  共同决定的

 

 

举例: 如果你上传一个文件,你的 umask = 022 则,你上传文件以后,文件的权限是644

 

                       110 ,110 ,110

           or         000 ,010 ,010

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

                       110 ,100 ,100                       =644

 

如果你上传一个文件,你的 umask = 000则,你上传文件以后,文件的权限是666

 

                       110 ,110 ,110

           or         000 ,000 ,000

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

                       110 ,110 ,110                       =666

 

 

如果你不设置 anon_unask=000,那么 你上传的文件权限就是 600,也就是这个文件 只能被 文件创建者 读和写的权利,那么虚拟用户上传的文件将不能被自己下载。

 

 

 

以上配置 copy vsftpd的标准配置在/etc/vstfpd/vsftpd.conf ,增加了一些参数,改变了一些参数,具体参数含义可以看看附件中的文档,这些配置 做到:

 

1.登录后该用户已经被锁定在/home/snuser/ftp目录下

2.该用的有只有上传,下载,浏览权限

3.连接的会话失效时间和数据传输的失效时间都是10分钟

4.不允许匿名用户登录

5.不接受linux系统用户登录ftp服务器

 

第七步:先关闭原来的服务,在启动新的服务


 killall vsftpd


/usr/local/sbin/vsftpd /etc/vsftpd.conf &   /*如果失败请cd 到 usr/local/sbin 执行*/

 

 

配置结束配置好后,新的口令库中的所有用户就都可以登录此FTP 服务器了。哈哈,做到这里你已经完成了FTP服务器的配置了,而且已经能满足你日常小局域网了,使用 cmd ,输入ftp 133.*.*.*  验证吧

 

 

关于修改虚假用户名和密码:

 

 

a.如果要删除掉一个虚拟用户,先在logins.txt中删除用户对应的用户名和密码,然后删除vsftpd_login.db,重新运行db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db


b.如果只是要修改用户的密码,只需重新运行db_load就可以


c.如果要改变用户的其它配置,只需修改用户的配置文件

 

 

 

 

 

 

 

参考文章:

http://tristan1.iteye.com/blog/372377

 

 

分享到:
评论

相关推荐

    FTP服务器架设工具

    五、FTP服务器架设工具——VSFTPD VSFTPD(Very Secure FTP Daemon)是Linux系统中的一个轻量级FTP服务器软件,注重安全性和性能: - 配置灵活,可以通过修改配置文件进行定制。 - 支持PAM(Pluggable ...

    使用vsftpd架设FTP服务器

    ### 使用vsftpd架设FTP服务器 #### 一、vsftpd概述 **vsftpd**,全称为“Very Secure FTP Daemon”,是一款专为类UNIX系统设计的FTP服务器软件,其核心优势在于安全性、速度与稳定性。vsftpd在设计之初就将安全...

    Ftp服务器架设软件

    本文将详细介绍如何使用Ftp服务器架设软件来创建和管理自己的FTP服务器。 首先,我们需要理解FTP服务器的基本工作原理。FTP服务器通过监听特定的端口(通常是21号端口)等待客户端的连接请求。当客户端连接到FTP...

    FTP服务器架设教程

    通过这个"FTP服务器架设教程",你将能够学习到从零开始构建一个安全、高效的FTP服务器的过程,无论你是个人用户还是企业管理员,都能从中受益。教程中的详细步骤将帮助你一步步完成配置,让你的文件共享更加便捷和...

    使用VSFTPD架设FTP服务器

    而VSFTPD(Very Secure FTP Daemon)是Linux系统下最受欢迎的FTP服务器软件之一,因其安全性高、配置灵活而受到广大用户的青睐。本文将详细介绍如何使用VSFTPD搭建FTP服务器。 首先,了解FTP服务器的基本概念。FTP...

    用vsFTPd来架设FTP服务器

    ### 使用vsFTPd在Linux系统下搭建FTP服务器 FTP(File Transfer Protocol)即文件传输协议,是一种用于在网络上进行文件传输的协议。而vsFTPd是一款非常流行且安全的FTP服务器软件,它以其强大的功能、简单易用以及...

    FTP服务器架设速成手册

    FTP服务器架设速成手册是一本专为网络爱好者和IT从业者设计的教程,旨在帮助读者快速掌握FTP(File Transfer Protocol)服务器的建立和管理。FTP是互联网上最常用的数据传输协议之一,它允许用户在不同计算机之间...

    FTP服务器架设教程配套资料汇总

    FTP(File Transfer ...总结,FTP服务器架设涉及多个方面,从选择合适的服务器软件,到配置、安全管理,再到性能优化和故障排除,都需要细致入微的工作。这份教程配套资料汇总将是你成功架设FTP服务器的重要指南。

    FTP服务器架设速成手册(HTM)

    本“FTP服务器架设速成手册(HTM)”旨在帮助读者快速掌握如何搭建和管理FTP服务器,以便进行有效的文件共享和管理。 1. FTP服务器基础 FTP服务器是运行FTP服务的软件,它接收来自客户端的FTP命令,处理文件传输请求...

    FTP服务器架设速成手册(DOC).rar

    本手册将引导你快速掌握FTP服务器的架设过程。 一、FTP服务器的基础概念 FTP服务器是提供FTP服务的计算机,它监听特定端口(默认为TCP的20和21号端口)上的连接请求,允许用户通过FTP客户端访问其文件系统。FTP协议...

    linux ftp服务器架设配置教程.docx

    Linux FTP 服务器架设配置教程 Linux FTP 服务器架设配置教程是指在 Linux 操作系统上架设和配置 FTP 服务器的过程。FTP(File Transfer Protocol,文件传输协议)是用于在网络上传输文件的一种标准协议。在 Linux ...

    FTP服务器架设速成手册 (HTM).rar

    本文将深入探讨如何快速搭建FTP服务器,基于提供的"FTP服务器架设速成手册 (HTM)",我们将从以下几个方面进行详细阐述: 1. FTP服务器的基本概念 FTP服务器是一种提供文件存储和访问服务的网络应用,它允许用户通过...

    FTP服务器架设(全).rar

    总结来说,FTP服务器的架设涉及选择合适的服务器软件、配置参数、创建用户账户、设定权限,以及考虑安全措施。通过以上步骤,您将能够成功建立一个稳定的FTP服务环境,实现文件的有效管理和分享。

    FTP服务器架设速成手册.zip

    FTP(File Transfer Protocol)是...通过学习并实践本手册中的步骤,您将能够迅速掌握FTP服务器的架设方法,轻松实现文件的共享和管理。无论是个人项目还是企业协作,FTP服务器都能提供可靠的服务,提升工作效率。

    FTP服务器配置与管理

    FTP服务器配置与管理 FTP 服务器配置与管理是操作系统服务及管理的重要组成部分,本节实验旨在掌握 FTP 服务的工作原理、学会配置 vsftpd 服务器并实践典型的 FTP 服务器配置案例。 FTP 服务工作原理 FTP 服务器...

Global site tag (gtag.js) - Google Analytics