# ●▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬●
# Практическая работа “Настройка сети в 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:

tty печатает имя терминала, который вы используете. TTY означает «телетайп» (teletypewriter)
### Утилита users:

Выведет список всех зарегистрировавшихся пользователей. Она, до некоторой степени, является эквивалентом команды **who -q**.
### Утилита who:

Выводит список пользователей, работающих в настоящий момент в системе.
### Утилита w:

Выводит информацию о системе, список пользователей, подключенных к системе и процессы, связанные с пользователями. Это расширенная версия команды **who**.
# Настройка сети
## <li>ifconfig</li>
При вызове без каких-либо опций ifconfig отображает информацию о конфигурации всех сетевых интерфейсов и связанный IP-адрес:

Вывод включает информацию обо всех активных и неактивных сетевых интерфейсах
**inet** - сетевой адрес
**netmask** - маска сети
При запуске машина обнаружила 2 сетевых интерфейса (**eth0** и **lo**)
Используя **ifconfig** можно даже поменять IP адрес вашего интерфейса.

С помощью команд up/down мы можем включать/выключать интерфейсы


## <li>ping </li>
Данная утилита может производить огромное количество действий, в зависимости от аргумента 
Пример использования:

<li> "c" - способ использования утилиты</li>
<li> "4" - количество возможных пакетов</li>
<li> "youtube.com" - домен нужного сайта</li>
## <li> traceroute </li>
Данная утилита позволяет проследить сетевой маршрут до конечного хоста, печатая количество переходов (IP-адреса маршрутизатора) на этом пути.
Она также имеет огромное количество возможностей, в зависимости от аргумента.

## <li> route </li>
утилита **route** помогает при работе с таблицей маршрутизации

меняем шлюз при помощи утилиты **route**
## <li> nmcli </li>
**Nmcli** - это простой в использовании инструмент командной строки с поддержкой сценариев для сообщения о состоянии сети, управления сетевыми подключениями и управления NetworkManager.

# 2. Инструменты сетевого сканирования и анализа производительности
## <li>netstat</li>
Данная утилита очень помогает при устранении неполадок в сети и анализе производительности. Она предоставляет много полезной информации.
При помощи **netstat -a** выводится список всех портов, как прослушиваемых, так и не прослушиваемых.
Показать таблицу маршрутизации ядра: **netstat -r**

На данный момент утилита **netstat** устарела и есть более удобные и практичные в применении аналоги.
## <li>netcat</li>
Утилита **netcat** используется при работе с сокетами, позволяет прослушивать и сканировать порты, открывать соединения с разными протоколами. Попробуем открыть TCP порт через **netcat**
Для этого откроем командную строку windows, узнаем через нее IP адрес своего роутера и проверяем доступность портов.
В моем случае в выбранном диапазоне было свободно 2 порта.

## <li>ss</li>
**ss** (socket statystics) - утилита, предоставляющая помимо той же информации, что и **netstat**, еще и дополнительную информацию о TCP портах.
Через открытый с помощью **netcat** TCP порт, и с помощью **ss** получили о нем подробную информацию

## <li>Nmap</li>
**Nmap** это один из лучших сетевых сканеров. Применяется для сбора информации о сетях или отдельных адресах. **Nmap** позволяет узнать какой сервис работает на том или ином открытом порте. Просто указав свой IP мы можем очень быстро проверить доступность портов

Рядом с номером открытого TCP порта указывается назначение порта.
### Трессировка в **nmap**
Используя функцию **trceroute** можно просканировать локальную сеть.

Просканировав локальную сеть мы получаем следующую информацию:
<li>Просканированы все доступные порты(1000 штук)</li>
<li>Найдено 2 узла</li>
<li>1 IP адрес с поднятым на нем единственным хостом</li>
## <li> host </li>
Простая утилита для перевода имен хостов в IP адреса. 
## <li> dig </li>
*(сокращение от «domain information groper»)* — утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера.

## <li>Nslookup</li>
Иногда может возникнуть необходимость проверить работоспособность DNS, посмотреть как быстро работает сервер, увидеть IP адрес и скорость его получения для определенного домена. Для этого используется утилита nslookup.

# 3. Анализаторы сетевых пакетов Linux
## <li>Tcpdump</li>
Сетевой сниффер *(sniff - нюхать)* для захвата и анализа пакетов TCP/IP.
С помощью аргумента **-i** можно перехватывать все проходящие через интерфейс пакеты, указав имя интерфейса.

С помощью аргумента **-с** мы можем ограничить количество перехватываемых пакетов.

Также с помощью **-w** можно сохранять захваченные пакеты в файл.
## <li>Wireshark</li>
**Wireshark** - утилита, используемая для анализа пакетов и информации в них. Дает гораздо более подробную информацию, чем **tcdump**.

При вызове данной утилиты открывается окно, которое предоставляет множество возможных операций с пакетами, таких как: фильтрация, перемещение, просмотр содержания.
На фото пакеты были отсортированы по IP с помощью команды ip.addr == *(Ip адрес, по которому сортируем)*
## <li>bmon</li>
Данная утилита собирает статистику, связанную с сетью, и выводит ее визуально в удобном для человека формате. Это надежный и эффективный монитор полосы пропускания и оценщик скорости в реальном времени.

# <li>IP</li>
Синтаксис команды ip следующий:
> ip [OPTIONS] OBJECT { COMMAND | help

**OBJECT** — это тип объекта, которым вы хотите управлять. Наиболее часто используемые объекты (или подкоманды):
<li>link ( l ) — отображение и изменение сетевых интерфейсов.</li>
<li>address ( a ) — отображение и изменение IP-адресов.</li>
<li>route ( r ) — отображение и изменение таблицы маршрутизации.</li>
<li>neigh ( n ) — Отображение и управление соседними объектами (таблица ARP).</li>
С помощью команды **ip addr show** можно получить всю информацию о IP адресах.

Чтобы запросить информацию об одном определенном интерфейсе, используйте **ip addr show dev *(имя интерфейса)***

Можно назначить интерфейсу другой IP адрес


Отображение всех сетевых интерфейсов

## Включение/выключение интерфейса


## Таблица маршрутизации
Список записей маршрута ядра:

Добавим маршрут к 192.168.121.0/24 через шлюз 192.168.121.1

Чтобы добавить маршрут по умолчанию, используйте ключевое слово default.

Удалим добавленные маршруты 

# 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** дает краткую информацию по утилите

**Man** дает очень подробную информацию.

**Apropos** - своего рода поисковик, находит страницы по запросу

# Шифрование домашнего каталога на базе Ubuntu
Для защиты своих данных от несанкционированного доступа будем использовать утилиту **ecryptfs**.
Создадим юзера, домашний каталог которого собираемся зашифровать:

Для шифрования всего домашнего каталога пользователя можно использовать
программу ecryptfs. Допустим, что у вас в системе есть пользователь NATE_HIGGERS, тогда его домашний каталог можно зашифровать следующей командой:
==sudo ecryptfs-migrate-home -u NATE_HIGGERS==

Заходим в Ubuntu через созданного пользователя и получаем ключ вписав такую команду:

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

# {{{{{{{{{{{{{{{{{{{{{{ВЫВОДЫ:}}}}}}}}}}}}}}}}}}}}}
В ходе практической работы:
<li>Изучены этапы загрузки системы</li>
<li>Была установлена виртуальная машина</li>
<li>Произведено знакомство с Ubuntu и Linux</li>
<li>Изучены различные утилиты и особенности работы с ними</li>
<li>Изучены возможности системы по шифрованию файлов на диске</li>
<li>Освоен навык работы со справочными материалами</li>