Введение
Файлы hosts.allow и hosts.deny, расположенные в /etc, управляют TCP Wrappers, набором функций, полезных для управления доступом к вашей системе извне.
В файле hosts.allow перечислены правила, разрешающие доступ. В файле hosts.deny перечислены правила, запрещающие доступ.
Сначала система проверит hosts.allow, если определенное правило соответствует входящему действию, доступ будет предоставлен и проверка завершится, в противном случае система проверит правила внутри файла hosts.deny, если правило к его внутреннему соответствует доступу, быть отказано. По умолчанию доступ гарантирован.
Конфигурация
Обычно рекомендуется запрещать любой доступ к hosts.deny и разрешать только те, которые вам нужны, в hosts.allow.
Что нужно помнить:
- У вас может быть только одно правило для каждой службы в файлах hosts.allow и hosts.deny.
- Любые изменения в файлах hosts.allow и hosts.deny вступают в силу немедленно.
- Последняя строка в файлах hosts.allow и hosts.deny должна быть символом новой строки. Или правило не работает.
Общий синтаксис правил для обоих файлов:
daemon: client [:opzione1:opzione2:…]
Примеры: Чтобы запретить все входящие подключения к hosts.deny:
ALL: ALL
Чтобы разрешить SSH-доступ к example.com и запретить доступ всем остальным, в hosts.allow:
sshd:.esempio.com
И в hosts.deny:
sshd: ALL
Запретить FTP-доступ к домену example.com и хостам в сети 192.168.1.0. В файле hosts.deny:
vsftpd: 192.168.1.,.esempio.com
В следующем правиле spawn записывает сообщение в файл журнала vsftpd каждый раз, когда правило совпадает:
vsftpd: 192.168.1.,.esempio.com: spawn /bin/echo `/bin/date` access denied >> /var/log/vsftpd.log: deny
Вы можете использовать опцию spawn для отправки почты администратору.
Подстановочные знаки
Вы можете использовать подстановочные знаки в клиентской части правила для широкой классификации группы хостов. Это допустимые подстановочные знаки, которые можно использовать.
ВСЕ - соответствует всему LOCAL — соответствует любому хосту, который не содержит точки (.), например, localhost. KNOWN — соответствует любому хосту, для которого известны имя хоста и адреса хоста или где известен пользователь. UNKNOWN — Соответствует любому хосту, где имя хоста или адрес хоста неизвестны или где неизвестен пользователь. PARANOID — Соответствует любому хосту, имя хоста которого не совпадает с адресом хоста.
Некоторые примеры. Соответствует всем хостам в сети 112.12.0.0. Обратите внимание на точку (.) в конце правила:
ALL: 112.12.
В правиле можно использовать IP-адрес/сетевую маску.
ALL: 192.168.0.1/255.255.255.0
Если список клиентов начинается с косой черты (/), он рассматривается как имя файла. В следующем правиле оболочки TCP ищут файл sshd.deny для всех соединений SSH.
sshd: /etc/sshd.deny
Он разрешит ssh-соединение только для машины с IP-адресом 192.161.0.11 и заблокирует все остальные соединения.
sshd: ALL EXCEPT 192.161.0.11
Вы можете использовать параметры, чтобы разрешить или запретить разрешение или ограничение для каждого клиента в одном из файлов hosts.allow и hosts.deny.
in.telnetd: 192.168.1.1: deny
in.telnetd: 192.168.1.2: allow
Команды оболочки
Как упоминалось ранее, правила могут быть связаны с определенными командами оболочки с помощью следующих двух параметров.
spawn — эта опция запускает команду оболочки как дочерний процесс. Например:
sshd: 192.168.5.5: spawn /bin/echo `/bin/date` from %h >> /var/log/ssh.log: deny
Всякий раз, когда правило соответствует, текущая дата и имя хоста клиента% h добавляются в файл ssh.log.
твист — это опция, заменяющая запрос указанной командой. Например, если вы хотите отправить клиенту попытку подключения по ssh к вашей машине, которой запрещен доступ по SSH, вы можете воспользоваться этой опцией.
sshd: esempio1.com: twist /bin/echo “Non puoi accedere a questo servizio”: deny
С spawn и wake вы можете использовать ряд выражений: %a - IP-адрес клиента. %A - IP-адрес сервера. %c — Предоставляет различную информацию о клиенте, такую как имя пользователя и имя хоста или имя пользователя и IP-адрес. %d - Имя процесса демона. %h — имя хоста клиента (или IP-адрес, если имя хоста недоступно). %H - Имя хоста сервера (или IP-адрес, если имя хоста недоступно). %n - имя хоста клиента. Если он недоступен, печатается «неизвестно». Если имя хоста клиента и адрес хоста не совпадают, печатается «paranoid». %N - Имя хоста сервера. Если он недоступен, печатается «неизвестно». Если имя хоста и адрес хоста сервера не совпадают, печатается «параноик». %p — идентификатор процесса демона. %s — различные типы информации о сервере, такие как процесс демона и хост или IP-адрес сервера. %u - Имя пользователя клиента. Если он недоступен, печатается «неизвестно».
Настройка файлов hosts.allow и hosts.deny завершена.