RedHat5.9下搭建FTP服务器

FTP服务:基于C/S结构的文件传输协议

FTP会话属于复合TCP连接:

控制连接:TCP 21端口,发送FTP命令信息

数据连接:TCP 20端口,上传/下载数据

实验环境:

                                    Linux Client

-----RHEL5.9vmnet1----------vmnet1

                                    Win7 Client

一、 实验要求:配置可匿名上传FTP服务


1、安装软件包

[root@server ~]# rpm -q vsftpd

package vsftpd is not installed

[root@server ~]# yum -y install vsftpd

2、修改主配置文件

[root@server ~]# vim /etc/vsftpd/vsftpd.conf

……

27 anon_upload_enable=YES        //允许匿名上传

……

32 anon_mkdir_write_enable=YES   //允许匿名创建目录

33 anon_other_write_enable=YES   //允许匿名创建文件

…….

[root@server ~]# setfacl -m u:ftp:rwx /var/ftp/pub/  //修改本地权限

[root@server ~]# getfacl /var/ftp/pub/

Geofact: Removing leading '/' from absolute path names

# file: var/ftp/pub

# owner: root

# group: root

user::rwx

user:ftp:rwx

group::r-x

mask::rwx

other::r-x

3、启动服务

    [root@server ~]# /etc/init.d/vsftpd restart

[root@server ~]# chkconfig vsftpd on

4、客户端测试(linux客户端)

   [root@client ~]# ftp 192.168.1.1

    Name (192.168.1.1:root): ftp

331 Please specify the password.

Password:

230 Login successful.

ftp>

       ftp> pwd     //查看登录后所在的目录

257 "/"

ftp> cd pub   //切换到默认的共享目录/var/ftp/pub

250 Directory successfully changed.

ftp> !ls      //显示客户端当前目录下的文件

1. txt  anaconda-ks.cfg  Desktop  install.log  install.log.syslog

ftp> put install.log     //上传本地文件到服务器

local: install.log remote: install.log

227 Entering Passive Mode (192,168,1,1,54,22)

150 Ok to send data.

226 File receive OK.

33139 bytes sent in 0.024 seconds (1.4e+03 Kbytes/s)

ftp> mkdir cheshi         //在服务器上创建目录

257 "/pub/cheshi" created

ftp> ls

-rw-------    1 14       50          33139 May 03 04:15 install.log

drwx------    2 14       50           4096 May 03 04:18 cheshi

到服务器端查看:

[root@server ~]# ls /var/ftp/pub/

1.txt  af.txt  cheshi install.log  jwl  MySQL02.txt  test  test.txt

二、配置本地用户访问,禁止匿名登录;验证黑白名单;

  1、安装软件包略:创建用户

[root@server ~]# useradd kaka         //创建用户

[root@server ~]# useradd haha

[root@server ~]# useradd xixi

[root@server ~]# echo "123" | passwd --stdin kaka   //设置密码,免交互

Changing password for user kaka.

passwd: all authentication tokens updated successfully.

[root@server ~]# echo "123" | passwd --stdin haha

Changing password for user haha.

passwd: all authentication tokens updated successfully.

[root@server ~]# echo "123" | passwd --stdin xixi

Changing password for user xixi.

passwd: all authentication tokens updated successfully.

 2、修改主配置文件

[root@server ~]# vim /etc/vsftpd/vsftpd.conf    //修改主配置文件

12 anonymous_enable=NO    //拒绝匿名用户登录

119 userlist_enable=NO       //不启用user_list列表文件

[root@server ~]# vim /etc/vsftpd/ftpusers   //修改黑名单文件

[root@server ~]# grep kaka /etc/vsftpd/ftpusers //kaka加入到黑名单

Kaka

 3、启动服务

[root@server ~]# /etc/init.d/vsftpd restart

4、测试(windows客户端)

  C:\>ftp 192.168.1.1

连接到 192.168.1.1

220 (vsFTPd 2.0.5)

用户(192.168.1.1:(none)): kaka             //kaka登录

331 Please specify the password.

密码:

530 Login incorrect.

登录失败。                         //已加入黑名单,拒绝登录

ftp> quit

221 Goodbye.

   C:\>ftp 192.168.1.1

连接到 192.168.1.1

220 (vsFTPd 2.0.5)

用户(192.168.1.1:(none)): haha          //haha用户

331 Please specify the password.

密码:

230 Login successful.                   //登录成功

