# ●▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬● # Практическая работа “Настройка сети в Linux” # ●▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬● >## Выполнил Пиджаков Давид ББСО-01-22 ## Цель работы: <u1> <li>Научиться работать с утилитами ip a, ifconfig, traceroute, ping;</li> <li> Научиться настраивать сетевой интерфейс;</li> <li>Научиться настраивать шифрование домашнего каталога;</li> <li>Научиться работать с Help, Man.</li> </u1> ## Практическая работа 1.0 “Пользовательское окружение ОС Linux”: >### В данной работе нужно ознакомиться и понять, как работают Утилиты "tty", "users", "who" и "w". ### Утилита tty: ![](https://i.imgur.com/pCCnh6K.png) tty печатает имя терминала, который вы используете. TTY означает «телетайп» (teletypewriter) ### Утилита users: ![](https://i.imgur.com/eSTuCmk.png) Выведет список всех зарегистрировавшихся пользователей. Она, до некоторой степени, является эквивалентом команды **who -q**. ### Утилита who: ![](https://i.imgur.com/O5rples.png) Выводит список пользователей, работающих в настоящий момент в системе. ### Утилита w: ![](https://i.imgur.com/PysAyx5.png) Выводит информацию о системе, список пользователей, подключенных к системе и процессы, связанные с пользователями. Это расширенная версия команды **who**. # Настройка сети ## <li>ifconfig</li> При вызове без каких-либо опций ifconfig отображает информацию о конфигурации всех сетевых интерфейсов и связанный IP-адрес: ![](https://i.imgur.com/SNx4utg.png) Вывод включает информацию обо всех активных и неактивных сетевых интерфейсах **inet** - сетевой адрес **netmask** - маска сети При запуске машина обнаружила 2 сетевых интерфейса (**eth0** и **lo**) Используя **ifconfig** можно даже поменять IP адрес вашего интерфейса. ![](https://i.imgur.com/fAHhSln.png) С помощью команд up/down мы можем включать/выключать интерфейсы ![](https://i.imgur.com/WwmuNDI.png) ![](https://i.imgur.com/ZjsCocT.png) ## <li>ping </li> Данная утилита может производить огромное количество действий, в зависимости от аргумента ![](https://i.imgur.com/jE4QrvE.png) Пример использования: ![](https://i.imgur.com/IT9lX6M.png) <li> "c" - способ использования утилиты</li> <li> "4" - количество возможных пакетов</li> <li> "youtube.com" - домен нужного сайта</li> ## <li> traceroute </li> Данная утилита позволяет проследить сетевой маршрут до конечного хоста, печатая количество переходов (IP-адреса маршрутизатора) на этом пути. Она также имеет огромное количество возможностей, в зависимости от аргумента. ![](https://i.imgur.com/oXKXIGu.png) ## <li> route </li> утилита **route** помогает при работе с таблицей маршрутизации ![](https://i.imgur.com/xUSJNaq.png) меняем шлюз при помощи утилиты **route**![](https://i.imgur.com/ajkWkBe.png) ## <li> nmcli </li> **Nmcli** - это простой в использовании инструмент командной строки с поддержкой сценариев для сообщения о состоянии сети, управления сетевыми подключениями и управления NetworkManager. ![](https://i.imgur.com/vGoNkNK.png) # 2. Инструменты сетевого сканирования и анализа производительности ## <li>netstat</li> Данная утилита очень помогает при устранении неполадок в сети и анализе производительности. Она предоставляет много полезной информации. При помощи **netstat -a** выводится список всех портов, как прослушиваемых, так и не прослушиваемых. Показать таблицу маршрутизации ядра: **netstat -r** ![](https://i.imgur.com/r6WYOG0.png) На данный момент утилита **netstat** устарела и есть более удобные и практичные в применении аналоги. ## <li>netcat</li> Утилита **netcat** используется при работе с сокетами, позволяет прослушивать и сканировать порты, открывать соединения с разными протоколами. Попробуем открыть TCP порт через **netcat** Для этого откроем командную строку windows, узнаем через нее IP адрес своего роутера и проверяем доступность портов. В моем случае в выбранном диапазоне было свободно 2 порта. ![](https://i.imgur.com/7gxxd1L.png) ## <li>ss</li> **ss** (socket statystics) - утилита, предоставляющая помимо той же информации, что и **netstat**, еще и дополнительную информацию о TCP портах. Через открытый с помощью **netcat** TCP порт, и с помощью **ss** получили о нем подробную информацию ![](https://i.imgur.com/kfO4sUZ.png) ## <li>Nmap</li> **Nmap** это один из лучших сетевых сканеров. Применяется для сбора информации о сетях или отдельных адресах. **Nmap** позволяет узнать какой сервис работает на том или ином открытом порте. Просто указав свой IP мы можем очень быстро проверить доступность портов ![](https://i.imgur.com/5dGCSoR.png) Рядом с номером открытого TCP порта указывается назначение порта. ### Трессировка в **nmap** Используя функцию **trceroute** можно просканировать локальную сеть. ![](https://i.imgur.com/qetzX79.png) Просканировав локальную сеть мы получаем следующую информацию: <li>Просканированы все доступные порты(1000 штук)</li> <li>Найдено 2 узла</li> <li>1 IP адрес с поднятым на нем единственным хостом</li> ## <li> host </li> Простая утилита для перевода имен хостов в IP адреса. ![](https://i.imgur.com/cSsyJOW.png) ## <li> dig </li> *(сокращение от «domain information groper»)* — утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера. ![](https://i.imgur.com/tQKVlNH.png) ## <li>Nslookup</li> Иногда может возникнуть необходимость проверить работоспособность DNS, посмотреть как быстро работает сервер, увидеть IP адрес и скорость его получения для определенного домена. Для этого используется утилита nslookup. ![](https://i.imgur.com/LRGltj2.png) # 3. Анализаторы сетевых пакетов Linux ## <li>Tcpdump</li> Сетевой сниффер *(sniff - нюхать)* для захвата и анализа пакетов TCP/IP. С помощью аргумента **-i** можно перехватывать все проходящие через интерфейс пакеты, указав имя интерфейса. ![](https://i.imgur.com/RqsEjMT.png) С помощью аргумента **-с** мы можем ограничить количество перехватываемых пакетов. ![](https://i.imgur.com/K8FousS.png) Также с помощью **-w** можно сохранять захваченные пакеты в файл. ## <li>Wireshark</li> **Wireshark** - утилита, используемая для анализа пакетов и информации в них. Дает гораздо более подробную информацию, чем **tcdump**. ![](https://i.imgur.com/IIv3WoU.png) При вызове данной утилиты открывается окно, которое предоставляет множество возможных операций с пакетами, таких как: фильтрация, перемещение, просмотр содержания. На фото пакеты были отсортированы по IP с помощью команды ip.addr == *(Ip адрес, по которому сортируем)* ## <li>bmon</li> Данная утилита собирает статистику, связанную с сетью, и выводит ее визуально в удобном для человека формате. Это надежный и эффективный монитор полосы пропускания и оценщик скорости в реальном времени. ![](https://i.imgur.com/CgOSQc0.png) # <li>IP</li> Синтаксис команды ip следующий: > ip [OPTIONS] OBJECT { COMMAND | help ![](https://i.imgur.com/gEbjRrY.png) **OBJECT** — это тип объекта, которым вы хотите управлять. Наиболее часто используемые объекты (или подкоманды): <li>link ( l ) — отображение и изменение сетевых интерфейсов.</li> <li>address ( a ) — отображение и изменение IP-адресов.</li> <li>route ( r ) — отображение и изменение таблицы маршрутизации.</li> <li>neigh ( n ) — Отображение и управление соседними объектами (таблица ARP).</li> С помощью команды **ip addr show** можно получить всю информацию о IP адресах. ![](https://i.imgur.com/Nl4AiUz.png) Чтобы запросить информацию об одном определенном интерфейсе, используйте **ip addr show dev *(имя интерфейса)*** ![](https://i.imgur.com/QbV1d3M.png) Можно назначить интерфейсу другой IP адрес ![](https://i.imgur.com/5wqLai3.png) ![](https://i.imgur.com/jnxSSS9.png) Отображение всех сетевых интерфейсов ![](https://i.imgur.com/4Q9OEBh.png) ## Включение/выключение интерфейса ![](https://i.imgur.com/CZWEbSH.png) ![](https://i.imgur.com/Ax76NHe.png) ## Таблица маршрутизации Список записей маршрута ядра: ![](https://i.imgur.com/V6d8PJw.png) Добавим маршрут к 192.168.121.0/24 через шлюз 192.168.121.1 ![](https://i.imgur.com/IuTG08m.png) Чтобы добавить маршрут по умолчанию, используйте ключевое слово default. ![](https://i.imgur.com/FscBHwZ.png) Удалим добавленные маршруты ![](https://i.imgur.com/PeEsJ7d.png) ![](https://i.imgur.com/aKiFiMq.png) # Traceroute Необходим для отладки сети через отслеживание пути сетевого пакета. Для прослеживания пути могут быть использованы различные протоколы, такие как ICMP, UDP и TCP. Для отладки удобнее всего использовать ICMP, так как в него встроена система классификации ошибок. Все сообщения об ошибках ICMP, за исключением Истекло время и Порт недостижим, выдаются в следующем формате: <li>!H - Хост недостижим</li> <li>!N - Сеть недостижима</li> <li>!P - Протокол недоступен</li> <li>!S - Ошибка в исходном маршруте</li> <li>!F - Требуется фрагментация</li> # СПРАВОЧНЫЕ СИСТЕМЫ В UNIX системах предусмотрена справочная система для быстрого доступа к информации о самой системе и инструментах, содержащиеся в ней. Самой известной справочной системой, сопровождающей UNIX практически с момента ее рождения, является справочная система страниц руководства, информация из которой доступна при помощи команд **man**, **apropos** и **whatis**. **Whatis** дает краткую информацию по утилите ![](https://i.imgur.com/KcObB2x.png) **Man** дает очень подробную информацию. ![](https://i.imgur.com/it7DSIU.png) **Apropos** - своего рода поисковик, находит страницы по запросу ![](https://i.imgur.com/kAOaHUf.png) # Шифрование домашнего каталога на базе Ubuntu Для защиты своих данных от несанкционированного доступа будем использовать утилиту **ecryptfs**. Создадим юзера, домашний каталог которого собираемся зашифровать: ![](https://i.imgur.com/f4nM9qU.png) Для шифрования всего домашнего каталога пользователя можно использовать программу ecryptfs. Допустим, что у вас в системе есть пользователь NATE_HIGGERS, тогда его домашний каталог можно зашифровать следующей командой: ==sudo ecryptfs-migrate-home -u NATE_HIGGERS== ![](https://i.imgur.com/FykhdZP.png) Заходим в Ubuntu через созданного пользователя и получаем ключ вписав такую команду: ![](https://i.imgur.com/oalGc80.png) Заходим обратно, на основного пользователя и попробуем зайти в зашифрованную домашнюю директорию нашего пользователя. ![](https://i.imgur.com/LGIIKiS.png) # {{{{{{{{{{{{{{{{{{{{{{ВЫВОДЫ:}}}}}}}}}}}}}}}}}}}}} В ходе практической работы: <li>Изучены этапы загрузки системы</li> <li>Была установлена виртуальная машина</li> <li>Произведено знакомство с Ubuntu и Linux</li> <li>Изучены различные утилиты и особенности работы с ними</li> <li>Изучены возможности системы по шифрованию файлов на диске</li> <li>Освоен навык работы со справочными материалами</li>