Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Зробити так, щоб інтернет був на всіх домашніх комп'ютерах.

Для визначеності будемо називати комп'ютер з двома мережевими картами сервером. яким він по суті і буде, а інший комп'ютер буде клієнтом.

Щоб вирішити одну велику задачу, потрібно розбити її на багато маленьких і вирішувати поступово. У нашому випадку ці завдання виглядають наступним чином:

  • Налаштувати підключення до інтернету через pppoe на сервері
  • Налаштувати підключення між домашніми комп'ютерами (сервером і клієнтом), це буде домашня локальна мережа
  • Налаштувати шлюз, тобто трансляцію пакетів між домашньою локальною мережею і інтернетом

Зараз у нас на сервері наступні мережеві інтерфейси: локальна петля lo. перша мережева карта eth0 і друга мережева карта eth1. Знову ж таки, для визначеності будемо вважати, що eth0 - це мережева карта з інтернетом (в неї встромлений кабель провайдера), а eth1 - мережева карта з кабелем домашньої локальної мережі, тобто з кабелем від другого комп'ютера, від клієнта.

Практично всі настройки проводяться на сервері.

Налагодження підключення до інтернету через pppoe

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Запускаємо в консолі від імені суперкористувача:

Розпочнеться процедура настройки, в якій нам належить відповісти на кілька запитань. Процедура зрозуміла і не дуже складна. Важливіше те, що після настройки у нас з'явиться новий мережевий інтерфейс: ppp0.

Мережевий інтерфейс ppp0 працює на інтерфейсі eth0. Його можна включити і вимкнути наступними командами:

# Включення інтерфейсу з заданими раніше настройками: pon dsl-provider # вимикання інтерфейсу: poff

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

Налаштовуємо інтерфейс eth0.

У моєму випадку для роботи з провайдерської локалки більше нічого і не треба.

Налагодження підключення між домашніми комп'ютерами

З'єднуємо домашні клієнт і сервер кабелем, бажано обтиснутим за схемою crossover. Можна і звичайним патчем, сучасні мережеві карти вміють працювати і так.

Налаштування трансляції пакетів між домашньою локальною мережею і інтернетом

Для цього завдання скористаємося можливостями файрволу iptables.

Перевіряємо наявність iptables в системі (команда поверне список пакетів, що містять назву iptables):

dpkg -l | grep iptables

І якщо його немає - встановлюємо (від імені користувача root).

apt-get install iptables

Налаштування iptables вимагає досить специфічних навичок і знань, так що нам дуже пощастило, що для дебіаноподобних систем (а Ubuntu - якраз одна з них) є пакет arno-iptables-firewall. Встановимо його, також від імені суперкористувача.

apt-get install arno-iptables-firewall

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

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

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

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

Якщо відповісте негативно, файрвол не запрацює до тих пір, поки ви вручну не поміняли налаштування в його конфігурації.

Хочете налаштувати файрвол за допомогою конфігуратора пакетів?

Так, звичайно хочемо.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Зовнішні мережеві інтерфейси з'єднують локальну машину з небезпечними мережами (наприклад, з інтернетом). Файрвол буде вирішувати тільки ті сполуки, які явно задані комбінаціями портів джерела / призначення на цих інтерфейсах. Ви повинні задати всі зовнішні інтерфейси (наприклад, eth0 і / або ppp0).

Для інтерфейсу ppp, який поки ще не існує, ви можете використовувати маску пристрою під ім'ям «ppp +», але використання ppp + можливо тільки тоді, коли немає ніяких інших інтерфейсів ppp!

Якщо не буде задано ніяких інтерфейсів, ніякі настройки файрвола не будуть змінені.

Кілька інтерфейсів може бути задано за допомогою роздільника - пробілу.

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

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Зовнішні мережеві інтерфейси:

У нашому випадку це ppp0 і eth0. Інтерфейс ppp0 існує і використовується при включеному інтернеті, eth0 для провайдерской локалки.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Якщо використання DHCP не вказано явно, файрвол блокуватиме весь мережевий трафік, пов'язаний із запитами DHCP.

Якщо ви не впевнені - залиште це налаштування включеною.

