Linux: bash спец. символы, man, переменные (> >> $ & # ~/$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
  • wait <pid> – если процесс запущен в background, то wait позволяет подождать завершение execution процесса, пример использования
  • Universal CheatSheet – cheat.sh


bash-3.2$ curl cheat.sh/curl


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

Linux: работа с текстом (fmt, sed, awk, tr, cut, cat/tac, tee, column, uniq, sort)

GREP в отдельной статье

fmt
  • примеры есть в cheat.sh
  • вариаций форматирования много

Форматирование данных на входе – к примеру по умолчанию fmt осуществит форматирование, которое приведет к лучшему чтению:

    • объединение слов в одну строку если слов мало в каждой строке
    • или наоборот, вместо одной длиной строки сделает несколько коротких
root@serv:~# cat >sw
Hello
world
and
not
world
root@serv:~# fmt sw
Hello world and not world

root@spr:~# cat >sw
Hello world and not world Hello world and not world Hello world and not world Hello world and not world Hello world and not world Hello world and not world
root@spr:~# fmt sw
Hello world and not world Hello world and not 
world Hello world and not world Hello world 
and not world Hello world and not world 
Hello world and not world


tr ; CUT
  • The cut utility cuts out selected portions of each line (as specified by list) from each file and writes them to the standard output
# Print a range of each line with a specific delimiter:
command | cut --delimiter="," --fields=1

# Print a specific character/field range of each line:
command | cut --characters|fields=1|1,10|1-10|1-|-10

Подмена всех пробелов (в том числе повторяющихся) на одну запятую с использованием tr и опции -s

 -s Squeeze multiple occurrences of the characters listed in the last operand (either string1 or string2) in the input into a single instance of the character.


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

Linux: user & group management

Короткий список команд для создания пользователя

Создание пользователя. В файле /etc/passwd  хранятся все пользователи (бекап в /etc/passwd-).
sudo useradd -m -s /bin/bash weril
sudo passwd weril
sudo login weril - тестово логинемся
sudo passwd -e weril - (expire) делаем пароль протухшим (после авторизации пользователя заставят поменять пароль)
# sudo passwd -l weril - (lock) блокируем пользователя
sudo vi /etc/ssh/sshd_config - добавляем в AllowUsers в sshd (AllowUsers <username>@*)
sudo /etc/init.d/sshd


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

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 bytes, 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) на основе количества принятых ответов.

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

Linux: ядро (kernel), процессы /proc в ОС и работа с ними (proc, ps, lsof, nice, kill, killall, top, lscpu, interrupts, smp irq affinity, isolcpus, taskset, cpuset/cset shield), утилизация процессора (user/system/idle/iowait/softirq)

  • kernel parameters /proc/cmdline (можно редактировать конфигом GRUB)
  • kernel parameters modification /etc/sysctl.conf
  • В Linux все рассматривается как файлы, включая устройства (/dev) и процессы (/proc)
  • Любые изменения в /proc директории немедленно применяются kernel
All changes to files in /proc/ are immediately recognized by the kernel.


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

RFC, IETF (о самих документах)

Есть даже RFC 1796, которая говорит, что не каждый RFC является стандартом!
https://tools.ietf.org/html/rfc1796
https://en.m.wikipedia.org/wiki/Request_for_Comments

Not all RFCs are standards.[20][21]Each RFC is assigned a designation with regard to status within the Internet standardization process. This status is one of the following: InformationalExperimentalBest Current PracticeStandards Track, or Historic.


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

Synstart – синхронизация времени запуска программ и утилит в Linux

synstart решает задачу синхронизации старта запуска программ за счет их предварительной планировки по времени (см. cron). Код простой на python.

В сравнении с at/atd погрешность запуска программ между демонами значительно ниже – вместо секундной погрешности в at/atd при использовании synstart получаем миллисекундную погрешность (возможно добиться вплоть до 10 микросекунд при тюнинге sleep на демонах).

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

Linux: перезагрузка/отключение системы (reboot, shutdown, halt, poweroff)

Отключение

Soft-отключение системы прямо сейчас.

shutdown now

Soft-отключение системы через 60 минут.

shutdown -h +60 "Shutting down in 60 minutes. Be a dear and log out before then."

Hard-отключение системы прямо сейчас.

halt
poweroff

Перезагрузка

Перезагрузка прямо сейчас. Команды reboot/shutdown перезагружают систему по разному.

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

Network security: сетевые атаки (kali, yersinia, arpspoof, dns2proxy, mitmproxy, sslsplit, aircrack, dnsmasq, hping3, dnsflood, sockstress)

Kali linux
  • Легко запускается в virtualbox/vmware
    • Скачать можно тут
    • kali/kali default username/password
  • Можно поставить и life образ на flash, например, используя rufus.
  • Примеры запуска DoS/DDoS атак с использованием hping3, dnsflood в отдельной статье DoS/DDoS
  • Образ для QEMU, пригодится для GNS3 (доступ через vnc для GUI, ssh для CLI, но нужно включать)
# on KALI
sudo systemctl start ssh # sudo service ssh start
sudo systemctl enable ssh

# on remote
ssh root@172.16.208.130
    • default password toor (-> root)
  • Если есть проблема в работе NetworkManager в Kali Linux (нет апплета, не применяются настройки, падает интерфейс и проч) – лучше всего его снести (застопить, в конфиге /etc/NetworkManager/NetworkManager.conf


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

Network/Security: NMS monitoring/observability/management/inventory решения (Zabbix, Cacti, Nagios, MRTG, NocTools; Orange, Cisco PRIME, Arista CVP, Netcool, BMC Patrol/TrueSight, Infovista), протоколы (snmp, netflow), NMS, будущее (rpc, nats, brpc, yang/restconf/netconf); Cisco: Stealthwatch, CTA, ETA; мониторинг производительности системы (sysstat); XDR; SIEM; NTA, NAD; BGP BMP; HADAL

  • Linux Performance Observability Tools: strace ltrace ss nstat gethostlatency sar proc dmesg dstat opensnoop laof fatrace filelife pcstat execsnoop mpstat profile runqlen offcputime softirqs turbostat show boost rmdsr perf fteace LTTng BCC bpftrace ext4dist ext4slower top atop ps pidstat vmstat slabtop free tiptop perf numastat hardirqs criticalstat nicstat netstat ip lldptool snmpget ethtool tcplife tcpretrans udpconnect tcpdump perf tiptop mdflush iostat biosnoop biolatency biotop blktrace swapon

  • Мониторинг призван уменьшать значение времени исправления проблем (MTTR) или даже предотвращать возникновение аварийных ситуаций (подробнее ниже)
  • Задача классического админа, решаемая мониторингом – сделать алерты в системе мониторинга на уменьшение количества краски в принтерах
  • Существует разная глубина взросления «мониоринга» – реакция по негативному фидбеку/инцидента от пользователя, реакция на события мониторинга еще до обращения клиента, автоматизация на события мониторинга (напр.


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