Файл: Задачи Сконфигурировать сетевой интерфейс с помощью команды ip.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.02.2024

Просмотров: 12

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сетевые настройки на сервере Debian
В ходе выполнения лабораторной работы все этапы подкрепляются скриншотами.
Задачи:


  1. Сконфигурировать сетевой интерфейс с помощью команды IP

Указать ip адрес 192.168.14.x

Маска 255.255.0.0

Шлюз 192.168.249.206

DNS:192.168.251.1



    1. Проверить наличие интернета

    2. Выполнить nslookup ya.ru

    3. Сказать преподавателю IP адрес




  1. Сконфигурировать сетевой интерфейс с помощью GUI


Указать ip адрес 192.168.x.x

Маска 255.255.0.0

Шлюз 192.168.249.201

DNS:8.8.8.8


    1. Проверить наличие интернета

    2. Выполнить nslookup ya.ru

    3. Выставить динамическое получение ip адреса




  1. Изменить имя хоста




  1. Воспользоваться утилитой tcpdump.

    1. В одном терминале запустить прослушивание пакетов, в другом запустить команду ping отловить:

      1. Все пакеты протокола icmp

      2. Все пакеты, исходящие на сервера ya.ru




  1. Изучить возможности команды route, netstat, traceroute в Linux и составьте краткое описание работы и функциональности.


ТЕОРИТИЧЕСКАЯ ЧАСТЬ
Настройка статического IP
Вы установили сервер и во время установки указали какие-то сетевые параметры, или не указали, не важно. Но сейчас вы решили, что вам нужно назначить статический ip (static ip) адрес. Воспользуемся для этого утилитой ip. Сначала посмотрим список всех сетевых интерфейсов:
# ip a

В данном случаи в системе 1 сетевой интерфейс eth0 и он каким-то образом уже сконфигурирован. Назначим ему еще один статический адрес:
# ip addr add 192.168.1.35/24 dev eth0
Этот адрес будет добавлен к уже существующему адресу. Проверим это:

# ip a


Теперь сервер будет доступен по обоим адресам. Текущая настройка сохранится только до перезагрузки сервера. Чтобы она применялась во время загрузки, нужно либо каким-то образом добавить команду на изменение настроек в автозагрузку, например в /etc/rc.local, но это будет костыль. Правильнее отредактировать файл
, который отвечает за сетевые настройки в debian - /etc/network/interfaces. Для того, чтобы назначить постоянный статический ip адрес, его нужно привести к следующему виду:
# mcedit /etc/network/interfaces

