Как можно сделать маршрутизатор

Делаем из старого компьютера маршрутизатор ⁠ ⁠

Лежала как-то небольшая гора металла, из которой удалось собрать:

* Intel Celeron E3300 — двухядерный бомжовский селерон под 775 платформу

* ASUS P5KPL-AM EPU — материнка под 775 платформу с ddr2 памятью (что плохо) и гигабитным ethernet портом (что хорошо)

* DDR2 плашка на 1 gb оперативки

* Пару жестких дисков на 320 гигов каждый

* БП насколько-то, на сколько не помню (работает же)

Первая попытка — установить туда windows server 2012 в целях «попробовать» и учебной практики (ключик MS дали сами, типа для студентов).

В итоге: с 1 активным пользователем (локальным администратором) использовано 600-700мб из 1000 всего. Не кайф. Где-то в течении месяца на данном ПК висел просто FTP сервер (filezilla server — отлично работает по ssl и мне показалось что намного проще настраивается, чем дефолтный).

Что интересно: сначала я ради интересна оставил открытым без пароля на запись. сразу (в течении полудня) положили туда Photo.scr, который быстро гуглится, это было забавно и я доступ на запись закрыл. остались попытки с access denied =)

Но мне это надоело, захотелось что-то новенького.

Все это время роутером (маршрутизатором) между моей локальной сетью и внешним миром (внешний адрес) стоял ASUS RT-N65U.

Схема сети — в принципе обычная для обычного нормального человека.

Рассказ будет без бешеных врезок для ctrl-c ctrl-v, а наоборот с объяснением каждого момента!

Непосредственно рассказ

И тут мне пришла в голову идея: а что если взять этот компьютер, вставить туда вторую сетевую карту, сделать его маршрутизатором (то бишь роутером) и поставить вместо asus’овского роутера?

Тут же началось гугление про это, из которого было ясно: люди делают все и данная мысль вполне осуществима.

Решено было делать это на базе Ubuntu Server, так как монитор у этого ПК не предполагается и GUI, соответственно, не нужно. Зашел на официальный сайт, скачал образ х64 последней (на тот момент) 16.04 убунты, записал на флешку с ultraiso — втыкаю — не загружается =\ , записал еще раз — тоже самое. Перепробовано 3 метода и 2 образа — не работает, почему было уже лень разбираться. Достал DVD-RW диск (оттуда же откуда и детали) и записал на него. Загрузилось.

В процессе установки ставлю имя ПК HiroXServer, а имя пользователя mark.

По окончании установки и логина в учетку у меня открывается bash

Теперь с этого момента схема моей сети выглядит так:

Теперь все задачи по маршрутизации трафика должен выполнять тот самый сервер-пк, через который гоняется весь трафик, а asus’овский аппарат просто служит wifi точкой доступа и на этом его задачи теперь заканчиваются.

Читайте также:  Изменить скорость роутера tp link

Итак, вернемся к тому, что есть: сервер-пк, к которому подключены 2 провода — один к провайдеру, второй к коммутатору asus (то что было роутером), отсутствие интернета на всем, в том числе и на сервер-пк. =)

Первым дело я хочу настроить сетевые интерфейсы, их 3:

* lo — loopback — так называемое кольцо, 127.0.0.1, localhost, итд, которое используют некоторые сервисы

* enp3s0 — так у меня называется интерфейс (сетевая карта), что смотрит в сторону провайдера.

* enp1s0 — так у меня называется интерфейс, что смотрит в локальную сеть.

Мой провайдер идентифицирует пользователей по MAC-адресу, а затем выдает мне внешний адрес по DHCP, значит мне нужно выставить mac-адрес.

Конфигурационный файл лежит тут: /etc/network/interfaces

Открываю его nano /etc/network/interfaces.

# (тут комментарий) кольцевой интерфейс lo

iface lo inet loopback

# интерфейс, что смотрит к провайдеру, получает настройки по dhcp на основании mac-адреса

iface enp3s0 inet dhcp

hwaddress ether AC:22:0B:XX:XX:XX

# интерфейс, что смотрит у нас в сторону локальной сети имеет статичный адрес 192.168.1.1 и маску подсети /24, то есть 255.255.255.0

