Архив автора: skeletor

eBPF: трассируем приложения

The Berkeley Packet Filter (BPF) started (article 1992) as a special-purpose virtual machine (register based filter evaluator) for filtering network packets, best known for its use in tcpdump. It is documented in the kernel tree, in the first part of: Documentation/networking/filter.txt

The extended BPF (eBPF) variant has become a universal in-kernel virtual machine, that has hooks all over the kernel. The eBPF instruction set is quite different, see description in section “BPF kernel internals” of Documentation/networking/filter.txt or look at this presentation by Alexei.

eBPF enables programmers to write code which gets executed in kernel space in a more secure and restricted environment. Yet this environment enables them to create tools which otherwise would require writing a new kernel module.

Ссылки на материалы:

https://eax.me/bcc-ebpf/
https://habr.com/ru/post/435142/
https://habr.com/ru/company/otus/blog/436528/

[exim] DKIM/SPF: white list

Определяем переменные:

domainlist spf_white_list = domain1.com : domain2.com
domainlist dkim_white_list = other1.com : other2.com

Описываем сам white list для SPF (ОБЯЗАТЕЛЬНО ПЕРЕД ПРОВЕРКОЙ SPF):

acl_check_data:
...
# SPF whitelist
accept sender_domains = +spf_white_list
logwrite = SPF: domain <$sender_address_domain> is whitelisted

Описываем сам white list для DKIM (ОБЯЗАТЕЛЬНО ПЕРЕД ПРОВЕРКОЙ DKIM):

acl_check_dkim:
...
accept sender_domains = +dkim_white_list
logwrite = DKIM: domain <$sender_address_domain> is whitelisted

Ищем утечки памяти

Будем искать через mdb. Что бы иметь возможность это сделать, нужно что бы приложение было запущено в режиме debug. Если в самом приложении отсутствует такая возможность, тогда нужно включить его в окружении и потом запустить приложение:

$ export LD_PRELOAD=libumem.so
$ export UMEM_DEBUG=default
$ export UMEM_LOGGING=transaction
Читать далее

cron, run-parts не выполняют скрипты с расширением

Причём не только с расширением «.sh», а вообще с любым. Это поведение по умолчанию и при этом задокументировано! Вот выдержка из man’a:

If neither the —lsbsysinit option nor the —regex option is given then the names must consist entirely of upper and lower case letters, digits, underscores, and hyphens.

[Solaris] Драйвер есть, а NIC не видна

Взяли новый сервер Dell R840 и с ней шла карточка Broadcom 57416 2 Port 10Gb Base-T. Как видно из статьи, сетевая автоматически не опозналась, а значит гуглим на предмет необходимого драйвера. Им оказался bnxt (согласно FreeBSD). Учитывая, что имена драйверов почти в 99% совпадают с FreeBSD было решено довериться им и проверить.

Читать далее

Solaris alias src L2/L3

В Solaris большое значение имеет то, на каком уровне модели OSI используется объект: если бы создан отдельный интерфейс (L2) и на него назначены IP алиасы или просто назначены IP алиасы на существующие интерфейсы.

Читать далее

Parrot Security OS

Parrot Security OS (или ParrotSec) — дистрибутив Linux, основан на Debian с упором на компьютерную безопасность. Предназначен для тестирования системы на проникновение, оценки уязвимостей и ликвидации их последствий, компьютерной криминалистики и анонимного просмотра веб-страниц. Разработан командой Frozenbox.

Официальный сайт — https://www.parrotsec.org

REMnux: A Linux Toolkit for Reverse-Engineering and Analyzing Malware

REMnux® is a free Linux toolkit for assisting malware analysts with reverse-engineering malicious software. It strives to make it easier for forensic investigators and incident responders to start using the variety of freely-available tools that can examine malware, yet might be difficult to locate or set up.

https://remnux.org

Рассылка писем через sendmail в Solaris

Появилась задача быстро поднять почтовый сервер с минимальными телодвижениями. Поскольку уже стоял Sendmail, то решили использовать его.

1. Указываем нужный домен для отправки:

В файле /etc/mail/sendmail.cf вносим домен для отправки:

# change sender domain
Djdomain.com
Dwdomain
Dkdomain.com

Читать далее

PG_CHAMELEON: replication from mysql to postgresql

pg_chameleon is a MySQL to PostgreSQL replica system written in Python 3. The tool can connect to the mysql replication protocol and replicate the data changes in PostgreSQL. Whether the user needs to setup a permanent replica between MySQL and PostgreSQL or perform an engine migration, pg_chamaleon is the perfect tool for the job.