一、Kangle软件简介:
kangle web服务器(简称:kangle)是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件。除此:kangle也是一款专为做虚拟主机研发的web服务器。实现虚拟主机独立进程、独立身份运行。用户之间安全隔离,一个用户出问题不影响其他用户。安全支持php、asp、asp·net、java、ruby等多种动态开发语言。
二、Kangle的下载与安装:
1、下载软件,软件的下载地址:https://www.jb51.net/do/tag/kangle/。您可以选择自己需要的版本下载。
2、如果是windows版的安装就十分简单,下载完成后解压文件双击运行安装向导,一直下一步直到安装结束就可以了,我们主要介绍一下Linux版的安装方法:
PS:请先确保你的系统上有 g++,libz开发包,libpcre开发包,libiconv开发包(非linux版).
1)解压:
tar xzf kangle-x.y.z.tar.gz
2)配置:
./configure --prefix=安装路径
比如说我们安装到/usr/local/kangle
./configure --prefix=/usr/local/kangle
3)编译:
make
4)安装:
make install
5)启动kangle
进入安装路径/bin/kangle启动程序
6)进入kangle管理
通过浏览器打开: http://服务器ip地址:3311/
第一次进入输入用户名:admin,密码:kangle
小编建议第一次进入后修改管理后台的用户名和密码,以免非法进入。
三、Kangle设置防盗链步骤简介:
1、进入Kangle管理后台:在浏览器里面输入http://服务器ip地址:3311/,在键入密码后进入管理后台。
2、点击Kangle管理后台左边的请求控制菜单,然后在弹出的窗口中点击继续,就会转入请求控制设置页面。
3、选择匹配模块里的reg_path,输入匹配的图径,再选择匹配模块里的header,如图输入Referer,(test987.com这个域名是指允许下载的域名,如果是其它的就会拒绝)如果设置跳转,选择标记模块里的redirect ,本例是指跳转到百度,也可以设为自已想要的页面,如不需要跳转就不需要设置标记模块里的redirect。填好表单之后提交即可。
图一:请求控制表单的填写
4、测试:我们做了一个下载页面为http://test978.com,测试流程及结果见下图:
图二:我们输入Kangle允许的下载网址,可以正常下载
图三:输入其他网址,跳转到百度首页
四、Kangle访问控制模块详细说明:
1、Kangle访问控制的实现:在'请求控制”内有一个系统表:'BEGIN表',在'回应控制”内有两个系统表'BEGIN表'和'POSTMAP表','POSTMAP表'完成url到物理文件的映射。用户使用'POSTMAP表',需要自行创建。
kangle如果发现用户的请求匹配了一个规则链中的匹配模块,则进入标记模块对请求做简单的处理,之后就按该条规则链指定的目标处理:
如果目标是“继续”,则还要进行下一条规则链的处理。
如果目标是“默认”,则控制按默认目标处理(默认目标有:拒绝、回写数据、服务器、虚拟主机等)。
如果目标是“拒绝”,则将对用户的请求拒绝并发送错误信息给用户,之后中断连接。
如果目标是“虚拟主机”,则将对用户请求使用虚拟主机处理。
如果目标是“服务器”,则用户使用的是反代。
如果目标是“回写数据”,则将对用户的请求拒绝,并发送管理员设定的原始数据给用户。
3、Kangle访问控制设计的优点:
1)Kangle的访问控制提供了非常开放的用户自定义规则的功能,用户完全可以量身定制规则。
2)Web网页管理,用户无需登录服务器就可以进行操作。
3)功能模块的灵活组合,满足用户的各种需求,甚至可以作防攻击系统。例如防CC攻击、防sql注入攻击、防XSS跨站攻击等等。
4、访问控制模块列表及其功能简介:
请求控制的匹配模块 |
||
模 块 名 称 |
作 用 域 |
模 块 说 明 |
url |
请求控制和回应控制 |
匹配用户url网址。网址可以使用正则表达式。 |
reg_path |
请求控制和回应控制 |
匹配路径。可以使用正则表达式匹配路径。 |
reg_param |
请求控制和回应控制 |
可用正则表达式进行url参数匹配 |
path |
请求控制和回应控制 |
匹配路径 |
dst_port |
请求控制和回应控制 |
匹配目标端口 |
meth |
请求控制和回应控制 |
匹配http请求方法(如get 、 post ) |
file_ext |
请求控制和回应控制 |
匹配一个或多个文件扩展名 |
host |
请求控制和回应控制 |
匹配一个或多个主机头 |
wide_host |
请求控制和回应控制 |
泛域名匹配 |
map_host |
请求控制和回应控制 |
匹配一个或多个主机头。 与“host”的区别:map_host是以文件形式来存放主机头进行匹配 |
header |
请求控制和回应控制 |
匹配http头 |
self |
请求控制和回应控制 |
匹配当前连接的服务器ip |
sefl_port |
请求控制和回应控制 |
匹配当前连接的服务器端口 |
src |
请求控制 |
匹配源地址(ip或者ip段) |
time |
请求控制 |
匹配当前时间,格式为:“crontab” |
ssl_serial |
请求控制 |
匹配证书序列号 |
auth_user |
请求控制 |
匹配http论证的用户 |
referer |
请求控制 |
url来源 |
请求控制的标记模块 |
||
模 块 名 称 |
作 用 域 |
模 块 说 明 |
speed_limit |
请求控制 |
限速标记 |
gspeed_limit |
请求控制 |
分组限速 |
flag |
请求控制 |
对用户请求作不缓存、不过滤内容及不防cc攻击标记 |
rewrite |
请求控制 |
url重写 |
redirect |
请求控制 |
url重定向 |
auth |
请求控制 |
http认证 |
host_rewrite |
请求控制 |
主机重写 |
回应控制的匹配模块 |
||
模 块 名 称 |
作 用 域 |
模 块 说 明 |
url |
请求控制和回应控制 |
匹配用户url网址。网址可以使用正则表达式。 |
reg_path |
请求控制和回应控制 |
匹配路径。可以使用正则表达式匹配路径。 |
reg_param |
请求控制和回应控制 |
可用正则表达式进行参数匹配 |
path |
请求控制和回应控制 |
匹配路径 |
dst_port |
请求控制和回应控制 |
匹配目标端口 |
meth |
请求控制和回应控制 |
匹配http请求方法(如get 、 post ) |
file_ext |
请求控制和回应控制 |
匹配一个或多个文件扩展名 |
host |
请求控制和回应控制 |
匹配一个或多个主机头 |
wide_host |
请求控制和回应控制 |
泛域名匹配 |
map_host |
请求控制和回应控制 |
匹配一个或多个主机头。 与“host”的区别:map_host是以文件形式来存放主机头进行匹配 |
header |
请求控制和回应控制 |
匹配http头 |
self |
请求控制和回应控制 |
匹配当前连接的服务器ip |
sefl_port |
请求控制和回应控制 |
匹配当前连接的服务器端口 |
file |
回应控制 |
匹配一个或多个文件 |
filename |
回应控制 |
匹配一个或多个文件名 |
dir |
回应控制 |
匹配多个目录下的文件。按目录匹配 |
reg_file |
回应控制 |
匹配一个或多个文件。可用正则表达式表示。 |
reg_filename |
回应控制 |
匹配一个或多个文件名。可用正则表达式表示。 |
content_length |
回应控制 |
配置内容大小 |
回应控制的标记模块 |
||
模 块 名 称 |
作 用 域 |
模 块 说 明 |
cache_control |
回应控制 |
缓存标记 |
content |
回应控制 |
内容过滤(可以使用正则表达式进行内容过滤) |
response_flag |
回应控制 |
对回应给用户的请求作标记 |
add_header |
回应控制 |
增加自定义头 |
Kangle是一款值得用户使用和研究的软件,不知道看完上文的Kangle的安装及防盗链的设置和访问控制模块的详细介绍的你是否也有这个想法呢?