|
|
小弟最近正好在学vsftpd,看来此贴这么热,我就加把柴把.为sir贡献自己的一点微薄之力
vsftpd从版本1.1.3后内置了对tcp_wrappers的支持,为独立启动的vsftpd提供基于主机的访问控制的配置,既可对不同的主机或网络实施不同的配置.tcp_wrappers使用/etc/vsftpd.allow和/etc/hosts.deny两个配置文件实现访问控制./etc/hosts.allow是一个许可表,/etc/hosts.deny是一个拒绝表.由于在/etc/hosts.allow中有也可使用DENY,所以通常可以只使用/etc/hosts.allow来实现访问控制.
对vsftpd而言,在书写/etc/hosts.allow时,每一个记录都具有如下的语法形式:
vsftpd: 主机表: setenv VSFTPD_LOAD_CONF 配置文件名
行首的vsftpd----表示是对vsftpd实施访问控制,而非其他的守护进程
setenv setenv VSFTPD_LOAD_CONF配置文件名-----表示当遇到表中的主机访问本FTP服器时,修改环境变setenv VSFTPD_LOAD_CONF 的值为指定的配置文件名.其意图是让vsftpd守护进程读取新配置文件中的配置项来覆盖主配置文件中的配置.
vsftp访问控制时主机表的书写语法
选项值 含义
Hostname 可解析的主机名
IP Address 点分十进制表示的IP地址
.domain 匹配一个域中的所有主机..domain.com表示在dns域domain中的任何主机
networ-number 匹配ip地址的开始部分,不管使用的网络掩码为何.例如,192.168表示匹配 ip 为192.168开头的任何主机
下面是一个配置主机访问控制的例子.在本例中要实现下述的功能
1.拒绝192.168.1.0/12访问
2.对域domain.com和192.168.0.0/12内的所有主机不做连接数限制和最大传输速率限制
3.对其他主机的访问限制每ip的连接数为1,最大传输率为10KB/S
为实现此功能,可将配置文件配置为每ip连接数为1和最大速率为10kb/s,再对domain.com和192.168.0.0/12的附加配置文件不做连接限制.
//查看主配置文件是否有tcp_wrappers=YES
#cat /etc/vsftpd/vsftpd.conf|grep tcp_wrappers
tcp_wrappers=YES
//修改vsftpd的主配置文件/etc/vsftpd/vsftpd.conf
#cat <<! >>/etc/vsftpd/vsftpd.conf
> local_max_rate=10000
> anon_max_rate=10000
> max_per_ip=1
> !
#
//编辑/etc/hosts.allow
> vsftpd: .domain.com,192.168.0.0/12 \
> : setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
> vsftpd: 192.168.1.0/12: DENY
> !
//编辑/etc/vsftpd/vsftpd_tcp_wrap.conf
#cat <<! >>/etc/vsftpd/vsftpd_tcp_wrap.conf
> local_max_rate=0
> anon_max_rate=0
> max_per_ip=0
> !
//重启vsftpd
#service vsftpd restart
//配置结束
*当vsftpd启动时,守护进程先读取主配置文件/etc/vsftpd/vsftpd.conf,当/etc/hosts.allow文件占的主机访问时,再用此单独配置文件覆盖主配置文件(这和在虚拟用户,每个用户都可自己配置是一个原理)
还有兄弟问到如何断点续传,对于匿名访问,必须打开anon_other_write_enable=YES,这样才有改写的权力,比如更名,删除. |
|