Архив рубрики: Linux

[Linux] Разрешаем vpn pptp через nat для локальной сети

Как оказывается, просто включить NAT недостаточно. Более того, недостаточно даже подключить helper через sysctl:

net.netfilter.nf_conntrack_helper=1

В сети пишут, что нужно подгрузить модули (некоторые ещё уточняют, что это нужно было до версии 8.Х включитель, а с 9-ой достаточно просто подключить helper через sysctl, но как оказывается, недостаточно)

Читать далее

Nginx: listen socket

Ниже будут выдержки цитат из рассылки nginx, которые объясняют простые вещи при открытии/переоткрытии сокета не только в случае nginx’a, а и некоторых общих случаях.

Читать далее

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/

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.

Установка зависимостей для dpkg-пакета

Нашёл на просторах сети. Оставлю как есть:

dpkg doesn’not have dependency support. You have two choises;

1- use gdebi with

$ sudo apt-get install gdebi-core

gdebi install deb package and their dependency.

$ sudo gdebi package.deb

2- After sudo dpkg -i *.deb you should run,

$ sudo apt-get -f install

[debian] subprocess installed post-installation script returned error exit status 127

Она появляется когда post-script не смог отработать. Что бы избавиться от неё, нужно посмотреть внимательно на сам скрипт:

/var/lib/dpkg/info/[package_name].postinst

Что с ним делать — решать вам. Можно просто почистить и оставить там exit 0, либо отдебажить и понять на чём он валиться.

Гарантированный запуск единичной копии скрипта

Принцип ее работы прост: для каждого процесса она создает файл и вешает на него lock. Как только процесс завершается, лок пропадает. Лок также пропадает в случае внезапной смерти процесса, и нет необходимости проверять pid на существование или делать другие телодвижения. Если процесс запускается повторно, а лок-файл еще не освободился, работа скрипта прерывается и выдается сообщение в STDERR. Читать далее