У меня есть веб-приложение Django 2.2, работающее на веб-сервере Apache 2.4 Ubuntu 18.04, которое имеет два сетевых интерфейса. Один сетевой интерфейс предназначен для доступа в Интернет (eth0), а другой - для локальной сети (eth1).
Мне нужно найти способ ограничить доступ к некоторым страницам из каждого сетевого интерфейса, при этом некоторые страницы по-прежнему будут доступны из обоих интерфейсов.
В проектах urls.py у меня есть следующие URL-адреса:
url(r'^eth0/', include('eth0.urls')), #accessible to only eth0
url(r'^eth0eth1/', include('eth0eth1.urls')), #accessible by both network interfaces
url(r'^eth1/', include('eth1.urls')), #accessible to only eth1
Как я могу добиться этого с помощью конфигурации Apache или Django?
Я решил проблему со следующей конфигурацией apache.
<Location /eth0/>
Require ip eth0_subnet_ip
</Location>
<Location /eth0eth1/>
Require ip eth0_subnet_ip
Require ip eth1_subnet_ip
</Location>
<Location /eth1/>
Require ip eth1_subnet_ip
</Location>
Добавление этих директив в конфигурацию виртуального хоста решило мою проблему.