Зовнішні інтерфейси використовують DHCP?

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Політика файрволу за замовчуванням - блокувати всі вхідні з'єднання на зовнішні інтерфейси. Якщо даний комп'ютер надає служби зовнішнього світу (наприклад, є веб-сервером інтернету), вони повинні бути задані явно.

Вкажіть, будь ласка номери портів TCP служб, які повинні бути доступні із зовнішнього світу. Часто використовувані порти 80 (http), 443 (https) або 22 (ssh).

Ви можете вказати не тільки один порт, а й діапазон (наприклад, 10000: 11000). Кілька записів повинні бути розділені пропуском.

Якщо сумніваєтеся - не вводьте нічого.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Відкрити зовнішні порти TCP:

Які TCP порти відкриваємо для інтернету? У переважній більшості випадків, особливо в нашому - ніякі, залишаємо поле порожнім.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Політика файрволу за замовчуванням - блокувати всі вхідні з'єднання на зовнішні інтерфейси. Якщо даний комп'ютер надає служби зовнішнього світу (наприклад, є веб-сервером інтернету), вони повинні бути задані явно.

Вкажіть, будь ласка номери портів UDP служб, які повинні бути доступні із зовнішнього світу.

Ви можете вказати не тільки один порт, а й діапазон (наприклад, 10000: 11000). Кілька записів повинні бути розділені пропуском.

Якщо сумніваєтеся - не вводьте нічого.

Відкрити зовнішні порти UDP:

Коротше, те ж саме для портів UDP.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

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

Якщо сумніваєтеся - залиште налаштування виключеною.

Комп'ютер повинен пінгувати з зовнішнього світу?

Вибираємо чи можна пінгувати сервер з інтернету.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Внутрішні мережеві інтерфейси з'єднують даний комп'ютер з довіреними мережами (наприклад, з офісної або домашньої). Файрвол дозволить всі спроби вхідних з'єднань на ці інтерфейси. Якщо ви задасте ці інтерфейси, можна буде забезпечити доступ внутрішнім мережам до інтернету через цю машину. Якщо таких інтерфейсів немає залиште поле порожнім.

Кілька інтерфейсів може бути задано за допомогою роздільника - пробілу.

Вибираємо внутрішній мережевий інтерфейс, у нас це eth1. як ми і домовлялися раніше.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

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

Задайте підмережі за правилами CIDR (наприклад, 192.168.1.0/24). Якщо у вас кілька внутрішніх мереж, задайте кожну через пробіл.

Задаємо підмережа нашої домашньої локалки.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Якщо підключені внутрішні мережі повинні мати доступ до зовнішнього світу (наприклад, до інтернету) через файрвол, потрібно включити маськарадінг (NAT).

При будь-яких сумнівах залиште цю настройку виключеною заради безпеки.

Ви хочете включити NAT?

Найголовніше. Міжмережний трансляція пакетів, заради чого все це і затівалося. Включаємо обов'язково.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

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

Якщо сумніваєтеся - нічого не вводьте.

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Внутрішні мережі з доступом в зовнішні мережі:

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

З міркувань безпеки нові настройки файрвола не застосовуються автоматично. Можливо, ви захочете перевірити конфігурацію файрвола в /etc/arno-iptables-firewall/firewall.conf. особливо після оновлення версії, так як змінні при цьому можуть змінитися.

У разі, коли знадобиться застосувати нові настройки файрвола вручну до наступного перезавантаження, введіть: 'invoke-rc.d arno-iptables-firewall start'.

Якщо вам не потрібна ручна перевірка, налаштування файрвола можуть бути застосовані зараз.

Чи повинен файрвол бути (пере) запущений прямо зараз?

Так звичайно. Чому б і ні.

Що тепер

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

Серверна - настройка шлюзу для домашньої локальної мережі на ubuntu linux

Можна використовувати метод в організаціях, але краще робити шлюз на debian і таблиці iptables прописувати руками.

Питання - як можна налаштувати наприклад відключення включення користувачів, припустимо варто сервак з 1С і він не повинен ходити в інет і на нього з инета не повинно нічого ходити

По-друге, arno-iptables-firewall для тонкої настройки не годиться, треба користуватися «голим» iptables.
Можна прописати на шлюзі (який у нас з Linux на борту і NAT-ом) два правила:

