vsftp安装及使用

来源:互联网 发布:java 转utf8 编辑:程序博客网 时间:2024/04/30 01:17

前段时间想在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 Linux9是Linux操作系统中使用最广的一种。Red Hat Linux9利用其简单的配置和用户熟悉的图形界面为人们提供了丰富的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 Linux9.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命令窗口里输入“ftpFTPAddres”(用实际的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是否与tcpwrapper相结合来进行主机的访问控制。默认值为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。其中:user1/2/3/4分别对应部门dep1/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  -Gdep1,boobooke user1
# usradd  -G dep2,boobooke user2
# usradd  -G dep3,boobooke user3
# usradd  -G dep4,boobooke user4
# usradd  -G dep1,dep2,dep3,dep4,boobookeadmin

# 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 user1dep1     4096 Jul 25 20:47 dep1
drwxrwx--- 2 user2dep2     4096 Jul 25 20:47 dep2
drwxrwx--- 2 user3dep3     4096 Jul 25 20:47 dep3
drwxrwx--- 2 user4dep4     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:48public

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

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

Disk quotas for group dep1 (gid503):
 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

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 白色衣服和牛仔裤洗变色了怎么办 生完孩子肚子上的松皮怎么办 xp电脑玩cf进入地图黑屏怎么办 爸妈吵架妈妈走了爸爸哭了该怎么办 总担心旅馆被拍视频传上网怎么办 微博买了猜冠军现在停了怎么办 脸上毛孔大有黑头怎么办小窍门去 进去精神病院出来真的疯了怎么办 房子已过户新业主不交物业费怎么办 村委会欠百姓征地补偿款不给怎么办 因为近亲人人都不看好的婚姻怎么办 碰到工作中特别积极的同事怎么办 丈夫车祸死亡妻子和孩子以后怎么办 丈夫死后妻子改嫁儿子不同意怎么办 满了60岁社保没满15年怎么办 捷豹的dpf灯亮了怎么办 朋友如新直销产品是你该怎么办 传福音接受了却被家人拦阻该怎么办 奶奶出钱由孙子抓奖中奖后怎么办 我不想学车了驾校不同意退学怎么办 2017年大学挂科面临退学怎么办 微信重新登录后东西全没了怎么办 宝宝吃鸡蛋过敏全身起红疹怎么办 180在产蛋鸡因断鸡减产怎么办 住友39熔接机熔接损耗大怎么办 支付宝实名认证刷脸失败怎么办 支付宝注册刷脸不是本人怎么办 小学科学只考88分中学怎么办 收银机关机时才上传数据是怎么办 刚做的系统玩cf卡屏怎么办 办健康证的资料掉了怎么办 刚刚办得的健康证掉了怎么办 房子都过户了银行贷不了款怎么办 我要办大病迁出应该怎么办啊? 遗产继承后户口没地迁出怎么办 安徽蒙城怎么办去韩国的签证的 夜间有人私自收停车费应该怎么办 上次摸不到环尾丝这次摸到了怎么办 法院判决书下来后对方不给钱怎么办 法院判决书下来了钱还保全么怎么办 深圳路边泊车不知道泊车编号怎么办