Размещаем сайт на домашнем роутере
Время на прочтение
7 мин
Количество просмотров 59K
Мне давно хотелось «потрогать руками» интернет-сервисы, настроив веб-сервер с нуля и выпустив его в Интернет. В этой статье хочу поделиться полученным опытом превращения домашнего роутера из узкофункционального устройства в практически полноценный сервер.
Началось всё с того, что служивший верой и правдой роутер TP-Link TL-WR1043ND перестал удовлетворять потребности домашней сети, захотелось 5ГГц диапазона и быстрого доступа к файлам на накопителе, подключенном к роутеру. Просмотрев профильные форумы (4pda, ixbt), сайты с отзывами и посмотрев на ассортимент местных магазинов — решил приобрести Keenetic Ultra.
В пользу именно этого устройства сработали хорошие отзывы владельцев:
- отсутствие проблем с перегревом (тут пришлось отказаться от продукции Asus);
- надежность в работе (тут вычеркнул TP-Link);
- простота в настройке (побоялся не справиться и вычеркнул MikroTik).
Пришлось примириться с минусами:
- нет WiFi6, хотелось взять оборудование с запасом на будущее;
- 4 LAN порта, хотелось больше, но это уже не домашняя категория.
В итоге получилась вот такая «серверная»:
- слева оптический терминал Ростелекома;
- справа наш подопытный роутер;
- проводом к роутеру подсоединен завалявшийся m.2 SSD на 128 ГБ, помещенный в коробку USB3 с алиэкспресса, сейчас он аккуратно закреплен на стенке;
- на переднем плане удлинитель с независимым отключением розеток, провод от него идет к недорогому UPS;
- на заднем плане пучок витой пары — на этапе ремонта квартиры сразу запланировал RJ45 розетки в местах предполагаемого размещения техники, чтобы не зависеть от замусоренности WiFi.
Итак, у нас есть оборудование, необходимо его настроить:
- первичная настройка роутера занимает около 2 минут, указываем параметры подключения к провайдеру (у меня оптический терминал переключен в режим бриджа, PPPoE соединение поднимает роутер), название WiFi сети и пароль — в принципе всё, роутер запускается и работает.
Ставим переадресацию внешних портов на порты самого роутера в разделе «Сетевые правила — Переадресация»:
Теперь можно перейти к «продвинутой» части, чего я хотел от роутера:
- функционал небольшого NAS для домашней сети;
- выполнение функций веб-сервера для нескольких частных страничек;
- функционал персонального облака для доступа к личным данным из любой точки мира.
Первое реализуется встроенными средствами, не требуя особых усилий:
- берем предназначенный для этой роли накопитель (флешку, карту памяти в картридере, жесткий диск или SSD во внешнем боксе и форматируем в Ext4 с помощью MiniTool Partition Wizard Free Edition (у меня нет компьютера с linux под рукой, там можно встроенными средствами). Как я понимаю, при работе система пишет на флешку только логи, поэтому, если их ограничить после настройки системы — можно использовать и карты памяти, если планируете много и часто писать на накопитель — лучше SSD или HDD.
После этого подключаем накопитель к роутеру и наблюдаем его на экране системного монитора
Переходим щелчком по «USB-диски и принтеры» в раздел «Приложения» и настраиваем общий ресурс в разделе «Сеть Windows»:
И у нас имеется сетевой ресурс, который можно использовать с компьютеров под Windows, подключив при необходимости как диск: net use y: \\192.168.1.1\SSD /persistent:yes
Скорость такого импровизированного NAS вполне достаточна для домашнего применения, по проводу он использует весь гигабит, по WiFi скорость составляет около 400-500 мегабит.
Настройка хранилища — один из необходимых шагов для настройки сервера, далее нам нужно:
— приобрести домен и статический IP адрес (можно обойтись и без этого, используя Dynamic DNS, но статический IP у меня уже был, поэтому проще оказалось воспользоваться бесплатными сервисами Яндекса — делегировав туда домен, мы получаем DNS-хостинг и почту на своем домене);
— настроить DNS сервера и добавить A-записи, указывающие на ваш IP:
Вступление в силу настроек делегирования домена и DNS занимает несколько часов, поэтому параллельно занимаемся настройкой роутера.
Для начала необходимо установить репозиторий Entware, из которого мы сможем ставить на роутер необходимые пакеты. Я воспользовался этой инструкцией, только не заливал установочный пакет по FTP, а создал папку прямо на подключенном ранее сетевом диске и скопировал туда файл обычным способом.
Получив доступ по SSH, меняем пароль командой passwd и ставим командой opkg install [имена пакетов] все нужные пакеты:
В ходе настройки на роутере оказались установлены следующие пакеты (результат вывода команды opkg list-installed):
Список пакетов
bash — 5.0-3
busybox — 1.31.1-1
ca-bundle — 20190110-2
ca-certificates — 20190110-2
coreutils — 8.31-1
coreutils-mktemp — 8.31-1
cron — 4.1-3
curl — 7.69.0-1
diffutils — 3.7-2
dropbear — 2019.78-3
entware-release — 1.0-2
findutils — 4.7.0-1
glib2 — 2.58.3-5
grep — 3.4-1
ldconfig — 2.27-9
libattr — 2.4.48-2
libblkid — 2.35.1-1
libc — 2.27-9
libcurl — 7.69.0-1
libffi — 3.2.1-4
libgcc — 8.3.0-9
libiconv-full — 1.11.1-4
libintl-full — 0.19.8.1-2
liblua — 5.1.5-7
libmbedtls — 2.16.5-1
libmount — 2.35.1-1
libncurses — 6.2-1
libncursesw — 6.2-1
libndm — 1.1.10-1a
libopenssl — 1.1.1d-2
libopenssl-conf — 1.1.1d-2
libpcap — 1.9.1-2
libpcre — 8.43-2
libpcre2 — 10.34-1
libpthread — 2.27-9
libreadline — 8.0-1a
librt — 2.27-9
libslang2 — 2.3.2-4
libssh2 — 1.9.0-2
libssp — 8.3.0-9
libstdcpp — 8.3.0-9
libuuid — 2.35.1-1
libxml2 — 2.9.10-1
locales — 2.27-9
mc — 4.8.23-2
ndmq — 1.0.2-5a
nginx — 1.17.8-1
openssl-util — 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
opt-ndmsv2 — 1.0-12
php7 — 7.4.3-1
php7-mod-openssl — 7.4.3-1
poorbox — 1.31.1-2
terminfo — 6.2-1
zlib — 1.2.11-3
zoneinfo-asia — 2019c-1
zoneinfo-europe — 2019c-1
Возможно, тут что-то лишнее затесалось, но места на накопителе много, поэтому разбираться не стал.
После установки пакетов настраиваем nginx, я пробовал с двумя доменами — на втором настроен https, и пока висит заглушка. 81 и 433 внутренние порты вместо 80 и 443 используются, поскольку на нормальных портах висят админки роутера.
etc/nginx/nginx.conf
user nobody;
worker_processes 1;
#error_log /opt/var/log/nginx/error.log;
#error_log /opt/var/log/nginx/error.log notice;
#error_log /opt/var/log/nginx/error.log info;
#pid /opt/var/run/nginx.pid;
events {
worker_connections 64;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /opt/var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 81;
server_name milkov.su www.milkov.su;
return 301 https://milkov.su$request_uri;
}
server {
listen 433 ssl;
server_name milkov.su;
#SSL support
include ssl.conf;
location / {
root /opt/share/nginx/html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
etc/nginx/ssl.conf
ssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;
ssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /opt/etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;
Для того, чтобы сайт работал по https, воспользовался известным скриптом dehydrated, установив его по этой инструкции. Затруднений этот процесс не вызвал, запнулся только на том, что в тексте скрипта для работы на моем роутере надо закомментировать строчку в файле /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
И отмечу, что генерация dhparams.pem командой «openssl dhparam -out dhparams.pem 2048» на моем роутере занимает больше 2 часов, если бы не индикатор прогресса — потерял бы терпение и перезагрузил.
После получения сертификатов перезапускаем nginx командой «/opt/etc/init.d/S80nginx restart». В принципе на этом настройка закончена, но сайта еще нет — если положим в каталог /share/nginx/html файл index.html, увидим заглушку.
<!DOCTYPE html>
<html>
<head>
<title>Тестовая страничка!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Тестовая страничка!</h1>
<p>Это простая статическая тестовая страничка, абсолютно ничего интересного.</p>
</body>
</html>
Чтобы разместить информацию красиво, непрофессионалу типа меня проще воспользоваться готовыми шаблонами, после долгого перебора различных каталогов нашел templatemo.com — там неплохой выбор бесплатных шаблонов, не требующих обязательного указания авторства (что редкость в интернете, большая часть шаблонов в лицензии требуют сохранить ссылку на ресурс, откуда они получены).
Выбираем подходящий шаблон — там есть на самые разные случаи, скачиваем архив, и раcпаковываем его в каталог /share/nginx/html, делать это можно уже со своего компьютера, затем редактируем шаблон (тут потребуются минимальные знания HTML, чтобы не нарушить структуру) и заменяем графику, как показано на рисунке ниже.
Резюме: роутер вполне пригоден для размещения на нем легкого сайта, в принципе — если не предполагается большой нагрузки, можно поставить и php, и экспериментировать с более сложными проектами (смотрю на nextcloud/owncloud, вроде есть успешные установки на такое железо). Возможность установки пакетов поднимает его полезность — например, когда надо было защитить RDP порт ПК в локальной сети, поставил knockd на роутер — и проброс порта к ПК открывался только после port knocking.
Почему именно роутер, а не обычный PC? Роутер — одна из немногих компьютерных железяк, круглосуточно работающих во многих квартирах, домашний роутер обычно абсолютно бесшумен и легкий сайт с числом посещений в сутки меньше сотни его совершенно не напряжет.
В этой статье посмотрим, как с помощью встроенных средств на базе сервера с Windows Server 2012 R2 организовать простой межсетевой маршрутизатор. И хотя на практике маршрутизаторы на базе компьютеров используются довольно редко (аппаратные маршрутизаторы, как правило, имеют более высокую производительность, надежность и несколько дешевле выделенного компьютера), в тестовых или виртуальных средах, когда нужно срочно настроить маршрутизацию между несколькими подсетями, маршрутизатор на базе Windows Server вполне себе приемлемое решение.
Итак, в роли маршрутизатора будет выступать сервер с ОС Windows Server 2012 R2. Сервер имеет 2 сетевых интерфейса: физических или виртуальных, если сервер запущен на гипервизоре. Каждому интерфейсу сервера назначен выделенный IP адрес из различных подсетей. Для удобства, мы переименовали названия сетевых интерфейсов в Панели управления сетями и общим доступом:
Сетевая карта 1 (сетевая карта подключена во внутреннюю LAN сеть):
Имя: LAN
IP: 10.0.1.1
Сетевая карта 2 (сетевая карта во внешней сети ):
Имя: Internet
IP: 192.168.1.20
Наша задача – организовать маршрутизацию пакетов из локальной подсети 10.0.1.0 во внешнюю подсеть 192.168.1.0 (как правило, такая сеть имеет выход в интернет) через NAT. Такую схему можно реализовать в случае необходимости организации доступа клиентов из внутренней сети в интернет.
Маршрутизация в Windows Server 2012 R2 реализуется на базе роли Remote Access (RRAS). Данная служба появилась еще в Windows Server 2003 и до текущей в версии Windows Server ее интерфейс и процесс настройки практически не изменился.
В первую очередь нужно установить роль Remote Access. Для этого откроем консоль Server Manager, выбираем Manage -> Add Roles and Features, находим и отмечаем роль Remote Access, в ее составе выбираем службу Routing, и, соглашаясь со всеми предложенными по умолчанию компонентами, запускаем ее установку (Install).
После окончания установки открываем консоль Routing and Remote Access (rrasmgmt.msc), щелкаем по имени сервера (с красной стрелкой) и выбираем Configure and Enable Routing and Remote Access.
В открывшемся окне выбираем пункт Network Address Translation (NAT).
На следующей шаге (NAT Internet Connection) нужно выбрать сетевой интерфейс, подключённый ко внешней сети / Интернету (в нашем примере это интерфейс Internet с ip 192.168.1.20). Этот интерфейс будет «публичным интерфейсом» нашего NAT роутера.
Далее будет предложено указать должен ли NAT роутер обеспечить клиентов внутренней сети сервисами DHCP и DNS. Как правило, этот функционал во внутренней сети уже имеется, поэтому в нем мы не нуждаемся.
На этом базовая настройка маршрутизации на Windows Server 2012 R2 завершена. Сервер уже должен выполнять маршрутизацию пакетов между двумя подключенными сетями и выполнять трансляцию сетевых адресов (NAT).
Чтобы в этом убедиться, в консоли RRAS откройте свойства сервера. На вкладке General показано, что IPv4 маршрутизация включена (т.е. пакеты IPv4 будут пересылаться с одной сетевой карты на другую).
Проверить работу маршрутизации можно, указав на клиентском компьютере во внутренней сети (к которой подключен интерфейс сервера LAN) в качестве шлюза IP-адрес сервера (10.0.1.1), и выполнить ping или трассировку маршрута к ресурсу, расположенному во внешней сети или интернете. Эти попытки должны быть успешными.
Примечание. Windows Server 2012 R2 поддерживает статическую маршрутизацию, протокол динамической маршрутизации RIPv2 и BGPv4. Поддержка OSPF была прекращена еще в Windows Server 2008.
В нашем случае на сервере осуществялется статическая маршрутизация. Если нужно добавить новый маршрут, щелкните ПКМ по Static Routes, выберите пункт меню New static route и создайте новое статическое правило маршрутизации.
Примечание. Статический маршрут также можно добавить из командной строки с помощью команд Route или netsh.
Статья обнавлена 04.09.2023
Внимание! В примере ниже установка идёт поверх чистого сервера с уже предустановленной Ubuntu 20.04. Стабильная работа данного способа при обновлении вручную с Ubuntu 18.04 или других ОС на Ubuntu 20.04 — не гарантируется.
Также было несколько жалоб при установке образа MikroTik последней версии. При возникновении любого рода проблем, попробуйте установить образ версии 6.49.10 Stable. После успешной установки вы сможете обновить его до последней версии вручную.
RouterOS представляет из себя операционную систему, на которой работает сетевое оборудование компании MikroTik. RouterOS создана на базе Linux и помимо маршрутизаторов MikroTik может устанавливаться на компьютеры и сервера, тем самым фактически превращая их в маршрутизаторы. Исходя из того, что такая операционная система умеет работать на физических серверах, её также можно научить функционировать и на серверах облачных. Именно для этого предназначена операционная система Cloud Hosted Router. Данная версия RouterOS создана специально для виртуальных выделенных серверов. Далее расскажем, как установить MikroTik RouterOS на VPS, работающий под управлением операционной системы семейства Linux.
В качестве примера в данной статье мы будем использовать виртуальный сервер, на котором установлена Ubuntu 20.04. Наш VPS имеет следующую конфигурацию: CPU 1×2.2ГГц, 2Гб RAM, 20Гб HDD. К сожалению, на других операционных системах развернуть образ Cloud Hosted Router получается далеко не всегда, поэтому действия, описанные в нашем мануале, работают именно на Ubuntu 20.04.
Установка образа RouterOS поверх Ubuntu 20.04
Так как мы планируем установить RouterOS прямо поверх уже установленной Linux-системы, то на первом этапе необходимо образ RouterOS записать на виртуальный диск нашего сервера, затерев файлы “родной” операционной системы.
Все действия будем выполнять под учётной записью root.
Итак, во-первых, нужно обновить базы данных доступных для установки репозиториев:
# apt update
Далее необходимо установить пакеты, которые нам понадобятся в дальнейшем (у вас они могут быть уже установлены):
# apt install unzip
На данном этапе, пока мы ещё находимся в самом начале установки, давайте зафиксируем сетевые настройки нашего сервера, которые понадобятся в дальнейшем для подключения к RouterOS. Для этого выполните следующие команды:
# ip -c a
В нашем примере вывод данной команды имеет следующий вид:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:01:8b:b7 brd ff:ff:ff:ff:ff:ff
inet 176.113.82.65/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe01:8bb7/64 scope link
valid_lft forever preferred_lft forever
Из него видно, что IP-адрес нашего сервера – 176.113.82.65, маска подсети – 255.255.255.0, что в выводе команде зафиксировано как 176.113.82.65/24.
Вторая команда отобразит маршруты, где, кроме всего прочего, можно увидеть IP-адрес нашего шлюза:
# ip -c r
Вот, что получилось у нас:
default via 176.113.82.1 dev eth0
176.113.82.0/24 dev eth0 proto kernel scope link src 176.113.82.65
Здесь указан IP-адрес шлюза для нашего сервера – 176.113.82.1. Эти данные понадобятся нам чуть позже.
Следующим шагом необходимо перейти на страницу загрузок сайта MikroTik и скопировать в буфер обмена ссылку на последнюю стабильную версию RAW-образа в разделе Cloud Hosted Router. На момент написания статьи это – 7.11.2 Stable. Если при установке из этого образа возникнут проблемы – попробуйте скопировать версию 6.49.10 Stable (после успешной установки, её можно будет обновить до последней вручную):

Далее при помощи скопированной ссылки на RAW-образ нужно загрузить его на свой VPS. В нашем примере мы сделали это в директорию /tmp:
# cd /tmp
# wget https://download.mikrotik.com/routeros/7.7/chr-7.7.img.zip
Теперь, загруженный образ необходимо распаковать:
# unzip chr-7.7.img.zip
Следующим шагом нам нужно будет узнать имя диска на нашем сервере. Для этого мы использовали следующую команду:
# fdisk -l
В нашем примере имя диска – /dev/sda:

Следующим шагом необходимо перемонтировать файловые системы в режим “только чтение”:
# echo u > /proc/sysrq-trigger
И наконец, на диск /dev/sda нужно записать распакованный образ:
# dd if=chr-7.7.img of=/dev/sda bs=4M oflag=sync
Следующими командами производится перезагрузка сервера:
# echo 1 > /proc/sys/kernel/sysrq
# echo b > /proc/sysrq-trigger
После выполнения этих команд наш VPS перестанет быть доступен удалённо, так как он загрузится из-под Cloud Hosted Router. Система, с которой загружен сервер пока находится в дефолтном состоянии, и необходимые сетевые настройки на ней отсутствуют.
Первоначальная настройка RouterOS
Для первоначальной настройки RouterOS нужно будет подключиться к серверу в аварийном режиме. Это можно сделать прямо в вашем личном кабинете RUVDS. По умолчанию авторизация в системе происходит при помощи пользователя admin с пустым паролем. При первом входе нажмите y или n (да или нет) на запрос о просмотре информации по лицензии:

И установите новый пароль для пользователя admin:

После чего станет доступна командная строка Cloud Hosted Router.
Для того, чтобы к нашему серверу можно было подключиться удалённо, необходимо настроить его IP-адрес с маской подсети, а также указать IP-адрес шлюза. Эти данные мы сохранили перед тем, как загрузить на сервер RAW-образа RouterOS.
В командной строке введите ip, после чего нажмите <Enter>, затем address и снова <Enter>, затем add и опять <Enter>.
Теперь, необходимо ввести IP-адрес с маской в формате XXX.XXX.XXX.XXX/XXX. Поскольку в нашем примере, как мы выяснили ранее, IP-адрес – 176.113.82.65, а маска подсети – 255.255.255.0, то нам нужно в строке address набрать 176.113.82.65/24 и нажать <Enter>. После чего в строке interface необходимо указать название интерфейса – ether1:

Далее необходимо добавить в систему шлюз. Для этого поднимитесь в меню на уровень выше набрав две точки .. и нажав <Enter>. Следующим шагом наберите route и нажмите <Enter>. После чего наберите add gateway XXX.XXX.XXX.XXX и снова <Enter>, где XXX.XXX.XXX.XXX – IP-адрес вашего шлюза. В нашем примере это выглядит следующим образом:

Больше информации по работе с консолью MikroTik RouterOS вы можете найти на их странице, содержащей очень подробное описание команд и операций именно при работе с данной командной строкой.
Чтобы отключиться от командной строки нужно нажать Ctrl D, после чего можно закрыть окно аварийного режима.
Теперь ваш виртуальный маршрутизатор станет доступен удалённо через веб-интерфейс.
Для удалённого подключения необходимо будет на начальной странице авторизоваться пользователем admin:

В общем виде интерфейс управления вашим виртуальным маршрутизатором выглядит следующим образом:

Заключение
Таким образом, в данной статье мы увидели как можно установить MikroTik RouterOS на операционную систему Linux. В нашем примере мы развернули RAW-образ, содержащий Cloud Hosted Router, поверх Ubuntu 20.04. После успешной загрузки сервера уже с RouterOS мы подключились к нему в аварийном режиме, так как удалённый доступ отсутствует при первоначальном запуске Cloud Hosted Router. И далее, мы добавили в систему IP-адрес сервера и шлюза для того, чтобы удалённо управлять полноценным виртуальным маршрутизатором, работающем на нашем VPS.
Настройка маршрутизатора на основе Windows Server 2012R2
В статье показано как настроить ОС Windows Server 2012 R2 в качестве маршрутизатора. Настраиваемый сервер имеет 2 физических сетевых интерфейса. Каждому сетевому интерфейсу будет назначен статический IP адрес из разных подсетей. Для удобства, сетевые интерфейсы можно переименовать.
Сетевая карта 1 (сетевая карта подключена во внутреннюю сеть):
Имя: in
IP: 10.0.100.1
Сетевая карта 2 (сетевая карта во внешней сети):
Имя: out
IP: 172.16.0.1
Цель: организовать маршрутизацию пакетов из локальной сети 10.0.100.1 во внешнюю сеть 172.16.0.1.
Для начала необходимо добавить новую роль «Удаленный доступ» (Remote Access) на сервере, для этого откроем консоль «Диспетчер серверов» (Server Manager):
Выбираем Manage -> «Добавить роли и компоненты»(Add Roles and Features), выбираем галкой роль «Удаленный доступ» (Remote Access):
В составе роли выбираем службу «Маршрутизация» (Routing), по умолчанию должны установиться дополнительные компоненты, соглашаемся, и запускаем ее установку (Install):
После окончания установки роли открываем консоль «Маршрутизация и удаленный доступ»(Routing and Remote Access) (Ctr + R, rrasmgmt.msc), щелкаем по имени сервера (с красной стрелкой) и выбираем «Настроить и включить маршрутизацию и удаленный доступ» (Configure and Enable Routing and Remote Access).
В окне мастера выбираем пункт «Подключение на основе NAT» (Network Address Translation, NAT)
Далее выбираем сетевой интерфейс, подключённый ко внешней сети (или Интернету) (в примере это сетевой интерфейс out с ip 172.16.0.1). Данный сетевой интерфейс будет «публичным интерфейсом» нашего NAT.
Далее будет предложено указать должен ли NAT, обеспечить клиентов внутренней сети службами DHCP\DNS. Обычно, данный функционал во внутренней сети уже присутствует, поэтому выбираем пункт «Установить службы сопоставления имен и адресов позднее».
Завершение мастера сервера маршрутизации и удаленного означает, что базовые настройки маршрутизации на Windows Server 2012 R2 завершены. В данной конфигурации сервер должен выполнять маршрутизацию пакетов между двух подсетей, при этом выполнять трансляцию сетевых адресов (NAT).
Чтобы убедиться что функционал работает:
- В консоли «RRAS» откройте свойства сервера, вкладку «Общие» (General) и убедитесь, что IPv4 маршрутизация включена и счетчики входящих и выходящих байтов увеличиваются.
- Проверить работу маршрутизации можно, указав на клиентском ПК во внутренней сети (к которой подключен сетевой интерфейс «in») в качестве шлюза IP-адрес сервера (10.0.100.1), и выполнить ping или трассировку маршрута к ресурсу, расположенному во внешней сети или в интернете. Команда ping должна быть успешна.
Примечание. Если нужно добавить новый маршрут, щелкните в меню «Статические маршруты», выберите пункт меню «новый статический маршрут» (New static route) и создайте новое статическое правило маршрутизации. Статический маршрут также можно добавить из командной строки с помощью команд Route или netsh.
Не многие знают, что можно выполнить развертывание сервера в роли полноценного Микротик. MikroTik RouterOS — это операционная система маршрутизаторов (роутеров) MikroTik, которую можно установить на физический или виртуальный сервер хостера.
Установка Mikrotik RouterOS на VDS
Устанавливаем на сервер любую linux систему, например Ubuntu Server 20.04, как это будет в нашем примере.
1. Подключаемся к серверу по SSH и создадим временный раздел для хранения образа диска mirkotik routerOS следующей командой:
mount -t tmpfs tmpfs /tmp/
2. Необходимо скачать на сервер RAW-образ RouterOS из раздела Cloud Hosted Router. Для этого на сайте Микротик переходим в раздел Software, находим Raw disk image и копируем ссылку на загрузку ( правой кнопкой мышки на дискету и выбираем копировать ссылку) нужной версии (рекомендую версию stable).
3. На сервере выполняем команду загрузки образа по выбранной ссылке:
wget https://download.mikrotik.com/routeros/6.49.6/chr-6.49.6.img.zip
(параметр wget — скопированная ссылка)
4. Устанавливаем unzip для дальнейшей распаковки zip-архива:
sudo apt-get install unzip
5. Переходим к распаковке скачанного архива командой:
unzip chr-6.49.6.img.zip
6. Необходимо узнать имя диска нашего сервера, следующей командой:
fdisk -l Disk /dev/vda: 15 GB, 16106127360 bytes, 31457280 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: F9C15C3C-EA4B-406D
В нашем случае имя диска будет — vda1
7. Записываем распакованный образ на диск командой:
dd if=chr-6.49.6.img of=/dev/vda bs=4M oflag=sync
где chr-6.49.6.img — файл образа из архива
/dev/vda — диск виртуального сервера
8. Производим перезагрузку сервера командами
echo 1 > /proc/sys/kernel/sysrq echo b > /proc/sysrq-trigger
После загрузки сервера, вы не сможете подключиться к нему удаленно, так как на сервере не указан Ваш IP. Для дальнейшей настройке сервера используйте KVM/VNC подключение к серверу.
9. Подключившись к серверу через KVM хостера авторизуемся и установим ip-адрес для удаленного доступа:
9.1. Авторизуемся на RouterOS по логину admin без пароля.
9.2. Настраиваем IP Микротик RouterOS
ip address add address=92.233.16.54/24 interface=ether1
Настраиваем шлюз
ip route add gateway=92.233.16.1
Настраиваем DNS-сервера
ip dns set servers=8.8.8.8
10. Вводим в адресной строке веб-браузера или ssh-консоли заданный роутеру ip-адрес и выполняем необходимые вам остальные настройки. Не забудьте изменить логин и пароль для входа, так же выполнить определенные настройки безопасности Микротик.




























