Linux通过RPM方式安装vsftpd
 
 
要求:vsftpd 要求配置成只读,锁定用户在home,非匿名访问
 
第一步:下载vsftpdRPM包并安装
 
  你可以从下面两个地方获得最新的vsftpdRPM Redhat's rpm collection 或者 rpmfind.net.为了你的方便, 你也可以使用wget下载vsftpdrpm包到你的本地电脑.
 
 
一但有了vsftpdRPM,你就可以安装它.
我是直接在安装光盘上找的,这样保险点,因为我下的几个版本都装不上。
 
安装
#rpm -Uvh vsftpd-1.1.3-8.i386.rpm
  就这样. Vsftpd现在正式安装.
 
第二步:启动并进行测试
 
vi /etc/vsftpd/vsftpd.conf
 
修改下面一行, 或者查看文件确定存在下面一行:
listen=YES
保存并退出.
现在来启动vsftpd...
/usr/sbin/vsftpd &
 
现在来用ftp命令至你的服务器. 你可以看到如下面这下样的成功登陆后的会话信息:
[root@localhost nibj]# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): nibj
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,124,161)
150 Here comes the directory listing.
drwxr-xr-x   12 501      20           4096 Nov 28 02:17 httpd-2.2.6
-rw-r--r--    1 0        0        30597120 Nov 27 08:35 httpd-2.2.6.tar
drwxrwxrwx   39 503      100          4096 Nov 27 07:26 mysql-5.0.27
-rw-r--r--    1 0        0        25867740 Nov 27 06:59 mysql-5.0.27.tar.gz
-rw-r--r--    1 0        0        12046184 Nov 28 02:19 php-5.2.6.tar.gz
-rw-r--r--    1 0        0          128155 Feb 02  2007 vsftpd-2.0.1-5.EL4.5.x86_64.rpm
226 Directory send OK.
ftp>
 
出现这样服务就基本上没有什么问题了,在看看我们的要求,继续做。
 
第三步:修改vsftpd主配置文件
 
vsftpd主要配置应该是在:/etc/vsftpd.conf.也可能在/etc/ vsftpd/vsftpd.conf. 这个文件将决定如何对你的vsftpd FTP服务器进行操作. 你必须在vsftpd.conf中查找是否包含下面的配置选项。我虽然不能讲诉所有的选面,但是列表中列出来了vsftpd配置的重要部分 :
 
anonymous_enable=NO/YES   #是否匿名访问
这个开关用于开启FTP的匿名访问. 如果将该选项打开,那么请按照第三步的方法进行匿名匿名服务的配置. 如果你不清楚什么是匿名FTP服务,最好把该选项选项设置为“ON
 
local_enable=NO/YES
启用或禁用这个选项,可以使本地系统用户FTP至你的服务器. 典型的FTP服务器会将其设置为"YES". 我认为只有一种可以选"NO",
 
write_enable=NO/YES    #设置读写功能
启用或禁用FTP的写入功能.你必须将其设置为"YES" .
 
local_umask=022 (或者根据你的需要设置)
vsftpd默认的umask:077. 它决定目录和文件被创建时得到的初始权限
 
xferlog_enable=YES
这个选项是启用或禁用服务器的上传&下载日志记录.
 
ftpd_banner=Welcome to blah FTP service
没有任何形式来界定该选项, 但它可以为你的FTP服务器定制一个更加友好的问候.
 
chroot_list_enable=NO/YES
chroot_list_file=/etc/vsftpd.chroot_list
这是一个对于开启了"chroot"选项相当重要的功能. "chroot_list_enable" 设置为"YES", vsftpd会寻找在 "chroot_list_file"指定的下一行位置. 被列出在"/etc/vsftpd.chroot_list" 文件中的任何用户,会自动的"chrooted"至他们的主目录. 这将禁止用户进入除了他或她们用户主目录之外的任何位置. 非常适用于共享的FTP环境或者安全与保密性一般的层面.
 
userlist_enable=NO/YES
userlist_deny=NO/YES
"userlist_enable"选项是用于控制下面两个文件中其中的一个: vsftpd.ftpusers vsftpd.user_list.如果这个选项设置为 "YES", 这两个文件将列出用户名单将允许访问FTP服务. 不管怎样,当额外加上"userlist_deny=YES",这两个文件将列出用户名单将不允许访问FTP服务.这个选项是一个非常有用的彻底拒绝通过ftp获取关键系统用户的功能.比如"root""apche""www"这样的用户. 对于你的FTP服务器的安全是一个非常好的用途.
 
