redhat上的ftp配置实例

环境:redhat9

ftp的工作方式分为两种

主动(active):当客户端的连接上server的控制端口(21),当需要传输数据时,server主动开启端口连接client

被动(passive):控制端口的连接方式与上面一样,只不过当要传数据时,仍是由client发起连接

redhat上采用的软件是vsftpd,对它进行配置.

 

vsftpd的文档结构

其主配置文件只有一个:/etc/vsftpd/vsftpd.conf,所做的修改主要是围绕它进行,此外还有一些附加的文件,我将几个重要的说明如下:

/etc/pam.d/vsftpd
这里定义了采用pam的方式进行身份验证,它是根据/etc/vsftpd.ftpusers文件进行验证的,凡是在这个文件里面列出的用户无法登陆ftp

/etc/vsftpd.user_list

当配置文件vsftd.conf中的参数userlist_enableuserlist_deny设置为YES之后,此文件生效,凡是在此文件里面列出的用户就无法登陆ftp

:上面的两个文件看起来功能雷同,其实不然,vsftpd.ftpusers是采用外挂的PAM程序进行验证时所需要的,vsftd.user_list则是vsftp本身的验证机制.也就是双重验证,无疑时更加安全.既然作用一样,所以这两个文件的内容也最好写的一样

/etc/vsftpd.chroot_list

此文件要自行建立,vsftpd.conf中的参数chroot_list_enablechroot_list_file启用后,此文件里面的用户就登陆ftp以后就只能在自己的主目录下活动,不能到处逛.

/var/ftp

匿名用户登陆后的主目录

 

首先查询是否安装vsftp

[root@localhost root]# rpm -qa|grep vsftpd

vsftpd-1.1.3-8

 

现在就可以直接启动vsftp

启动

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

Starting vsftpd for vsftpd: [  OK  ]

 

测试

[root@localhost root]# ftp localhost //登陆

Connected to localhost (127.0.0.1).

220 (vsFTPd 1.1.3)

Name (localhost:root):

530 Permission denied.

Login failed.

ftp> bye //使用bye退出

221 Goodbye.

 

所以不用修改vsftpd里面的内容,就可以直接运行了.不过此时的效果是:

  • 匿名帐号anonymous可以登陆,主目录为/var/ftp,并且被锁定在此目录下.此账户只有下载权限

  • 系统的帐号(/etc/passwd文件中的帐号)可以登陆,并且没有锁定主目录

  • 任何在/etc/vsftpd.ftpusers文件中的帐号是无法登陆的

  • 上传和下载的日志信息保存在/var/log/vsftpd.log

所以一般这样就够我们用了,只是要注意把那些不允许登陆的帐号写到上面提到的两个文件中vsftpd.ftpusersvsftd.user_list

 

不允许匿名登陆

 

local_max_rate=100000

 

最大的并发连接数(同时连接的客户端数量),这里设置为10

max_clients=10

 

每个IP最多多少个连接,这里设置为1

max_per_ip=1

 

我一直没找到如何限制总带宽,也就是说不限客户端数目,总带宽给他们平均分,同时连的人多每人得的带宽就少,连的人少每人得的带宽就多.还希望哪个能给小弟指点一下.

不过我也想到这样,反正是限定了客户端的数量和每个客户端的下载速度,两者相乘就是服务器给它的最大带宽,虽然不灵活,但是也是变相的起到了限制总流量的作用了.

我想一般ftp服务器也就用到这么多功能,最后必须要提到的是你要帐户能写,那个目录就要给账户开写的权限哦.