Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2787655
  • 博文数量: 423
  • 博客积分: 7770
  • 博客等级: 少将
  • 技术积分: 4766
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 11:58
个人简介

Oracle/DB2/Postgresql/Mysql/Hadoop/Greenplum/Postgres-xl/Mongodb

文章分类

全部博文(423)

文章存档

2019年(3)

2018年(6)

2017年(27)

2016年(23)

2015年(30)

2014年(16)

2013年(31)

2012年(73)

2011年(45)

2010年(14)

2009年(30)

2008年(30)

2007年(63)

2006年(32)

分类: LINUX

2008-03-20 18:20:03

 
原文出处:
 
 
现在这里还没有关于维护vsftp服务器的资料。vsFTP使用的一些补充补充一:如何有选择的把用户限制在家目录中呢?

  我们要自己建一个文件,在/etc目录中

 #touch /etc/vsftpd.chroot_list

  以beinan和nanbei这两个用户限制在他们所在的家目录中,而其它的FTP用户不做此限制。

  在vsftpd.chroot_list这个文件中,把beinan和nanbei添上去就行,注意,每个用户占一行。

 beinan
 nanbei

  然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行

 #chroot_list_enable=YES
 #chroot_list_file=/etc/vsftpd.chroot_list

  把前面的#号去掉,也就是这样的

 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd.chroot_list

  如果没有这样的两行,就可以自己添加上去也是一样的。

  设置好后,重新vsFTPD服务器。

  补充一之补充:如何把系统内所有的FTP用户都限制在家目录中呢??经juliaugong兄的提示,我查找了vsFTPd的洋文说明,证明这个选项是一刀切的解决所有的用户都能限制在家目录中

  我们可以通过更改vsftpd.conf文件,加入如下的一行

 chroot_local_user=YES

  改完配制文件,不要忘记重启vsFTPd服务器

 [root@linuxsir001 root]# /etc/init.d/vsftpd restart
 关闭 vsftpd: [ 确定 ]
 为 vsftpd 启动 vsftpd: [ 确定 ]
 [root@linuxsir001 root]#
补充二:打开vsFTP服务器的日志功能

  把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。

 #xferlog_file=/var/log/vsftpd.log补充三:如何让绑定IP到vsFTP?

  也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP

  在/etc/vsftpd/vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP

 listen_address=192.168.0.2

  加完后,要重启vsFTP服务器

 [root@linuxsir001 root]# /etc/init.d/vsftpd restart
 关闭 vsftpd: [ 确定 ]
 为 vsftpd 启动 vsftpd: [ 确定 ]
 [root@linuxsir001 root]#
补充四:如何让vsFTP服务器限制链接数,以及每个IP最大的链接数??

  答:应该改vsFTP服务器的配制文件vsftpd.conf,加入下面的两行:

  举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:

 max_clients=100
 max_per_ip=5

  改好了配制文件,不要忘记启动vsftp服务器。

补充五:如何限制下载的速度?

  anon_max_rate=数字 注:这是匿名的下载速度 local_max_rate=数字 注:这是vsFTP服务器上普通用户的下载速度

  注:这个数字的单位是字节,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024x80=81920 所以我们要在vsftpd.conf中加入下面的两行

 anon_max_rate=81920
 local_max_rate=81920

  不要忘记重启vsftpd服务