第四步: vsftpd.ftpusers, vsftpd.user_list 配置文件
 
这两个文件直接与/etc/vsftpd.conf配置文件中的""userlist_enable" "userlist_deny"选项关联."userlist_enable"选项设置为 "YES", 这两个文件列表中的用户将允许访问FTP服务器. 不管怎样, 当额外加上"userlist_deny=YES"选项时,这两个文件列表中的用户将不允许访问FTP服务器. "userlist_deny"选项被使用时,决定一个有户是否被FTP服务拒绝,主要取决于它存在于上述两个文件中的其中的哪一个.
 
如果一个用户同时存在于"vsftpd.user_list""userlist_deny",当用户试图连接FTP服务器时,它们在开始请求FTP连接时 得不到密码提示并会被拒绝.
 
如果一个用户同时存在于"vsftpd.user_list""userlist_deny", 用户必须登陆后更改这一密码提示.
 
就个人而言, 我更喜欢使用 "vsftpd.user_list"来建立用户列表(root, apache, www, nobody等等.) 如果有谁从未见到密码提示,那么他应该进行FTP的初始化连接.
 
第五步: vsftpd.chroot_list 配置文件
 
"vsfrtpd.chroot_list", 当启用"chroot_list_enable"选项时, FTP建立的用户列表文件,不管是谁,都必须被 "chrooted"至主FTP目录. 那些用户不能改变路径到其它用户目录.在保密性较强的公共FTP环境中,这是一个非常不错的功能.
 
在任何时间你都可以改变你的配置文件, 并确认后重启vsftpd!
   Service vsftpd start / restart
 
就这么简单. 这里还有其它很多选项,可以根据你的需求,进行补充, 到此你就已经可以配置了一部大体上比较安全的FTP服务器.
 
注意:第四步和第五步根据情况来做,我一般不做。
发表于: 2008-12-01 ,修改于: 2008-12-01 15:28,已浏览1204次,有评论3条 推荐 投诉
Linux通过RPM方式安装vsftpd _Linux
Linux通过RPM方式安装vsftpd _RPM_02

网友评论
内容:
11月22日
vsftp中使用chroot,指定ip,限速.
如果设置为
chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即, 可以浏览其主目录的上级目录.

所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在
文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)
中即可(一行一个用户名).
 
 
允许匿名用户上传文件 

  在vsftpd.conf文件中修改或增加以下选项: 
  write_enable=YES 
  anon_world_readable_only=NO 
  anon_upload_enable=YES 
  anon_mkdir_write_enable=YES 

  然后创建供匿名用户上传文件的目录,并设定权限: 
  # mkdir /var/ftp/incoming 
  # chmod o+w /var/ftp/incoming 
  由于匿名用户(ftp)上传文件,需要对incoming目录进行操作,而incoming为root所有,匿名用户(ftp)对于incoming来说是其他用户,所以要加入其他用户(o)的写权限。 
 
anon_max_rate=value 
  设定匿名用户的最大数据传输速度value,以Bytes/s为单位。默认无。 

  local_max_rate=value 
  设定用户的最大数据传输速度value,以Bytes/s为单位。默认无。此选项对所有的用户都生效。此外,也可以在用户个人配置文件中使用此选项,以指定特定用户可获得的最大数据传输速率。 
  步骤如下: 
  ①在vsftpd.conf中指定用户个人配置文件所在的目录,如: 
  user_config_dir=/etc/vsftpd/userconf 
  ②生成/etc/vsftpd/userconf目录。 
  ③用户个人配置文件是在该目录下,与特定用户同名的文件,如: 
  /etc/vsftpd/userconf/xiaowang 
  ④在用户的个人配置文件中设置local_max_rate参数,如: 
  local_max_rate=80000 
  以上步骤设定FTP用户xiaowang的最大数据传输速度为80KBytes/s。 

  VSFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s, 但实际的速度可能在80KBytes/s 到120KBytes/s 之间。当然,若是线路带宽不足时,速率自然会低于此限制。
