Шлюз (nat) dhcp-сервер на openbsd

У цій статті я хочу розповісти про свій досвід створення шлюзу на базі операційної системи (ОС) OpenBSD. так як, по-моєму, це оптимальне рішення для більшості організацій, офісів і, особливо, для будинку. Тут я не буду давати докладні теоретичні викладки, яких і так повно в Інтернеті і документації, а просто постараюся коротко і лаконічно викласти основні кроки для досягнення мети.

Отже. Чому я вибрав в якості основи для сервера (шлюзу) саме систему OpenBSD. а не якусь іншу? Цей вибір не випадковий, а цілком обгрунтований, і причин для вибору даної ОС більш ніж достатньо. Справа в тому, що до OpenBSD мені доводилося працювати з багатьма системами (DOS, Windows. Linux. Lindows, BeOS, FreeBSD і т.д.), однак жодна з них мене настільки не вразила своєю простотою, цілісністю, гнучкістю і надійністю як OpenBSD.
Для початку давайте визначимося чого ми хочемо, що конкретно і як повинен робити наш сервер. Якщо це звичайний шлюз (типу "міст"), то досить просто включити перенаправлення мережевого трафіку з однієї мережевої карти на іншу і все. Робиться це правкою всього двох-трьох конфігураційних файлів. Якщо ж наш сервер повинен виконувати ще якісь функції, то це вже складніше, але не набагато.

  1. зібрати комп'ютер для нашого шлюзу (візьмемо старий IBM PC Pentium II).
  2. встановити і налаштувати саму ОС (ми будемо ставити OpenBSD 4.8 для платформи i386).
  3. налаштувати пересилання пакетів (трансляцію трафіку) між мережевими інтерфейсамію.
  4. налаштувати сервер DHCP (DHCPD).

На виконання всіх цих дій піде всього кілька хвилин! Отже, приступимо.

устаткування

Для шлюзу можна взяти будь-який старий комп'ютер (наприклад, приготовлений на викид або списаний в утиль) або, при його відсутності, купуємо такий комп'ютер через Інтернет або у знайомих (або беремо мотлох в іншій організації). Коштує він копійки, або навіть зовсім нічого не варто, так як це непотріб. Також, можна зібрати таку машину зі старих запчастин, яких в організаціях і у комп'ютерників, зазвичай, навалом! Не забудьте поставити в нього 2 мережеві карти (адже мережі у нас 2).

Операційна система

Тепер у нас є діючий сервер з уже працюючими і підключеними мережевими інтерфейсами, якщо звичайно Ви їх правильно налаштували при установці. Якщо немає, теж не так страшно, просто відредагуйте конфігураційні файли мережевих карт типу /etc/hostname.fxp0 і /etc/hostname.rtl0 (тут мається на увазі, що наші мережеві карти визначені як fxp0 і rtl0). Подивитися список всіх подібних файлів можна командою ls. наприклад:

Щоб переконатися в правильності налаштувань, можна вивести параметри всіх мережевих інтерфейсів за допомогою команди ifconfig. наприклад так:

Якщо перевірка пройшла успішно, переходимо до налаштувань трансляції мережевого трафіку між нашими мережами (NAT).

Для трансляції мережевого трафіку між нашими мережами (NAT) досить включити forwarding (пересилання) в файлі /etc/sysctl.conf:

А також налаштувати вбудований пакетний фільтр (pf) на роботу в якості NAT (Network Address Translation). Робиться це в файлі конфігурації /etc/pf.conf за допомогою параметра nat-to, наприклад так:

Ну ось і все настройки NAT-а в OpenBSD. Як бачите це робиться правкою всього двох конфігов, в які потрібно дописати по одному рядку. Простота і доступність - головні переваги систем BSD!

Автозавантаження

Залишилося тільки додати NAT (точніше pf) в автозавантаження. Найпростіший спосіб це зробити - знайти і змінити рядок типу "pf =" у файлі /etc/rc.conf. повинно бути так:

Після перезавантаження Ви побачите, що pf був запущений і налаштований, а отже, всі користувачі локальної мережі можуть підключатися до мережі провайдера і насолоджуватися доступом в Інтернет!

Її просто потрібно знайти і поміняти значення параметра.

Ну от і все. Після перезавантаження комп'ютера Ви побачите запуск всіх налаштованих демонів (сервісів), а перевірити їх роботу і стан можна за допомогою команди pgrep, наприклад:

Для більш розширеної настройки DHCPD демона прочитайте наступну статтю ISC-DHCP

Як бачите в створенні сервера (шлюзу) на базі операційної системи OpenBSD немає нічого складного і страшного. Спробуйте, у Вас обов'язково вийде!

У разі якщо на сервер не запущений named то на клієнтських комп'ютерах треба в поле DNS вказати прикордонний DNS сервер, або налаштовувати named самим

як це зробити купа статей але найпростіший варіант


Потім треба вказати в named.conf наш шлюз, для цього:


і в /etc/resolv.conf додамо ДНС сервер гугла =)

Або ж можна прописати їх на клієнтських машинах в файлі /etc/resolv.conf після параметра nameserver наступним чином:

nameserver 10.135.62.2
nameserver 172.18.7.1
nameserver 8.8.8.8
nameserver 34.52.107.18

якщо лінь все налаштовувати, може тоді вже простіше поставити PfSense або Vyatta і не морочити голову?

тоді є питання а якщо у мене провайдер по тунелю при кожному з'єднанні дає новий ВП. че тоді.

Схожі статті