Lighttpd 通过 IP 地址限制或拒绝访问
那么如何使用 Lighttpd Web 服务器来限制或拒绝 IP 地址的访问呢?
Lighttpd 有 mod_access 模块,access 模块用于拒绝访问指定尾随路径名的文件,需要结合 remoteip 条件配置,语法如下:
$HTTP[“remoteip”] == “IP” :匹配远程 IP
$HTTP[“remoteip”] !~ “IP1|IP2” :不匹配远程 IP(perl 样式正则表达式不匹配)
$HTTP[“remoteip”] =~ “IP1|IP2” :匹配远程 IP(perl 样式正则表达式匹配)
任务:匹配远程 IP
例如,如果 IP 地址不是 192.168.1.5 和 192.168.1.10,则阻止访问 http://theos.in/stats/ url(仅限制对这 2 个 IP 的访问):
打开 /etc/lighttpd/lighttpd.conf 文件
# vi /etc/lighttpd/lighttpd.conf
附加以下配置指令:
$HTTP["remoteip"] !~ "200.19.1.5|210.45.2.7" { $HTTP["url"] =~ "^/stats/" { url.access-deny = ( "" ) } }
保存并重新启动lighttpd:
# /etc/init.d/lighttpd restart
任务:阻止单个远程 IP
不允许IP地址202.54.1.1访问我们的网站:
$HTTP["remoteip"] == "202.54.1.1" { url.access-deny = ( "" ) }
不允许IP地址202.54.1.1,202.54.2.5访问我们的网站:
不允许IP地址202.54.1.1访问我们的网站:
$HTTP["remoteip"] =~ "202.54.1.1|202.54.2.5" { url.access-deny = ( "" ) }