补充六:我的硬盘空间有限,怎么办?

  我的硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?或者是,我的linux所有的目录都放在/根分区,因为空间紧张,我能否把ftp这个用户的默认路径放到别的分区?

  可以,应该如下操作!

  首先要把ftp这个用户删除

 #userdel -r ftp

  会有错误信息,不过不用理,这是正常的。

  然后我们再把这个用户添加上,比如我想为帐号ftp的家目录设置在/mnt/LinG/ftp,我们就可以如下操作

 [root@linuxsir001 root]# mkdir /mnt/LinG
 [root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp

  仅仅是这样做还不行,因为这样还是不能让匿名用户找到它的家目录,所以我们必须改变/mnt/LinG/ftp这个目录的权限。

 [root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/
 [root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/
补充七:如何定制欢迎信息

  如何在我们登入有些FTP之后,会出现类似:欢迎您来到LinuxSir FTP,在这里,您会得到最真诚的帮助,如果有什么问题和建议,请来信,多谢。

  实现这个并不难,我们可以查看vsftpd.cof文件中,是否有这行。

 dirmessage_enable=YES

  如果没有就加上,如果dirmessage_enable=YES前面有#号,就把#号去掉。

  然后我们制定一个.message文件,写上您想要写的东西,比如是.message的内容是如下的:

 欢迎您来到LinuxSir FTP!
 在这里,您会得到最真诚的帮助;
 如果有什么问题和建议,请来信,多谢。

  我们可以用编辑器来写这个.message,我想这个过程就不用说了吧。

  然后我们把.message这个文件复制到各个用户的家目录中。比如我的FTP的一个用户是beinan,这个用户所在的家目录是/home/beinan

  我们就要把.message放在/home/beinan这个目录下。如果系统用户ftp,他的目录就是/var/ftp这个目录,这个是默认的,当匿名用户登入时就访问的是/var/ftp这个目录。我们要让匿名用户能看到欢迎信息。就要把.message放在/var/ftp目录中。其它的用户,也无非就是类似的操作。

补充八:如何实现虚拟路径?

  比如: /home/a 映射为ftp://localhost/a /home/b/c 则为ftp://localhost/c

  其实这个不能说是vsFTPd的内容,其实我们早就接触过了,可能我们没有注意,我们可以通过如下的方法来实现。

 #mount --bind [原有的目录] [新目录]

  比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作

  我们要先在/var/ftp目录中建一个目录

 #mkdir /var/ftp/WinSoft

  然后执行mount命令

 #mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft

  这样就OK了。

补充九:如何上匿名访问、上传,并支持下载和执行?

  在默认的情况下,vsftp是不支持匿名用户的访问的,所以我们要自己打开相应的选项。现在我针对这个问题,我们要打开如下的选项。

 anonymous_enable=YES 注:允许匿名访问
 anon_upload_enable=YES 注:允许上传
 anon_mkdir_write_enable=YES 注:允许建立相应的目录
 anon_umask=022 把上传到FTP的文件或者目录改变权限

  当然打开这些选项还是不行的,我们还要让匿名写入文件的上一级目录有写入权,以我所做的FTP为例,我所做的FTP的匿名访问的目录是 /var/ftp,在vsFTPd中,/var/ftp这个目录是不能让匿名用户有写入权限的,这是为了安全考虑,所以我们必须自己在/var/ftp目录中建一个目录,让这个目录有写入权。

  比如:我在/var/ftp目录建一个upload目录,然后把它的权限设置成777,这样匿名用户就能写入了。

 #mkdir /var/ftp/upload
 #chmod 777 /var/ftp/upload

  改了一系列的文件,不要忘记重启vsFTPd服务器

  我是用standalone模式的,当然用下面的方法

 [root@linuxsir001 root]# service vsftpd restart
 关闭 vsftpd: [ 确定 ]
 为 vsftpd 启动 vsftpd: [ 确定 ]
 [root@linuxsir001 root]#

  如果您用的是xinetd模式来启动vsFTPd,我们要重启xinetd服务器

  通过pam认证,用db_load添加用户,是真正的虚拟用户。现在我们简单的介绍一下,通过以后的学习,我们再深入补充:

  1。在/etc/pam.d/目录中创建一个文件ftp

 [root@linuxsir001 root]# touch /etc/pam.d/ftp

  2。在/etc/pam.d/ftp里面加上如下的两行

 auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
 account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

  3。创建一系统的用户名用密码的文件logins.txt

 [root@linuxsir001 root]# touch logins.txt

  在logins.txt文件中,输入如下的内容。这个内容您可以自己来定。比如我下面的。其实linuxsir007是FTP的虚拟用户名, 123456是linuxsir007的密码;linuxsir008是虚拟用户名,234567是linuxsir008的密码,以此类推,您想加入几个就是几个;下面是我添加的FTP的虚拟用户名和密码。

 linuxsir007
 123456
 linuxsir008
 234567
 linuxsir009
 567890
 linuxsir010
 678901
 linuxsir011
 789012

  4。创建一个真实的用户名linuxsir006,这个linuxsir006的用户,所在的家目录由您来定。我在这里不多说了。我是按系统默认的来添加的。

 [root@linuxsir001 root]# useradd linuxsir006

  5。把/etc/hosts复制到/home/linuxsir006,并改变它的属主

 [root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts
 [root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts

  6。通过db_load来创建虚拟用户的库文件。我们在前面建的logins.txt文件,我是放在了/root用户目录下。所以咱们得把目录切换到/root目录来创建虚拟用户的库文件。

 [root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

  7。更改vsftpd.conf文件,加入如下的几行

 pam_service_name=ftp
 guest_enable=YES
 guest_username=linuxsir006
 anon_world_readable_only=NO

  8。重启vsFTPd服务器;改了一系列的文件,不要忘记重启vsFTPd服务器

  2。复制vsftpd.conf到/etc/目录下,因为xinetd对vsFTPd配制文件应该在/etc目录下,所以我们就必须把这个文件复制到/etc目录下,否则会出现系统中local用户无法登入,也就是说,不复制这个文件会出现ftp非匿名用户无法访问,只能用匿名用户访问。

 [root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf

  3。更改配制文件/etc/vsftpd.conf,把如下的项注掉:也就是把

 listen=YES

  改为

 #listen=YES

  或者是把这行删除也行。

  4。把/etc/init.d/vsftpd这个文件删除。其实最好的备份到别处,因为我们有时实验来实验去,可能还会转到standalone模式启动。我就直接移动到别的目录,比如是/root下面的backup目录。

 [root@linuxsir001 root]#mkdir /root/backup
 [root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup

  5。运行ntsysv,把vsftpd的服务取消

 [root@linuxsir001 root]#ntsysv
 [ ] vsftpd

  6。重启xinetd服务

 [root@linuxsir001 root]# service xinetd restart
我的一个简单配置

  我是用standalone模式的,当然用下面的方法

 [root@linuxsir001 root]# service vsftpd restart
 关闭 vsftpd: [ 确定 ]
 为 vsftpd 启动 vsftpd: [ 确定 ]
 [root@linuxsir001 root]#

  如果您用的是xinetd模式来启动vsFTPd,我们要重启xinetd服务器

 [root@linuxsir001 root]# service xinetd restart
 停止 xinetd: [ 确定 ]
 启动 xinetd: [ 确定 ]
 [root@linuxsir001 root]#

  9。如果您想让用户登入FTP时,登入成功的相应的信息,请把您制作的.message复制到您的用户的家目录中,这方面的请参考前面的补充。

  10。测试:

 [root@linuxsir001 root]# ftp 192.168.0.1
 Connected to 192.168.0.1.
 220 (vsFTPd 1.1.3)
 530 Please login with USER and PASS.
 530 Please login with USER and PASS.
 KERBEROS_V4 rejected as an authentication type
 Name (192.168.0.1:root): linuxsir007
 331 Please specify the password.
 Password:
 230-欢迎光临LinuxSir自由FTP
 230-在这里,您将得到最真诚的帮助!
 230-本站限度为30KB!
 230-每个IP限四个线程
 230-请大家遵守FTP的有关规定。
 230-多谢合作!
 230-
 230-LinuxSir管理部
 230 Login successful. Have fun.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> ls
 227 Entering Passive Mode (192,168,0,1,85,171)
 150 Here comes the directory listing.
 -rw-r--r-- 1 ftp ftp 174 Jun 01 12:59 hosts
 drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008
 drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun
 226 Directory send OK.
 ftp>
补充十一:如何把系统默认用standalone启动改为用xinetd启动?

  如何把Redhat 9.0中系统默认安装的vsftpd-1.1.3-8.i386.rpm,系统默认vsFTPd是用standalone启动方式,改为xinetd启动方式 ?如果是用源码包安装的,安装后就是xinetd模式,如果是用RPM包安装的,在Redhat 9.0中,应该用下面的方法来解决。

  1.在/etc/xinetd.d/目录中创建一个文件vsftpd

 [root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd

  /etc/xinetd.d/vsftpd内容如下:

阅读(1463) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~