iface enp1s0 inet static

CTRL+O (сохранить) -> Enter -> CTRL+X (выходим из редактора)

Интерфейсы настроены, для применения настроек нужно перезагрузить сеть одним из способов:

* перезагрузить компьютер sudo reboot

* перезагрузить саму сеть sudo /etc/init.d/networking restart

Далее запускаем пинг до Google DNS, дабы проверить, что у нас все работает:

Отлично! Значит все сделали правильно. Далее нужно сделать так, чтобы пакеты из локальной сети попадали в интернет.

Когда мы работаем из-под root’а, то есть у нас root@HiroXServer:~# , то дописывать sudo перед каждой командой не нужно, но если мы работает из под обычного пользователя, например mark@HiroXServer:~$ , то нужно, иначе система не даст изменять системные файлы. root — аналог администратора в windows. чтобы зайти в консоль из-под root нужно ввести sudo -i (и ввести пароль)

Первое, что мы делаем — разрешаем пересылку пакетов. Для этого нужно поставить 1 в файл /proc/sys/net/ipv4/ip_forward вручную через nano или такой командой (предварительно зайдя под root через sudo -i ):

echo 1 > /proc/sys/net/ipv4/ip_forward

Второе, что мы делаем: SNAT (Source NAT) или MASQUERADE из локальной сети в интернет. При этом адрес отправителя (например 192.168.1.2) заменяется на внешний адрес сервер-пк, из-за чего он правильно доходит к нам обратно.

sudo iptables -t nat -A POSTROUTING -o enp3s0 -s 192.168.1.0/24 -j MASQUERADE

sudo iptables -t nat -A POSTROUTING -o enp3s0 -s 192.168.1.0/24 -j SNAT —to-source 228.228.228.228 (вместо этого само собой пишем статичный внешний адрес, а если адрес не статичный чтобы его каждый раз не выставлять лучше используем MASQUERADE)

Читайте также:  Настроить роутер apple express

Разберем как это работает:

iptables — инструмент для настройки брандмауэра netfilter в linux

-t или аналог —table — таблица, с которой я хочу работать. Их всего 3: основная filter, nat и mangle.

-A или аналог —append — добавить действие вниз в цепочку. Можно еще -I (insert), но тут роли не играет.

POSTROUTING — цепочка в таблице nat, через которую проходят все пакеты, после маршрутизации. В таблице nat есть еще PREROUTING, INPUT, OUTPUT.

-o — тут указывает из какого интерфейса пакет выходит

-s — указываем из какой сети (!) пакет пришел

-j — указываем действие, которое с этим пакетом нужно совершить

Подробнее об iptables, netfilter и их возможностях можно почитать здесь и здесь.

Далее я рекомендую удалить сразу ubuntu брандмауэр ufw, так как он возможно будет мешать:

sudo apt remove ufw -y

Для того, чтобы убедиться, что у нас все получилось пишем:

sudo iptables -t nat -L

В принципе базовая функция маршрутизатора у нас теперь работает работает, но для того чтобы это ощутить с основого пк в моей схеме нужно: настроить asus’овский агрегат в режим коммутатора и выставить ему статический ip, а затем выставить на каждом пк статичный ip. например на настольном ПК у меня будет IP 192.168.1.105.

Первое делается от модели к модели роутеров по разному, в общем нужно заменить режим с «беспроводной маршрутизатор» на «беспроводная точка доступа». В некоторых роутерах эта опция называется «Enable NAT» — ее нужно выключить. Также выставить для роутера статичный IP 192.168.1.2 (в моем случае), маску подсети 255.255.255.0 и основной шлюз 192.168.1.1

Второе — на основном пк идем панель управления -> Центр управления сетями и общим доступом -> Изменение параметров адаптера -> ПКМ по нашему Wifi соединению, свойства -> Протокол Интернета версии 4 , свойства и тут вписываем:

* Маска подсети = 255.255.255.0 (у меня автоматически вставилась)

* Основной шлюз = 192.168.1.1 (адрес сервер-пк)

* Предпочитаемый DNS-сервер = 8.8.8.8

Вуаля и интернет на основном пк опять вернулся. Можно закончить статью

