创建FTP服务器的具体方法

网络 网络管理
下面我们详细介绍了如何进行创建FTP服务器。那么具体的过程步骤和消息代码我们都进行了说明。希望对大家能够有所帮助。

FTP服务器的应用是非常广泛的。所以我们现在来介绍一下如何创建FTP服务器。那么在实际应用中,FTP服务器的使用要具有提供上传和下载功能。此外,出于安全考虑,还需要有用户身份验证、用户权限设置及空间管理等。下面就来搭建这样一个FTP服务器。

创建FTP服务器1.创建欢迎语。如果希望使用者在进入目录时,能够看到欢迎语或对本目录的介绍,可以通过以下方法来实现。

确定/etc/vsftpd/vsftpd.conf文件中dirmessage_enable=YES,默认情况下,Red Hat 9.0有此设置。接着,在目录中新增名为.message的文件。本例在/home/ylg目录下创建一个.message文件,其内容为“欢迎来到我的FTP站点”。

创建FTP服务器2.更换FTP服务器的默认端口。将预设的21端口改为2121,这样做是基于安全的考虑。更改方法为,使用vi打开/etc/vsftpd/vsftpd.conf:

  1. #vi /etc/vsftpd/vsftpd.conf  

在文件***增加如下一行内容:

  1. listen_port=2121  

创建FTP服务器3.取消anonymous登录的功能。在vsftpd.conf文件中找到如下一行,并将其值改为“NO”:

  1. anonymous_enable=YES  

创建FTP服务器4.设定使用者不得更改目录。这样做的目的也是基于安全性的考虑。一般情况下,使用者的预设目录为/home/username。若是不希望使用者在登录后能够切换至上一层目录/home,则可通过以下设置来实现。在/etc/vsftpd/vsftpd.conf文件中找到以下三行内容:

  1. #chroot_list_enable=YES 
  2. # (default follows)  
  3. #chroot_list_file=/etc/vsftpd.chroot_list  

将其改为:

  1. chroot_list_enable=YES 
  2. # (default follows)  
  3. chroot_list_file=/etc/vsftpd/chroot_list  

新增一个文件/etc/vsftpd/chroot_list,文件内容为两个用户名:

  1. ylg  
  2. user1  

创建FTP服务器5.针对不同的使用者限制不同的速度。假设用户ylg所能使用的***速度为500Kb/s,用户user1所能使用的***速度为250Kb/s,可以通过以下方法设置。在/etc/vsftpd/vsftpd.conf文件尾部新增以下一行:

  1. user_config_dir=/etc/vsftpd/userconf  

增加一个名为/etc/vsftpd/userconf的目录:

  1. #mkdir /etc/vsftpd/userconf  

#p#在/etc/vsftpd/userconf下新增一个名为ylg的文件,其内容如下所示:

  1. local_max_rate=500000  

在/etc/vsftpd/userconf目录下新增一个名为user1的文件,其内容如下所示:

  1. local_max_rate=250000  

VSFTP对于速度的限制范围大概在80%到120%之间,也就是限制***速度为100Kb/s,但实际的速度可能在80Kb/s到120Kb/s之间。如果频宽不足,数值会低于此限制。

创建FTP服务器6.对于每一个联机用户,都以独立的进程来运行。一般情况下,在启动VSFTP时,只会看到一个名为vsftpd的进程在运行。但若是读者希望每一个联机用户都能以独立的进程来呈现,则可通过在/etc/vsftpd/vsftpd.conf文件中增加以下一行来实现:

  1. setproctitle_enable=YES  

创建FTP服务器7.保存/etc/vsftpd/vsftpd.conf文件,然后重新启动vsftpd:

  1. #service vsftpd restart  

创建FTP服务器8.测试刚创建的FTP服务器。

以缺省方式登录会被拒绝,因为此时的默认端口号已经更改为2121,所以登录时需指定端口。

  1. # ftp 127.0.0.1  
  2. ftp: connect: Connection refused  

此时也不能再使用匿名方式登录:

  1. # ftp 127.0.0.1 2121  
  2. Connected to 127.0.0.1 (127.0.0.1).  
  3. 220 (vsFTPd 1.1.3)  
  4. Name (127.0.0.1:root): anonymous  
  5. 331 Please specify the password.  
  6. Password:  
  7. 530 Login incorrect.  
  8. Login failed.  

