Система обмежень tcp wrappers

Матеріал з Wiki TNEU
Версія від 00:37, 7 грудня 2011; Малюга Андрій (Обговорення)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Система обмежень tcp wrappers

Кожен, хто знайомий з inetd (8), можливо колись чув про TCP Wrappers. Але мало хто повністю розуміють їх корисність в мережевому середовищі: більшість використовують брандмауер. Хоча його застосовність дуже широка, є речі, з якими брандмауер не може працювати, такі як відправка тексту назад викликає стороні. Програмне забезпечення рівня TCP може робити це і багато іншого. У наступних декількох розділах обговорюються багато можливостей TCP Wrappers, і, коли це необхідно, даються приклади налаштувань.

Програмне забезпечення TCP Wrappers розширює можливість inetd з підтримки кожного даемона. З ним стає можливим протоколювання, повернення повідомлень викликає стороні, обмеження підключень внутрішньою мережею і т.п. Хоча деякі з цих можливостей можуть бути реалізовані брандмауером, TCP Wrappers не тільки надають додатковий рівень захисту, але і дають більше контролю над системою, ніж це можливо за брандмауером.

Розширена функціональність обробників TCP не може замінити хороший мережевий екран. Тим не менш, обробники TCP можуть використовуватися спільно з мережевим екраном та іншими засобами забезпечення інформаційної безпеки, забезпечуючи тим самим додатковий рівень захисту системи.

Початкова настройка

Єдина вимога для використання TCP Wrappers в FreeBSD це наявність в rc.conf параметрів запуску inetd-Ww; це налаштування за замовчуванням. Звичайно, очікується також наявність правильного налаштування / etc / hosts.allow, але syslogd (8) відправить повідомлення в системний протокол якщо щось не так. У простій конфігурації, політика підключення зводиться до вирішення або блокування в залежності від параметрів в / etc / hosts.allow. Налаштування в FreeBSD за умовчанням полягає в дозволі підключення до будь даемону, запущеного з inetd. Зміна цієї поведінки буде обговорюватися тільки після розгляду базової налаштування.

Базова настройка зазвичай приймає форму daemon: address: action, де daemon це ім'я даемона, який запускається inetd. У поле address може перебувати ім'я хоста, IP адреса, або IPv6 адресу, укладений у квадратні дужки ([]). Поле action може приймати значення allow або deny, щоб відповідно дозволяти або забороняти доступ. Пам'ятайте, що пошук правил проводиться до першого збігу. При виявленні збігу застосовується відповідне правило і пошук переривається.

Існують і інші параметри, але вони будуть описані в наступних розділах. Проста конфігурація може бути, наприклад, такий: для дозволу з'єднань по протоколу POP3 до даемону mail / qpopper, в hosts.allow необхідно додати наступні рядки:

 # This line is required for POP3 connections:

qpopper : ALL : allow

Після додавання цього рядка, inetd необхідно перезапустити. Це можна виконати командою kill (1) або скриптом / etc / rc.d / inetd з параметром restart.

розширена конфігурація

У TCP Wrappers є додаткові параметри; вони дають додаткові можливості контролю над з'єднаннями. Іноді буває корисно повертати коментар певним хостам або при підключенні до певних даемонам. В інших випадках може бути необхідно додати запис в лог файл, або відправити лист адміністраторові. У певних ситуаціях сервіс повинен використовуватися тільки для локальних з'єднань. Все це можливо з використанням параметрів c шаблонами, символами підстановки і шляхом виконання зовнішніх команд. Наступні два розділи присвячені цим типам налаштувань.

Зовнішні команди

Припустимо ситуацію, в якій з'єднання повинно бути заборонено, а про причини необхідно повідомити викликає стороні. Як це можна зробити? Відповідну можливість надає параметр twist. При спробі підключення виконується команда або скрипт, заданий цим параметром. Приклад дан у файлі hosts.allow:

  1. The rest of the daemons are protected.

ALL: ALL \

       : Severity auth.info \
       : Twist / bin / echo "You are not welcome to use% d from% h."

У цьому прикладі повідомлення,You are not allowed to use daemon from hostname.Буде повернуто від усіх даемонов, які не були попередньо налаштовані у файлі доступу. Зверніть увагу, що повертається, повинно бути укладена в лапки; з цього правила немає винятків. Можливо також використання параметра spawn. Як і параметр twist, параметр spawn передбачає заборону з'єднання і може використовуватися для запуску команд або скриптів. На відміну від twist, spawn не відправляє відповідь викликає стороні. Наприклад, наступна конфігурація:

  1. We do not allow connections from example.com:

ALL:. Example.com \

       : Spawn (/ bin / echo% a from% h attempted to access% d>> \
         / Var / log / connections.log) \
       : Deny

відхилить всі спроби з'єднання з домену *. example.com, а ім'я хоста, IP адреса і даемон протоколюються в файл / var / log / connections.log.

Параметри - шаблони

До цього моменту в прикладах використовувався шаблон ALL. Існують і інші параметри, функціональність яких в подальшому може бути розширена. ALL відповідає будь-якому даемону, домену або IP адресу. Інший доступний шаблон це PARANOID, який відповідає хосту, IP адреса якого може бути підроблений. Іншими словами, paranoid може бути використаний для визначення дії з хостами, IP адреса яких не відповідає імені хоста. Ось приклад застосування цього параметра:

  1. Block possibly spoofed requests to sendmail:

sendmail: PARANOID: deny

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти