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

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

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

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

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

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


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

Linux: Docker

Basics
  • Docker уже есть даже на сетевых устройствах, таких как Cisco Catalyst, Cisco ASR. В контейнере можно запустить много всего – например, Minecraft 🙂 Если серьезно – потенциально такой подход позволяет реализовывать CDN.
As an example, why not host your computer game servers directly on the switch instead of connecting to any dedicated server far away – it’s closer locally.


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

Linux: работа с сетью (маршрутизация, arp, performance, etc)

Общее
  • Общая концепция – “net-tools deprecated, use iproute2” из-за ряда проблем с net-tools. Из крутого iproute2 позволяет с помощью netns делать в Linux полноценные vrf.


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

VRF: базовая настройка в Linux и на сетевых устройствах Cisco, Huawei

Linux
  • База на xgu
  • При настройке VRF в linux свой интерфейс в vrf не пингуется – это ок. Интерфейс в другом vrf при этом будет отвечать нашему. Можно интерфейсы соединить кабелем напрямую (в одной подсети, но разных vrf) или через промежуточный роутер (в разных подсетях) – без разницы.


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

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

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

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

Шейпер (по факту полсер) на mellanox сделан по baud rate, а не througput. Потери начинаются примерно ровно в 50% baud rate (как и настроено на девайсе), независимо от фактического размера payload.

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

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

BASIC

ip link или ifconfig -a – показывает все интерфейсы.

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

iperf

Official page

Безусловно средство не идеально и местами глючит (особенно мобильная версия), но есть мифы о совсем “дикой плохости” iperf от разных вендоров (привет, Ixia и прочие), немного развенчаю:

  • тест можно запустить более чем на 20 минут (проверял два часа с нагрузкой 700мбит – полет успешный)
  • и на клиенте и на сервере (без разницы будет reverse тест или прямой) требуются относительно небольшие ресурсы CPU ~ 10-30% CPU (intel i3/7) на гигабит однопоточного TCP трафика (проверял)
  • у iperf безусловно есть погрешность т.к.


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

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

word

-w/–word-regexp – удобная опция, ищем конкретное слово. Очень удобно, если есть уникальные слова в каждой строке (напр. ID).

 -w, --word-regexp
The expression is searched for as a word (as if surrounded by
`[[:<:]]' and `[[:>:]]'; see re_format(7)).

$ cat sw
1 -- xxx
2 -- yyy
3 -- zzz
4 -- kkk
5 -- zzz

$ cat sw | grep -w 2
2 -- yyy

$ cat sw | grep -w yyy
2 -- yyy

or/and

OR – ищем любой из двух.

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

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

Пошаговый гайд, аналог статьи про TFTP

0) Отключаем SELinux если раньше это не сделали и перезагружаем сервер (если уверены что он нам не нужен или не умеем с ним работать). Если без отключения для заливки файлов должны помочь строки “setsebool -P ftp_home_dir on” и “setsebool -P allow_ftpd_full_access on”

sudo vi /etc/selinux/config
SELINUX=disabled
1) Устанавливаем сервер, кладем в папку по умолчанию /var/ftp необходимые файлы
sudo yum -y install vsftpd
cp test_file /var/ftp/
2) Добавляем сервис FTP как разрешенный в файрволл и перезагружаем его (мягко для применения правил без разрыва существующих коннектов)
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
3) Запускаем FTP сервис, смотрим его состояние, добавляем сервис в автозагрузку
sudo systemctl start vsftpd
sudo systemctl status vsftpd
sudo systemctl enable vsftpd
4) Проверяем работу сервиса через обычный браузер
ftp://192.168.1.22/

Удаление

sudo firewall-cmd --permanent --remove-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo yum -y remove vsftpd


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