Разрешить запрос только с определенного IP-адреса

У меня есть приложение, в котором размещен Apache UNIX, и я разрешаю пользователям получать доступ к URL-адресу приложения из среды citrix (из машины citrix).

Однако в настоящее время можно получить доступ к URL-адресу со всех подключенных машин. Я хотел бы указать, что он должен быть доступен только из машины citrix. Поэтому, если кто-то нуждается в доступе к нему, ему нужен доступ к машине citrix.

Я пробовал:

<Directory /APP>

    Order Deny,Allow

    Deny from all

    Allow from 160.120.25.65

    Allow from 127

</Directory>

это не сработало. Любое предложение?

Немного ответил с решением iptables, однако этот загружен на Solaris (у него нет встроенного брандмауэра для ОС в качестве Linux).

Ответы

Ответ 1

Это должно делать то, что вам нужно:

<Directory /APP>

    Order Allow,Deny

    Allow from 160.120.25.65
    Allow from 127.0.0.0/8

</Directory>

Подробнее см. документацию mod_authz_host.

Ответ 2

Какую версию Apache вы используете? Механизмами, обеспечивающими IP, является AFAIK, предоставляемый mod_authz_host, который был введен в 2.2 (ну, с технической точки зрения, 2.1). Если у вас есть 2.2, убедитесь, что он не был скомпилирован с mod_authz_host отключен.

Вообще говоря, вы можете найти более простое и надежное решение: iptables или другие брандмауэры, предложенные в других ответах.

Ответ 3

Я бы предложил Iptables для этой цели. поместите правило в iptables, где везде, где порт назначения является номером порта вашего компьютера apache, а ip-адрес источника - это ip-адрес критической машины, Linux-машина должна удалить этот пакет. Этот способ позволит решить вашу проблему, если нет других приложений, размещенных на apache вашей машины, которые должны быть открыты для всех ips. Примером перспективного правила может быть: -

iptables -I INPUT 1 -s 160.120.25.65 -d <port_of_apache_on_your_machine> -j DROP

Это должно решить вашу проблему, как только вы замените ее на правильное значение

Ответ 4

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