Книга: Linux глазами хакера
4.14. Запрет и разрешение хостов
4.14. Запрет и разрешение хостов
Работа с ipchains или iptables (см. разд. 4.11 и 4.12) может показаться сложной, потому что требует знания необходимых портов, но этот способ наиболее надежный, и для построения реальной защиты рекомендуется использовать именно его. А вот для решения простых задач (например, временная защита) есть другой метод — использование файлов /etc/hosts.allow и /etc/hosts.deny. Первый файл содержит записи хостов, которым разрешен доступ в систему, а во втором прописаны запреты.
При подключении к серверу файлы проверяются следующим образом:
1. Если для компьютера нет ни одной записи в файлах, то доступ по умолчанию разрешен.
2. Если соответствие обнаружено в файле hosts.allow, то доступ разрешен и файл hosts.deny не проверяется.
3. Если в файле hosts.deny найдена запись, то доступ запрещен.
Удобство использования этих файлов заключается в том, что в них нужно указывать сервисы, требующие ограничения доступа. Это делается в виде строк следующего вида:
сервис: хост
Строка состоит из двух параметров, разделенных двоеточием. Первым указывается имя сервиса (или список, разделенный запятыми), доступ к которому нужно ограничить. Второй — это адреса (для файла /etc/hosts.allow разрешенные, а для /etc/hosts.deny — запрещенные), разделенные запятыми. В качестве параметров можно использовать ключевое слово ALL
, которое соответствует любому адресу или сервису.
Рассмотрим пример конфигурирования файла. Для начала закроем любой доступ. Для этого в файле /etc/hosts.deny нужно прописать запрет для всех пользователей на любые сервисы. Для этого добавляем строку ALL: ALL.
В результате ваш файл будет выглядеть следующим образом:
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
ALL: ALL
Теперь санкционируем только следующий доступ:
? компьютеру с адресом 192.168.1.1 разрешено подключение ко всем сервисам;
? с ftpd-сервисом могут работать только компьютеры с адресами 192.168.1.2 и 192.168.1.3.
#
# hosts.allow This file describes the names of the hosts
# which are allowed to use the local INET services,
# as decided by the '/usr/sbin/tcpd' server,
#
ALL: 192.168.1.1
ftpd: 192.168.1.2, 192.168.1.3
Если вам нужно целой сети позволить доступ к какому-либо сервису, то можно указать неполный адрес:
ftpd: 192.168.1.
В данной строке разрешен доступ к ftpd-сервису всем компьютерам сети 192.168.1.x (последнее число адреса не указано, значит, оно может быть любым).
Как видите, использовать файлы /etc/hosts.allow и /etc/hosts.deny намного проще, потому что не требуется прописывать правила для входящих и исходящих пакетов. Но возможности этих файлов слишком ограничены и намного меньше, чем у любого сетевого экрана.
Я рекомендую использовать файлы /etc/hosts.allow и /etc/hosts.deny для решения временных проблем безопасности. Если найдена уязвимость в каком- либо сервисе, то его легко обойти через установки в файле /etc/hosts.deny. Если вы заметили попытку атаки с какого-нибудь IP-адреса, запретите на пару часов любые подключения с него, но опять же используя файл /etc/hosts.deny.
Почему нежелательно играть с цепочками сетевого экрана? Случайное удаление или добавление ошибочной записи может нарушить работу сервера или понизить его безопасность. Именно поэтому временные правила я не рекомендую устанавливать в сетевом экране.
- 4.1. Права доступа
- 4.2. Управление группами
- 4.3. Управление пользователями
- 4.4. Типичные ошибки распределения прав
- 4.5. Привилегированные программы
- 4.6. Дополнительные возможности защиты
- 4.7. Защита служб
- 4.8. Получение прав root
- 4.9. Расширение прав
- 4.10. Сетевой экран
- 4.11. ipchains
- 4.12. iptables
- 4.13. Замечания по работе Firewall
- 4.14. Запрет и разрешение хостов
- 4.15. Советы по конфигурированию Firewall
- 4.16. Повышение привилегий
- Запрет на редактирование реестра
- Обмен данными между гостевой и хостовой ОС
- Я не использую NTFS, но очень нужно запретить пользователям запуск одной программы. Это реально?
- 10.5.1. Запрет доступа реальным пользователям
- Разрешение трассировки с помощью ‹trace›
- Хостовые факторы
- Разрешение конфликтов имен
- Запрещение и разрешение прерываний
- П2.4.1. Запрет доступа к сайту (или к списку сайтов)
- Разрешение автоприращения для полей
- Как настроить разрешение экрана?
- 6.1. Разрешение экрана