redhat
上的
ftp
配置实例
环境
:redhat9
ftp
的工作方式分为两种
主动
(active):
当客户端的连接上
server
的控制端口
(21)
后
,
当需要传输数据时
,
由
server
主动开启端口(20)连接
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_enable
和
userlist_deny
设置为
YES
之后
,
此文件生效
,
凡是在此文件里面列出的用户就无法登陆
ftp
注
:
上面的两个文件看起来功能雷同
,
其实不然
,vsftpd.ftpusers
是采用外挂的
PAM
程序进行验证时所需要的
,
而
vsftd.user_list
则是
vsftp
本身的验证机制
.
也就是双重验证
,
无疑时更加安全
.
既然作用一样
,
所以这两个文件的内容也最好写的一样
/etc/vsftpd.chroot_list
此文件要自行建立
,
当
vsftpd.conf
中的参数
chroot_list_enable
和
chroot_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.ftpusers
和
vsftd.user_list
不允许匿名登陆
anonymous_enable=NO
本地帐号下载的速度限制(单位B/S),如10KB/S
local_max_rate=100000
最大的并发连接数(同时连接的客户端数量),这里设置为10个
max_clients=10
每个IP最多多少个连接,这里设置为1
max_per_ip=1
我一直没找到如何限制总带宽
,
也就是说不限客户端数目
,
总带宽给他们平均分
,
同时连的人多每人得的带宽就少
,
连的人少每人得的带宽就多
.
还希望哪个能给小弟指点一下
.
不过我也想到这样
,
反正是限定了客户端的数量和每个客户端的下载速度
,
两者相乘就是服务器给它的最大带宽
,
虽然不灵活
,
但是也是变相的起到了限制总流量的作用了
.
我想一般
ftp
服务器也就用到这么多功能
,
最后必须要提到的是你要帐户能写
,
那个目录就要给账户开写的权限哦
.
以上内容保证原创,并且亲自测试通过grep 21