ftp> pwd

257 "/home/haha"                    //登录到自己的家目录

ftp> quit

221 Goodbye.

C:\>ftp 192.168.1.1

连接到 192.168.1.1

220 (vsFTPd 2.0.5)

用户(192.168.1.1:(none)): xixi           //xixi用户

331 Please specify the password.

密码:

230 Login successful.               //登录成功

ftp> pwd

257 "/home/xixi"               //登录到自己的家目录

[root@server ~]# vim /etc/vsftpd/vsftpd.conf

..

119 userlist_enable=YES

..

121 userlist_deny=NO

…….

[root@server ~]# vim /etc/vsftpd/user_list

[root@server ~]# grep haha /etc/vsftpd/user_list

Haha

    测试:(haha用户加入白名单,kaka加入到黑名单,xixi用户无操作)

     C:\>ftp 192.168.1.1

连接到 192.168.1.1

220 (vsFTPd 2.0.5)

用户(192.168.1.1:(none)): kaka

530 Permission denied.

登录失败。

ftp> quit

221 Goodbye.

C:\>ftp 192.168.1.1

连接到 192.168.1.1

220 (vsFTPd 2.0.5)

用户(192.168.1.1:(none)): xixi

530 Permission denied.

登录失败。

ftp> quit

221 Goodbye.

C:\>ftp 192.168.1.1

连接到 192.168.1.1

220 (vsFTPd 2.0.5)

用户(192.168.1.1:(none)): haha

331 Please specify the password.

密码:

      230 Login successful.            //只有白名单里的用户可以登录

三、实验要求:将上面的实验环境还原

       禁锢普通用户在自己的主目录里面

       更改匿名用户的站点为/data/anon_pub

       更改本地用户的站点为/data/local_pub

       设置匿名用户下载速率50KB/s,本地用户100KB/s

       最多20个并发,每个ip地址最多2个并发

1、 安装包略

2、 修改主配置文件

 [root@server ~]# vim /etc/vsftpd/vsftpd.conf

       ……

122 chroot_local_user=YES      //禁锢在主目录

123 anon_root=/data/anon_pub  //更改匿名用户的FTP根目录

124 local_root=/data/local_pub   //更改本地用户的FTP根目录

125 anon_max_rate=50000      //匿名用户的最大传输速率

126 local_max_rate=100000     //本地用户的最大传输速率

127 max_clients=20            //限制并发的客户端个数

128 max_per_ip=2             //限制每个客户机ip的并发连接数

..

[root@server ~]# mkdir -p /data/{anon_pub,local_pub}   //创建2个目录

[root@server ~]# dd if=/dev/zero of=/data/anon_pub/anon_db bs=10M count=100       //创建大文件,用于客户端下载测试

[root@server ~]# dd if=/dev/zero of=/data/local_pub/local_db bs=10M count=100       //创建大文件,用于客户端下载测试

[root@server ~]# service vsftpd restart

3、客户端测试

[root@client ~]# wget ftp://192.168.1.1/anon_db    //匿名用户下载

--2014-05-03 14:05:23--  ftp://192.168.1.1/anon_db

          => `anon_db'

Connecting to 192.168.1.1:21... 已连接。

正在以 anonymous 登录 ... 登录成功!

==> SYST ... 完成。    ==> PWD ... 完成。

==> TYPE I ... 完成。  ==> 不需要 CWD

==> SIZE anon_db ... 1048576000

==> PASV ... 完成。    ==> RETR anon_db ... 完成。

长度:1048576000 (1000M)

          0% [            ] 2,035,960   48.4K/s  eta 5h 48m

[root@client ~]# wget ftp://kaka:[email protected]/local_db  //普通用户

--2014-05-03 14:06:56--  ftp://kaka:*password*@192.168.1.1/local_db

          => `local_db'

Connecting to 192.168.1.1:21... 已连接。

正在以 kaka 登录 ... 登录成功!

==> SYST ... 完成。    ==> PWD ... 完成。

==> TYPE I ... 完成。  ==> 不需要 CWD

==> SIZE local_db ... 1048576000

==> PASV ... 完成。    ==> RETR local_db ... 完成。

长度:1048576000 (1000M)

0% [           ] 6,426,872   97.7K/s  eta 2h 53m



注:本文档仅为本人学习之笔记,大神请飘过,不足之处请谅解并真诚接受您的指正。谢谢。



你可能感兴趣的:(linux,redhat,ftp)