我正在使用Clodflare DNS。 我只想让某些IP访问某些文件。
我如何设置我的lighttpd.conf来正确检测正确的IP? 我知道如何做access.log。 是否有可能使用$ HTTP [“remoteip”]和其他东西?
我今天是这样做的:
$HTTP["remoteip"] == "xx.xx.xx.xx" { url.access-deny = ("") }
我已经尝试了以下,但它没有工作:
$HTTP["remoteip"] =="*"{ extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") }
$HTTP["remoteip"]永远不会等于string* ,它将有一个值代表连接的IP地址(在你的情况下,一些Cloudflare地址)。
有了这个条件意味着内部的extforward设置不会被应用,这似乎是你的问题。
至于extforward.forwarder = ( "all" => "trust") ,如果非Cloudflare地址可以连接,这可能不是一个好主意。 允许任何人在一个头文件中指定远程地址,使得任何一种基于IP平凡的访问检查都可以避开。
Cloudflare也有这方面的一些文件 。
来自Cloudflare的设置似乎由于重复的IP条目而导致错误。
这里是适合我的设置。 我把它们放在server.modules { .. } :
$HTTP["remoteip"] == "199.27.128.0/21" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "173.245.48.0/20" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "103.21.244.0/22" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "103.22.200.0/22" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "103.31.4.0/22" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "141.101.64.0/18" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "108.162.192.0/18" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "190.93.240.0/20" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "188.114.96.0/20" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "197.234.240.0/22" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "198.41.128.0/17" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "162.158.0.0/15" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") } $HTTP["remoteip"] == "104.16.0.0/12" { extforward.forwarder = ( "all" => "trust" ) extforward.headers = ("CF-Connecting-IP") }
用这个$ HTTP [“remoteip”]工作正常。