![](https://i.imgur.com/CcX7ANV.png) # **Цель практической работы** Целью данной практической работы является получение навыков базовой настройки сети с помощью IPv6, получение опыта работы с MAC-адресами, а также преобретение навыков установки Tor-browser. Для достижения поставленной цели необходимо было ответить на следующие вопросы: 1. Объяснить структуру IPv6; 2. Что такое зарезервированные IPv6 адреса; 3. Что такое глобальные IPv6 адреса; 4. Как узнать IPv6 адрес сайта; 5. Как открыть IPv6 в веб-браузере; 6. Как в IPv6 посмотреть ARP таблицу; 7. Как настроить свою систему на работу с DNS по IPv6; 8. Как посчитать сколько IPv6 адресов в подсети; 9. Показать IPv6 маршрутов в локальной системе; 10. Как отключить и включить IPv6; 11. Как посмотреть настройки IPv6; 12. Ping между двумя linux машинками по ipv6; 13. Как настроить SSH для работы только с IPv6; 14. Что такое mac-адрес (продемонстрировать и пояснить); 15. Как в Windows по MAC-адресу определить производителя (продемонстрировать); 16. Как в Linux по MAC-адресу определить производителя устройства (продемонстрировать); 17. Как узнать свой MAC-адрес в Windows (продемонстрировать); 18. Как узнать свой MAC-адрес в Linux (продемонстрировать); 19. Как в Linux сделать так, чтобы MAC подменялся при каждом подключении (продемонстрировать); - при соединении с одной и той же сетью использовался одинаковый MAC; - каждый раз разные MAC даже для одних и тех же сетей; 20. Как установить определённый MAC (продемонстрировать); 21. Измените MAC-адрес с помощью iproute2 (продемонстрировать); 22. Как установить Tor-browser на Windows и Linux. Для достижения максимального удобства в навигации было принято решение разбить отчёт по этой работе на три раздела, упомянутых в цели работы. # **1 Настройка сети с IPv6** IPv6 (Internet Protocol version 6) - это последняя версия Интернет-протокола, используемая для передачи данных в Интернете между устройствами. Для того, чтобы научится основам работы с IPv6 дадим ответы на следующие вопросы (подпункты 1.1-1.13). ## **1.1 Объяснить структуру IPv6** Адрес IPv6 состоит из 128 бит, которые разделены на восемь блоков (хекстетов) по 16 бит. Каждый блок преобразуется в четырёхзначные шестнадцатеричные числа. Блоки адреса разделены двоеточиями. Приведём пример адреса IPv6 (см. рис. 1.1), на котором помимо полного IPv6 адреса представлена его укороченная версия и преобразование в двоичную систему счисления. ![](https://i.imgur.com/kUHt1Ic.png) Рисунок 1.1 - Пример адреса IPv6 ## **1.2 Что такое зарезервированные IPv6 адреса?** В архитектуре адресации были зарезервированы различные IP-адреса для различных специальных целей. Приведём таблицу с примерами зарезервированных IPv6 адресов (см. рис. 1.2). ![](https://i.imgur.com/rtFRCZZ.png) Рисунок 1.2 - Таблица с зарезервированными IPv6 адресами ## **1.3 Что такое глобальные IPv6 адреса?** Глобальные IPv6 адреса соответствуют публичным IPv4-адресам. Они могут находиться в любом не занятом диапазоне. В настоящее время региональные интернет-регистраторы распределяют блок адресов 2000::/3 (с 2000:: по 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF). Это означает, что глобальными сейчас являются только IPv6 адреса, которые начинаются на «2» или на «3». ## **1.4 Как узнать IPv6 адрес сайта?** Для того, чтобы узнать IPv6 адрес сайта, необходимо выполнить любое действие, представленное на рис. 1.3-1.8. ![](https://i.imgur.com/vDMpVG2.png) Рисунок 1.3 - Узнаём IPv6 сайта через команду nslookup на ОС Winsows ![](https://i.imgur.com/nRuhLyF.png) Рисунок 1.4 - Узнаём IPv6 сайта через команду nslookup на ОС Linux ![](https://i.imgur.com/neJ3Z2U.png) Рисунок 1.5 - Узнаём IPv6 сайта через команду host на ОС Linux ![](https://i.imgur.com/nvmXrZ4.png) Рисунок 1.6 - Узнаём IPv6 сайта через команду dig на ОС Linux (указываем запись АААА явно) ![](https://i.imgur.com/ko3a803.png) Рисунок 1.7 - Узнаём IPv6 сайта через команду dig на ОС Linux (вывод всех DNS записей домена) ![](https://i.imgur.com/OrHLRjA.png) Рисунок 1.8 - Узнаём IPv6 сайта через сайт https://suip.biz/ru/?act=dig ## **1.5 Как открыть IPv6 в веб-браузере?** Для использования IPv6 адреса в URL его достаточно поместить в квадратные скобки. Запустим на Kali Linux веб-сервер apache2 и выполним к нему запрос через localhost IPv6 (см. рис. 1.9). ![](https://i.imgur.com/O5kpP7L.png) Рисунок 1.9 - Получаем доступ к веб-сервер apache2 с помощью IPv6 localhost ## **1.6 Как в IPv6 посмотреть ARP таблицу?** Для вывода ARP таблицы IPv6 воспользуемся командами, представленной на рис. 1.10-1.11. ![](https://i.imgur.com/kA3gO7n.png) Рисунок 1.10 - Вывод ARP таблицы IPv6 ![](https://i.imgur.com/vPeWfWW.png) Рисунок 1.11 - Вывод всей ARP таблицы (IPv6 и IPv4) ## **1.7 Как настроить свою систему на работу с DNS по IPv6?** Чтобы настроить свою систему на работу с DNS по IPv6, необходимо открыть файл "/etc/resolv.conf" и добавить туда соответствующие записи (см. рис. 1.12). ![](https://i.imgur.com/Or4FEE6.png) Рисунок 1.12 - Настройка своей системы на работу с DNS по IPv6 (для google) ## **1.8 Как посчитать сколько IPv6 адресов в подсети?** Для подсчета количества адресов в подсети можно воспользоваться формулой $2^{(128-X)}$. Здесь X - это длина маски. Допустим, что у нас есть сеть 2604:A880::/32/32. Посчитаем количество адресов в этой сети. Количество адресов в сети: $2^{128-32}=7,922816251*10^{28}$ ## **1.9 Показать IPv6 маршрутов в локальной системе** Чтобы вывести список всех IPv6 маршрутов в локальной системе, необходимо выполнить команду, представленную на рис. 1.13 или её сокращённый вариант "ip -6 ro". Если нужен только маршрут по умолчанию, то необходимо выполнить команду, представленную на рис. 1.14. ![](https://i.imgur.com/k65vRuo.png) Рисунок 1.13 - Вывод списка IPv6 маршрутов ![](https://i.imgur.com/v6Bp6yt.png) Рисунок 1.14 - Вывод маршрута по умолчанию для IPv6 ## **1.10 Как отключить и включить IPv6?** Для того, чтобы отключить IPv6 в Linux, необходимо ввести две команды, представленные на рис. 1.15. Данные настройки действуют до следующей перезагрузки компьютера. Чтобы сделать настройки постоянными, необходимо отредактировать файл "/etc/sysctl.d/sysctl.conf" (см. рис. 1.16). ![](https://i.imgur.com/tBHLVgc.png) Рисунок 1.15 - Отключение IPv6 ![](https://i.imgur.com/P4GYpYJ.png) Рисунок 1.16 - Делаем настройки постоянными Чтобы сделанные изменения вступили в силу, необходимо ввести следующие команду "sysctl –p". Если нужно проверить, отключён ли IPv6 на уровне операционной системы или нет, то нужно воспользоваться следующими командами (см. рис. 1.17). ![](https://i.imgur.com/ZNsVMeu.png) Рисунок 17 - Проверка, отключён ли IPv6 на уровне операционной системы (видно, что отключён, т.к. в выводе единица) Для включение IPv6 нужно выполнить теже действия, только вместо единици необходимо прописывать ноль. ## **1.11 Как посмотреть настройки IPv6?** Для просмотра текущих настроек IPv6 в Linux необходимо выполнить команду, указанную на рис. 1.18. ![](https://i.imgur.com/RhQLI8J.png) Рисунок 1.18 - Просмотра текущих настроек IPv6 ## **1.12 Ping между двумя Linux машинками по IPv6** Выволним ping между двумя Linux машинами. Для этого узнаем их ip-адреса (см. рис. 1.19-1.20) и проведём ping (см. рис. 1.21). ![](https://i.imgur.com/0ABvJEG.png) Рисунок 1.19 - Вывод ip-адреса машины №1 ![](https://i.imgur.com/laJFfOO.png) Рисунок 1.20 - Вывод ip-адреса машины №2 ![](https://i.imgur.com/bdosnOG.png) Рисунок 1.21 - Ping со второй машины на первую ## **1.13 Как настроить SSH для работы только с IPv6?** Настройка SSH сервера выполняется в файле "/etc/ssh/sshd_config". В системе может быть несколько сетевых интерфейсов с несколькими IP адресами, по умолчанию sshd прослушивает их все, в том числе IPv6 адреса (об этом нам сообщают следующие записи: ListenAddress 0.0.0.0 и ListenAddress ::). Если убрать запись ListenAddress 0.0.0.0, то будут прослушиваться только IPv6. Директивой ListenAddress также можено указать конкретный IP, который будет прослушиваться в ожидании подключений. Опцией AddressFamily можно выбрать для прослушивания все адреса, только IPv4 или только IPv6 (any — любые адреса, inet - использовать только IPv4, inet6 - использовать только IPv6). Выполним настройку конфигурационного файл, чтобы SSH-сервер работал по IPv6(см. рис. 1.22), перезапустим ssh демон и убедимся, что SSH-сервер функционирует (см. рис. 1.23). Далее выполним подключение (см. рис. 1.24). ![](https://i.imgur.com/DW9qnP6.png) Рисунок 1.22 - Содержимое файла "/etc/ssh/sshd_config" на SSH-сервере ![](https://i.imgur.com/KhzE5DG.png) Рисунок 1.23 - Проверка работоспособности SSH-сервера ![](https://i.imgur.com/RBlqTtZ.png) Рисунок 1.24 - Подключение к SSH-серверу # **2 MAC-адресация в Linux** Чтобы понять, что такое MAC-адреса и научится работать с ними, ответим на следующие вопросы (см. подпункты 2.1-2.8). ## **2.1 Что такое mac-адрес (продемонстрировать и пояснить)?** MAC-адрес (ещё называют физический адрес) – это уникальный идентификатор сетевого интерфейса в локальной сети. Одно устройство (компьютер, роутер) может иметь несколько сетевых интерфейсов (проводных и беспроводных) и, следовательно, иметь несколько MAC-адресов. Пример MAC-адреса 50:46:5D:6E:8C:20, также распространены такие варианты записи как 50-46-5D-6E-8C-20 и 50465D6E8C20. Т.е. MAC-адрес состоит из шести пар символов (их называют октетами). В эти символы входят все цифры и буквы от A до F (набор символов шестнадцатеричной записи). Иными словами MAC-адрес состоит из 48 бит, которые объединяются в шесть октетов по 8 бит. Первые три октета (бита) содержат уникальный идентификатор организации (OUI) или код MFG (Manufacturing, производителя), который производитель получает в IEEE. Т.е. они уникальны для каждого производителя сетевых устройств и каждый производитель, присваивая MAC-адрес своему сетевому устройству, начинает его со своих трёх октетов. Именно по ним, зная MAC-адрес, можно определить производителя. Последние три октета производитель присваивает произвольно и, в отличии от первых трёх, они должны быть уникальны для каждого сетевого интерфейса. Необходимо также отметить, что в первом октете используется только 6 старших разрядов. Два младших разряда имеют специальное значение: - нулевой бит - используется multicast или unicast; - первый бит - говорит о том, глобальный ли MAC-адрес, или локальный. Приведём наглядное описание структуры MAC-адреса (см. рис. 2.1). ![](https://i.imgur.com/JfWENiA.png) Рисунок 2.1 - Структура MAC-адреса ## **2.2 Как в Windows по MAC-адресу определить производителя (продемонстрировать)?** В Windows для определения вендора (производителя) устройства по MAC-адресу есть бесплатная программа MACAddressView. Для её скачивания нужно перейти по следующей ссылке https://www.nirsoft.net/utils/mac_address_lookup_find.html. После запуска программы, был вписан MAC-адрес сетевого интерфейса Kali Linux, который установлен на VirtualBox (см. рис. 2.2). По окончании работы, программа выдала следующий результат (см. рис. 2.3). ![](https://i.imgur.com/CIu78eq.png) Рисунок 2.2 - Узнаём MAC-адрес интерфейса ![](https://i.imgur.com/Hxt1jST.png) Рисунок 2.3 - Определение производителя сетевого интерфейса по MAC-адресу с помощью программы MACAddressView на OC Windows ## **2.3 Как в Linux по MAC-адресу определить производителя устройства (продемонстрировать)?** Для определения производителя по MAC-адресу в Linux необходима база с уникальными идентификаторами организаций (OUI). Она обычно уже присутствует в системах Linux, поскольку её используют различные программы. Проверим её наличие (см. рис. 2.4). Увидим, что база отсутствует, скачаем её (см. рис. 2.5) и посмотрим, что находится внутри скаченного файла (см. рис. 2.6). ![](https://i.imgur.com/DTnHbm7.png) Рисунок 2.4 - Проверка наличия базы с уникальными идентификаторами организаций (OUI) ![](https://i.imgur.com/yXn13Bt.png) Рисунок 2.5 - Скачиваем базу с уникальными идентификаторами организаций (OUI) ![](https://i.imgur.com/8pLzAfn.png) Рисунок 2.6 - Содержимое базы Теперь подготовим файл, в который поместим скрипт (см. рис. 2.7). Скрипт будет искать совпадения в скаченной базе и выведет результат в консоль. ![](https://i.imgur.com/cendwr5.png) Рисунок 3.7 - Подготовка файла со скриптом Запустим скрипт и передадим туда, в качестве аргумента, MAC-адрес. Результат работы скрипта представлен на рис. 2.8. ![](https://i.imgur.com/jTIYuWF.png) Рисунок 2.8 - Отображение информации о производители сетевого интерфейса ## **2.4 Как узнать свой MAC-адрес в Windows (продемонстрировать)?** Чтобы узнать свой MAC-адрес в Windows, можно воспользоватся двумя командами (см. рис. 2.9-2.12). Команда "getmac" показывает краткую информацию о всех MAC-адресах системы, при этом не всегда просто сориентироваться, какому именно интерфейсу соответствует конкретный MAC-адрес. А команда "ipconfig /all" выводит более расширенную информацию о подключении, по ней можно сориентироваться, какой физический адрес (MAC) какому именно интерфейсу принадлежит. ![](https://i.imgur.com/qJvTMB1.png) Рисунок 2.9 - Вывод информации о MAC-адресах с помощью команды "getmac" ![](https://i.imgur.com/7LSceXS.png) Рисунок 2.10 - Вывод информации о MAC-адресах с помощью команды "ipconfig /all" (часть 1) ![](https://i.imgur.com/OzT2HXD.png) Рисунок 2.11 - Вывод информации о MAC-адресах с помощью команды "ipconfig /all" (часть 2) ![](https://i.imgur.com/yUz55Jt.png) Рисунок 2.12 - Вывод информации о MAC-адресах с помощью команды "ipconfig /all" (часть 3) ## **2.5 Как узнать свой MAC-адрес в Linux (продемонстрировать)?** В Linux есть несколько способов узнать свой MAC-адрес. Если интересен только список адресов без дополнительных подробностей, то можно выполнить следующую команду (см. рис. 2.13). ![](https://i.imgur.com/ngPyE5J.png) Рисунок 2.13 - Вывод информации о MAC-адресах с помощью команды "cat /sys/class/net/*/address" Чтобы вывести информацию о текущем значении MAC и постоянном MAC-адресе устройства, необходимо выполнить следующую команду (см. рис. 2.14). MAC-адрес располагается в строках, перед которыми стоит «link/ether». Если MAC-адрес был изменён, то текущее значение показывается после «link/ether», а постоянное значение после «permaddr». ![](https://i.imgur.com/ZXTvDQ9.png) Рисунок 2.14 - Вывод информации о MAC-адресах с помощью команды "ip link" Чтобы вывести информацию о статусе соединений, в том числе MAC-адрес, необходимо выполнить следующую команду (см. рис. 2.15). ![](https://i.imgur.com/6rUcE2b.png) Рисунок 2.15 - Вывод информации о MAC-адресах с помощью команды "ip a" Для того, чтобы узнать MAC-адрес беспроводных интерфейсов, требуется ввести команду, представленную на рис. 2.16. ![](https://i.imgur.com/EykWRM3.png) Рисунок 2.16 - Вывод информации о MAC-адресах с помощью команды "iw dev" Кроме то, можно узнать MAC-адрес с помощью утилиты nmap, которая просканирует одно устройство или сразу сеть и покажет параметры, в том числе и MAC-адрес. Пример показан на рис. 2.17. ![](https://i.imgur.com/1U7eRKN.png) Рисунок 2.17 - Вывод информации о MAC-адресах с помощью утилиты nmap Следующие способ – это утилита arp-scan (см. рис. 2.18). ![](https://i.imgur.com/ms1WQnV.png) Рисунок 2.18 - Вывод информации о MAC-адресах с помощью утилиты arp-scan ## **2.6 Как в Linux сделать так, чтобы MAC подменялся при каждом подключении (продемонстрировать)?** ### **2.6.1 При соединении с одной и той же сетью используются одинаковые MAC-адреса** Если мы хотим, чтобы при каждом подключении подменялся MAC-адрес, но при этом при соединении с одной и той же сетью использовался одинаковый MAC, то в файл "/etc/NetworkManager/conf.d/mac.conf" необходимо добавить следующие строки (см. рис. 2.19). ![](https://i.imgur.com/K8RRALI.png) Рисунок 2.19 - Редактирование файла "/etc/NetworkManager/conf.d/mac.conf" для случая, когда необходимы одинакове MAC-адреса Узнаем MAC-адрес интерфейса, переподключимся к то же сети и заметим, что MAC-адрес остался таким же. Если бы мы подключились к другой сети, то MAC-адрес поменялся. ![](https://i.imgur.com/y0uTuaL.png) Рисунок 2.20 - Демонстрация несменяемости MAC-адреса при переподключении к той же сети ### **2.6.2 При соединении с одной и той же сетью используются разные MAC-адреса** Если мы хотим каждый раз разные MAC-адреса, то строки должны выглядеть так (см. рис. 2.21). ![](https://i.imgur.com/ndxUU08.png) Рисунок 2.21 - Редактирование файла "/etc/NetworkManager/conf.d/mac.conf" для случая, когда необходимы разные MAC-адреса Узнаем MAC-адрес интерфейса, переподключимся к то же сети и заметим, что MAC-адрес изменился. ![](https://i.imgur.com/hI10dQC.png) Рисунок 2.22 - Демонстрация сменяемости MAC-адреса при переподключении к той же сети ## **2.7 Как установить определённый MAC (продемонстрировать)?** Для того, чтобы установить определённый MAC-адрес необходимо выполнить команды, продемонстрированные на рис. 2.23. Особенностью данного метода является то, что MAC меняется только после подключения к сети. До подключения к сетям у интерфейсов будут их исходные MAC-адреса. Кроме, возможно, Wi-Fi интерфейса, поскольку, как это уже описано ранее, для него по умолчанию установлен спуфинг MAC. Для отмены спуфинга, как сказано ранее, необходимо добавить 2 дополнительные строки. Чтобы изменения вступили в силу перезапустим службу. ![](https://i.imgur.com/mxY5kTX.png) Рисунок 2.23 - Изменение MAC-адрес на конкретный ## **2.8 Измените MAC-адрес с помощью iproute2 (продемонстрировать)** Для того, чтобы изменить MAC-адрес будет использована утилита ip, которая включена в пакет iproute2. Начнём с проверки текущего MAC-адреса командой, представленной на рис. 2.24. В данный момент нас интересует часть, которая следует после «link/ether» и представляет 6-байтовый номер. ![](https://i.imgur.com/rHKueHr.png) Рисунок 2.24 - Проверка текущего MAC-адреса (интерфейс включён) Первый шаг для спуфинга MAC адреса – это перевести интерфейс в состояние down. Это выполняется командой, представленной на рис. 2.25. ![](https://i.imgur.com/VBEces4.png) Рисунок 2.25 - Выключение интерфейса Далее мы переходим непосредственно к спуфингу MAC. Можно использовать любое шестнадцатеричное значение, но некоторые сети могут быть настроены не назначать IP адреса клиентам, чей MAC-адрес не соответствует какому-либо известному вендору (производителю). В этих случаях, чтобы мы могли успешно подключиться к сети, необходимо использовать префикс MAC любого реального вендора (первые три байта) и использовать произвольные значения для последующих трёх байт. Для изменения MAC нам нужно запустить слудующую команду (см. рис. 2.26). ![](https://i.imgur.com/ihBTSWP.png) Рисунок 2.26 - Изменение MAC-адреса Последним шагом мы возвращаем интерфейс в состояние up. Это можно выполнить командой, представленной на рис. 2.27. ![](https://i.imgur.com/22KNdqt.png) Рисунок 2.27 - Включение интерфейса # **3 Tor** Tor Browser (сокр. от англ. The Onion Router) — свободное и открытое программное обеспечение для реализации второго (V2) и третьего (V3) поколения так называемой луковой маршрутизации. Это система прокси-серверов, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Установим Tor-browser на Windows и Linux (см. подпункты 3.1-3.2). ## **3.1 Установка и запуск Tor-browser на Windows** Первым делом необходимо установить VPN подключение и скачать установщик Tor-browser для Windows с официального сайта https://www.torproject.org/ru/download/ (см. рис. 3.1). ![](https://i.imgur.com/yoiyKtg.png) Рисунок 3.1 - Веб-страничка упомянутой выше ссылки Далее запустим установщик через PowerShell, установим браузер и запустим его (см. рис. 3.2-3.6). ![](https://i.imgur.com/v7Z8d2z.png) Рисунок 3.2 - Запуск установщика через PowerShell ![](https://i.imgur.com/e6DWQY7.png) Рисунок 3.3 - Выбор места установки браузера ![](https://i.imgur.com/Xz00yJY.png) Рисунок 3.4 - Процесс установки ![](https://i.imgur.com/Ho59a84.png) Рисунок 3.5 - Окончание установки ![](https://i.imgur.com/s2bEfZs.png) Рисунок 3.6 - Автоматически запущеный Tor-browser, после окончания установки Теперь закроем браузер и запустим его через PowerShell (см. рис. 3.7). ![](https://i.imgur.com/18X7ifp.png) Рисунок 3.7 - Запуск Tor-browser через PowerShell ## **3.2 Установка и запуск Tor-browser на Linux** Для того, чтобы установить и запуск Tor-browser на виртуальной машине Linux, необходимо выполнить следующие действия: - удостовериться, что на хостовой системе работает vpn; - установить следующий тип подключения сети на виртуальной машине Linux: NAT; - открыть браузер на виртуальной машине Linux и перейти по ссылке из предыдущего пункта (см. рис. 3.8); - скачать Tor-browser для Linux (см. рис. 3.9); - разархивировать материалы из скаченного архива (см. рис. 3.10-3.11); - запустить Tor-browser (см. рис. 3.12-3.13). ![](https://i.imgur.com/v8GEwe6.png) Рисунок 3.8 - Веб-страничка с ссылкой на скачивание Tor-browser ![](https://i.imgur.com/aNDe2XF.png) Рисунок 3.9 - Процесс загрузки Tor-browser для Linux ![](https://i.imgur.com/QHiDNFA.jpg) Рисунок 3.10 - Нажимаем кнопку "Extact Here" ![](https://i.imgur.com/6B8ydcn.jpg) Рисунок 3.11 - Процесс разархивации ![](https://i.imgur.com/pDgkqPf.png) Рисунок 3.12 - Запуск Tor-browser ![](https://i.imgur.com/ClZysap.png) Рисунок 3.13 - Запущеный Tor-browser # **Заключение** Таким образом, в результате выполнения практической работы были даны ответы на все упомянутые, в цели работы, вопросы. Были полученены навыки базовой настройки сети с помощью IPv6, получен опыт работы с MAC-адресами, а также преобретены навыки установки Tor-browser на Windows и Linux. Приобретённые знания по IPv6 и MAC-адресам помогут в дальнейшем выполнять серьёзные кейсы по настройке сети, а с помощью Tor-браузера можно будет устанавливать анонимное сетевое соединение, защищённое от прослушивания.