Как я установил бы Joomla, чтобы потребовать или обойти аутентификацию на основе IP-адреса посетителей?

Да, Cisco ASA поможет. Кроме того, установите демилитаризованную зону (демилитаризованная зона).

Эти вещи не должны обычно иметь внешнего IP: серверы Domino, AD контроллеры, веб-почтовые серверы. Я думаю, что сотрудники должны получить доступ к ним через VPN только.

Если Ваши AD контроллеры служат Вашему DNS не только к внутренней LAN, но также и к внешнему миру (т.е. если они вручают yourcompany.com целому Интернету), измените установку: внешний DNS должен быть на отдельных машинах, помещенных в демилитаризованную зону.

1
задан 20 June 2010 в 18:02
5 ответов

Я хочу создать веб-сайт Joomla, который требует от посетителей войдите в систему, если они не заходят с определенного IP-адреса или подсети.

Создайте виртуальный хост для Joomla, как показано ниже:

<VirtualHost *:80>
    ServerName  joomla.yourdomain.com
    ServerAdmin ...
    DocumentRoot /var/www/html/joomla
    ErrorLog logs/joomla.error_log

    <Directory "/var/www/html/joomla">
        Options ...
        Order allow,deny
        Allow from 192.168.1.0/24
        Satisfy Any
    </Directory>
</VirtualHost>

Кроме того, я хотел бы, чтобы логин был основан на LDAP.

Вы можете сделать это, используя mod_authz_ldap , примерно так:

LoadModule authz_ldap_module modules/mod_authz_ldap.so

<IfModule mod_authz_ldap.c>

   <Location /var/www/html/joomla>
       AuthBasicProvider ldap
       AuthzLDAPAuthoritative Off
       AuthLDAPURL ldap://IP:3268/dc=domain,dc=com?sAMAccountName
       AuthLDAPBindDN cn=binduser,dc=domain,dc=com
       AuthLDAPBindPassword secret
       AuthType Basic
       AuthName "Authorization required"
       require valid-user
       AuthzLDAPLogLevel debug
   </Location>

</IfModule>

Можно ли использовать HTTPS-аутентификацию с использованием LDAP (MS-AD)?

Да.

2
ответ дан 3 December 2019 в 17:25

Я не уверен, что это то, что вам нужно, но ..

Другой вариант - изменить файл .htaccess, чтобы разрешить доступ по IP

<Limit GET>
    Order Deny,Allow
    Deny from all
    Allow from 100.100.100.100
</Limit>

Необязательно: вы можете добавить несколько адресов разделяя их запятыми.

100.100.100.101, 100.100.100.102 
1
ответ дан 3 December 2019 в 17:25

Вы должны настроить nginx в качестве прокси-интерфейса. Nginx может сделать это с помощью следующих конфигурационных директив:

auth_basic      "Restricted";
auth_basic_user_file  htpasswd;
satisfy any;
allow 10.0.0.0/24;
allow 10.1.0.0/24;
allow 10.2.1.1;
deny all;

Таким образом, вы можете обойти аутентификацию для IP-адресов, явно указанных в allow , и получить всплывающее диалоговое окно аутентификации для всех остальных IP-адресов.

0
ответ дан 3 December 2019 в 17:25

Документация Apache, на которую стоит обратить внимание: Контроль доступа (раздел «по хостам»), Аутентификация, авторизация и контроль доступа ( '), mod_auth_basic и mod_authnz_ldap . Пример конфигурации для выполнения того, что вы хотите:

AuthType Basic
AuthBasicProvider ldap
AuthName "Joomla"
# change the ldap attributes to what matches your environment
AuthLDAPBindDN "uid=example,ou=example,dc=example,dc=com"
AuthLDAPBindPassword example
AuthLDAPURL "ldap://example.com:port/basedn?attribute?scope?filter"
Order allow,deny
# change the ip to match your network that should not have to authenticate
Allow from 10.0.0.0/24
Satisfy any
1
ответ дан 3 December 2019 в 17:25

Возможно, вы захотите использовать .htaccess, чтобы просто поместить туда имя пользователя / пароль, поэтому, если у них нет внешнего пароля, они вообще не смогут получить доступ к веб-сайту.

1
ответ дан 3 December 2019 в 17:25

Теги

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