Используйте .htaccess, чтобы ограничить внешний доступ к моей внутренней сети. - PullRequest
2 голосов
/ 06 февраля 2011

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

У нас есть внутреннее php-приложение, которое мы используем, у нас есть базовая безопасность внутри, но не нужно беспокоиться слишкоммного.Я хотел бы сделать его доступным в Интернете для использования, когда сотрудники отсутствуют.Я хотел бы иметь дополнительную защиту, основанную на файлах htaccess или htpassword.

Можно ли написать файл htaccess, который выполняет следующие действия:

  • Если пользователь осуществляет доступ из office.mydomain.com это означает, что они являются внутренними (office.mydomain.com разрешает внутренний IP, такой как 192.168.22.22), поэтому разрешите беспрепятственный доступ
  • Если пользователь осуществляет доступ извне, это будет external.myoffice.com - если этоВ качестве дополнительной меры безопасности я хотел бы использовать .htaccess и файл паролей, чтобы пользователь мог ввести пароль apache.

Может кто-нибудь сказать мне, как написать это с .htaccessфайл?

Обновление: Спасибо за все ответы, я опубликовал то, что помогло мне, как ответ, чтобы помочь другим.

Ответы [ 4 ]

5 голосов
/ 06 февраля 2011

Вы можете использовать

RewriteCond %{REMOTE_ADDR} !^192\.168\.

для указания состояния внешнего IP или использования

RewriteCond %{REMOTE_ADDR} ^192\.168\.

для условия локального IP.

Вам просто нужно будет разумно интегрировать их в существующие правила htaccess.

3 голосов
/ 06 февраля 2011
2 голосов
/ 06 февраля 2011

Для завершения этого ответа необходимо выполнить следующие работы.

#allows everything if its on a certain host
SetEnvIf HOST "^www.mysite.com" external_url
SetEnvIf HOST "^localhost" local_url
Order Deny,Allow

AuthName "Restricted Area"
AuthType Basic
AuthUserFile path/to/your/.htpasswd
AuthGroupFile /
Require valid-user

#Allow valid-user
Deny from all
Allow from env=external_url
Allow from env=local_url
Satisfy any

Появляется окно входа в Запретную зону, если вы заходите на сайт www.mysite.com, но ничего не отображается, если вы едете на месте.

2 голосов
/ 06 февраля 2011

Вот, пожалуйста,

order deny,allow
allow from 192.168.22.0/255.255.255.0
deny from all

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...