Назад | Перейти на главную страницу

Управление доступом к белому списку Apache httpd через заголовок X-Forwarded-For

У меня есть следующий файл httpd.conf, который я использую для тестирования X-Forwarded-For белый список IP-адресов заголовка. Обратите внимание, что conf.d каталог пуст:

Include conf.modules.d/*.conf
ServerRoot "/etc/httpd"
Listen 80
Listen 443

User dev
Group dev
ServerAdmin root@localhost
ServerName my-httpd-server

<Directory />
AllowOverride none
Require all denied
</Directory>

<Files ".ht*">
Require all denied
</Files>

<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>


AddDefaultCharset UTF-8

<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on

DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options -Indexes +FollowSymLinks
    AllowOverride None
    LogLevel debug
    Order deny,allow
    Deny from all
    #Satisfy any


    SetEnvIf X-Forwarded-For ^171.159.192.10 letmein

    Allow from env=letmein

     Satisfy any
</Directory>


IncludeOptional conf.d/*.conf

Когда я использую cURL для получения локальной страницы с этим сервером, он работает независимо от заголовка XFF:

curl -H 'X-Forwarded-For: 8.8.8.8' http://localhost

curl http://localhost

Они работают, но напечатайте в журнале ошибок следующее (эти запросы должны не работает):

[Mon Dec 17 10:24:53.346021 2018] [access_compat:error] [pid 12] [client 172.17.0.1:49010] AH01797: client denied by server configuration: /var/www/html/
[Mon Dec 17 10:24:53.346614 2018] [authz_core:debug] [pid 12] mod_authz_core.c(809): [client 172.17.0.1:49010] AH01626: authorization result of Require all granted: granted
[Mon Dec 17 10:24:53.347603 2018] [authz_core:debug] [pid 12] mod_authz_core.c(809): [client 172.17.0.1:49010] AH01626: authorization result of <RequireAny>: granted

Следующий запрос от IP из белого списка работает, но без шума журналирования:

curl -H 'X-Forwarded-For: 171.159.192.10' http://localhost:8181/

Что вызывает запросы, которые не должны возвращать веб-страницу? Я получаю сообщение, что его следует отклонить в зависимости от конфигурации?

Я думаю тебе нужен satisfy any бит, который нужно изменить на satisfy all. Это относится к разрешению пользователя, если он соответствует требованиям аутентификации ИЛИ доступа. Поскольку я не вижу набора authtype, по умолчанию он AuthType none что, я думаю, позволяет им пройти. satisfy all означает, что требуется аутентификация и доступ.