Авторизация Apache для разрешенных пользователей?

Многие "просвещенные" администраторы сети/брандмауэра полагают, что ICMP работа дьявола и фильтрует его..., и ЭХО-ЗАПРОС ICMP и ЭХО-ОТВЕТ подпадают под топор. Кроме того, с брандмауэрами и перенаправлением портов повсеместно, достижимость ICMP не является aplication-I'm-interested-in достижимостью.

Если Вы хотите знать реальную достижимость TCP, использовать tcping.

7
23.05.2017, 15:40
1 ответ

Если вы пробовали mod-auth external, он позволяет вам сделать ваш собственный механизм аутентификации для Apache.

Он предоставляет вам доступ к переменным окружения, таким как IP, USER, PASS и т.д. Вы можете написать скрипт на знакомом вам языке и получить данные аутентификации из вашей базы данных.

В вики есть несколько примеров.

Если вы строите скрипт для аутентификации, убедитесь, что он хорошо закодирован (с точки зрения безопасности).

Модуль доступен на CentOS (mod_authnz_external) и на Ubuntu (libapache2-mod-authnz-external)

Вот пример базовой конфигурации Apache :

LoadModule authnz_external_module modules.d/mod_authnz_external.so
DefineExternalAuth my_auth  environment /tmp/auth.sh

<Location />
   AuthType Basic
   AuthName "My super special access"
   AuthBasicProvider external
   Require valid-user
   AuthExternal my_auth
</Location>

Вот очень простой скрипт, который регистрирует IP пользователя и PASSWORD и принимает аутентификацию только в том случае, если предоставленный пользователь - 'Tony'.

В этом конкретном примере скрипт сохраняется в файле /tmp/auth.sh с набором исполняемых битов. Вы можете делать все, что захотите (фильтровать по IP, имени пользователя и т.д.)

#!/bin/bash

echo $(date) ${IP} >> /tmp/log.txt
echo $(date) ${USER} >> /tmp/log.txt
echo $(date) ${PASS} >> /tmp/log.txt

#Very basic filtering.
if [[ "${USER}" != "Tony" ]]
then
        exit 1;
fi
5
27.01.2020, 20:19

Теги

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