vsftp安装及使用

前段时间想在rh9下拷一些数据到fedora的机子,手头没有可用的U盘,于是想采用ftp的方式,将rh9作成一个ftp服务器,然后fedora作为一个客户端get到自己想要的数据

 

先查了一下rh9有没有安装vsftp,rpm -qa| grep vsftp,结果显示了相应的版本号,一切OK

 

在rh9端先用命令 /etc/init.d/vsftp start,启动了ftp服务器

在fedora的终端敲入 ftp ftpserverip,回车,用户名输入anonymous,密码直接回车

输入help可以直接查看可用命令,输入dir显示当前目录下的文件夹,可见有一个pub文件,cd pub后ls却什么都看不到,这是因为服务器端还没有将相应的公共文件放到共享目录

于是回到rh9.公共文件目录在/var/ftp/pub中,将公共文件放到该文件夹,然后/etc/init.d/vsftp restart一下

然后客户端就可以用get命令下载文件了

 

简单的架设ftp服务器和使用就这样简单,当然我只是想在两台机子间传一些文件,复杂的使用可以参考下面的文章

 

 

 

 

以下是一些参考:

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

http://www.5dlinux.com/article/9/2009/linux_29773.html

 

现如今越来 越多的人选择了开源的Linux操作系统,其不逊于Windows的性能和平易近人的价格是人们选择它的最好理由,而Red Hat Linux 9是Linux操作系统中使用最广的一种。Red Hat Linux 9利用其简单的配置和用户熟悉的图形界面为人们提供了丰富的Internet服务,FTP便是其提供的服务之一。在众多的网络应用中,FTP有着非常重要 的地位,互联网中各种各样的软件资源大多数都放在FTP服务器中。与大多数互联网服务一样,FTP也是一个客户机/服务器系统。下面我就给大家简单介绍一 下如何在Red Hat Linux 9 下架设FTP服务器,希望藉此抛砖引玉。

  1.安装vsftpd服务器

  vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“Very Secure”(很安全)的缩写,可见它的最大优点就是安全,除此之外,它还具有体积小,可定制强,效率高的优点。

  如果选择完全安装Red Hat Linux 9.0,则系统会默认安装vsftpd服务器。我们可以在终端命令窗口输入以下命令进行验证:

  [root@ahpeng root] rpm -qagrep vsftpd

  如果结果显示为“vsftpd-1.1.3-8”,则说明系统 已经安装vsftpd服务器。如果安装Red Hat Linux 9.0时没有选择vsftpd服务器,则可以在图形环境下单击“主菜单→系统设置→添加删除应用程序”菜单项,在出现的“软件包管理”对话框里确保选中 “FTP服务器”选项,然后单击“更新”按钮,按照屏幕提示插入第3张安装光盘即可开始安装。

  另外,你也可以直接插入第3张安装光盘,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安装包,然后在终端命令窗口运行以下命令即可开始安装进程:

  [root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm

  2.启动/重新启动/停止vsftpd服务

  从Red Hat Linux 9.0开始,vsftpd默认只采用standalone方式启动vsftpd服务,方法是在终端命令窗口运行以下命令:

  [root@ahpeng root] /etc/rc.d/init.d/vsftpd start

  重新启动vsftpd服务:

  [root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart

  关闭vsftpd服务:

  [root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop

  确认vsftpd服务已经启动后,我们可以在任意一台 Windows主机的DOS命令窗口里输入“ftp FTPAddres”(用实际的FTP服务器IP地址或者域名代替FTPAddres),注意用户名、密码都是ftp(ftp是匿名用户的映射用户账 号),如下所述:

  Microsoft Windows XP [版本 5.1.2600]

  (C) 版权所有 1985-2001 Microsoft Corp.

  F:/Peter>ftp FTPAddress

  Connected to FTPAddress

  220 (vsFTPd 1.1.3)//vsftpd的响应请求

  User (FTPAddress:(none)): ftp//输入用户账号ftp

  331 Please specify the password.

  Password://输入密码ftp

  230 Login successful. Have fun.

  ftp>

  3.vsftpd的配置

  在Red Hat Linux 9.0里的vsftpd共有3个配置文件,它们分别是:

  vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

  vsftpd.conf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

  (1)用户登录控制

  anonymous_enable=YES,允许匿名用户登录。

  no_anon_password=YES,匿名用户登录时不需要输入密码。

  local_enable=YES,允许本地用户登录。

  deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。

  banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。

  (2)用户权限控制

  write_enable=YES,开启全局上传权限。

  local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。

  anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。

  anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。

  chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!

  chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。

  chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。

  chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。

  nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。

  async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!

  ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。

  注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用SIZE/big/file这样的指令大量消耗FTP服务器的I/O资源。

  这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。

  (3)用户连接和超时选项

  idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。

  data_connection_timeout=120,设定默认的数据连接超时时间。

  (4)服务器日志和欢迎信息

  dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。

  ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。

  xferlog_enable=YES,启用记录上传/下载活动日志功能。

  xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log.

 

 

 

 

 

 

 

http://bbs.51cto.com/archiver/tid-17681.html

 

FTP服务器的配置

RedHat Linux 9.0 FTP服务器的配置方法与具体步骤
1.       vsftpd的FTP服务器的配置文件名称、路径,及其配置文件格式和作用?
2.       在重新配置 vsftpd的FTP服务器后,如何重启FTP服务器?如何关闭FTP服务器?
3.       vsftpd的FTP服务器的共享文件存放路径?
4.       请在虚拟终端下用匿名账号和本地账号测试vsftpd的默认配置,并写出整个实验过程以及结论。
实验平台:Red Hat Linux 9.0
实验过程:
1、
主配置文件: /etc/vsftpd/vsftpd.conf
anonymous_enable=YES    //允许匿名登录
local_enable=YES         //允许本地用户登录
write_enable=YES        //开放本地用户的写权限
local_umask=022         //开放本地用户的文件生成掩码为022,默认值为077
dirmessage_enable=YES   //当切换到目录时,显示该目录下的.message隐含文件的内容
                         这是由于默认情况下有message_file=.message的设置
xferlog_enable=YES        //激活上传和下载日志
connect_from_port_20=YES   //启用FTP数据端口的连接请求
xferlog_std_format=YES      //使用标准的ftpd xferlog日志格式
pam_service_name=vsftpd    //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下
userlist_enable=YES        //激活vsftpd检查userlist_file指定的用户是否可以访问vsftpd服务器,userlist_file的默认值是/etc /vsftpd.user_list,由于默认情况下userlist_deny=YES,所以/etc/vsftpd.user_list文件中所列的 用户均不能访问此服务器
listen=YES                 //使vsftpd处于独立启动模式
tcp_wrappers=YES        //使用tcp_wrappers作为主机访问控制方式
2、
[root@localhost root]# /etc/rc.d/init.d/vsftpd  restart
[root@localhost root]# /etc/rc.d/init.d/vsftpd  stop
3、
/var/ftp/pub
[b]4[/b][b]、[/b][b][/b]
[b]测试[/b][b]vsftpd[/b][b]的默认配置——匿名账号[/b][b][/b]
在默认下,匿名服务器下载目录/ var/ftp/pub没有任何内容,可先向该目录复制些文件。
[root@localhost root]# cd /var/ftp
[root@localhost ftp]# ls
pub
[root@localhost ftp]# cd
[root@localhost root]# cp /tmp/Screenshot-1.png  /var/ftp/pub
[b]1[/b][root@localhost root]# echo "[b]welcome to this Directory.[/b]">/var/ftp/pub/[b].[/b]message
//生成目录信息文件 /var/ftp/pub/.message,用户也可用vi 编辑此文件
[root@localhost root]# cat /var/ftp/pub/.message
welcome to this Directory.
[root@localhost root]# cd /var/ftp/pub
[root@localhost pub]# ls
Screenshot-1.png
[root@localhost pub]# ls -a
.  ..  .message   Screenshot-1.png
[b]2[/b][root@localhost pub]# cd
[root@localhost[b] root[/b]]# [url=ftp://ftp%20127.0.0.1/]ftp 127.0.0.1[/url]     //使用FTP客户端连接本地FTP服务器
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.1.3)
Name (127.0.0.1:root): anonymous      //使用匿名FTP账号(ftp或anonymous)
331 Please specify the password.
Password:                          //输入E-mail地址作为FTP匿名账号的口令
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls                             //列出显示匿名FTP服务器目录(/var/ftp/pub)
227 Entering Passive Mode (127,0,0,1,161,17)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Apr 05 22:44 pub
226 Directory send OK.
ftp> cd pub                           //进入匿名FTP服务器下载目录
250-welcome to this Directory.            //此处显示了.message文件的内容
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (127,0,0,1,229,132)
150 Here comes the directory listing.
-rw-r--r--    1 0        0          133816 Mar 13 23:09 Screenshot-1.png
226 Directory send OK.
[b]3[/b]ftp> mget Scr*                    //下载文件Screenshot-1.png
mget Screenshot-1.png? y
227 Entering Passive Mode (127,0,0,1,188,222)
150 Opening BINARY mode data connection for Screenshot-1.png (133816 bytes).
226 File send OK.
133816 bytes received in 0.0413 secs (3.2e+03 Kbytes/sec)
[b]4[/b]ftp> [b]![/b]ls        //显示本地文件    “本地”即“/root”下
285-             dirlist                 Mail
285-~            index                   mbox
anaconda-ks.cfg    nohup.out
bbb              Index of _private_文件  Screenshot-1.png
dead.letter      install.log             scrollkeeper-tempfile.1
Desktop          install.log.syslog      你好吗?
    //确认已经将文件下载到本地“/root”下
[b]5[/b]ftp> put install.log          //上传文件install.log                           
local: install.log remote: install.log
227 Entering Passive Mode (127,0,0,1,156,19)
550 Permission denied.         //上传文件失败
ftp> cd /              //切换到根目录(即/var/ftp/)
250 Directory successfully changed.
ftp> ls                //显示根目录下的内容
227 Entering Passive Mode (127,0,0,1,44,41)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Apr 05 22:44 pub
226 Directory send OK.
ftp> bye              //退出FTP
221 Goodbye.
[b]6[/b][root@localhost root]# cat /var/log/vsftpd.log     //查看日志
[b]测试[/b][b]vsftpd[/b][b]的默认配置——本地账号[/b][b][/b]
[b][root@localhost root]# tail -5 /etc/passwd       //[/b][b]查看本地普通用户[/b]
gdm:x:42:42::/var/gdm:/sbin/nologin
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin
gcb:x:500:500::/home/gcb:/bin/bash
osmond:x:501:501::/home/osmond:/bin/bash
[b][root@localhost root]# ftp 127.0.0.1[/b]
ftp: connect: Connection refused
ftp> bye
[b][root@localhost root]#/etc/rc.d/init.d/vsftpd start[/b]
为 vsftpd 启动 vsftpd:                                    [  确定  ]
[b][root@localhost root]# ftp 127.0.0.1[/b]
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.1.3)
Name (127.0.0.1:root): [b]gcb[/b]         //[b]本地账号gcb[/b]登录
331 Please specify the password.
Password:                       //输入gcb的口令
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
[b]ftp> ls                          //[/b][b]显示远程主机gcb[/b][b]自家目录(/home/gcb[/b][b])[/b]
227 Entering Passive Mode (127,0,0,1,120,244)
150 Here comes the directory listing.
drwxrwxr-x    2 500      500          1024 Mar 28 22:44 public_html
226 Directory send OK.
[b]ftp> cd public_html    //[/b][b]进入public_html[/b][b]目录[/b]
250 Directory successfully changed.
[b]ftp> ls[/b]
227 Entering Passive Mode (127,0,0,1,92,199)
150 Here comes the directory listing.
-rw-rw-r--    1 500      500            15 Mar 12 17:22 index.html
-rw-r--r--    1 500      500         21856 Mar 28 22:44 install.log
226 Directory send OK.
[b]ftp> get index.html           //[/b][b]下载文件index.html[/b]
local: index.html remote: index.html
227 Entering Passive Mode (127,0,0,1,225,109)
150 Opening BINARY mode data connection for index.html (15 bytes).
226 File send OK.
15 bytes received in 0.0318 secs (0.46 Kbytes/sec)
[b]ftp> !ls[/b]
。。。
anaconda-ks.cfg  fcitx-3.0.0rc-tar-bz2的安装~  nohup.out
bbb              index                         Screenshot-1.png
dead.letter      [b]index.html[/b]                    scrollkeeper-tempfile.1
Desktop          Index of _private_文件        你好吗?

[b]ftp> !ls –l                         //[/b][b]显示本地文件,检查下载到/root[/b][b]目录情况 [/b]
。。。
-rw-r--r--    1 root     root         3471  4月  5 23:46 fcitx-3.0.0rc-tar-bz2的安装~
lrwxrwxrwx    1 root     root           11  3月 13 22:53 index -> /root/index
-rw-r--r--    1 root     root           15  4月  6 00:42 [b]index.html[/b]
[b]ftp> put fcitx-3.0.0rc.tar.bz2     //[/b][b]上传文件fcitx-3.0.0rc.tar.bz2[/b]
local: fcitx-3.0.0rc.tar.bz2 remote: fcitx-3.0.0rc.tar.bz2
227 Entering Passive Mode (127,0,0,1,202,93)
150 Ok to send data.
226 File receive OK.
1445049 bytes sent in 0.147 secs (9.6e+03 Kbytes/sec)
[b]ftp> ls             //[/b][b]显示远程主机上的文件,确认文件fcitx-3.0.0rc.tar.bz2[/b][b]已经上传 [/b]
227 Entering Passive Mode (127,0,0,1,143,85)
150 Here comes the directory listing.
-rw-r--r--    1 500      500       1445049 Apr 06 00:45 [b]fcitx-3.0.0rc.tar.bz2[/b]
-rw-rw-r--    1 500      500            15 Mar 12 17:22 index.html
-rw-r--r--    1 500      500         21856 Mar 28 22:44 install.log
226 Directory send OK.
[b]ftp> cd /                  //[/b][b]切换到根目录[/b]
250 Directory successfully changed.
[b]ftp> ls[/b]
227 Entering Passive Mode (127,0,0,1,108,155)
150 Here comes the directory listing.
-rw-r--r--    1 0        0          129431 Mar 16 22:18 223
-rw-r--r--    1 0        0            6515 Mar 09 16:45 P14-19
drwxr-xr-x    2 0        0            4096 Mar 07 01:16 bin
drwxr-xr-x    4 0        0            1024 Mar 07 00:57 boot
drwxr-xr-x   20 0        0          118784 Apr 06 00:32 dev
drwxr-xr-x   63 0        0            8192 Apr 06 00:31 etc
-rwxr-xr-x    1 0        0              10 Mar 28 23:22 gcb
drwxr-xr-x    5 0        0            1024 Mar 16 22:46 home
-rwxr-xr-x    1 0        0              15 Mar 28 23:23 index.html
drwxr-xr-x    2 0        0            4096 Jan 24  2003 initrd
drwxr-xr-x    9 0        0            4096 Mar 07 01:16 lib
drwx------    2 0        0           16384 Mar 07 00:52 lost+found
drwxr-xr-x    2 0        0            4096 Jan 28  2003 misc
drwxr-xr-x    8 0        0            4096 Mar 28 23:16 mnt
drwxr-xr-x    2 0        0            4096 Jan 24  2003 opt
dr-xr-xr-x   81 0        0               0 Apr 06 00:31 proc
drwxr-x---   27 0        0            4096 Apr 06 00:45 root
drwxr-xr-x    2 0        0            8192 Mar 15 22:46 sbin
drwxr-xr-x    3 0        0            4096 Mar 07 01:19 tftpboot
drwxrwxrwt   14 0        0            4096 Apr 06 00:39 tmp
drwxr-xr-x   15 0        0            4096 Mar 07 00:55 usr
drwxr-xr-x   21 0        0            4096 Mar 07 01:25 var
-rw-r--r--    1 0        0            1860 Mar 08 22:47 未命名 1
226 Directory send OK.

[b]ftp> cd /tmp[/b]
250 Directory successfully changed.
[b]ftp> ls[/b]
227 Entering Passive Mode (127,0,0,1,242,207)
150 Here comes the directory listing.
-rw-r--r--    1 0        0          510932 Feb 24  2003 dhcp-3.0pl1-23.i386.rpm
-rw-r--r--    1 500      500         21856 Mar 28 22:48 install.log
-r-xr-xr-x    1 0        0          707027 Mar 07 12:52 install_flash_player_6_linux.tar.gz
drwx------    2 0        0            4096 Mar 19 15:20 kde-root
drwx------    2 0        0            4096 Mar 28 10:47 ksocket-root
-r-xr-xr-x    1 0        0        23179241 Jul 21  2004 lumaqq-0.1b.tar(1).bz2
drwx------    2 0        0            4096 Mar 19 15:21 mcop-root
drwx------    2 500      500          4096 Mar 16 00:38 orbit-gcb
drwx------    2 0        0           24576 Apr 06 00:59 orbit-root
-rwxr--r--    1 0        0           39848 Mar 20 21:00 scrollkeeper-tempfile.1
drwx------    2 0        0            4096 Mar 21 21:25 ssh-XXNZyHzO
drwx------    2 500      500          4096 Mar 15 23:51 ssh-XXOQq8QO
drwx------    2 0        0            4096 Mar 13 19:06 ssh-XXaA9E5e
drwx------    2 0        0            4096 Apr 06 00:32 ssh-XXrAzc3X
226 Directory send OK.

[b]ftp> mget dhc*     //[/b][b]下载远程主机/ tmp[/b][b]目录下的文件dhcp-3.0pl1-23.i386.rpm[/b]
mget dhcp-3.0pl1-23.i386.rpm? y
227 Entering Passive Mode (127,0,0,1,170,48)
150 Opening BINARY mode data connection for dhcp-3.0pl1-23.i386.rpm (510932 bytes).
226 File send OK.              //下载文件dhcp-3.0pl1-23.i386.rpm成功
510932 bytes received in 0.354 secs (1.4e+03 Kbytes/sec)
[b]ftp> !ls[/b]
285-                     fcitx-3.0.0rc                 install.log.syslog
285-~                    fcitx-3.0.0rc.tar.bz2         Mail
anaconda-ks.cfg          fcitx-3.0.0rc-tar-bz2的安装   mbox
bbb                      fcitx-3.0.0rc-tar-bz2的安装~  nohup.out
dead.letter              index                         Screenshot-1.png
Desktop                  index.html                    scrollkeeper-tempfile.1
[b]dhcp-3.0pl1-23.i386.rpm[/b]  Index of _private_文件        你好吗?
dirlist                  install.log
[b]ftp> ls[/b]
227 Entering Passive Mode (127,0,0,1,229,140)
150 Here comes the directory listing.
-rw-r--r--    1 0        0          510932 Feb 24  2003 dhcp-3.0pl1-23.i386.rpm
-rw-r--r--    1 500      500         21856 Mar 28 22:48 install.log
-r-xr-xr-x    1 0        0          707027 Mar 07 12:52 install_flash_player_6_linux.tar.gz
drwx------    2 0        0            4096 Mar 19 15:20 kde-root
drwx------    2 0        0            4096 Mar 28 10:47 ksocket-root
-r-xr-xr-x    1 0        0        23179241 Jul 21  2004 lumaqq-0.1b.tar(1).bz2
drwx------    2 0        0            4096 Mar 19 15:21 mcop-root
drwx------    2 500      500          4096 Mar 16 00:38 orbit-gcb
drwx------    2 0        0           24576 Apr 06 00:59 orbit-root
-rwxr--r--    1 0        0           39848 Mar 20 21:00 scrollkeeper-tempfile.1
drwx------    2 0        0            4096 Mar 21 21:25 ssh-XXNZyHzO
drwx------    2 500      500          4096 Mar 15 23:51 ssh-XXOQq8QO
drwx------    2 0        0            4096 Mar 13 19:06 ssh-XXaA9E5e
drwx------    2 0        0            4096 Apr 06 00:32 ssh-XXrAzc3X
226 Directory send OK.
[b]ftp> !ls[/b]
285-                     fcitx-3.0.0rc                 install.log.syslog
285-~                    fcitx-3.0.0rc.tar.bz2         Mail
anaconda-ks.cfg          fcitx-3.0.0rc-tar-bz2的安装   mbox
bbb                      fcitx-3.0.0rc-tar-bz2的安装~  nohup.out
dead.letter              index                         Screenshot-1.png
Desktop                  index.html                    scrollkeeper-tempfile.1
dhcp-3.0pl1-23.i386.rpm  Index of _private_文件        你好吗?
dirlist                  install.log
ftp> pwd
257 "/root"

[b]ftp> put bbb        //[/b][b]上传bbb[/b][b]文件到远程主机的/tmp[/b][b]目录 [/b]
local: bbb remote: bbb
227 Entering Passive Mode (127,0,0,1,48,217)
150 Ok to send data.
226 File receive OK.
7 bytes sent in 5.1e-05 secs (1.3e+02 Kbytes/sec)
[b]ftp> ls[/b]
227 Entering Passive Mode (127,0,0,1,29,32)
150 Here comes the directory listing.
-rw-r--r--    1 500      500        133816 Apr 06 00:56 Screenshot-1.png
-rw-r--r--    1 500      500             7 Apr 06 01:14[b] bbb[/b]
drwxrwxr-x    2 500      500          1024 Apr 06 00:45 public_html
226 Directory send OK.
[b]ftp> pwd[/b]
257 "/home/gcb"
[b]ftp> bye[/b]
221 Goodbye.
//查看日志
[b][root@localhost root]# cat /var/log/vsftpd.log[/b]

重新连接本地FTP服务器
[root@localhost root]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.1.3)
Name (127.0.0.1:root): root            //以root 用户登录
530 Permission denied.
Login failed.                     //登录失败
ftp> bye
221 Goodbye.
//以下是登录失败的原因:由于root用户写在了/etc/vsftpd.ftpusers文件中。
[root@localhost root]# cat /etc/vsftpd.ftpusers |grep root   
root
[b] [/b]
[b] [/b]
[b] [/b]
[b] [/b]
[b]通过以上的操作,得出在Red Hat Linux 9[/b][b]默认设置下的结论:[/b]
(1)       允许匿名用户和本地用户登录。
(2)       匿名用户的登录为ftp(或anonymous),口令为一个E-mail地址。
(3)       匿名用户不能离开匿名服务器目录/var/ftp,且只能下载不能上传。
(4)       本地用户的登录名为本地用户名,口令为此本地用户的口令。
(5)       本地用户可以离开自家目录切换到有权访问的其他目录,并在权限允许的情况下进行上传/下载。
(6)       写在文件/etc/ftpusers 中的本地用户禁止登录。
(7)  要使用户在下载文件时能够续传文件,必须保证文件对其他用户有读的权限,否则,当续传时不能读取已传的服务器上的文件。






