У меня Apache2 работает на Ubuntu 14.04LTS. Чтобы начать защищать сетевой доступ к машине, я хочу начать с блокировки всего, а затем сделать определенные разрешающие инструкции для определенных подсетей для просмотра сайтов, размещенных в Apache.
Сервер Ubuntu устанавливается без пакетов, выбранных во время установки, единственные пакеты, добавленные после установки: apt-get update; apt-get install apache2, php5 (с дополнительными модулями php5), openssh-server, mysql-client
Ниже приведены мои /etc/hosts.deny
& /etc/hosts.allow
настройки:
/etc/hosts.deny
ALL:ALL
/etc/hosts.allow вообще не имеет разрешающих записей.
Я ожидал, что все сетевые протоколы будут запрещены. Симптомом является то, что я все еще могу просматривать сайты, размещенные на веб-сервере Apache, даже если в /etc/hosts.deny есть запрос deny all.
После добавления запрещающей записи система была перезагружена.
Почему /etc/hosts.deny с ALL: ALL игнорируется и разрешает просмотр сайтов, размещенных на веб-сервере Apache, по http?
Для того, чтобы tcp-оболочки работали, вам необходимо запустить соответствующую службу из xinetd или иметь ссылку на приложение на libwrap. Демон xinetd - это супер-служба с оболочкой TCP.
Прежде всего следует помнить, что не все сетевые приложения на вашем компьютере совместимы с tcpwrappers. Ограничения для hosts.allow или hosts.deny действительны, только если они относятся к библиотеке tcpwrappers. Как узнать, совместимо ли ваше приложение? Используйте эту команду:
ldd /path/to/binary | grep libwrap (general example)
ldd /usr/sbin/sshd | grep libwrap (shows that the sshd refers to libwrap)
ldd /usr/sbin/apache2 | grep libwrap (show that apache does not refer to libwrap)
В базовом примере выше мы видим, что sshd (ssh server) ссылается на libwrap.so, поэтому мы можем сказать, что любые ограничения в hosts.allow и hosts.deny применимы к этой службе. Мы также видим, что apache2 не относится к libwrap.so, поэтому любые указанные там ограничения не применяются к соединениям apache2. (т.е. вы можете заблокировать ssh, но apache2 все еще широко открыт)
Видеть https://stackoverflow.com/questions/19445686/ubuntu-server-apache-2-4-6-client-denied-by-server-configuration-php-fpm и Обновление с Apache 2.2 до Apache 2.4
В Ubuntu 14.04 что-то было изменено в конфигурации Apache. Вы должны внести это изменение: Изменить
Order Deny,Allow
Deny from all
в
Require all denied
Чтобы ограничить ваш сервер apache, добавьте в httpd.conf что-нибудь из следующего
<Directory />
Order Deny, Allow
Deny from all
#Allow from your ip
</Directory>
Если я правильно помню, вам нужно включить mod_access, но в основном это по умолчанию.
NB! Вы должны перезапустить apache.
Файлы hosts.allow и hosts.deny имеют ограниченное действие. Это не относится к приложению apache.
Однако в директивах конфигурации apache есть директивы управления доступом, которые устанавливают ограничения такого типа.