- Основы Linux. Как управлять сетью
- Traceroute
- Ifconfig
- Контроль состояния сети
- Команды для работы с сетью в Linux
- [в закладки] Шпаргалка системного администратора по сетевым инструментам Linux
- ▍Примеры
- Traceroute
- ▍Пример
- Telnet
- ▍Пример
- Netstat
- ▍Примеры
- Nmcli
- ▍Примеры
- Маршрутизация
- ▍Примеры
- Tcpdump и Wireshark
- ▍Примеры
- Iptables
- ▍Примеры
- Nslookup
- ▍Примеры
- Поиск неполадок
- ▍Примеры
- Итоги
Основы Linux. Как управлять сетью
Привет, друг! Я уже неоднократно говорил, но продолжу повторять, что любой хакер или специалист по информационной безопасности (называй как хочешь) должен, просто обязан знать Linux. Причин тому миллион, и в очередной раз останавливаться на этом не вижу смысла. А раз мы определились, что Linux важен, давай продолжим изучать Linux. В прошлый раз мы разобрались как работать с файлами и каталогами, если ты пропусти этот материал, он ЗДЕСЬ. А теперь я предлагаю разобраться как в Linux работать с сетями. В этой статье будет только практическая часть вопроса, если, вдруг у тебя присутствует пробел в теоретических знаниях основ работы сетей, то ознакомься с нашими материалами:
Что бы эта статья была полезна максимальному количеству людей, я постараюсь дать обобщённую информацию о наиболее необходимых сетевых утилитах и способах их применения т.е. я не буду расписывать все возможные способы применения той или иной утилиты, а дам наиболее необходимые, на мой взгляд, функции, которые наиболее часто могут применяться на практике.
Перед тем как работать с сетью, иногда (а лучше всегда) необходимо узнать какая сетевая карта установлена в системе, например решать вопросы совместимости довольно трудно не зная модель сетевой карты. Проще всего использовать для этого утилиту lshw. Установим её и запустим:
Если запустить её без дополнительных параметров, она выдаст подробную информацию о всех компонентах и устройствах компьютера.
В результате мы видим довольно подробную информацию об установленных сетевых адаптерах: производитель, модель, способ подключения, mac адрес, конфигурационные настройки и т.д.
Суть работы этой утилиты заключается в отправке ICMP пакетов удалённому серверу, а после возврата пакета, ping подсчитывает время которое понадобилось ему, чтобы дойти до сервера и вернуться.
В результате работы утилиты ping мы видим что:
- Мы можем установить соединение с сервером
- DNS работает корректно (имя запрашиваемого сервера было успешно преобразовано в ip)
- Соединение устойчиво, об этом говорит отсутствие пропусков в параметре icmp_seq
- Значение time говорит нам сколько времени понадобилось пакету чтобы добраться до хоста и обратно (именно этот параметр часто называют скоростью пинга)
Пару слов о возможных неисправностях: если появилась ошибка в стиле «сеть недоступна», то можно попробовать определить на каком этапе возникает проблема. Для начала «пропингуй» ip адрес роутера, если ответа нет, значит проблема у тебя (обрыв кабеля, настройки системы, параметры адаптера и т.д.) Если роутер отозвался, можно послать запрос серверу провайдера (как узнать ip провайдера будет ниже), если ответ не получен, значит проблема в сетях провайдера. Если сервер провайдера отвечает, можно попробовать послать запрос сайту по IP, если ответ придет, значит некорректно работает DNS. Если всё это не помогло, то провести более детальный анализ можно с помощью утилиты traceroute.
Traceroute
Каждый отправленный нами пакет, прежде чем достигнуть своей цели вынужден пройти некоторое количество узлов. При этом каждый пакет имеет, так называемое, время жизни — это количество узлов которое может пройти пакет перед тем как будет уничтожен. Это значение записывается в заголовке пакета, и уменьшается на 1 при прохождении каждого узла, если значение достигает 0 — пакет уничтожается, а отправитель получает сообщение что время превышено. Утилита traceroute отправляет на случайный порт по три UDP пакета со значением времени жизни сначала 1, потом 2, потом 3 и так пока не достигнет цели, при этом каждый раз замеряется время прохождения пакета. Трассировка считается оконченной когда traceroute от целевого узла получает сообщение что порт недоступен.
И очень часто в ответ ты увидишь звёздочки:
Это не значит, что всё пропало, это значит, что фаервол на сервере заблокировал все лишние пакеты, и соответственно трассировка UDP пакетами не работает, но сработает трассировка ICMP пакетами, чтобы её выполнить надо добавить параметр -I:
Теперь мы видим, что наши пакеты прошли через 8 узлов, перед тем как достигнуть цели. Также мы видим время которое понадобилось каждому из трёх отправленных пакетов. Если бы на каком-то этапе возникла ошибка, мы бы увидели соответствующее сообщение.
Также в четвертой строке мы можем увидеть ip адрес нашего провайдера, а если сделать ещё парочку трассировок на другие адреса:
То можно придти к выводу, что провайдер осуществляет доступ к глобальной сети из сети 81.23.23.0/24, а локальная сеть провайдера к которой непосредственно подключен наш роутер не очень охотно отвечает на сервисные запросы.
Ifconfig
Чтобы получить общую информацию о сетевых интрефейсах, проще всего использовать утилиту:
После ввода этой команды мы увидим на экране достаточно большое количество технической информации, распределенной на группы в зависимости от типа сетевого интерфейса:
- eth0 — проводное соединение;
- wlan0 — беспроводное соединение;
- lo — петлевой интерфейс т.е. интерфейс с обратной связью (используется компьютером для «общения с самим собой», он нужен, в основном, для диагностики, а также для подключения к серверам работающим на локальном компьютере.
В зависимости от используемого дистрибутива название сетевых интерфейсов может отличаться, но смысл от этого не меняется
Что касается самой полученной информации, то из всего этого набора непонятных слов и символов стоит выделить наиболее необходимые сведения:
- RUNNING — означает, что интерфейс активен и пропускает трафик;
- BROADCAST — широковещательное соединение;
- inet — ip адрес протокола IPv4;
- netmask — маска подсети, это информация о том, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети;
- broadcast — диапазон широковещательного соединения broadcast;
- inet6 — ip адрес протокола IPv6;
- ether — уникальный адрес сетевой карты;
- RX/TX — активность сетевого интерфейса.
Помимо ifconfig общую информацию о сетевых интерфейсах можно получить использовав утилиту ip (более новая и в некоторых моментах более функциональная, чем ifconfig):
Чтобы получить более подробную информацию о сетевых интерфейсах, необходимо выполнить команду (сведения аналогичны полученным от ifconfig) :
Иногда возникает необходимость увидеть маршруты в таблице маршрутизации, для этого также используется утилита ip:
Здесь мы видим ip нашего маршрутизатора, ip нашего компьютера и в какой подсети он находится.
Чтобы отключить какой-либо интерфейс, вводим команду:
Если возникла необходимость сменить ip адрес, сделать это можно использовав утилиту ifconfig, указав какому интерфейсу, какой ip мы хотим назначить;
Также можно задать не только ip, но и подсеть и широковещательный адрес (можно задавать каждый параметр по отдельности):
По такому же принципу можно изменить MAC адрес нашей сетевой карты, что иногда бывает полезно с точки зрения «заметания следов», (например если ты решил похулиганить в общественной wi-fi сети). Нужно предварительно отключить сетевой интерфейс (выше показывал как это сделать) и задать новый mac, предварительно указав какому именно интерфейсу мы меняем mac-адрес:
Контроль состояния сети
Чтобы контролировать состояние твоей сети, существует масса сторонних приложений (например NetHogs), но раз уж эта статья называется «основы», то давай рассматривать возможности самой системы, а в самой системе для этого существует утилита netstat.
Для начала используем флаг -i, чтобы увидеть состояние наших сетевых интерфейсов, с данные счётчиков трафика:
В результате мы видим данные по каждому интерфейсу. Где RX — это общее количество пакетов полученных интерфейсом, а TX — это количество пакетов пропущенных через интерфейс с момента текущей активации. RX-ERR и TX-ERR — это количество ошибок, есть разные мнения о допустимом количество ошибок, но, как правило, если их меньше 5% от общего количества — это нормально, если больше значит, в большинстве случаев, есть проблемы с сетевой картой или с самим соединением.
Если ввести команду netstat без каких-либо дополнительных параметров, то мы увидим список процессов для которых установлены сетевые соединения, с адресом, портом, типом соединения, службой и количеством запросов в очереди:
Для того чтобы определить какие именно процессы какие порты слушают и по какому протоколу, нужно использовать параметры lpn:
Чтобы получить информацию о таблице маршрутизации, необходимо использовать параметр r:
А на этом пожалуй всё. В моём понимании перечисленных утилит вполне достаточно начинающему линуксоиду для комфортной работы с сетью, а если какие-то важные утилиты я пропустил значит либо я о них забыл, либо они выходят за моё понимание основ работы с сетью. Не забывай возвращаться, ведь нужно изучить ещё очень много)))
Источник
Команды для работы с сетью в Linux
– просмотр сетный информации
– просмотр информации беспроводных устройств
sudo iwlist scan
– исследовать беспроводные сети
sudo /etc/init.d/networking restart
– файл для прирученный настройки сети
— представить конфигурацию сетевого интерфейса eth0
— активировать (поднять) интерфейс eth0
— деактивировать (спустить) интерфейс eth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0
— выставить интерфейсу eth0 ip-адрес и маску подсети
ifconfig eth0 promisc
— перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)
ifconfig eth0 -promisc
— выключить promiscuous-режим на интерфейсе eth0
— активировать интерфейс eth0 в dhcp-режиме.
— вывести локальную матрицу маршрутизации
— вывести локальную таблицу маршрутизации
route add -net 0/0 gw IP_Gateway
— подать ip-адрес шлюза по умолчанию (default gateway)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
— приплюсовать статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
route del 0/0 gw IP_gateway
— выслать ip-адрес шлюза по умолчанию (default gateway)
echo «1» > /proc/sys/net/ipv4/ip_forward
— позволить пересылку пакетов (forwarding)
— отобразить имя компьютера
— разрешить имя www.linuxguide.it хоста в ip-адрес и и наоборот host 62.149.140.85
— отобразить состояние всех интерфейсов
— отобразить статус и тип слияния для интерфейса eth0
— отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и нынешные режимы соединения
— отображает все установленные сетевые соединения по протоколам TCP и UDP без позволения имён в ip-адреса и PID’ы и имена процессов, обеспечивающих эти соединения
— отображает все сетные соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, слушающих порты
tcpdump tcp port 80
— показать весь трафик на TCP-порт 80 (обычно — HTTP)
— просканировать эфир на объект, доступности беспроводных точек доступа
— показать конфигурацию беспроводного сетевого интерфейса (общая граница между двумя функциональными объектами, требования к которой определяются стандартом; совокупность средств, методов и правил взаимодействия (управления, контроля и т.д.) между) eth1
Источник
[в закладки] Шпаргалка системного администратора по сетевым инструментам Linux
В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.
В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением (fully qualified domain name, полное доменное имя). Встретив его, замените его, в зависимости от обстоятельств, на адрес интересующего вас сайта или сервера, например, на нечто вроде server-name.company.com .
Утилита ping , как можно судить по её названию, используется для проверки связи между узлами сети, между компьютером, на котором её запускают, и другой системой. Эта утилита использует протокол ICMP, отправляя эхо-запросы, на которые отвечает удалённая система, получающая их. Использование ping , кроме того — это хороший способ проверки связности сети, проводимой в качестве первого шага диагностики сети при наличии неполадок. Команду ping можно использовать с адресами IPv4 и IPv6. Тут можно почитать подробности об IP-адресах и о работе с ними.
▍Примеры
Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.
Использование ping для выяснения IP-адреса сайта по его имени
Traceroute
Traceroute — это приятная утилита, которая позволяет исследовать маршруты передачи данных между компьютерами. В то время как команда ping направлена на то, чтобы выяснить, можно ли установить связь между двумя узлами сети, traceroute даёт сведения об IP-адресах маршрутизаторов, через которые проходят данные от вашей системы до конечной, например — до веб-сайта или сервера. Команда traceroute обычно применяется на втором шаге диагностики сети, после команды ping .
▍Пример
Telnet
Утилита telnet позволяет связаться с удалённым компьютером по протоколу Telnet и взаимодействовать с ним, используя соответствующие команды.
▍Пример
Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:
Netstat
Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.
▍Примеры
Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:
Следующая команда выводит сведения обо всех портах. Для того чтобы ограничиться только TCP-портами, нужно воспользоваться ключом -at , для того, чтобы получить данные об UDP-портах, используйте ключ -au .
Для просмотра таблиц маршрутизации воспользуйтесь такой командой:
Вот как выглядит результат выполнения этой команды.
Сведения о таблице маршрутизации
Вот вариант этой команды, выводящий статистику по протоколам:
Статистика по протоколам
Следующий вариант вызова netstat позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:
Данные об отправленных и полученных пакетах
Nmcli
Утилита nmcli отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager и модифицировать сетевые параметры различных устройств.
▍Примеры
Вот как с помощью nmcli вывести список сетевых интерфейсов:
Так можно вывести информацию по конкретному интерфейсу:
Следующий вариант вызова команды позволяет проверить подключение устройства к сети:
Примеры использования nmcli
Эта команда позволяет отключить заданный интерфейс:
А эта позволяет включить интерфейс:
Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:
Маршрутизация
Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.
▍Примеры
Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:
Маршруты, настроенные для интерфейсов
Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:
Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.
С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:
Вот примеры использования команды route .
Использование команды route
Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:
Взглянем на примеры её использования.
Данные, полученные с помощью команды ip neighbor
Вот сведения о команде ip neigh
Сведения о команде ip neigh
Команда arp (ARP — это сокращение от Address Resolution Protocol, протокол определения адреса) похожа на ip neighbor . Утилита arp выводит данные о соответствии IP-адресов MAC -адресам. Вот как её использовать:
Вот пример её вызова.
Вызов команды arp
Tcpdump и Wireshark
Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например, tcpdump , wireshark , tshark , и другие. Они используются для захвата сетевого трафика в передаваемых системой пакетах или в пакетах, получаемых ей. Это делает их весьма ценным инструментом администратора, помогающим в деле выяснения причин различных сетевых неполадок. Тем, кто предпочитает командную строку всем остальным способам общения с компьютерами, понравится tcpdump . Тем же, кто любит графические интерфейсы, можно порекомендовать wireshark — отличный инструмент для захвата и анализа пакетов. Утилита tcpdump — это встроенное в Linux средство для захвата сетевого трафика. Его можно использовать для захвата и вывода трафика с фильтрацией по портам, протоколам, и по другим признакам.
▍Примеры
Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:
Пакеты можно сохранять в файл, воспользовавшись флагом -w и задав имя файла:
Вот пример использования tcpdump .
Использование tcpdump
Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:
Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:
Вот пример использования tcpdump для захвата пакетов для заданного номера порта, например, это может быть порт 53, 80, 8080, и так далее:
Здесь показано, как с помощью tcpdump захватывать пакеты заданного протокола, вроде TCP, UDP или других:
Iptables
Утилита iptables похожа на файрвол, она поддерживает фильтрацию пакетов, что позволяет управлять трафиком, пропуская или блокируя его. Диапазон возможностей этой утилиты огромен. Рассмотрим несколько наиболее распространённых вариантов её использования.
▍Примеры
Следующая команда позволяет вывести все существующие правила iptables :
Эта команда удаляет все существующие правила:
Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:
Следующие команды разрешают loopback-доступ к системе:
Nslookup
Инструмент nslookup используется для получения сведений о назначении IP-адресов сетевым ресурсам. Его можно использовать и для получения сведений с DNS-серверов, например таких, как все DNS-записи для некоего веб-сайта (ниже мы рассмотрим соответствующий пример). На nslookup похожа утилита dig (Domain Information Groper).
▍Примеры
Следующая команда выводит IP-адреса вашего DNS-сервера в поле Server, и, ниже, выдаёт IP-адрес искомого сайта:
Такая команда показывает все доступные записи для заданного веб-сайта или домена:
Поиск неполадок
Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.
▍Примеры
Итоги
В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.
Уважаемые читатели! Чем вы пользуетесь для администрирования сетей и для выяснения причин сетевых неполадок?
Источник