но ведь долго же на каждом устройстве вводить статичный IP адрес теперь! И на каждом телефоне придется! Неудобно!

Для этого нужно настроить DHCP-сервер. Эта служба отвечает за автоматическое присвоение адресов внутри сети на основе рандома или какого-либо правила в конфиге.

Этой службой у нас будет выступать dnsmasq (он же DNS сервер). Попробуйте ввести

Будет ли в ответ что-то типа: «Dnsmasq version 2.76 Copyright (c) 2000-2016 Simon Kelley»?

Если нет, то устанавливаем

sudo apt install dnsmasq -y

и проверяем знакомой командой.

Конфигурационный файл dnsmasq лежит /etc/dnsmasq.conf

Откроем его через nano и заполняем:

# диапазон выдаваемых сервером адресов и время аренды.

Читайте также:  Если слетели настройки роутера

# в данном случае у нас зарезервирован 1.2 под asus коммутатор и 54 последних адреса под vpn клиентов и другой живности

dhcp-range=192.168.1.3,192.168.1.200,24h

# так же не забываем указать статичную привязку для себя любимого

dhcp-host=60:A4:4C:XX:XX:XX,Mark-PC,192.168.1.105

# не слушаем интерфейс провайдера enp3s0

no-dhcp-interface=enp3s0

# указываем что он у нас один единственный в сети dhcp сервер

# указываем файл, где будет написано кому выдан какой ip адрес

dhcp-leasefile=/var/log/dnsmasq.leases

# указываем маску подсети нашей

dhcp-option=2,255.255.255.0

# указываем основной шлюз

# указываем присваиваемый DNS

CTRL+O (сохранить) -> Enter -> CTRL+X (выходим из редактора)

С полным списком возможных параметров можно ознакомиться здесь.

sudo /etc/init.d/dnsmasq restart

Убираем из настроек винды на основном пк статическую привязку, переподключаемся и проверяем что у нас тот же адрес. При этом остальные устройства в сети получат случайный адрес из диапазона 192.168.1.3~192.168.1.200 автоматически!

Получился нереально длинный пост. Если тема интересная и зайдет, то продолжу в примерно таком же виде, расскажу как организовать PPTP VPN, OpenVPN сервера, сделать проброс портов, а так же установку dns и прокси-сервера squid с фильтрацией неугодной рекламы во всей нашей сети!

Спасибо тем, кто дочитал пост до конца.

Выслушаю любую критику и предложения.

Не претендую на лучший мануал, ибо где-то что-то мог упустить или подзабыть в процессе написания. Тег «МОЁ», так как моё =)

Источник

Мощный домашний маршрутизатор своими руками

Xakep #289. Взлом в воздухе

Хотя в интернет-магазинах есть любое сетевое оборудование, но всё равно найдутся любители сделать всё по-своему. Например, инженер Ник Пегг был очень недоволен ограничениями классического домашнего маршрутизатора WRT54GL с 4 МБ флэш-памяти и слабым ЦПУ. В то же время, будучи весьма стеснённым в средствах, он не мог позволить себе профессиональный маршрутизатор.

Выход нашёлся: собрать устройство своими руками из компьютерных комплектующих, которые найдутся в шкафу или б/у в интернете.

Нужно было нечто дешёвое, с низким энергопотреблением и несколькими сетевыми адаптерами.

Свой выбор Ник остановил на материнской плате Mini-ITX, которая идеально подходит для такой задачи. В его случае достаточно было платы с двумя сетевыми разъёмами, но несложно достать такую же плату с большим количеством NIC.

Для беспроводной связи инженер взял адаптер Intel 7260-ac Mini-PCIe, хотя позже сам понял ошибочность такого решения. Из-за специфичной прошивки и драйвера под Linux карта упорно отказывалась работать в диапазоне 5 ГГц.

Задним умом он понял, что лучше использовать карту на чипсете Atheros и с нормальным драйвером. В любом случае, предварительно следует обязательно проверить в интернете, что другим хакерам успешно удалось решить проблему и накатить прошивку OpenWRT.

Так или иначе, инструкция Ника Пегга по сетевой настройке и конфигурации оборудования будет очень полезна при попытке реализовать подобный проект.

Источник

Оцените статью
Adblock
detector