Налаштування shorewall для початківців

Всі знають Linux, наскільки добре захищену і безпечну платформу. Одна з причин такої захищеності - це підсистема ядра Netfilter. Ця служба реалізована в ядрі і виконує різні дії з мережевими пакетами. Вона дозволяє фільтрувати їх, перетворювати мережеві адреси і порти, блокувати небезпечні пакети. У більшості дистрибутивів для управління Netfilter в просторі користувача використовується утиліта iptables

Це дуже потужна і популярна програма, але вона складна в освоєнні і використанні. Тут з`являється Shorewall. Це проект з відкритим вихідним кодом, який робить управління службою Netfilter і мережею в цілому більш простим, завдяки використанню зон. Зони використовуються для поділу мережі на сегменти. Наприклад, якщо ви хочете створити приватну мережу, до якої буде доступ тільки у декількох машин і загальну мережу доступну всім, це можна дуже просто налаштувати за допомогою Shorewall. У цій статті ми розглянемо як виконується настройка Shorewall, а також розберемося як працює ця програма.

Як працює Shorewall?

Shorewall - це інструмент конфігурації верхнього рівня для Netfilter. Під час роботи він використовує конфігураційні файли iptables- iptables-restore, ip, tc, а також власні конфігураційні файли, які знаходяться в папці / etc / shorewall. Ви налаштовуєте програму через її конфігураційні файли, потім вона компілює їх в формат iptables і відправляє їх фаєрвол. У Shorewall використовуються такі поняття:

  • інтерфейси - фізичні інтерфейси, на яких буде працювати утиліта, фактично це інтерфейси внутрішніх мереж;
  • зони - це основна одиниця управління мережами в sorewall, правила і встановлюються для кожної зони окремо, також для кожної зони встановлюються політики за замовчуванням. Фактично у кожного керованого інтерфейсу своя зона, але до одного інтерфейсу можна прив`язати кілька зон, розмежувавши їх по IP адресам.
  • політики - вказують що потрібно робити з пакетами за замовчуванням для зони, наприклад, дозволити або заборонити;
  • Правила - детальні правила обробки підключень, наприклад, які саме пакети або протоколи слід дозволити для зазначеної зони.

Shorewall може використовуватися як звичайний брандмауер у вашій системі, роутер, шлюз або виділений фаєрвол. Важливо зауважити, що Shorewall не починається у вигляді сервісу. Він налаштовує мережеву підсистему за допомогою конфігураційних файлів і завершується. Ви не знайдете shorewall в фонових процесах. Спочатку розглянемо як встановити Shorewall.

установка Shorewall

Установка Shorewall теж виконується досить проста. Ми розглянемо роботу з утилітою на прикладі Ubuntu, але в Debian або CentOS все буде виглядати схожим чином. Відкрийте термінал і виконайте такі команди:


$ Sudo apt install shorewall

Для установки Shorewall в CentOS використовуйте таку команду:

$ Sudo yum install shorewall

Коли програма буде встановлена, потрібно налаштувати автоматичний запуск. Для цього відкрийте файл / etc / default / shorewall і замініть значення рядка startup = 0 на 1:

Відео: configuracion shorewall

startup = 1

Тепер програма повністю готова до роботи. Далі ми більш детально розглянемо як її використовувати.

Налаштування Sharewall