http://blog.sina.com.cn/s/blog_4fed8bc50100ebet.html

/etc/vsftpd/vsftpd.conf文件详解,分好类,方便大家查找与学习


#################匿名权限控制###############

anonymous_enable=YES   #是否启用匿名用户
no_anon_password=YES   #匿名用户login时不询问口令

下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。
anon_upload_enable=(yes/no);  #控制匿名用户对文件(非目录)上传权限。
anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限
anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限
anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名

注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置

write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
anon_root=(none) #匿名用户主目录
anon_max_rate=(0) #匿名用户速度限制
anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever #匿名上传文件所属用户名


#################本地用户权限控制###############

write_enable=YES #可以上传(全局控制) 删除,重命名
local_umask=022  #本地用户上传文件的umask
userlist_enable=YES #限制了这里的用户不能访问
local_root  #设置一个本地用户登录后进入到的目录
user_config_dir  #设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名
download_enable  #限制用户的下载权限

chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever #匿名上传文件所属用户名

chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_file=/etc/vsftpd/chroot_list #指定限制的用户文件

user_config_dir= #后面跟存放配置文件的目录。用来实现不同用户不同权限。
   #在vsftpd.conf文件中加入这一句,
   #在相应的目录里面,为每个用户创建自己的配置文件,用来实现不同的权限


