Пример безопасной настройки домашней локальной сети

Пример безопасной настройки домашней локальной сети

Раньше многие могли как-то контролировать наличие у себя в сети одного-двух устройств, то сейчас устройств у пользователей становится всё больше. Это затрудняет осуществление надёжного контроля.

Автор: Агиевич Игорь https://twitter.com/shanker_sec

Развитие техники и телекоммуникаций приводит к быстрому росту в домах пользователей всевозможных устройств, которые умеют работать с Интернетом. Пользователи охотно приобретают устройства, которые взаимодействуют с Интернетом для прослушивания Интернет-радио, скачивания музыки, фильмов, программ, электронных книг и для других действий. И если раньше многие могли как-то контролировать наличие у себя в сети одного-двух устройств, то сейчас устройств у пользователей становится всё больше. Это затрудняет осуществление надёжного контроля. Особенно, когда семья состоит из нескольких пользователей, которые умудряются подключать девайсы к сети, не согласуя друг с другом. Отсутствие знаний в области грамотной настройки домашней сети приводит к тому, что за пользователями могут подсматривать из интернета помимо их воли (http://habrahabr.ru/post/189674/). Либо, наоборот: пользователи теряют возможность удалённо следить через интернет происходящее в поле зрения их IP-камер из-за Робин Гудов.

Данной статьёй, в идеале, хотелось бы повысить грамотность населения в озвученной сфере. По крайней мере, надеюсь, что мой опыт сэкономит время и силы тем, кто давно подумывал разобраться с цифровой анархией в своей домашней сети. А, может быть, будет полезен тем, кто задумался о том, как грамотно организовать свой домашний кинотеатр.

Изначально я столкнулся с ситуацией, что список техники у меня дома, испытывающей потребность в Интернете достиг:

  1. 2 ПЭВМ (моя и родителей)
  2. мобильный телефон
  3. утварь для домашнего кинотеатра (NAS-сервер Synology, медиа-проигрыватель Dune)
  4. планшет
Пытаясь разобраться как же контролировать этот хаос, я пришёл к логическому выводу: мне нужен беспроводной роутер. Слишком сильно раскошеливаться я не был намерен. С другой стороны, тяга к знаниям довела меня до мысли, что было бы неплохо перехватывать трафик различных устройств, которыми я уже успел обогатить свои цифровые владения. Интересно же как они там общаются с сервером обновления ПО. Не «говорят» ли чего лишнего. Казалось бы, трудно сочетать такие требования: либо цена подскочит, либо железка попадёт в руки, которую без тонны мануалов не настроить. А времени сильно разбираться, если честно, не было.

Но, в итоге, я смог убить двух зайцев. Остановился я на латвийском роутере Mikrotik 751G-2HnD. Он не нанёс моему кошельку сильного ущерба (ровно как и моей радости от приобретённого девайса). И смог покрыть все мои потребности. Забегая вперёд, скажу, что опыт общения с этой железкой у меня был настолько хорошим, что я и в офис прикупил его старшего брата Mikrotik 951G-2HnD

Общая схема подключения всех устройств показана на рис №1.

Рис №1 Общая схема подключения устройств в моей домашней сети

Снабжу картинку некоторыми пояснениями. TV сам по себе с интернетом не общается. Просто потому, что он не имеет Ethernet-кабеля (был куплен чёрте когда). Он соединяется HDMI-кабелем с медиа-проигрывателем (Dune HD Smart D1). А вот уже Dune может транслировать видео на TV. Несмотря на некоторые возможности Dune по хранению данных и поддержке съёмных носителей (а также наличие встроенного торрент-клиента). Он используется только как медиа-проигрыватель. А уже Synology DS212j используется как хранилище музыки, фильмов. Также имеет плагин для работы с Torrent-сетями. На этом устройстве настроена расшаренная папка, откуда Dune получает медиа-файлы к показу. Dune и Synology объединяются посредством подключения к обычному коммутатору (на картинке помечен как Switch). Мне не требовалось каких-то особенностей от коммутатора, так что купил первый попавшийся 4-х портовый коммутатор.

Коммутатор и обе ПЭВМ подключены в разные порты Mikrotik. Надо сказать, что мои родители серьёзно попработали в своё время вопрос наличия Интернета в разных частях квартиры ещё на этапе ремонта. Поэтому Ethernet-кабели проложены практически в каждую комнату в стенах. Так что физически оборудование рассредоточено по разным комнатам. А Ethernet-кабель не виднеется на полу, потолке или на стенах (что часто можно встретить в других квартирах). Хотя, в некоторых уголках всё-же не хватает проводки кабеля. Поэтому советую будущим молодым семьям с особой тщательностью продумывать этот вопрос. Ведь Wi-Fi не всегда является хорошим решением. Но в целом всё красиво подключено.

Итак, структура сети ясна, начнём с настройки Mikrotik

Первые шаги — дружим Mikrotik с интернетом.

Настройка Mikrotik с RouterOS v6.x не имеет никаких проблем. Через WebFig во вкладке Quick Set (рис №2) выставляете IP-адрес, выданный провайдером (в зависимости от Ваших условий прописываете статически, либо ставите DHCP для автоматического получения). При необходимости — можно менять MAC-адрес WAN-порта (если провайдер привязывает выдачу IP к MAC-адресу одного из Ваших устройств, например, предыдущего роутера). Ставите галочки, как на рис №2

Рис №2 первые шаги настройки

Для случая с RouterOS версии < 6.x всё не так просто. Когда я покупал свой роутер (год назад), там была версия 5.х. MAC-адрес WAN-порта в ней нельзя было менять через браузер, пришлось сделать это через терминал (по ssh). Определённые трудности были и с другими настройкой параметров интернета. Я не буду останавливаться на этом подробно. Все эти проблемы решались через гугл. Скажу лишь, что когда я столкнулся с этим снова (в офисе при замене роутера на Mikrotik), я несколько изловчился: подключил Mikrotik WAN-портом в порт роутера (который планировал заменить), через браузер настроил Mikrotik на получение адреса по DHCP. После чего скачал прошивку версии 6.x. А далее — повторил процедуру, указанную выше. Это значительно сэкономило мне времени. Замена старого роутера прошла с первого раза, без каких-либо проблем.

Настройка сети - теория

На рис №3 — итоговая картинка, к которой я привёл сеть.

Рис №3 Итоговая настройка сети

Сначала расскажу что же я настроил, а потом перейдём непосредственно к настройке. На Mikrotik настроен port knocking, позволяющий безопасно открывать на определённое время доступ из Интернет к управлению NAS Synology через браузер. Вдруг чего захочется на скачку поставить, чтоб уже успело скачаться к возвращению домой.

Коммутатор подключён к порту 3 роутера. Поэтому, для удобства запоминания, всей сети на этом порту выдаются адреса из подсетки 192.168.3.х

IP-адрес Mikrotik для управления через веб-интерфейс 192.168.5.1.

ПЭВМ №1 (192.168.5.100) подключён к порту 5 роутера. Ему разрешено обращаться к Интернету, ко всем устройствам в сети и к Mikrotik — для его настройки.

ПЭВМ №2 (192.168.4.100) подключён к порту 4 роутера. Ему разрешено обращаться к Интернету, ко всем устройствам в сети, кроме Mikrotik (царь должен быть один).

NAS Synology, Dune — разрешено обращаться к сети 192.168.3.х и Интернету. Всё остальное запрещено.

Мобильные устройства получают адрес из сети 192.168.88.х и могут общаться с интернетом и другими мобильными устройствами. Общения с другими подсетями запрещены. Беспроводная сеть шифруется WPA2.

Вообще, Mikrotik поддерживает Radius для авторизации устройств в сети. В качестве сервера Radius может быть тот же Synology. Но я так уже не стал настраивать. Все неизвестные роутеру устройства не смогут общаться с Интернетом. Это поможет избегать ситуаций подобной следящими за пользователями телевизорами.

Крайне желательно, чтобы ПЭВМ, который управляет Mikrotik (в моём случае это ПЭВМ №1), подключался к Mikrotik напрямую, без коммутаторов. Это полезно для предотвращения перехвата параметров доступа администратора (используя атаку типа «человек посередине», пользуясь особенностями протокола ARP) при работе с Mikrotik через web-интерфейс. Ведь по-умолчанию web-интерфейс у Mikrotik идёт через открытый для анализа HTTP. Возможность перевести на HTTPS у Mikrotik присутствует. Однако, это выходит за рамки данной статьи, т. к. являет собой отдельную нетривиальную задачу (для начинающих администраторов Mikrotik).

Теперь, когда мы разобрались с тем, чего хотим добиться, самое время переходить к практической части.

Настройка сети - практика

Подключаемся к Mikrotik через web-интерфейс. В разделе IP->Pool зададим диапазон выдачи IP-адресов для сети 192.168.3.x (рис №4)

Рис №4

В разделе IP->DHCP Server во вкладке DHCP нажмём кнопку Add New и привяжем к физическому порту №3 Ethernet (ether3-slave-local) созданный ранее пул выдачи адресов (pool3) (рис №5)

Рис №5

Далее на вкладке Networks пропишем настройки новой подсети (рис №6)

Рис №6

В разделе IP->Routes пропишем маршрут для новой сети (рис №7):

Рис №7

В разделе Interfaces выберем ether3-slave-local и сменим значение параметра Master Port на none (рис №8)

Рис №8

В разделе IP->Addresses создадим шлюз 192.168.3.1 для сети 192.168.3.0/24 для порта ether3-slave-local (рис №9)

Рис №9

Таким же образом настраиваются все остальные подсети на остальных физических портах Mikrotik.

Подсеть создана. Теперь устройства, подключенные к порту №3 Ethernet, могут работать с Интернетом и другими подсетями домашней сети. Самое время разрешить что нам нужно и запретить всё, что не разрешено в разделе IP->Firewall на вкладке Filter Rules.

Используя кнопку Add New создаём следующие правила:

Создаём правила, позволяющие обращаться к Mikrotik с ПЭВМ №1 (192.168.5.1), остальным запрещаем

Chain= input Src.address =192.168.5.100 Dst.address = 192.168.5.1 Action= accept

Chain= input Action= drop

Устройству NAS Synology позволяем «общаться» только с Интернетом, локальную сеть (192.168.0.0/16) исключаем:

Chain= forward Src.address =192.168.3.201 Dst.address = !192.168.0.0/16 Action= accept

Аналогичные настройки для медиа-плеера Dune:

Chain= forward Src.address =192.168.3.200 Dst.address = !192.168.0.0/16 Action= accept

Обоим ПЭВМ разрешаем «общаться» с Интернетом и всеми подсетями домашней сети:

Chain= forward Src.address =192.168.5.100 Dst.address = 0.0.0.0/0 Action= drop

Chain= forward Src.address =192.168.4.100 Dst.address = 0.0.0.0/0 Action= drop

Устройствам из сети 192.168.3.х (где NAS Synology и Dune) позволяем устанавливать соединения, инициаторами которых является ПЭВМ №1

Chain= forward Src.address =192.168.3.0/24 Dst.address = 192.168.5.100 Connection State = established, Action= accept

Всем остальным запрещаем исходящий трафик в Интернет и в подсети нашей сети:

Chain= forward Src.address =192.168.0.0/16 Dst.address =0.0.0.0/0 Action= drop

Для реализации port knocking выполним следующие правила:

chain=input action=add-src-to-address-list protocol=icmp src-address-list=ICMP_SSH_128_stage1 address-list=white_list_NAS address-list-timeout=1h in-inter packet-size=128

chain=input action=add-src-to-address-list protocol=icmp src-address-list=ICMP_SSH_98_stage2 address-list=ICMP_SSH_128_stage1 address-list-timeout=1m in-inter packet-size=128

chain=input action=add-src-to-address-list protocol=icmp src-address-list=ICMP_SSH_98_stage1 address-list=ICMP_SSH_98_stage2 address-list-timeout=1m in-inter packet-size=98

chain=input action=add-src-to-address-list protocol=icmp address-list=ICMP_SSH_98_stage1 address-list-timeout=1m in-inter packet-size=98

Кому интересно почему именно так прописывается могут прочитать здесь (http://habrahabr.ru/post/186488/)

Теперь «по стуку» у нас удалённый компьютер внесётся на 1 час в список разрешённых (white_list_NAS). Но это ещё не всё. Чтоб он смог получить доступ к web-интерфейсу Synology нужно настроить port forwarding для этого списка (white_list_NAS)

Это делается в разделе IP->Firewall во вкладке NAT. Создадим правило:

chain=dstnat protocol=tcp Dst.port=5000 Src address list=white_list_NAS action=dst-nat to addresses=192.168.3.201 to ports=5000

Теперь сделав ping определённым образом мы получим доступ к нашему NAS (рис №10)

Рис№ 10

На этом настройка закончена. Если всё правильно, то в итоге у нас в разделе IP->Firewall на вкладке Filter Rules получится картинка как на рис №11

Рис №11

Проверка конфигурации

Подключимся по SSH к NAS-серверу (192.168.3.201) и выполним трассировку до ПЭВМ №1 (192.168.5.100) и Dune (192.168.3.200) — рис №12

Рис №12 результаты c NAS

Видим, что при трассировке до ПЭВМ №1 пакеты идут через 192.168.3.1 и не достигают цели. А к Dune пакеты идут напрямую. При этом пинги в интернет идут нормально (в данном случае, на адрес 8.8.8.8).

А с ПЭВМ №1 (192.168.5.100) до NAS (192.168.3.201) трассировка проходит успешно (рис №13).

Рис №13 трассировка с ПЭВМ №1

А на рис №14 показано что происходит на ПЭВМ, который подключили к сети и не внесли после этого относительно него никаких правил в firewall Mikrotik. В итоге эта ПЭВМ не может взаимодействовать ни с Интернетом, ни с другими устройствами в других подсетях локальной сети.

Рис №14 результаты с нового ПЭВМ, подключенного к сети

Выводы

Нам удалось настроить нашу домашнюю сеть, сочетая удобство работы с устройствами в сети и не жертвуя при этом безопасностью. Решены следующие задачи:

  1. Настройка Mikrotik возможна по веб-интерфейсу только с ПЭВМ №1 
  2. NAS Synilogy и Dune могут получать данные из Интернета, но не могут получать доступа к устройствам в других подсетях. Поэтому, даже если в их прошивках есть бекдоры для разработчиков, АНБ или кого-то ещё, всё что они смогут узнать — только друг о друге (о NAS Synilogy или Dune) 
  3. Реализован безопасный удалённый доступ из любой точки интернета для установки дома на закачку для NAS Synilogy необходимого софта 
  4. Несанкционировано подключенные к сети устройства имеют доступ только в рамках подсети, куда они подключены, и не могут передавать данные в Интернет.

Ваш мозг на 60% состоит из жира. Добавьте 40% науки!

Сбалансированная диета для серого вещества

Подпишитесь и станьте самым умным овощем