You are on page 1of 6

Національний університет «Чернігівська політехніка»

Лабораторна робота № 3 (продовження ЛР №1 та №2)

Схема мережі:

Iptables. Налаштовуємо маскарад. Імітуємо вихід у зовнішні мережі.

Додаємо якийсь публічний сервер S1. На ньому поставимо apache2 (apt install apache2)
і імітуватимо веб-сервер в інтернеті. Тоді як наші VM1, VM2 – приватні машини, які
знаходяться за роутером, роутер другим інтерфейсом дивиться на імпровізований інтернет.
Додамо 2-й інтерфейс для R1 - eth1 і вже без VLAN налаштуємо йому IP адресу
8.8.8.100, а на S1 - 8.8.8.8

1
Національний університет «Чернігівська політехніка»

Важливо пам'ятати, що всі команди, які ми вводили в консолі, працюють тільки до


перезавантаження. Коли ми додавали 2 інтерфейс і вимкнули віртуалку, то після
перезавантаження отримали не налаштовану машину, внаслідок чого всі команди довелося
застосувати заново.

Якщо ви повторюєте навіть налаштування VBOX, не забудьте додати в br1 обидві


мережеві карти і на S1 і на R1. Bridge-інтерфейс у системі можна створити командою:

ip link add br1 type bridge

Але взагалі всю лабораторну роботу можна зробити і на одному будь-якому інтерфейсі
нічого не створюючи. Акцентуємо поділ для того, щоб імітувати bridge = ніби комутатор.

Після налаштування S1, R1 перевіряємо зв'язність – виконаємо ping 8.8.8.8 – з R1 він


повинен працювати. При цьому якщо ми пінгуватимемо з VM2, то пінгу не буде. Тому що S1
не знає про мережу 172.16.0.0. Додамо наш R1 як шлюз за замовчуванням для S1:

ip ro add default via 8.8.8.100

Крім того, якщо ми пінгуватимемо сервер з VM1 то він взагалі скаже що мережа
недоступна. Тому що ми взагалі не прописували default gw, а вказали, де знаходиться мережа
172.16.0.0/24.

Виправимо це прописавши gateway:

2
Національний університет «Чернігівська політехніка»

Тепер усі 4 машини чудово пінгують одна одну. Але так не повинно бути. Сірі адреси
не повинні виходити в інтернет! І та мережа, куди дивиться другим інтерфейсом R1, не
повинна знати, де знаходяться адреси 172.16.*.*, 192.168.*.*.
Видалимо deafult gw із S1:

ip ro del default

Підіб'ємо підсумки: ми навчилися прописувати маршрути до необхідних нам мереж, а


також дізналися як «ховати» сірі адреси за маршрутизатором, випускаючи назовні весь трафік
лише через одну білу адресу.

Настав час поговорити про NAT. NAT (від англ. Network Address Translation -
"перетворення мережевих адрес") – це механізм у мережах TCP/IP, що дозволяє
перетворювати IP-адреси транзитних пакетів. Також має назви IP Masquerading, Network
Masquerading та Native Address Translation. Ми розглянемо маскарадінг. Це SourceNAT
(SNAT) && DestinationNAT (DNAT).
Що нам від NAT взагалі потрібно? А потрібно нам, щоб вихідний у бік S1 пакет
отримував як source ip адресу маршрутизатора, а коли повертався назад - отримував адресою
призначення знову адресу віртуалки.

Налаштуємо маскарад для підмережі 17.16.0.0/24 – виконаємо на роутері команду:

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 172.16.0.0/24 ! -d


172.16.0.0/24 -j

Не розписуватимемо докладно як працюють iptables, так як є окремі матеріали для


вивчення цього. Звернемо лише увагу на ! -d 172.16.0.0/24: для чого це потрібно. Це потрібно
для того, щоб хости з підмережі 172.16.0.0/24, які потенційно могли б перебувати за
маршрутизатором (наприклад, віддалені vpn-клієнти) не потрапляли б під дію цього правила.

3
Національний університет «Чернігівська політехніка»

Подивитися отриманий результат можна командою iptables-save

Отже, чого ми досягли? Ми налаштували маскарад для VM2. Це означає, що коли вона
стукатиметься до S1, то S1 побачить адресу не VM2, а адресу роутера! Підтвердження:

А що ж у цей момент бачить S1?

4
Національний університет «Чернігівська політехніка»

8.8.8.8 чудово спілкується з 8.8.8.100, ніякого 172.16.0.2 не видно! А що ж відбувається


на роутері? Підслухаємо "сірий" інтерфейс eth0.300

А ось як це виглядає на виході до «зовнішньої» мережі:

5
Національний університет «Чернігівська політехніка»

Ядро в залежності від напрямку пакету обробляє його та підставляє правильні ip-
адреси. А ось якщо ми зробимо те саме з VM1, то S1 побачить сірі адреси, і просто не
відповість на цей запит. Подивіться це самостійно. Нагадаємо, що GW на S1 потрібно
видалити.

Підіб'ємо підсумки: Ми приховали наші сірі мережі і випустили хости за роутер,


підмінивши ip адреси джерел на адресу роутера. І в інший бік ми навчилися прокидати певний
порт певної віртуалки «назовні» і змогли підключитися до сірої адреси віртуалки VM1 з
«публічної» мережі з сервера S1.

You might also like