可以通过以下三条配置文件来控制用户切换目录。
chroot_list_enable=YES/NO   #设置是否启用chroot_list_file配置项指定的用户列表文件。
      #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 .默认值为yes。

chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定在自家目录中的用户的列表文件。

chroot_list_enable=YES
通过与chroot_local_user=YES/NO搭配能实现以下几种效果:
1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。


下面是个实例,希望对大家有用:

1、只能上传。不能下载、删除、重命名。
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

对于参数的详细的解释
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER

CWD - change working directory 更改目录
DELE - delete a remote file 删除文件
LIST - list remote files 列目录
MKD - make a remote directory 新建文件夹
NLST - name list of remote directory
PWD - print working directory 显示当前工作目录
RETR - retrieve a remote file 下载文件
RMD - remove a remote directory 删除目录
RNFR - rename from 重命名
RNTO - rename to 重命名
STOR - store a file on the remote host 上传文件


# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username

# less common commands:

# ACCT* - send account information
# APPE - append to a remote file
# CDUP - CWD to the parent of the current directory
# HELP - return help on using the server
# MODE - set transfer mode
# NOOP - do nothing
# REIN* - reinitialize the connection
# STAT - return server status
# STOU - store a file uniquely
# STRU - set file transfer structure
# SYST - return system type

