У цій статті я хочу розповісти про свій досвід створення шлюзу на базі операційної системи (ОС) OpenBSD. так як, по-моєму, це оптимальне рішення для більшості організацій, офісів і, особливо, для будинку. Тут я не буду давати докладні теоретичні викладки, яких і так повно в Інтернеті і документації, а просто постараюся коротко і лаконічно викласти основні кроки для досягнення мети.
Отже. Чому я вибрав в якості основи для сервера (шлюзу) саме систему OpenBSD. а не якусь іншу? Цей вибір не випадковий, а цілком обгрунтований, і причин для вибору даної ОС більш ніж достатньо. Справа в тому, що до OpenBSD мені доводилося працювати з багатьма системами (DOS, Windows. Linux. Lindows, BeOS, FreeBSD і т.д.), однак жодна з них мене настільки не вразила своєю простотою, цілісністю, гнучкістю і надійністю як OpenBSD.
Для початку давайте визначимося чого ми хочемо, що конкретно і як повинен робити наш сервер. Якщо це звичайний шлюз (типу "міст"), то досить просто включити перенаправлення мережевого трафіку з однієї мережевої карти на іншу і все. Робиться це правкою всього двох-трьох конфігураційних файлів. Якщо ж наш сервер повинен виконувати ще якісь функції, то це вже складніше, але не набагато.
- зібрати комп'ютер для нашого шлюзу (візьмемо старий IBM PC Pentium II).
- встановити і налаштувати саму ОС (ми будемо ставити OpenBSD 4.8 для платформи i386).
- налаштувати пересилання пакетів (трансляцію трафіку) між мережевими інтерфейсамію.
- налаштувати сервер 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 і не морочити голову?
тоді є питання а якщо у мене провайдер по тунелю при кожному з'єднанні дає новий ВП. че тоді.