unix_jie 评论于:2009-02-12 11:02:08 (211.101.19.★)
Linux通过RPM方式安装vsftpd _RPM_03
内容:
VSFTP的方法是限制一个连接的速度,也就是说如果开两个连接,就能达到两倍了
所以不限制连接数就肯定做不到限速
unix_jie 评论于:2009-02-12 11:05:09 (211.101.19.★)
Linux通过RPM方式安装vsftpd _RPM_03
内容:
在这里介绍的主要是针对vsFTPd服务器的初级配置,因此就不一一介绍安装方法了。
系统默认安装的几个文件位置:
    /etc/init.d/vsftpd     启动脚本
    /etc/pam.d/vsftpd      验证文件
    /etc/vsftpd.conf       主配置文件
    /home/ftp              默认ftp家目录

一.在默认安装情况下,/etc/vsftpd.conf配置文件中有如下几项:
  listen=yes               (独立的VSFTPD服务器)*
  anonymous_enable=yes      (允许匿名登陆)
  dirmessage_enable=yes    (切换目录时,显示目录下.message的内容)
  xferlog_enable=yes       (激活上传和下载的日志)*
  connect_form_port_20=yes (启用FTP数据端口的数据连接)
以下为debian系统的个性化配置:
  secure_chroot_dir=/var/run/vsftpd     (此选项用于指定一个空目录. 并且ftp 用户不应对此目录有写权限. 当vsftpd不需要访问文件系统时, 此目录做为一个限制目录, 将用户限制在此目录中)
  pam_service_name=vsftpd          (指定vsftpd的验证文件,可自己更改)
  rsa_cert_file=/etc/ssl/certs/vsftpd.pem (vsftpd用的rsa证书的位置)
功能:默认安装配置是使用匿名用户访问。可下载,不可上传。默认目录为/home/ftp
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的是属于FTP的基本选项,建议添加到配置文件中。
开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
  Anon_upload_enable=yes      (开放上传权限)
  Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
  Write_enable=yes            (开放用户写的权限)
  Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
***以上功能开启请慎重***