2、只能下载。不能上传、删除、重命名。write_enable=NO
3、只能上传、删除、重命名。不能下载。download_enable=NO

4、只能下载、删除、重命名。不能上传。
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST


###################虚拟用户设置###################

虚拟用户使用PAM认证方式。
pam_service_name=vsftpd  #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。

check_shell=YES   #(注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 )
guest_enable= YES/NO  #启用虚拟用户。默认值为NO。
guest_username=ftp  #这里用来映射虚拟用户。默认值为ftp。
virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。
    #当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。


###################访问控制设置###################

两种控制方式:一种控制主机访问,另一种控制用户访问。

1、控制主机访问:
tcp_wrappers=YES/NO

设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。

比如:若要仅允许192.168.10.1—192.168.10.254的用户可以连接FTP服务器,

则在
/etc/hosts.allow
/etc/hosts.deny
文件中添加以下内容:


其格式如下:

限制的服务:ip(网段)
vsftpd:192.168.1.
vsftpd:192.168.1.12
vsftpd:192.168.1.0/255.255.255.0这里不能写成192.168.1.0/24

2、控制用户访问:

vsftpd.ftpusers  #用于保存不允许进行FTP登录的本地用户帐号。就是vsftp用户的黑名单

vsftpd.user_list

(1)设置禁止vsftpd.user_list文件中的用户登录:要在主配置文件vsftpd.conf中修改如下两项,
userlist_enable=yes
userlist_deny=yes
说明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。

