设为首页 收藏本站
查看: 1808|回复: 0

[经验分享] vsftp安装及使用

[复制链接]

尚未签到

发表于 2015-11-6 12:32:59 | 显示全部楼层 |阅读模式
  前段时间想在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服务器。我们可以在终端命令窗口输入以下命令进行验证:
    [iyunv@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安装包,然后在终端命令窗口运行以下命令即可开始安装进程:
    [iyunv@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm
    2.启动/重新启动/停止vsftpd服务
    从Red Hat Linux 9.0开始,vsftpd默认只采用standalone方式启动vsftpd服务,方法是在终端命令窗口运行以下命令:
    [iyunv@ahpeng root] /etc/rc.d/init.d/vsftpd start
    重新启动vsftpd服务:
    [iyunv@ahpeng root] /etc/rc.d/init.d/ vsftpd restart
    关闭vsftpd服务:
    [iyunv@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.iyunv.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、
[iyunv@localhost root]# /etc/rc.d/init.d/vsftpd  restart
[iyunv@localhost root]# /etc/rc.d/init.d/vsftpd  stop
3、
/var/ftp/pub
4
测试vsftpd的默认配置——匿名账号
在默认下,匿名服务器下载目录/ var/ftp/pub没有任何内容,可先向该目录复制些文件。
[iyunv@localhost root]# cd /var/ftp
[iyunv@localhost ftp]# ls
pub
[iyunv@localhost ftp]# cd
[iyunv@localhost root]# cp /tmp/Screenshot-1.png  /var/ftp/pub
1[iyunv@localhost root]# echo "welcome to this Directory.">/var/ftp/pub/.message
//生成目录信息文件 /var/ftp/pub/.message,用户也可用vi 编辑此文件
[iyunv@localhost root]# cat /var/ftp/pub/.message
welcome to this Directory.
[iyunv@localhost root]# cd /var/ftp/pub
[iyunv@localhost pub]# ls
Screenshot-1.png
[iyunv@localhost pub]# ls -a
.  ..  .message   Screenshot-1.png
2[iyunv@localhost pub]# cd
[iyunv@localhost root]# ftp 127.0.0.1     //使用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.
3ftp> 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)
4ftp> !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”下
5ftp> 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.
6[iyunv@localhost root]# cat /var/log/vsftpd.log     //查看日志
测试vsftpd的默认配置——本地账号
[iyunv@localhost root]# tail -5 /etc/passwd       //查看本地普通用户
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
[iyunv@localhost root]# ftp 127.0.0.1
ftp: connect: Connection refused
ftp> bye
[iyunv@localhost root]#/etc/rc.d/init.d/vsftpd start
为 vsftpd 启动 vsftpd:                                    [  确定  ]
[iyunv@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): gcb         //本地账号gcb登录
331 Please specify the password.
Password:                       //输入gcb的口令
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls                          //显示远程主机gcb自家目录(/home/gcb
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.
ftp> cd public_html    //进入public_html目录
250 Directory successfully changed.
ftp> ls
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.
ftp> get index.html           //下载文件index.html
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)
ftp> !ls
。。。
anaconda-ks.cfg  fcitx-3.0.0rc-tar-bz2的安装~  nohup.out
bbb              index                         Screenshot-1.png
dead.letter      index.html                    scrollkeeper-tempfile.1
Desktop          Index of _private_文件        你好吗?

ftp> !ls –l                         //显示本地文件,检查下载到/root目录情况
。。。
-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 index.html
ftp> put fcitx-3.0.0rc.tar.bz2     //上传文件fcitx-3.0.0rc.tar.bz2
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)
ftp> ls             //显示远程主机上的文件,确认文件fcitx-3.0.0rc.tar.bz2已经上传
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 fcitx-3.0.0rc.tar.bz2
-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.
ftp> cd /                  //切换到根目录
250 Directory successfully changed.
ftp> ls
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.

ftp> cd /tmp
250 Directory successfully changed.
ftp> ls
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.

ftp> mget dhc*     //下载远程主机/ tmp目录下的文件dhcp-3.0pl1-23.i386.rpm
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)
ftp> !ls
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> ls
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.
ftp> !ls
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"

ftp> put bbb        //上传bbb文件到远程主机的/tmp目录
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)
ftp> ls
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 bbb
drwxrwxr-x    2 500      500          1024 Apr 06 00:45 public_html
226 Directory send OK.
ftp> pwd
257 "/home/gcb"
ftp> bye
221 Goodbye.
//查看日志
[iyunv@localhost root]# cat /var/log/vsftpd.log

重新连接本地FTP服务器
[iyunv@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文件中。
[iyunv@localhost root]# cat /etc/vsftpd.ftpusers |grep root   
root




通过以上的操作,得出在Red Hat Linux 9默认设置下的结论:
(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

  
             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135880-1-1.html 上篇帖子: ubuntu 下安装vsftp win7中用fileZilla 访问 下篇帖子: Linux系统单网卡上添加/绑定IP方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表