Настройка и защита Linux с помощью hosts.allow и hosts.deny

12 set 2022 3 min di lettura
Настройка и защита Linux с помощью hosts.allow и hosts.deny
Indice dei contenuti

Введение

Файлы 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 завершена.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.