(2)设置只允许vsftpd.user_list文件中的用户登录;同样的道理要把主配置文件vsftpd.conf 中的语句修改如下两项: 
userlist_enable=yes
userlist_deny=no
 说明:配置完以后,只允许vsftpd.user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。

 

###################超时设置##################

idle_session_timeout=600 #空闲连接超时
data_connection_timeout=120 #数据传输超时
ACCEPT_TIMEOUT=60  #PAVS请求超时
connect_timeout=60  #PROT模式连接超时


################服务器功能选项###############

xferlog_enable=YES    #开启日记功能
xferlog_std_format=YES   #使用标准格式
log_ftp_protocol=NO    #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
pasv_enable=YES    #允许使用pasv模式
pasv_promiscuous+NO    #关闭安全检查,小心呀.
port_enable=YES    #允许使用port模式
prot_promiscuous    #关闭安全检查
tcp_wrappers=YES    #开启tcp_wrappers支持
pam_service_name=vsftpd   #定义PAM 所使用的名称,预设为vsftpd。
nopriv_user=nobody    #当服务器运行于最底层时使用的用户名
pasv_address=(none)    #使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)

 

#################服务器性能选项##############
ls_recurse_enable=YES  #是否能使用ls -R命令以防止浪费大量的服务器资源
one_process_model  #是否使用单进程模式
listen=YES   绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
text_userdb_names=NO   #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名     #称。若是希望出现拥有者的名称,则将此功能开启。

