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

Я хочу ограничить доступ к папке apache по IP - возможно ли это?

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

Options +Indexes
IndexOptions +FancyIndexing

Можно ли добавить директиву, ограничивающую доступ только к нескольким IP-адресам? Как правило, мы не слишком беспокоимся о их безопасности, поэтому мы не защищаем их с помощью настройки пользователя / пароля. Однако немного безопасности не повредит :)

Бонусный вопрос ... (действительно выдавая мое отсутствие конфигурации apache здесь): возможно ли настроить тип if..else, чтобы, если у посетителя нет распознанного IP-адреса, он перенаправлялся на конкретная страница.

Ура! Бен

Если вы хотите ограничить по IP, просто добавьте

<Directory /path/to/the/folder>
            Options +Indexes
            IndexOptions +FancyIndexing
            Order deny,allow
            Deny from all
            Allow from X.X.X.X
</Directory>

Если у вас есть шаблон в IP-адресе, вы также можете кратко сформулировать правило. Например, если вы хотите разрешить IP, начинающийся с 192.

затем

Allow from 192 

разрешит все IP, начинающиеся с 192.

Бонусный вопрос: вы не хотите просто предотвращать загрузку страниц из внешних сетей, но хотите отправить их на другую страницу, модуль mod_rewrite из apache может прийти на помощь. Предполагая, что ваша локальная сеть 192.168.1.0/24:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1
RewriteCond !^/page_to_redirect
RewriteRule .* /page_to_redirect [R,L]

Поиграйте с этим.

Так как это первый список в индексе Goggle для "apache directory only allow ip", а также для тех, кто хочет ограничить доступ по IP. Если вы используете Apache версии 2.3 или более поздней, вам следует использовать Требовать директива.

Взято из документации Apache:

Require all granted
    Access is allowed unconditionally.
Require all denied
    Access is denied unconditionally.
Require env env-var [env-var] ...
    Access is allowed only if one of the given environment variables is set.
Require method http-method [http-method] ...
    Access is allowed only for the given HTTP methods.
Require expr expression
    Access is allowed if expression evaluates to true.

Some of the allowed syntaxes provided by mod_authz_user, mod_authz_host, and mod_authz_groupfile are:

Require user userid [userid] ...
    Only the named users can access the resource.
Require group group-name [group-name] ...
    Only users in the named groups can access the resource.
Require valid-user
    All valid users can access the resource.
Require ip 10 172.20 192.168.2
    Clients in the specified IP address ranges can access the resource. 

Требовать ссылку на документы директивы: https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

Также смотрите здесь: https://httpd.apache.org/docs/2.4/howto/access.html

См. Также параметры индексирования: https://httpd.apache.org/docs/2.4/mod/mod_autoindex.html