Ответ 1
Это должно делать то, что вам нужно:
<Directory /APP>
Order Allow,Deny
Allow from 160.120.25.65
Allow from 127.0.0.0/8
</Directory>
Подробнее см. документацию mod_authz_host
.
У меня есть приложение, в котором размещен 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).
Это должно делать то, что вам нужно:
<Directory /APP>
Order Allow,Deny
Allow from 160.120.25.65
Allow from 127.0.0.0/8
</Directory>
Подробнее см. документацию mod_authz_host
.
Какую версию Apache вы используете? Механизмами, обеспечивающими IP, является AFAIK, предоставляемый mod_authz_host, который был введен в 2.2 (ну, с технической точки зрения, 2.1). Если у вас есть 2.2, убедитесь, что он не был скомпилирован с mod_authz_host отключен.
Вообще говоря, вы можете найти более простое и надежное решение: iptables или другие брандмауэры, предложенные в других ответах.
Я бы предложил 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
Это должно решить вашу проблему, как только вы замените ее на правильное значение
Я бы, вероятно, использовал для этого правило iptables. Я не уверен, какой пример вы разместили, но вы должны настроить практически любой брандмауэр для работы, как вы этого хотите.