Роутер своїми руками

Кілька місяців назад на блозі Vorobus’a я «галопом по Європам» описав основні кроки зі створення домушної мережі. Одним з її компонентів передбачався старенький комп’ютер в ролі роутера. В цій статті я хочу детальніше описати потрібне програмне забезпечення — може комусь стане у пригоді.

DHCP сервер. Відповідає за автоматичну роздачу клієнтам основних параметрів мережі. Стандартом де-факто є сервер від ISC — Internet Systems Consortium, але повною мірою використати його потенціал можна лише в великій і складній мережі. У випадку ж простих мереж більшість його функціоналу просто буде вимкнена. Тому в таких ситуаціях особисто мені до вподоби значно менший і простіший в настройці udhcpd. Він виконає основні задачі без проблем, а «наворотів» нам і не потрібно. Недавно на очі також потрапив схожий проект in.dhcp, але працювати з ним ще не доводилось, тому ні поганого ні хорошого про нього сказати не можу.

DNS сервер. Відповідає за розв’язку «читабельних» доменних імен в IP-адреси. Тут теж не обійшлося без ISC — переважна більшість серверів використовує їхній сервер BIND, або, принаймні, підтримує з ним сумісність (тут навіть Microsoft нічого свого не придумувала, хоча вони це дуже полюбляють). В більшості випадків достойної заміни йому немає, але випадок кешуючого проксі сервера до них не належить. Спеціально для цієї функції був створений простенький сервер pdnsd, який чисто теоретично можна використати і в ролі повноцінного DNS сервера, але цього не радять робити навіть його розробники. Відсутність «навороченого» функціоналу дозволила розробникам останнього зробити просту і зрозумілу конфігурацію, а, відповідно, настроювати його значно легше і швидше.

Кешуючий проксі-сервер. В сучасних умовах ефективність цього компоненту сумнівна через постійно зростаючу динамічність Internet-контенту: невідомо що більше гальмує — постійне викачування без кешування чи постійне оновлення кеша у зв’язку зі змінами контенту. Плюс до цього він має два варіанти настройки: явне вказання проксі сервера в конфігурації бровзера та інших Internet-програм користувача і, так званий прозорий режим, коли користувацька програма не знає про існування проксі-сервера. Мінусом першого варіанту є потреба в додаткових настройках, а мінусом другого — його прихованість, через що деякі програми можуть некоректно працювати, бо розраховують на наявність прямого підключення, без посередників. Якщо Ви все ж вирішите поставити кешуючий проксі, то найпопулярнішим рішенням є squid, хоча зі зростанням популярності багатоядерних процесорів Вам може бути цікавим старенький заморожений проект oops, багатопотоковість якого дає значний приріст швидкості при зростанні кількості процесорів(ядер). Ну і раз вже мова зайшла про проксі-сервери, то заодно варто згадати і некешуючі tor та privoxy — програми задачею яких є забезпечення для Вас максимальної анонімності. Якщо збираєтеся написати якусь пакость і боїтеся, що Вас якимось чином «вирахують», то з їх допомогою можете спробувати заховатися від пильних очей адміністраторів. Як побічний ефект маскування через tor може бути можливість декількох закачок з файлообмінників a-la DepositFiles, RapidShare, тощо. Справа в тому, що tor випускає Ваш трафік від імені свого сервера і кожну сесію — від іншого. Таким чином обмеження на одну IP-адресу стає неактуальним.

Брандмауер (фаєрвол) та контроль швидкості. Наявність роутера сама по собі захищає користувачів від злому і атак ззовні мережі, але оскільки для нормальної роботи роутера Вам все одно будуть потрібні пакети iptables та iproute2, то можна перестрахуватися і ще додатково захистити Ваш сервер (в основному це задача iptables), а iproute2 серед іншого дозволяє контролювати швидкість передачі і тому знадобиться вам як для захисту від DoS-атак (це коли Вашому серверу направляють дуже велику кількість запитів одночасно, розраховуючи що це його «підвішає»), так і «нарізати» швидкість для Ваших користувачів, щоб вони не заважали працювати один одному.

Файловий сервер. По можливості радив би реалізовувати його за допомогою протоколу FTP або чогось подібного, але в жодному разі не зв’язуйтеся зі стандартними засобами Windows — це дикий генератор трафіку та найбільша діра для вірусів всіх часів і народів, а тому будете мати набагато більше спокою, якщо всі користувачі їх відключать. На доступ до Internet’y це ніяк не вплине, а на стабільність і швидкість роботи мережі ще й як!
 

P.S. Читачі, котрі бодай частково знайомі з описаними програмами вже і так зрозуміли, а всім решта скажу, що все це описується для операційної системи Linux, хоча більшість з цих програм буде працювати і на інших *NIX системах, а деякі навіть на Windows’i, який в жодному разі не можна використовувати для таких задач, бо він нахапає вірусів і впаде за декілька тижнів роботи і потягне за собою всю Вашу мережу.




 

Працює на AutoGenCMS 0.2.6

А чому це всі вирішили, що в сайта має бути шапка?