Network/Linux: Shaping, Policing, Impairment, Traffic Control. Ограничение полосы пропускания (Linux: tc, wondershaper; Network: Cisco, Mellanox), внесение задержек и потерь в сетевой трафик

Влияние потери и задержек на Throughput подробно описано в отдельной статье.

Пример кейсов использования impairment:

    • эмуляция гео-распределенной сети
    • эмуляция wireless/satellite/mobile
    • приближение к real world
    • тестирование edge case сценариев

При этом в сетевом тестировании с impairment нужно обращаться “аккуратно”.

EANTC Carsten Rossenhoevel
The benchmarking methodology could be complemented with synthetic loss/delay, but this is out of scope of this draft ((netsecopen)). 


Читать дальше

NIC, Linux: работа NIC, работа с сетевыми интерфейсами (ifconfig, ip, ethtool, interfaces – lspci network, lshw network, RSS), smart NIC

BASIC
  • COMPARING NET-TOOLS VS. IPROUTE PACKAGE COMMANDS
  • veth – virtual eth
  • nic в VM имеют имена типа ens32 как попытка избежать конфликта с физическими адаптерами
  • В новом linux kernel 6.7. Добавлен новый тип виртуальных сетевых устройств “netkit”, логика передачи данных в которых задаётся при помощи BPF-программы.


Читать дальше

ICMP: ping/hping, tracert/traceroute

ICMP NOTES

  • ICMP types, а еще лучше описаны все на сайте IANA
    • 0 – echo reply
    • 8 – echo (PING) request
    • 3 – unreahable (net/host/port/etc)
serv:~# netstat -us
IcmpMsg:
InType0: 10144
InType3: 2514
InType8: 540567
OutType0: 540567
OutType3: 2472
OutType8: 10224
<output omitted>
  • обычно блокируются все типы кроме 0 и 8-го, особенно это касается 
    • redirect – redirection, части используется в атаках
    • unreachable типа 3
Пример
0 Net Unreachable [RFC792]
1 Host Unreachable [RFC792]
2 Protocol Unreachable [RFC792]
3 Port Unreachable
PING

Параметры по умолчанию

  • Huawei: не 32 байта, TTL 255, отправляется 4 пакета
  • Windows: 32 bytes, TTL 64 для внешних пакетов и 128 для 127.0.0.1, отправляется 4 пакета
  • Unix: 64 bytes, TTL 64, отправляется анлим пакетов

Ping count и результат вида 1 (success)/0 (fail) на основе количества принятых ответов.

Читать дальше

iperf

Official page

  • (iperf/ntttcp) Microsoft не рукомендует использование iperf3 на Windows в пользу использования ntttcp (в первую очередь)/ctstraffic – iperf3 оффициально на винде не поддерживается (в отличии от второй версии), он обычно использует прослойку в виде cygwin и нестандартные вызовы сетевого стека – первое может накладывать задержку, второе не эмулирует реальные приложения.


Читать дальше

Linux: работа с утилитой grep (egrep, zgrep, rgrep, etc)

  • У особо душных зачастую вызывает недоумение – зачем открывать через cat файл, который потом передается в grep. Отвечаю – часто ты открываешь сначала файл чтобы посмотреть в целом что там есть, а уже после первого просмотра передаешь в grep. У многих такой паттерн вошел в привычку – вот пример обучения по Linux LPIC-1 🙂 препод максимально опытный админстратор Linux

У grep 1001 alias, вот список из man.

Читать дальше

FTP, поднимаем FTP сервер на CentOS 7

FTP история появления из телеграм канала Network quiz
✍️ Разбор квиза: NQ Протокол FTP
Вопрос: Почему протокол FTP использует отдельно соединения для управления и передачи данных?
Объяснение от автора вопроса Surgeon и дополнение от Sergey Masharov (@Masharov): Протокол был разработан почти 53 года назад, в 1971 году.


Читать дальше

Linux: работа с числами (bc, dc, expr)

http://www.basicallytech.com/blog/?/archives/23-command-line-calculations-using-bc.html  – примеры расчета простых выражений с помощью bc.

expr и let – базовые целочисленные калькуляторы. Поддерживают операции сложения/деления/умножения/вычитания.

EXPR
$ expr 6 + 2
8

$ expr 6 - 2
4

$ expr 6 \* 2
12

$ expr 6 / 2
3

$ expr 6 / 5
1

LET
let "b = $a * 2"
let "b = $a - 2"

bc (basic calculator) — интерактивный интерпретатор Си-подобного языка, позволяет выполнять вычисления с произвольно заданной точностью.

Читать дальше

Linux: bash спец. символы и переменные (> >> $ & # ~/$HOME $USER \ | /n \t ^M $? * ; ()), redirect stdout/stderr, ALIAS, bashrc, profile; программирование в bash (полезные скрипты, получение опций в скриптах, функции, условия, циклы, case, массивы)

  • Узнать какой SHELL
~ echo $SHELL
/bin/bash

bash-3.2$ echo $SHELL # MACOS
/bin/zsh
  • https://www.gnu.org/software/bash/manual/ – manual по bash
  • Universal CheatSheet – cheat.sh


bash-3.2$ curl cheat.sh/curl
cheat.sheets:curl
# curl
# Command-line tool for transferring data with URL syntax

# Process a single GET request, and show its output on stdout.


Читать дальше

Linux: использование yum в CentOS (обновление, установка, удаление приложений)

  • Аналог статьи про Ubuntu, Gentoo
  • Поиск драйверов для ядра (напр. bnx2)
  • CentOS работает с .rpm пакетами (так же как и RHEL, Fedora, Suse, Mandriva).
  • Вот тут есть очень хорошая шапаргалка. Ниже только самое используемое, остальное проще взять оттуда.

Обновление всех приложений (сразу и обновляем данные из репозиториев о пакетах и ставим эти пакеты) и ядра системы

sudo yum update

Так же может понадобиться добавление репозитория epel (оффициальный репо fedora).

Читать дальше

Network: работа с pcap – сбор и анализ (Wireshark/tshark, tcpdump, packetdump, capinfos), редактирование (hex editor, tcprewrite, bittwiste, editcap, mergecap, wireedit), воспроизведение (tcpreplay, bittwist), анонимизация, комплексные продукты (moloch, observer)

СБОР и АНАЛИЗ

Разное
  • на практике чащк всего tcpdump используется для съема, wireshark для анализа, scapy для редактирования и создания с нуля, tcpreplay для stateless проигрывания, но в статье описано много разных инструментов, включая альтернативные
  • курс “Wireshark: Packet Analysis and Ethical Hacking: Core Skills” на GNS3.


Читать дальше