У меня есть сервер Apache, к которому на данный момент мне нужно заблокировать доступ для всех, кроме избранной группы людей. Я подумал, что самый простой способ сделать это - запретить доступ для всего трафика, а затем разрешить только несколько избранных IP-адресов. Судя по тому, что я нашел в Интернете, эта конфигурация должна помочь.
Это все содержимое /etc/apache2/sites-available/000-default.conf:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Order allow,deny
Deny from all
Allow from my.ip.add.res
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Однако, когда я его тестирую, я получаю 403 отовсюду, включая разрешенный IP-адрес «my.ip.add.res».
Я потратил довольно много времени на поиск в Google, но насколько я могу судить, это должно работать отлично. Не уверен, почему это не так. Я упускаю что-то очевидное?
Если вы используете Apache 2.4, убедитесь, что вы ЗАГРУЖАЕТЕ authz_core
модуль,
УДАЛИТЬ:
Order allow,deny
Deny from all
Allow from my.ip.add.res
и вместо удаленных директив
ВСТАВИТЬ:
Require ip xxx.xxx.xxx.xxx
Если вы используете Apache 2.2, убедитесь, что вы ЗАГРУЖАЕТЕ authz_host
модуль,
УДАЛИТЬ:
Order allow,deny
Deny from all
Allow from my.ip.add.res
и вместо удаленных директив
ВСТАВИТЬ:
Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx