SuSEfirewall2 - зручна надбудова над ip_tables

Сучасні версії ядра Linux (2.6.x ) містять потужний засіб контролю над IP-трафіком - ip_tables, для його налаштування служить утиліта iptables. Цей механізм забезпечує в числі іншого трансляцію адрес (DNAT і SNAT), Forwarding і Masquerading. На сайті розробників представлений повний набордокументаціі, включаючи керівництво на декількох мовах. Єдиний недолік - висока складність освоєння - з точки зору багатьох користувачів переважує будь гідності. З цієї причини в дистрибутив OpenSUSE включено зручне і просте у використанні засіб - SuSEfirewall2 (скорочено - SFW2), фактично представляє собою надбудову над iptables. Про правильному застосуванні цього інструмента і піде мова далі.

Перш за все потрібно налаштувати мережеві інтерфейси, в простому випадку досить двох - зовнішнього і внутрішнього. Припустимо, це будуть eth1 (MAC 00:2 e: 15: fb: 61:10) і eth0 (MAC 00:16: ac: 47:8 f: ad) відповідно. Можна скористатися разделомNetwork Devices/Network Cardконфігуратора YaST2 (/sbin/yast2) або набрати в консолі наступну послідовність команд:

ifconfig eth0 down
ifconfig eth0 10.10.1.1 netmask 255.255.255.0 up
ifconfig eth1 down
ifconfig eth1 195.14.50.94 netmask 255.255.255.248 up
route add default gw 195.14.50.89

Очевидно, що наведені для прикладу IP-адреси і мережні маски слід замінити актуальними для вашої мережі.

Конфігурація SFW2 зберігається у файлі/etc/sysconfig/SuSEfirewall2. Для його редагування можна використовувати, наприклад, що викликається по клавіші F4 вбудований редактор файлового менеджера mc. При перенесенні текстових файлів між ОС слід пам'ятати, що прийнятий в Linux роздільник рядків складається з єдиного символу CR, тоді як в DOS і Windows використовується пара CR/LF.

Більше 90 відсотків вмісту файлу - докладні текстові коментарі з прикладами можливих варіантів настройки. Щоб уникнути прикрих помилок видаляти коментарі не рекомендується - окрім іншого в них міститься інформація про застосовувані значеннях за замовчуванням. Для швидкого аналізу поточної конфігурації можна використовувати наступну команду:

gawk '{if (substr ($ 0, 0, 1)!="#") If (substr ($ 0, length ($ 0) -2)!="= \" \ "") print $ 0} '
/etc/sysconfig/SuSEfirewall2 | grep.

gawk - підходящий засіб для порядкової фільтрації без використання регулярних виразів

В результаті її виконання в консоль буде виведено вміст конфігураційного файлу в легко читається вигляді - виявляться виключені рядки, що починаються зі знака "#" (коментарі) або закінчуються на "="" " (не визначені явним чином параметри). Щоб не набирати довгу команду більше одного разу, можна зберегти її, наприклад, у файлі swf2cfg, випередивши рядком "#!/Bin/sh" і встановивши відповідні права командойchmod 700 swf2cfg.Теперь для аналізу налаштувань досить набрати в консолі./swf2cfg, проте , використовуючи подібний фільтр, не слід забувати про існування значень за замовчуванням.