Щоб ви змогли зрозуміти як виконується настройка Shorewall ми розглянемо невеликий приклад налаштування системи з одним IP адресою і одним внутрішнім мережевим інтерфейсом. Ми дозволимо доступ по SSH з зовнішнього інтернету, а також заборонимо все інше. Зверніть увагу, що Shorewall буде встановлений на комп`ютері, який буде виступати посередником між нашим ssh сервером і клієнтом.




За замовчуванням Shorewall не створює конфігураційних файлів в папці / etc / shorewall всі вони розташовані в підкаталогах / usr:

  • / Usr / share / doc / shorewall / examples / one-interface;
  • / Usr / share / doc / shorewall / examples / two-interfaces;
  • / Usr / share / doc / shorewall / examples / three-interfaces;
  • / Usr / share / doc / shorewall / examples / Universal.

У нашому випадку нам знадобляться конфігураційні файли для одного інтерфейсу. Скопіюємо хи в нашу папку з настройками:

$ Sudo ifconfig

Відео: PLUG - 9/17/2013 - Doran Barton - "Introduction to Shorewall"

Потім створимо нову зону для локального трафіку під назвою loc. Синтаксис цього конфігураційного файлу дуже простий:




імя_зони тіп_зони

Ім`я зони може бути довільним, а тип один з: ipv4, ipsec, firewall, bpost, loopback. У більшості випадків достатньо ipv4. Відкрийте конфігураційний файл / etc / shorewall / zones і додайте такі два рядки:

net ipv4
loc ipv4

Відкрийте конфігураційний файл / etc / shorewall / interfaces і зв`яжіть нову зону з інтерфейсом:

loc enp0s3

Далі нам потрібно налаштувати політики за замовчуванням. Синтаксис файлу політик трохи складніше:

зона_істочнік зона_назначенія дія уровень_логірованія

Як дії можуть використовуватися ACCEPT, DROP, REJECT. Дозволимо трафік із зовнішнього інтернету для нашої зони loc (ACCEPT) і заборонимо все інше (REJECT).

loc net ACCEPT
all all REJECT info

Останній рядок забороняє всі дії для всіх зон. Залишилося налаштувати правила, які дозволять доступ до нашої машині по ssh. Правила створюються не складніше політик, тільки тут більше налаштувань. Синтаксис файлу правил такої:

дія зона_істочнік зона_цель протокол порт

Правила можуть виконувати різні завдання, наприклад, дозволяти або забороняти пакети, або навіть міняти ip адреси. Ось основні дії:

Відео: SHOREWALL

  • ACCEPT - дозволити;
  • CONMARK - позначити пакет;
  • DNAT - перетворити пакет для передачі на інший комп`ютер або порт;
  • DROP - ігнорувати пакет;
  • LOG - Залогуватися пакет;
  • REJECT - відкинути пакет і повідомити про це відправника.

Ми хочемо забезпечити доступ підключення від 192.168.1.162 до 192.168.1.81. Для цього потрібно додати кілька рядків в / etc / shorewall / rules. Налаштування правил Shorewall буде виглядати так:

SSH (ACCEPT) loc: 192.168.1.162 $ FW tcp ssh
DNAT loc: 192.168.1.162 loc: 192.168.1.81 tcp ssh

Перший рядок дозволяє доступ для 192.168.1.162 до інтерфейсу loc по ssh. Другий рядок використовується для перетворення адрес. Якщо її не додати, то Shorewall не знатиме на який ip адресу потрібно направити цей запит.

Все майже готове, збережіть всі файли і перевірте правильність конфігурації. Для перевірки використовується команда shorewall check. Якщо в конфігурації були допущені помилки, то ви про них дізнаєтеся:

$ Sudo shorewall clear

А після перезапуску Shorewall:

Поділися в соціальних мережах:

Схожі
Налаштування мережі opensuseНалаштування мережі opensuse
Налаштування glusterfsНалаштування glusterfs
Утиліта ip linuxУтиліта ip linux
Як підключити iphone до інтернетЯк підключити iphone до інтернет
5 Міфів про контейнерах linux5 Міфів про контейнерах linux
Програми резервного копіювання linuxПрограми резервного копіювання linux
Установка chromium ubuntu 16.04Установка chromium ubuntu 16.04
Як користуватися blender для початківцівЯк користуватися blender для початківців
Оновлення драйверів ubuntuОновлення драйверів ubuntu
Системи моніторингу сервера linuxСистеми моніторингу сервера linux
» » Налаштування shorewall для початківців