use_localtime=NO    #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
#use_sendfile=YES    #测试平台优化

 

################信息类设置################

ftpd_banner=welcome to FTP .  #login时显示欢迎信息.如果设置了banner_file则此设置无效
dirmessage_enable=YES   #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
setproctitle_enable=YES   #显示会话状态信息,关!


############## 文件定义 ##################

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list  #定义不能更改用户主目录的文件
userlist_file=/etc/vsftpd/vsftpd.user_list  #定义限制/允许用户登录的文件
banner_file=/etc/vsftpd/banner    #定义登录信息文件的位置
banned_email_file=/etc/vsftpd.banned_emails  #禁止使用的匿名用户登陆时作为密码的电子邮件地址
xferlog_file=/var/log/vsftpd.log   #日志文件位置
message_file=.message     #目录信息文件


############## 目录定义 #################

user_config_dir=/etc/vsftpd/userconf  #定义用户配置文件的目录
local_root=webdisk    #此项设置每个用户登陆后其根目录为/home/username/webdisk
       #定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录      #来说的.
anon_root=/var/ftp     #匿名用户登陆后的根目录

 

#############用户连接选项#################


max_clients=100    #可接受的最大client数目
max_per_ip=5    #每个ip的最大client数目
connect_from_port_20=YES   #使用标准的20端口来连接ftp
listen_address=192.168.0.2   #绑定到某个IP,其它IP不能访问
listen_port=2121    #绑定到某个端口
ftp_data_port=2020    #数据传输端口
pasv_max_port=0    #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_min_port=0    #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。