如果以用户ylg则可以成功登录(指定端口2121),并显示欢迎信息:

  1. # ftp 127.0.0.1 2121  
  2. Connected to 127.0.0.1 (127.0.0.1).  
  3. 220 (vsFTPd 1.1.3)  
  4. Name (127.0.0.1:root): ylg  
  5. 331 Please specify the password.  
  6. Password:  
  7. 230-欢迎来到我的FTP站点  
  8. 230 Login successful. Have fun.  
  9. Remote system type is UNIX.  
  10. Using binary mode to transfer files.  

因为在设置中设定了不能切换目录,所以下列命令无法正确执行:

  1. ftp> cd /home  
  2. 550 Failed to change directory.  

再来测试一下上传和下载。首先下载服务器目录中的test.txt文件:

  1. ftp> get test.txt  
  2. local: test.txt remote: test.txt  
  3. 227 Entering Passive Mode (127,0,0,1,243,215)  
  4. 150 Opening BINARY mode data connection for test.txt (21 bytes).  
  5. 226 File send OK.  
  6. 21 bytes received in 0.00308 secs (6.7 Kbytes/sec)  

#p#可以通过!ls命令看到本机目录中已成功下载该文件。然后上传本机目录中的ylg.txt文件到服务器:

  1. ftp> put ylg.txt  
  2. local: ylg.txt remote: ylg.txt  
  3. 227 Entering Passive Mode (127,0,0,1,133,248)  
  4. 150 Ok to send data.  
  5. 226 File receive OK.  
  6. 19 bytes sent in 0.0401 secs (0.46 Kbytes/sec)  

用ls命令查看服务器目录,会发现该文件已成功上传。

为了测试不同连机用户使用的是不同进程,可以使用ps -ef指令,显示如下所示:

  1. # ps -ef|grep ftp   
  2. root12972  1356  0 13:44 pts/1  00:00:00 ftp 127.0.0.1 2121  
  3. nobody  12973 12908  0 13:44 ?  00:00:00 [vsftpd]  
  4. ylg 12975 12973  0 13:44 ?  00:00:00 [vsftpd]  
  5. user1   13013 13011  0 13:46 ?  00:00:00 [vsftpd]  
  6. root13041 13015  0 13:47 pts/4  00:00:00 grep ftp  

到现在为止,一个基本可以满足普通使用需求的FTP服务器就已经架设完成。

在实际应用中,有时为了增加安全性,会将FTP服务器置于防火墙之后。如本文开头所述,被动传输模式适合于带有防火墙的情况。下面就来创建一个防火墙后的FTP服务器,该服务器FTP端口为2121,数据传输端口为2020。

执行以下两行指令,只允许2121和2020端口打开,其余端口关闭:

  1. #iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT   
  2. #iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset  

修改/etc/vsftpd/vsftpd.conf文件,在文本***添加以下两行:

  1. listen_port=2121 
  2. ftp_data_port=2020  

重新启动vsftpd:

  1. #service vsftpd restart  

有时希望直接在/etc/hosts.allow中定义允许或拒绝某一源地址,可以通过以下配置来实现。先确保/etc/vsftpd/vsftpd.conf中tcp_wrappers=YES,Red Hat 9.0中,这是默认值。重新启动vsftpd

  1. #service vsftpd restart  

假设提供168.192.2.1和210.31.8.1到210.31.8.254的连接,则可对/etc/hosts.allow进行如下设定:

  1. vsftpd : 168.192.2.1 210.31.8. : allow   
  2. ALL : ALL : DENY  

 

责任编辑:佟健 来源: 比特网
相关推荐

2018-06-13 10:25:24

2010-06-30 15:24:04

FTP服务器配置过程

2010-05-18 14:34:41

IIS服务器

2010-07-21 14:33:01

删除telnet

2009-11-23 19:16:32

路由器测试

2009-12-18 09:37:44

路由器设置

2009-12-03 14:43:46

phpMyAdmin配

2011-04-01 13:34:12

zabbix

2009-12-21 14:34:37

2009-12-03 14:36:43

路由器限速设置

2010-04-23 13:53:29

Oracle密码

2011-03-07 17:04:02

ProftpdFTP

2009-12-01 15:12:34

路由器配置VLAN

2010-04-22 09:52:28

Oracle监听器

2009-12-31 14:12:40

Silverlight

2009-12-31 15:05:00

Silverlight

2009-12-16 15:04:26

Ruby实现strea

2010-08-17 13:12:06

无线路由器加密

2009-12-08 16:48:41

无线路由器

2010-08-23 14:05:11

点赞
收藏

51CTO技术栈公众号