iptables -I FORWARD 1 -s 192.168.0.8 -j DROP
iptables -I FORWARD 2 -d 192.168.0.8 -j DROP

Для збору статистики особисто я використовую ulogd з самопісний веб-мордою.

Ставиться mysql-server, ulogd і ulogd-mysql. ulogd налаштовується на зберігання даних в mysql. У iptables прописуємо правила для логування (-j ULOG в потрібних місцях).
Після цього інформація про всі цікавлять пакетах починає падати в базу.

Взагалі, перед будь-якими діями раджу вдумливо прочитати керівництво по iptables.

Зараз дивлюся всі логи по PRTG на винде

Шлюз на винда - це пиздец.

Чи можна якось налаштувати заборона на деякі ресурси? Точніше мені потрібно заборонити всі ресурси в інтернеті і дозволити штук 15. Чи можна за допомогою arno-iptables таке налаштувати?

Тому особисто я віддаю перевагу обмежувати ресурси інтернету або за допомогою DNS (dnsmasq), або за допомогою проксі (squid + sams).

У мене цей захоплюючий процес завершується на етапі запуску pppoeconf, який нічого не знаходить, хоча цей же шнурок прекрасно працює в винда і dir-320 :(

У мене лінія виділена від провайдера йде до комп'ютера, модему немає. На початку при команді в терміналі pppoeconf ні чого від провайдера не приходить.

pppoeconf потрібен тільки в тому випадку, коли доступ до інтернету здійснюється через сервер PPPoE.
У провайдера є сервер PPPoE?

Коли виходжу в інтернет, піднімаю VPN.

Або все-таки провайдер використовує VPN?

Підкажіть будь ласка метод як обійти це? Заздалегідь вдячний.

Поки що незрозуміло як взагалі здійснюється доступ до інтернету.
Допоможуть настройки провайдера. Без логінів-паролів і конкретних айпішніков, природно.

чи можливо витягнути IP, DNS, і все інше на провайдера з Лінукса

доброго вам дня!

І тобі добрий [день / вечір / ніч, потрібне підкреслити].
Огидне вітання :)

вайфай зроблений для гостей. задача налаштувати шлюз так щоб інтернет був у всіх (і в локалке і на вафлі) а ось доступ в локалку користувачі вайфая не мали. розумію питання напевно дурний але покачто не можу розібратись з мережами (по неволі змушений тимчасово виконувати обов'язки адміністратора.

За ідеєю, у тебе між підмережами і так не повинно бути доступу. Для того, щоб доступ був, треба спеціально його забезпечити - піднявши мережевий міст між eth1 і eth2 або засобами iptables (зв'язок підмережа-підмережа робиться по суті так само, як підмережа-інтернет).
Тобі потрібно знайти цю настройку і прибрати її.

Більш детальну інформацію шукай в інтернеті за словами "мережевий міст bridge", "brctl", і "демілітаризована зона" (це про принцип побудови того, що тобі потрібно).

за вітання вибач! у мене вечір і дощ :)

Тепер і у мене та ж хрень. )

доступ між мережами повсе видимості забезпечений arno-iptables-firewall.

Про мережеві мости у мене замітка в чернетках, тому є сенс пошукати на інших ресурсах.

Я ж кажу: за замовчуванням це і так не можна. Тобто, адмін десь свідомо організував доступ між підмережами - або через iptables, або через мережевий міст. Тепер цю настройку треба знайти і прибрати.
Позбудься arno, зроби свій сервіс і зможеш легко бачити і контролювати правила, тобто всі рухи пакетів в мережі.

адмін сволота звільнився зі скандалом а на нового у начальства грошей немає

Зазвичай таке буває, коли в керівництві сидять ідіоти. Псують відносини з адміном, не наймають нового - а потім дивуються, що інфраструктура поступово приходить в стан Сраки. Ким треба бути, щоб не бачити причинно-наслідковий зв'язок між цими подіями. )

ось і доводиться економісту підробляти адміном :)

Моє шанування. Дуже рідкісне і дороге поєднання навичок.
Якщо нормально освоїти - можеш сміливо міняти керівництво на більш адекватне, з кратним збільшенням зарплати.