##############数据传输选项#################

anon_max_rate=51200  #匿名用户的传输比率(b/s)
local_max_rate=5120000  #本地用户的传输比率(b/s)


##############安全选项#################

Idle_session_timeout=600 #(用户会话空闲后10分钟)
Data_connection_timeout=120 #(将数据连接空闲2分钟断)
Accept_timeout=60  #(将客户端空闲1分钟后断)
Connect_timeout=60  #(中断1分钟后又重新连接)
Local_max_rate=50000  #(本地用户传输率50K)
Anon_max_rate=30000  # (匿名用户传输率30K)

Pasv_min_port=50000  # (将客户端的数据连接端口改在
Pasv_max_port=60000  #50000—60000之间)

Max_clients=200   #(FTP的最大连接数)
Max_per_ip=4   #(每IP的最大连接数)
Listen_port=5555  #(从5555端口进行数据连接)

 

以上如果有什么不全或错误的地方,请大家与我联系,我及时改进,谢谢


【案例1】建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。

(1)配置FTP匿名用户的主目录为/var/ftp/anon。下载带宽限制为100kB/s

(2)建立一个名为abc,口令为xyz的FTP账户。下载带宽限制为500kB/s。

(3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。

mkdir /var/fpt/anon

useradd abc
passwd abc

vim /etc/vsftpd/vsftpd.conf

主要内容如下

anonymous_enable=YES
anon_root=/var/ftp/anon
anon_max_rate=100
# Uncomment this to allow local users to log in.
local_enable=YES
local_max_rate=500
max_clients=100
max_per_ip=3
connect_timeout=300

 

以上是本地的LOCAL用户

下面是用虚拟用户来实现

 

vim /etc/vsftpd/vuser

内容如下

tom
123

 

生成数据库文件
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db

vim /etc/pam.d/vsftpd


注释掉原来的内容

然后加入

 

auth        required    pam_userdb.so   db=/etc/vsftpd/vuser
account     required    pam_userdb.so   db=/etc/vsftpd/vuser

最后编辑VSFTPD.CONF加入下面两句

guest_enable=YES
guest_username=abc

 

大家可以自行测试。

到此,案例一完成


【案例2】
1、新建一分区,10G空间,ext3 文件系统,挂在到 /ftp下,作为 ftp服务器数据存放地方。

2、四个部门:dep1,dep2, dep3, dep4,分别对应目录 /ftp/dep1,/ftp/dep2,/ftp/dep3,/ftp/dep4。另外设定一个公共目录 /ftp/public。

3、五个用户:admin,user1,user2,user3,user4。其中:user 1/2/3/4分别对应部门dep 1/2/3/4,他们只能访问自己所属部门的目录和public目录。如:user1只能访问dep1和public目录,不能访问其它目录。admin为管理员用户,可以访问 ftp 服务器上的任何目录。

4、用户访问权限限制:user1/2/3/4在所能访问的目录,具有上传文件、下载文件的功能,但是不能够删除文件、更改文件权限等功能。admin管理员用户对所有目录具有文件上传、下载、删除、权限更改等功能。

5、对每个部门定制一个 quota,设置该账户的文件配额为1000个;磁盘配额为2G。

6、匿名用户不能访问。


第一、增加一块硬盘,然后分区,把分区挂载情况写入/etc/fstab

# fdisk /dev/hdb
# mkfs.ext3 /dev/hdb1
# mkidr /ftp
# mount /dev/hdb1 /ftp -o usrquota,grpquota

# vim /etc/fstab
加入下面一句

/dev/hdb1               /ftp                    ext3    defaults,usrquota,grpquota      0 0


第二、建立用户组和用户和相应的文件夹并更改权限,达到题目要求

# groupadd dep1
# groupadd dep2
# groupadd dep3
# groupadd dep4
# groupadd boobooke

# usradd  -G dep1,boobooke user1
# usradd  -G dep2,boobooke user2
# usradd  -G dep3,boobooke user3
# usradd  -G dep4,boobooke user4
# usradd  -G dep1,dep2,dep3,dep4,boobooke admin

# passwd user1
# passwd user2
# passwd user3
# passwd user4
# passwd admin

# mkdir /ftp/dep1
# mkdir /ftp/dep2
# mkdir /ftp/dep3
# mkdir /ftp/dep4
# mkdir /ftp/public

# chmod uesr1:dep1 /ftp/dep1
# chmod uesr2:dep2 /ftp/dep2
# chmod uesr3:dep3 /ftp/dep3
# chmod uesr4:dep4 /ftp/dep4
# chmod admin:boobooke /ftp/public

# chmod 770 /ftp/dep1
# chmod 770 /ftp/dep2
# chmod 770 /ftp/dep3
# chmod 770 /ftp/dep4
# chmod 770 /ftp/pubic


最终结果如下

-rw------- 1 root  root      8192 Jul 26 11:46 aquota.group
-rw------- 1 root  root      7168 Jul 26 11:46 aquota.user
drwxrwx--- 2 user1 dep1      4096 Jul 25 20:47 dep1
drwxrwx--- 2 user2 dep2      4096 Jul 25 20:47 dep2
drwxrwx--- 2 user3 dep3      4096 Jul 25 20:47 dep3
drwxrwx--- 2 user4 dep4      4096 Jul 25 20:47 dep4
drwx------ 2 root  root     16384 Jul 25 20:44 lost+found
drwxrwx--- 2 admin boobooke  4096 Jul 25 20:48 public

第三、创建quota,配置磁盘配额

#mount /dev/hdb1 /ftp -o usrquota,grpquota
# quotacheck -cuvg /dev/sdb1
# quotaon -a
# edquota -g dep1

Disk quotas for group dep1 (gid 503):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hdb1                         0    1024000    2048000          0      500     1000

# edquota -g -p dep1 dep2 dep3 dep4(-u -g将源用户组和群组的quota设置套用至其他用户或群组。)


第四、编辑VSFTPD.CONF

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

加入
local_root=/ftp
user_config_dir=/etc/vsftpd/ftp_config_dir 


开启chroot

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


第五、建立用户的独立文件

# mkdir /etc/vsftpd/ftp_config_dir
# vim /etc/vsftpd/ftp_config_dir/user1

cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,HELP,LIST,MODE,MDTM,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER


# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user2
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user3
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user4

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值