Захист мережі за допомогою Iptables - Proxy - NAT - IDS: ЧАСТИНА 2

У попередній публікації ми розглянули, як налаштувати IPTables для роботи брандмауера. Тепер ми можемо побачити, як створювати скрипти для автоматичного запуску правил під час запуску системи, а також як видаляти або тимчасово зупиняти ці правила.

Перш ніж виконати сценарій і показати вам, як він виглядає, давайте трохи поговоримо про NAT та концепцію того, що ми хочемо робити з цим обладнанням.

NAT та контекст прикладу.

Коли ми говоримо про NAT, ми можемо сплутати це з маршрутизацією, оскільки обидві відповідають за підключення двох різних мереж між собою. Справжня різниця полягає в тому, що маршрутизація застосовується для переходу від однієї локальної мережі до іншої, і ця інша мережа може підключатися до маршрутизатора і виходити в Інтернет.

Тоді як, говорячи про NAT, ми говоримо про маршрутизацію пакетів з локальної або приватної мережі у загальнодоступну мережу або Інтернет. Це робиться шляхом маскування пакетів шляхом розміщення загальнодоступного IP, з яким він надходить в Інтернет. Іншими словами, нам не потрібен маршрутизатор, оскільки загальнодоступний IP безпосередньо належить комп’ютеру GNU / Linux.

nat

Ми будемо працювати над цим слоганом, що використовуємо наш Linux як маршрутизатор / брандмауер для виходу в Інтернет з локальної мережі. Але тут можуть з’явитися два сценарії.

  • Що наш Linux знаходиться між маршрутизатором постачальника послуг та локальною мережею.

У цьому випадку між маршрутизатором та нашою системою Linux буде одна мережа, а між системою Linux та локальною мережею – інша. Це означає, що нашому маршрутизатору не потрібно буде виконувати NAT як такий; буде достатньо простої маршрутизації трафіку, як пояснювалося в попередньому дописі .

  • Що наш Linux має інтерфейс, підключений до локальної мережі, і через інший інтерфейс він отримує безпосередньо загальнодоступний IP, з яким він здійснює навігацію.

Це означає, що наш Linux повинен робити NAT, щоб пакети могли надходити в Інтернет.

Тоді для цілей цієї невеликої лабораторії ми скажемо, що наш Linux отримує загальнодоступний IP безпосередньо і, отже, зможе перевірити ефекти NAT.

Для виконання NAT ми тоді використовуємо синтаксис

 iptables -t nat -A ПОРОБУВАННЯ -O eth1 -j MASQUERADE

Де eth1 - це інтерфейс, де ми отримуємо загальнодоступний ip, тобто де ми переходимо до Інтернету.

MASQUERADE використовується, коли ip є загальнодоступним, але він може змінюватися з часом (динамічний). В іншому випадку ми можемо використовувати SNAT –до джерела ip

Створення iptables сценарію

Припустимо, що: 172.26.0.0 - це наша локальна мережа, а 81.2.3.4 - загальнодоступний IP, з яким ми переходимо в Інтернет. (це статичний ip). У мене є інтерфейси eth0 (Локальна мережа)

eth1 (Громадська мережа).

В основному він складається зі створення скрипта, який можна викликати з /etc/init.d/firestop (наприклад). і з цього сценарію ми можемо запустити, зупинити або перевірити стан нашої конфігурації, як це робиться з будь-яким системним демоном.

Припустимо, мої правила IPTABLES Є:

#! / bin / bash # Брандмауер мого будинку. # Назва файлу / etc / firewall_on # Автор: Jlcmux Twitter: @Jlcmux # # Основна політика. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT для спільного користування Інтернетом від eth0 до eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --до джерела 81.2.3.4
# # Дозволити вхідні з'єднання, ініційовані моїми iptables -A FORWARD -m state --state ВСТАНОВЛЕНО, ПОВ'ЯЗАНО -j ПРИЙНЯТИ # # Авторизовані iptables вихідного трафіку -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Не забуваймо дати дозволи на виконання

Пояснення:

В основному сценарій робить наступне:

  1. Спочатку обмежте всю навігацію, сполучення та рух. (Основні правила щодо брандмауера)
  2. Потім створіть NAT з цільовим eth1. вказуючи на те, що у нас є статичний загальнодоступний ip «81.2.3.4»
  3. Він відкриває порти, необхідні для прийому ініційованих мною пакетів з'єднань.
  4. Приймає вихідний HTTP, HTTPS та DNS-трафік.
Правила призначені для ВПЕРЕДНОГО трафіку, оскільки ми використовуємо наш Linux як маршрутизатор, тому політики використовуються для трафіку, який ПРОХОДИТЬ через Linux, тобто він виступає посередником. Це означає, що наш Linux не може реально орієнтуватися або отримувати будь-які дані безпосередньо. Це стосується лише підключених до нього комп’ютерів, але не стосується самого себе

Якщо ми хочемо використовувати наше обладнання для навігації, нам слід повторити рядки та змінити ВПЕРЕД на ВХІД або ВИХІД відповідно.

Скасувати сценарій.

Зараз ми збираємося створити сценарій, який замінює все вищезазначене і залишає комп’ютер чистим від усього цього. (Для цілей тестування або ми просто хочемо вимкнути брандмауер).

#! / bin / bash # Брандмауер мого будинку. # Назва файлу / etc / firewall_off # За допомогою Jlcmux Twitter: @Jlcmux # # Видалення правил iptables -F # # Застосування політик за замовчуванням (приймається весь трафік) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Автоматизація.

Тепер нам потрібно створити скрипт всередині /etc/init.d/ , щоб служба запускалася автоматично, і нам було легше нею керувати.

#! / bin / bash # Брандмауер мого будинку. # Назва файлу /etc/init.d/ брандмауер # Автор Jlcmux Twitter: @Jlcmux справа $ 1 на початку) / etc / firewall_on ;; зупинка) / etc / firewall_off ;; статус) iptables -L ;; *) echo "Неправильний синтаксис. Дійсний = /etc/init.d/ start firewall | stop | status ;; esac

Пояснення:

Ми розміщуємо цей останній скрипт у /etc/init.d/ з назвою "firewall" . Потім, якщо ми хочемо керувати брандмауером, ми можемо використовувати команду /etc/init.d/firewall start. Ми також можемо зупинити його або перевірити його стан таким самим чином.

Тепер ми відредагуємо файл /etc/rc.local і додамо щось на кшталт: /etc/init.d/firewall start , щоб він запускався разом із системою.

Також. Це друга частина. Сподіваюся, це щось принесе усім вам. У наступному ми бачимо Proxy та IDS.


Додати як пріоритетне джерело в Google