Как я соответствую подстановочному хосту в списках ACL в HAproxy?

Извините за задержку. Вы фиксировали его? В противном случае http://www.sriramrajan.com/mw/index.php/Linux-Auditd может быть полезным.

и обычно... Для использования контрольного средства, необходимо использовать следующие утилиты => auditctl - команда для помощи управлению системой аудитов ядра. Можно получить состояние, и добавить или удалить правила в систему аудитов ядра. Установка часов на файле выполняется с помощью этой команды:

=> ausearch - команда, которая может запросить контрольные журналы демона, базирующиеся для событий на основе различных критериев поиска.

Это говорит...., что экспорт Ваши журналы vsftpd с помощью системного журнала в файл и делает фильтрацию из auditd. Это - что-то подобное тому, что Вы думали о вводной-части-lml.

9
задан 14 May 2012 в 19:06
3 ответа

hdr_end - это то, что вы ищете. Попробуйте следующее:

acl valid_domains hdr_end(host) -i mysite.com 
redirect location http://mysite.com/invalid_domain if !valid_domains
11
ответ дан 2 December 2019 в 22:19

Я чувствую, что hdr_sub лучше подходит для ваших нужд. Некоторое время я использовал hdr_end, но у меня возникла следующая проблема:

запросы с портом 80 обычно удаляют порт, так что заголовок хоста выглядит как "example.com", но если вы делали запрос на порт явно, как например. com:8080, в заголовке будет порт, и hdr_end не сможет проверить "example.com".

hdr_sub сделает совпадение подстроки, что кажется более подходящим для вас (и для меня).

В любом из решений все еще есть неприятная вещь, которая мне не нравится. Оценка результатов в зависимости от заказа.

например (мои условия выглядят так на фронтэнде)

acl is_dbadmin hdr_sub(host) -i dbadmin.example.com

Запрос на порт 8080 будет выглядеть так:

Jul  9 02:48:40 localhost haproxy[8]: 192.168.1.1:55870 [09/Jul/2015:02:48:40.865] http-in example/s1 1/0/0/20/110 200 330722 - - ---- 0/0/0/0/0 0/0 {**example.com:8080**||http://example.com:} {Apache/2.4.10 (Debia||||} "GET /wp-includes/js/zxcvbn.min.js HTTP/1.1"

где в качестве порта 80 скорее всего будет выглядеть так

Jul  9 02:48:40 localhost haproxy[8]: 192.168.1.1:55870 [09/Jul/2015:02:48:40.865] http-in example/s1 1/0/0/20/110 200 330722 - - ---- 0/0/0/0/0 0/0 {example.com||***http://example.com***:} {Apache/2.4.10 (Debia||||} "GET /wp-includes/js/zxcvbn.min.js HTTP/1.1"
15
ответ дан 2 December 2019 в 22:19

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

Соответствующий конец ( hdr_end или -m end ) или подстрока ( hdr_sub или -m sub ) может иметь непредусмотренную сторону- эффекты сопоставления больше, чем вы ожидаете. Во многих случаях это может не иметь большого значения, поскольку у вас нет трафика для этих доменов, поступающего на сервер, но это не означает, что это технически правильное решение.

Использование регулярного выражения - лучший способ, который я обнаружено, что выполняется явное сопоставление. Например, если вы хотите сопоставить только *. Example.org без сопоставления sub.domain.example.org :

acl valid_domains hdr(host) -m reg -i ^[^\.]+\.example\.org$

Если вы также хотите обрабатывать (любые) не- стандартные порты, это можно немного расширить:

acl valid_domains hdr(host) -m reg -i ^[^\.]+\.example\.org(:[0-9]+)?$

Вышеупомянутый будет соответствовать :

  • test1.example.org
  • test2.example.org:8080

и будут не соответствует :

  • example.org
  • two.subs.example.org
  • myexample.org
  • test.myexample.org
  • test.example.org. other.com
5
ответ дан 2 December 2019 в 22:19

Теги

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