Аутентификация Apache HTTPD против нескольких серверов LDAP с учетными записями с истекшим сроком

Мне понравилось подход Arp Прокси , но исходный вопрос указал Дугу Linux. Вот является Дуга версией Linux реализация Raspbian . Я пытался очень трудно адаптироваться , исходный подход от Debian Wiki упомянул здесь к [1 112] netctl с помощью ExecUpPost и ExecDownPre без успеха. Все работало в командной строке, но не в профиле.

шаги:

  1. беспроводные сети Реализации с [1 113] systemd-networkd. В .network файле, набор IPForward=yes. Я использовал Суппликант WPA для управления интерфейсом беспроводной сети.
  2. Включают передачу mDNS установкой enable-reflector=yes в /etc/avahi/avahi-daemon.conf; запустите и включите avahi-daemon.service, если это уже не.
  3. Установка parprouted из АУРА, и создают сервисный файл для него путем адаптации того от ответ Raspbian . Я не нашел, что было необходимо установить интерфейс, чтобы быть неразборчивым. Естественно, этот сервис должен будет быть запущен и включен.
[Unit]
Description=proxy arp routing service
Documentation=https://raspberrypi.stackexchange.com/q/88954/79866

[Service]
Type=forking
# Restart until wlan0 gained carrier
Restart=on-failure
RestartSec=5
TimeoutStartSec=30
ExecStartPre=/lib/systemd/systemd-networkd-wait-online --interface=wlan0 --timeout=6 --quiet
ExecStartPre=/usr/bin/echo 'systemd-networkd-wait-online: wlan0 is online'
# clone the dhcp-allocated IP to eth0 so dhcrelay will relay for the correct subnet
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip addr add $(/usr/bin/ip -4 -br addr show wlan0 | /usr/bin/grep -Po "\\d+\\.\\d+\\.\\d+\\.\\d+")/32 dev eth0'
ExecStartPre=/usr/bin/ip link set dev eth0 up

#         v minus sign
ExecStart=-/usr/bin/parprouted eth0 wlan0

ExecStopPost=/usr/bin/ip link set dev eth0 down
ExecStopPost=/usr/bin/bash -c '/usr/bin/ip addr del $(/usr/bin/ip -4 -br addr show eth0 | /usr/bin/grep -Po "\\d+\\.\\d+\\.\\d+\\.\\d+")/32 dev eth0'

[Install]
WantedBy=wpa_supplicant@wlan0.service
  1. Для поддержки DHCP для устройства, подключенного к порту Ethernet, создайте dhcrelay (из пакета DHCP) сервис. Нахождение адреса сервера DHCP grep'ing через журналы кажется неэлегантным, но это работает. Запустите и включите.
[Unit]
Description=DHCRelay Service
After=network-online.target parprouted_bridge.service
Type=simple

[Service]
ExecStart=/usr/bin/bash -c '/usr/bin/dhcrelay -d -4 -iu wlan0 -id eth0 $(/usr/bin/journalctl -b -u systemd-networkd.service | /usr/bin/grep -Po "via\s+\K\\d+\\.\\d+\\.\\d+\\.\\d+")'

[Install]
WantedBy=multi-user.target

Этот подход работал на меня на Модели B Raspberry Pi + w/ArchLinuxArm, щеголяющий адаптером USB WiFi чипсетом RT5370. Поскольку Пи будет предоставлять WiFi принтеру только с Ethernet, я хотел бы, чтобы это было устойчиво к грубой обработке, таким образом, мой следующий шаг должен будет настроить SD-карта как только для чтения .

8
задан 27 June 2012 в 22:33
1 ответ

AuthzLDAPAuthoritative off директива позволит аутентификации упасть до следующего модуля, только если пользователь не может быть подобран к DN в запросе. В настоящее время даже при том, что пользователь истекает, кажется, что их учетная запись будет все еще возвращена в результате, когда запрос LDAP будет выполнен.

Я не знаю достаточно о схеме ActiveDirectory LDAP для предоставления определенного ответа здесь, но если Вы могли бы добавить фильтр к Вашему AuthLDAPURL директива, которая отфильтровывает учетные записи с истекшим сроком, она должна привести к имени пользователя, не соответствующему любому DN в запросе. Это должно привести к аутентификации, падающей до следующего модуля.

4
ответ дан 2 December 2019 в 23:07
  • 1
    Добавление фильтра работало. IT был достаточно любезен для размещения последовательной строки в поле описания тех пользователей, которые были перемещены от Альфы до Беты (это - то, почему учетные записи истекли). Следующий URL работает правильно: AuthLDAPURL ldap://dc01.alpha:3268/? sAMAccountName? sub? (& (objectClass=user) (! (описание =*moved-to-Beta*))) –  Brian Bassett 12 May 2010 в 20:55

Теги

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