二、本地用户访问服务器(独立服务器)
在配置文件中添加如下信息即可:
  Local_enble=yes             (本地帐户能够登陆)
  Write_enable=no             (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
用户登陆限制进其它的目录,只能进它的主目录,设置所有的本地用户都执行chroot
  Chroot_local_user=yes       (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
  Chroot_list_enable=yes      (文件中的名单可以调用)
  Chroot_list_file=/etc/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
限制本地用户访问FTP
  Userlist_enable=yes         (用userlist来限制用户访问)
  Userlist_deny=yes           (名单中的人不允许访问,设置为no时允许访问)
  Userlist_file=/etc/vsftpd.chroot_list (默认文件)
注:后面2个设置需要在第一个设置为yes时有效。
其他选项
  Idle_session_timeout=600(秒)   (用户会话超时时间)
  Data_connection_timeout=120(秒)(数据连接超时时间)
  Accept_timeout=60(秒)     (pasv模式数据连接的超时时间)
  Connect_timeout=60(秒)    (port模式数据连接的超时时间)
  Local_max_rate=50000(bite)(本地用户最大传输率)
  Anon_max_rate=30000(bite) (匿名用户最大传输率)
  Pasv_min_port=50000         (Pasv模式数据连接端口最小值)
  Pasv_max_port=60000         (Pasv模式数据连接端口最大值)
  Max_clients=200             (FTP用户的最大连接数)
  Max_per_ip=5                (每IP的最大连接数)
  Listen_port=10021           (ftp服务器监听端口)
 
三、虚拟用户访问服务器(独立运行)
配置独立FTP的服务器的非端口标准模式进行数据连接
修改vsftpd.conf
    Listen_port=10021
配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限(两个有读目录的权限,一个有浏览、上传、下载的权限,一个有浏览、下载、删除和改文件名的权限)
1、进入/etc所在的文件夹
    #mv vsftpd.conf vsftpd-ftp.conf  (备份配置)
2、建立logins.txt
    #mkdir /etc/vsftpd
    #cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/*  /etc/vsftpd
    #cd ./vsftpd
    #编辑logins.txt添加以下信息:
        test1------------用户名
        test1------------密码
        test2------------用户名
        test2------------密码
        ……
    格式要按照一行用户名,一行密码
3、建立访问者的口令库文件,然后修改其权限
   #db_load –T –t hash -f /etc/vsftpd/logins.txt /etc/vsftpd_login.db
注:也可能用db3_load,需要安装 libdb3-util
4、复制vsftpd目录下的vsftpd.pam
    #cp /etc/vsftpd/vsftpd.pam /etc/pam.d/
查看此文件中是否有如下信息
    auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
    account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
5、在/home下创建目录并改变其属性和它的属主
    #mkdir /home/ftpvirtual
    #useradd -d /home/ftpvirtual -s /sbin/nologin virtual
    #chmod 700 /home/ftpvirtual
    #chown virtual:virtual /home/ftpvirtual 
   在ftpvirtual目录中添加test_file测试文件
6、配置vsftpd.conf中的信息
修改vsftpd.conf文件
    anonymous_enable=NO         (禁用匿名帐户)
    local_enable=YES            (启用本地用户)
    write_enable=NO             (禁止写操作)
    anon_upload_enable=NO       (禁止上传)
    anon_mkdir_write_enable=NO  (禁止建立目录)
    anon_other_write_enable=NO  (禁止其他写操作)
    anon_world_readable_only=NO (启用其他用户浏览功能)*
    chroot_local_user=YES       (限制在用户自己目录内)
    guest_enable=YES            (启用虚拟帐户)
    guest_username=virtual      (指定虚拟帐户名称)
    listen=YES                  (独立运行ftp)
    listen_port=21              (监听21端口,默认21可更改)
    pasv_enable=YES             (启用被动数据传输模式)
    pasv_min_port=30000         (pasv模式数据连接端口最小值)
    pasv_max_port=30999         (pasv模式数据连接端口最大值)
 
以下为可选项
    dirmessage_enable=YES       (目录欢迎信息)
    xferlog_enable=YES          (启用日志)
    connect_from_port_20=YES    (主动模式数据传输端口)
    Idle_session_timeout=600(秒)   (用户会话超时时间)
    Data_connection_timeout=120(秒)(数据连接超时时间)
    Accept_timeout=60(秒)     (pasv模式数据连接的超时时间)
    Local_max_rate=50000(bite)(本地用户最大传输率)
    Pasv_min_port=50000         (Pasv模式数据连接端口最小值)
    Pasv_max_port=60000         (Pasv模式数据连接端口最大值)
    Max_clients=200             (FTP用户的最大连接数)
    Max_per_ip=5                (每IP的最大连接数)
    pam_service_name=vsftpd.pam
    secure_chroot_dir=/var/run/vsftpd
注:如果客户端在防火墙内部,建议使用被动数据传输模式。
***虚拟用户ftp服务器就算建好了,可以做一下测试……
7、创建不同虚拟用户不同的权限
在vsftpd.conf所在的目录中创建virtaul文件目录并在文件目录中创建以你用户名命名的配置文件:
test1        test2        test3        test4
在test1中添加:  Anon_world_readable_only=no
在test2中添加:  Anon_world_readable_only=no
    #这样此两个用户就有了浏览目录的权限了
在test3中添加:  Anon_world_readable_only=no
                 Write_enable=yes
                 Anon_upload_enable=yes
    #此用户就有了上传、下载和浏览的权限
在test4中添加:  Anon_world_readable_only=no
                 Write_enable=yes
                 Anon_upload_enable=yes
                 Anon_other_write_enable=yes
    #此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限
8、修改vsftpd.conf
    加入user_config_dir=/etc/virtual
 
9、 虚拟用户的个人目录
无论是哪个虚拟用户,登录后所在的目录都是/var/ftp,即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。首先,在主配置文件中加入以下选项:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:
# mkdir /etc/vsftpd/vsftpd_user_conf
# cd /etc/vsftpd/vsftpd_user_conf
# touch xiaowang
以上的操作为虚拟用户xiaowang建立了个人配置文件/etc/vsftpd/vsftpd_user_conf/xiaowang。接下来,在xiaowang的个人配置文件中将xiaowang的自家目录修改为/home/xiaowang,配置选项为:
local_root=/home/xiaowang
然后,新建xiaowang目录,并将权限设为vsftpdguest:
# mkdir /home/xiaowang
# chown vsftpdguest.vsftpdguest ./xiaowang
# chmod 600 /home/xiaowang
经过以上设置,xiaowang登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/xiaowang”目录。
从文件系统层次来看,由于“/home/xiaowang”目录的权限是属于vsftpdguest的,所以其他的虚拟用户同样也可以访问 xiaowang的自家目录。解决这个问题也很简单,我们只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。

http://blog.chinaunix.net/u2/70049/showart_1005173.html