Розглянемо докладніше формат і призначення основних параметрів/etc/sysconfig/SuSEfirewall2.

  • Насамперед слід визначити, який з мережевих інтерфейсів є зовнішнім (підключеним до мережі інтернет-провайдера) і внутрішнім (підключеним до локальної мережі). Параметрanyозначає "всі інші, не зазначені явним чином інтерфейси" - в нашому випадку такі вважаються за замовчуванням зовнішніми:
  • FW_DEV_EXT="any eth-id- 00:2 e: 15: fb: 61:10 "
  • FW_DEV_INT="eth-id-00: 16: ac: 47:8 f: ad "

  • Наступні два параметри вказують на необхідність маршрутизації трафіку між внутрішнім і зовнішнім інтерфейсами, причому всі комп'ютери локальної мережі будуть приховані ("замасковані") під єдиним зовнішнім IP адресою, узятим з налаштувань зазначеного в третьому параметрі зовнішнього надолужити перерахувати маскіруемие підмережі, із зазначенням мережевих протоколів і портів, а також адрес, куди дозволяється перенаправляти трафік. Підмережі перераховуються через пробіл, для більшої читабельності приклад вони розміщені по одній на рядок із застосуванням символу конкатенації - зворотної косої межі (оскільки фактично йдеться про одну рядку, коментарі до завершальних лапок неприпустимі). Отже, в нашому випадку знаходиться в локальній мережі сервера 10.10.1.3 дозволяється з'єднуватися з будь-якими зовнішніми мережами по протоколу tcp/ip, при цьому допустимі три порти призначення 25 (smtp), 110 (pop3), 5899 (Radmin). Крім того, вирішуються DNS-запити за протоколом udp. Що має адресу 10.10.1.20 робоча станція отримує можливість з'єднуватися з поштовим сервером за адресою 195.151.13.100, використовуючи стандартні tcp/ip порти 25/110:
  • FW_MASQ_NETS="\
  • 10.10.1.3/32, 0/0, tcp, 25 \
  • 10.10.1.3/32, 0/0, tcp, 110 \
  • 10.10.1.3/32, 0/0, tcp, 5899 \
  • 10.10.1.3/32, 0/0, udp, 53 \
  • \
  • 10.10.1.20/32, 195.151.13.100/32, tcp, 25 \
  • 10.10.1.20/32, 195.151.13.100/32, tcp, 110 "

  • Наступні два параметри включають захист від можливих атак на внутрішній мережевий інтерфейс, але дозволяють доступ з локальної мережі до портів 22 (ssh) та 3128 (proxy) роутера:
  • FW_PROTECT_FROM_INT="yes"
  • FW_SERVICES_INT_TCP="22 3128"

  • Далі необхідно вказати зовнішні підмережі, для яких явно заборонений (REJECT) або дозволений (ACCEPT) доступ до певних сервісів, що працюють на роутері.

    Слід мати на увазі, що при відсутності явного дозволяючого правила пакети не будуть пропущені - до них буде застосована політика DROP, в якості реакції на можливу атаку більш краща, ніж REJECT. Першим параметром забороняється доступ з будь-яких зовнішніх адрес на порт 113 по протоколу tcp/ip, другим допускаються з'єднання з зовнішнього адреси 80.17.230.11 по протоколу tcp/ip на порт 22 (ssh) роутера. Можливість віддаленого підключення створює потенційну вразливість, категорично не рекомендується дозволяти ssh-сесії з довільних ззовні сервіси - загроза безпеці сетіСледующій параметр визначає доступність окремих локальних сервісів для зовнішніх підмереж. Мова йде, наприклад, про поштовий або веб-сервері, які знаходяться в маскіруемое сегменті мережі і не мають зовнішніх IP адрес. Необхідно розуміти, що сам факт наявності доступних ззовні сервісів створює серйозну загрозу для безпеки всієї локальної мережі. Потенційний зловмисник може скористатися як недоліками конфігурації, так і виявленої вразливістю в виконуваному коді. У наведеному прикладі відкритий доступ до поштового сервера 10.10.1.3 з зовнішніх адрес, що відносяться до підмережі MTU-Stream, а з зовнішнього адреси 80.17.230.11 - до служби видаленого адміністрування (Radmin):
  • FW_FORWARD_MASQ="\
  • 83.237.0.0/16, 10.10.1.3, tcp, 25,25,195.14.50.94 \
  • 83.237.0.0/16, 10.10.1.3, tcp, 110,110,195.14. 50.94 \
  • \
  • 85.140.0.0/16, 10.10.1.3, tcp, 25,25,195.14.50.94 \
  • 85.140.0.0/16, 10.10. 1.3, tcp, 110,110,195.14.50.94 \
  • \
  • 85.141.0.0/16, 10.10.1.3, tcp, 25,25,195.14.50.94 \

  • Чергова група з чотирьох параметрів впливає на кількість журнальованою подій. Суфікс CRIT наказує зберігати в лог-файл інформацію про відкинутих (DROP) або прийнятих (ACCEPT) пакетах тільки за умови, що вони були розпізнані як " критичні "- істотні для безпеки. До таких належать зокрема деякі типи icmp-пакетів, запити на rpc-з'єднання, переслані пакети. Суфікс ALL вимагає обережного застосування, через ймовірне роздування лог-файлу і переповнення дискового наступного параметра на час відладки можна встановити в "no", після завершення тестів бажано повернути до початкового стану:
  • FW_KERNEL_SECURITY="yes"

  • Рекомендоване значення "yes" дозволяє роутеру відповідати на icmp-запит " echo request "(так званий ping), що може бути корисно при перевірці працездатності каналу і доступності сервера:
  • FW_ALLOW_PING_FW="yes "

  • Значення за замовчуванням" no "забороняє вихідний з локальної мережі ping:
  • FW_ALLOW_PING_EXT="no"

  • Широкомовні розсилки можуть бути дозволені ("yes"), заборонені ("no") або дозволені для окремих портів чергової пари параметрів здатне ввести в оману. Насправді значення "yes" читається як "не зберігати в лог відомості про відкинутих широкомовних параметр допускає використання політики REJECT замість DROP для внутрішнього мережевого інтерфейсу, що скорочує час очікування зловмисником реакції на заборонені дії:
  • FW_REJECT_INT="yes"

Конфігурація набирає чинності після запуску/sbin/SuSEfirewall2за умови відсутності синтаксичних помилок.

Докладна документація з прикладами знаходиться в директорії/usr/share/doc/packages/SuSEfirewall2/.

Крім акуратною налаштування брандмауера для забезпечення адекватного рівня мережевої безпеки слід дотримуватися ряду правил, у тому числі:

  • віддавати перевагу найбільш захищеним версій ПЗ та протоколів (ssh, vsftpd і т.д. )
  • стежити за повідомленнями про виявлені вразливості і своєчасно встановлювати "поновлення" і "латки"
  • уникати використання ПЗ, джерело походження якого викликає сумніви
  • відмовитися (якщо це можливо) від використання роутінга на користь проксі-сервера

Про встановлення проксі-сервераsquid-cacheпіде мова в наступній, третій частині.
Статьяполучена: hostinfo.ru

Детальніше »