source /etc/network/interfaces.d/*
auto lo

iface lo inet loopback
auto eth0

iface eth0 inet static

address 192.168.1.35

gateway 192.168.1.1

netmask 255.255.255.0

auto

указанный интерфейс необходимо запускать автоматически при загрузке системы

iface

интерфейс eth0 находится в диапазоне адресов IPv4 со статическим ip

address

статический ip адрес

gateway

шлюз по-умолчанию

netmask

маска сети



Для проверки перезагружаем сервер и смотрим, все ли в порядке с настройкой статического ip адреса. Если вам нужно сменить ip адрес в debian, то вы можете временно изменить его с помощью команды ip, либо постоянно, отредактировав параметр address в файле сетевых настроек interfaces.
Получение сетевых настроек по DHCP
Теперь рассмотри вариант, когда вам необходимо получить динамический ip адрес в Debian. Здесь по аналогии с предыдущими настройками можно пойди двумя путями:

  1. Получить ip адрес по dhcp в консоли с помощью программы dhclient, который будет работать до перезагрузки.

  2. Отредактировать файл конфигурации сетевых интерфейсов.

Смотрим снова на текущую конфигурацию сети:

# ip a



Выполним команду на получение ip адреса по dhcp и проверим сеть:

# dhclient

# ip a


В качестве второго ip мы получили адрес от dhcp сервера. Если у вас несколько сетевых интерфейсов, то необходимо добавлять название после команды, например вот так:

# dhclient eth0

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

# dhclient -r

Обратим внимание, что эта команда сбросит все ip адреса интерфейса, в том числе и статические. Чтобы снова запросить адрес, нужно выполнить предыдущую команду на получение ip с указанием сетевого интерфейса eth0.



Все изменения, сделанные в консоли после перезагрузки, исчезнут. Чтобы их сохранить, приведем файл /etc/network/interfaces к следующему виду:
# mcedit /etc/network/interfaces

source /etc/network/interfaces.d/*
auto lo

iface lo inet loopback
auto eth0

iface eth0 inet dhcp
Установка шлюза по-умолчанию (default gateway)
Теперь разберемся со шлюзом по-умолчанию. В предыдущих примерах со статическим ip адресом и настройками по dhcp у нас не было необходимости указывать отдельно default gateway. Мы его устанавливали вместе с остальными настройками. Чтобы посмотреть установленный по-умолчанию шлюз в debian, можно воспользоваться следующей командой в консоли:

# ip r sh

default via 192.168.1.1 dev eth0

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.24

Это шлюз по-умолчанию (default gateway). Можно воспользоваться другими, более популярными и привычными командами:

# route

# netstat -nr

Если получите ошибки:

-bash: route: command not found

-bash: netstat: command not found
Значит у вас не установлен пакет net-tools. Установить его можно следующей командой.

# apt install net-tools

Если нам нужно сменить default gateway, то сначала надо удалить текущий шлюз, а потом назначить новый.

# route del default gw 192.168.1.1

# route add default gw 192.168.1.50

То же самое, только с помощью ip:

# ip route del default

# ip route add default via 192.168.1.50

Проверяем, что получилось:

# ip r sh

default via 192.168.1.50 dev eth0

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.24
Все получилось. Эта настройка будет действовать до перезагрузки. Чтобы ее сохранить, либо меняйте конфигурационный файл interfaces, либо, при необходимости, придумывайте что-то еще. 
Как указать DNS сервер
Для того, чтобы указать dns сервер, достаточно его записать в файл /etc/resolv.conf в следующем виде:

# mcedit /etc/resolv.conf

nameserver 192.168.1.1

nameserver 77.88.8.1

nameserver 8.8.8.8

nameserver 1.1.1.1

192.168.1.1

локальный dns сервер

77.88.8.1

публичный сервер Яндекса

8.8.8.8

публичный сервер Гугла

1.1.1.1

публичный сервер cloudflare

Если у вас стоит resolvconf, то в случае ненадобности, удалите его командой:

# apt-get remove resolvconf

После этого сервер надо перезагрузить и удалить сломавшуюся символьную ссылку /etc/resolv.conf
, а вместо нее создать файл с нужным содержанием, которое я привел выше.

Если же вам по какой-то причине необходима указанная выше программа, она у вас стоит и вы не хотите ее удалять, то адрес dns сервера необходимо указать в файле /etc/network/interfaces, добавив к параметрам интерфейса еще один:
dns-nameservers 192.168.1.1 77.88.8.1 8.8.8.8 1.1.1.1

Этот параметр нужно установить сразу после указания шлюза gateway. Несколько адресов разделяются пробелом.

Изменить hostname (имя хоста)
Во время установки debian вы указывали имя хоста. Посмотреть его текущее значение можно в консоли:

# hostname

debian
Это значение записано в файле /etc/hostname. Есть 2 способа изменить hostname в debian:

  1. Простой и быстрый с помощью консольной команды. Результат работает только до перезагрузки компьютера. Потом вернется старое имя.

  2. С помощью изменения конфигурационного файла результат сохраняется и после перезагрузки. Чтобы сразу применить изменение, потребуется выполнить системный скрипт.

Для первого способа достаточно в консоли ввести команду:

# hostname debian10

Теперь проверим, что получилось:

# hostname

debian10
Имя хоста изменилось, но в файле /etc/hostname по-прежнему указано прошлое значение. После перезагрузки hostname снова примет старое значение debian. Чтобы сделать постоянное изменение, необходимо ввести новое значение в файл вручную:
# mcedit /etc/hostname

debian10

Изменение вступит в силу после перезагрузки. Если воспользоваться командой:

# hostnamectl set-hostname debian10

то изменения применятся сразу же.

Tcpdump
Утилита tcpdump позволяет проверять заголовки пакетов TCP/IP и выводить одну строку для каждого из пакетов. Она будет делать это до тех пор, пока не нажать Ctrl + C.

Давайте рассмотрим одну строку из примера вывода:

20:58:26.765637 IP 10.0.0.50.80 > 10.0.0.1.53181: Flags [F.], seq 1, ack 2, win 453, options [nop,nop,TS val 3822939 ecr 249100129], length 0


Каждая строка включает:

  • Метка времени Unix (20: 58: 26.765637)

  • протокол (IP)

  • имя или IP-адрес исходного хоста и номер порта (10.0.0.50.80)

  • имя хоста или IP-адрес назначения и номер порта (10.0.0.1.53181)

  • Флаги TCP (Flags [F.]). Указывают на состояние соединения и могут содержать более одного значения:


    • o S — SYN. Первый шаг в установлении соединения

    • F — FIN. Прекращение соединения

    • — ACK. Пакет подтверждения принят успешно

    • P — PUSH. Указывает получателю обрабатывать пакеты вместо их буферизации

    • R — RST. Связь прервалась

  • Порядковый номер данных в пакете. (seq 1)

  • Номер подтверждения. (ack 2)

  • Размер окна (win 453). Количество байтов, доступных в приемном буфере. Далее следуют параметры TCP

  • Длина полезной нагрузки данных. (length 0)




Установка tcpdump



В дистрибутивах на основе Debian tcpdump можно установить с помощью команды APT:

# apt install tcpdump -y

Опции tcpdump



Запускать tcpdump нужно с правами root. Tcpdump включает в себя множество опций и фильтров. При запуске tcpdump без каких-либо параметров произойдет перехват всех пакетов, проходящих через интерфейс по умолчанию.

Вывести список доступных системе сетевых интерфейсов, в которых tcpdump может захватывать пакеты:


# tcpdump -D

или

# tcpdump --list-interfaces

1.eth0

2.nflog (Linux netfilter log (NFLOG) interface)

3.nfqueue (Linux netfilter queue (NFQUEUE) interface)

4.eth1

5.any (Pseudo-device that captures on all interfaces)

6.lo [Loopback]


Очень полезно для систем, в которых нет команды для вывода списка интерфейсов.

Для захвата пакетов, проходящих через определенный интерфейс, используйте -i с именем интерфейса. Если не указать имя, тогда tcpdump подберет первый обнаруженный сетевой интерфейс.


# tcpdump -i eth1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes

01:06:09.278817 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 1, length 64

01:06:09.279374 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 4761, seq 1, length 64

01:06:10.281142 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 2, length 64


  • -v увеличивает количество отображаемой информации о пакетах

  • -vv дает еще более подробную информацию


По умолчанию tcpdump преобразует IP-адреса в имена хостов, а также использует имена служб вместо номеров портов.

  • -n Если DNS не работает или вы не хотите, чтобы tcpdump выполнял поиск имени.

# tcpdump –n

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278, ack 204106815, win 37232, length 100

04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0

04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232, length 36

04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0

04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232, length 100

  • -c захватывает только набор строк, например, 5:

#tcpdump -c 5

04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278, ack 204106815, win 37232, length 100

04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0

04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232, length 36

04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0

04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232, length 100

5 packets captured



  • -tttt для использования более удобных временных меток (по умолчанию используются временные метки Unix)