Файл: Задачи Сконфигурировать сетевой интерфейс с помощью команды ip.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.02.2024
Просмотров: 12
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Сетевые настройки на сервере Debian
В ходе выполнения лабораторной работы все этапы подкрепляются скриншотами.
Задачи:
-
Сконфигурировать сетевой интерфейс с помощью команды IP
Указать ip адрес 192.168.14.x
Маска 255.255.0.0
Шлюз 192.168.249.206
DNS:192.168.251.1
-
Проверить наличие интернета -
Выполнить nslookup ya.ru -
Сказать преподавателю IP адрес
-
Сконфигурировать сетевой интерфейс с помощью GUI
Указать ip адрес 192.168.x.x
Маска 255.255.0.0
Шлюз 192.168.249.201
DNS:8.8.8.8
-
Проверить наличие интернета -
Выполнить nslookup ya.ru -
Выставить динамическое получение ip адреса
-
Изменить имя хоста
-
Воспользоваться утилитой tcpdump.-
В одном терминале запустить прослушивание пакетов, в другом запустить команду ping отловить:-
Все пакеты протокола icmp -
Все пакеты, исходящие на сервера ya.ru
-
-
-
Изучить возможности команды 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. Здесь по аналогии с предыдущими настройками можно пойди двумя путями:
-
Получить ip адрес по dhcp в консоли с помощью программы dhclient, который будет работать до перезагрузки. -
Отредактировать файл конфигурации сетевых интерфейсов.
Смотрим снова на текущую конфигурацию сети:
# 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:
-
Простой и быстрый с помощью консольной команды. Результат работает только до перезагрузки компьютера. Потом вернется старое имя. -
С помощью изменения конфигурационного файла результат сохраняется и после перезагрузки. Чтобы сразу применить изменение, потребуется выполнить системный скрипт.
Для первого способа достаточно в консоли ввести команду:
# 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)