Как я могу использовать Lighttpd $ HTTP [«remoteip» ] вместе с Cloudflare?

Я использую 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")
 }
0
задан 22 June 2014 в 19:55
2 ответа

$ HTTP ["remoteip"] никогда не будет равняться строке * , оно будет иметь значение, представляющее подключаемый IP-адрес (в вашем случае какой-то адрес Cloudflare ).

Наличие этого условия означает, что внутренние настройки extforward никогда не применяются, что может быть вашей проблемой.

Что касается extforward.forwarder = ("all" => "trust") , это может быть не очень хорошей идеей, если могут подключаться не-Cloudflare адреса. Разрешение кому-либо указывать удаленный адрес в заголовке делает любые проверки доступа на основе IP тривиальными для обхода.

Cloudflare действительно имеет некоторую документацию по этому .

1
ответ дан 4 December 2019 в 17:29

Похоже, что настройки 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"] отлично работает.

0
ответ дан 4 December 2019 в 17:29

Теги

Похожие вопросы