Я использую Apache 2.4 на Debian Bullseye в локальной сети за маршрутизатором DSL с динамическими адресами IPv4 и IPv6. Мой веб-сервер работает как конечная точка TLS и обслуживает множество страниц. Некоторые из этих страниц должны быть доступны в Интернете, а другие страницы должны быть доступны только в моей локальной сети. Доступ из Интернета работает, но я не могу заставить работать страницы только для локальной сети. В моей конфигурации Apache есть следующее:
<Location /localonlystuff>
Require local
Require ip 192.168.0.0/24
</Location>
Это разрешает доступ с локального хоста (ОК), со всех хостов в моем сегменте локальной сети с использованием IPv4 (частная сеть 192.168.0.0/24) и запрещает любой доступ из Интернета. Однако он не разрешает доступ с хостов в моем сегменте локальной сети с использованием IPv6. Поскольку здесь не разрешен диапазон IPv6, Apache отказывает им в доступе.
Теоретически я мог бы просто добавить Требовать IP-адрес 1234:5678:9012:3456::/64
в файл, показанный выше. Однако мой диапазон IPv6 динамически назначается моим интернет-провайдером и меняется каждые 24 часа, поэтому статическая запись не будет правильной в течение длительного времени. Я подумал о разрешении fe80::
, но разрешение DNS в моей сети указывает на префиксы, предоставленные провайдером, а не на локальные адреса ссылок.
Я прочитал документацию о mod_authz_host и видел раздел о Требовать хост
. Это, вероятно, даст то, что я хочу (мой маршрутизатор устанавливает локальный домен с обратным просмотром), но я боюсь, что этот метод будет подвержен таким вещам, как отравление DNS-кэша или спуфинговые атаки, позволяющие посторонним проникнуть в мою сеть. Я бы предпочел решение, локальное для моего сервера, где я говорю эквивалент Требовать интерфейс lan0
чтобы разрешить всем клиентам в сетевых диапазонах, настроенных на lan0
во время запроса - аналогично тому, как вы можете заставить Apache прослушивать все IP-адреса на данном интерфейсе. Однако я не нашел никакой документации на этот счет.
Есть ли способ добиться этой функциональности (разрешить только хосты из локальной сети IPv6), возможно, с помощью средств, отличных от mod_authn_host?
Я также открыт для предложений, отличных от проверки подлинности. Я могу много возиться с конфигурацией моего Apache, но вряд ли смогу внести какие-либо изменения в конфигурацию своего маршрутизатора. Также учтите, что у меня есть только один SSL-сервер virutal_host с сертификатом Let's Encrypt.