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

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

Делаем из старого компьютера маршрутизатор Старый ПК, Сети, Роутер, Просто очень длиннопост, Маршрутизатор, Универсальный ПК, Длиннопост

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

* 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 МБ флэш-памяти и слабым ЦПУ. В то же время, будучи весьма стеснённым в средствах, он не мог позволить себе профессиональный маршрутизатор.

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

Материнская плата Intel D2500CCE Mini-ITX в стоечном корпусе

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

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

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

Карта Intel 7260-ac Mini-PCIe

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

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

Источник

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