Loess.ru

having fun

Wireguard VPN added to 5.6 kernel

https://www.opennet.ru/opennews/art.shtml?num=52636

Представлен знаковый выпуск VPN WireGuard 1.0.0, который отметил собой поставку компонентов WireGuard в основном составе ядра Linux 5.6 и стабилизацию разработки. Включённый в состав ядра Linux код прошёл дополнительный аудит безопасности, выполненный независимой фирмой, специализирующейся на подобных проверках. Аудит не выявил каких-либо проблем.

Напомним, что VPN WireGuard реализован на основе современных методов шифрования, обеспечивает очень высокую производительность, прост в использовании, лишён усложнений и хорошо зарекомендовал себя в ряде крупных внедрений, обрабатывающих большие объёмы трафика. Проект развивается с 2015 года, прошёл аудит и формальную верификацию применяемых методов шифрования. Поддержка WireGuard уже интегрирована в NetworkManager и systemd, а патчи для ядра входят в базовый состав дистрибутивов Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

Размещённые на сайте проекта результаты тестирования охватывают старую обособленную реализацию WireGuard и отмечены как недостаточно качественные. Со времени проведения тестов код WireGuard и IPsec был дополнительно оптимизирован и теперь работает быстрее. Более полное тестирование, охватывающее интегрированную в ядро реализацию, пока не проведено. Тем не менее, отмечается, что WireGuard в некоторых ситуациях по-прежнему обгоняет IPsec в силу многопоточности, в то время как OpenVPN остаётся очень медленным.

Mikrotik IPSec + Android PSK XAuth

quick and dirty, по мотивам https://wiki.mikrotik.com/wiki/Manual:IP/IPsec :

/ip ipsec peer
add name=mobile passive=yes
/ip ipsec profile
set [ find default=yes ] enc-algorithm=camellia-192,aes-128,3des
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=camellia-192,aes-128-cbc,3des
/ip pool
add name=ipsec ranges=private.ip.range/mask #ip range, "выдаваемый" подключенным клиентам Read More

ffmpeg+hls picture and audio streaming

Появилась задача — из говна и палок собрать переключение по расписанию
с видеопотока
на картинку+радиопоток
и обратно, и транслировать это в hls.

В первом приближении задача решена так:
cron поочерёдно запускает два скрипта:

killall -9 ffmpeg
find /mnt/ramdisk/ -mindepth 1 -mtime +1 -delete
/usr/bin/ffmpeg -stream_loop -1 -i /path/to/slide.ts \
-re -i http://audio.mp3.ip.address:8000/sample128 -bufsize 1920k -vf scale=w=720:h=576:force_original_aspect_ratio=decrease \
-c:a aac -b:a 128k \
-c:v libx264 -crf 21 -preset veryfast -pix_fmt yuv420p \
-hls_time 4 -hls_list_size 3 -hls_flags delete_segments+discont_start+append_list /mnt/ramdisk/video.m3u8 &>/dev/null &

при этом slide.ts собран ффмпегом из картинки (-i ‘/path/to/image.jpg’), ну просто потому что -i image.jpg работал крайне нестабильно при переключении потоков и вообще не работал в firefox:

/usr/bin/ffmpeg -y -f image2 -pattern_type glob -framerate 25 -i '/path/to/slide.jpg' -an -aspect 16:9 -qscale 2 -g 50 -f mpegts -pix_fmt yuv420p -r 25 /path/to/slide.ts

второй скрипт:

killall -9 ffmpeg
find /mnt/ramdisk/ -mindepth 1 -mtime +1 -delete

/usr/bin/ffmpeg -i http://video.mpeg2ts.ip.address:port/stream -bufsize 1920k -vf scale=w=720:h=576:force_original_aspect_ratio=decrease \
-c:a aac -b:a 128k \
-c:v libx264 -crf 21 -preset veryfast \
-hls_time 4 -hls_list_size 3 -hls_flags delete_segments+discont_start+append_list+temp_file /mnt/ramdisk/video.m3u8 &>/dev/null &

Опции для потоков сделаны специально одинаковыми, дабы минимизировать разницу между ними. Вторая строка удаляет лишние ts-файлы, которые остаются после каждого убийства ffmpeg.
Работает как говно, если честно, бывает, циклит ещё раз старые чанки, зато задачу свою выполняет довольно стабильно. Примерно это и требовалось, у меня больше нет желания заниматься экспериментами =@. Если будешь тюнить — имей в виду, что любая опция важна и может покрашить всё к чертям, и заставить браузерный hls-плеер тупить даже в те моменты, когда он тупить не должен.

https://ffmpeg.org/ffmpeg-formats.html#Options-5

Routing src vs sNAT vs masquerading

1. src field of linux routing table
https://serverfault.com/questions/451601/ip-route-show-src-field

Note that the src you are giving would only affect the traffic originating at your very host. If a foreign packet is being routed, it obviously would already have a source IP address so it would be passed on unaltered (unless you are using NAT of course, but this is an entirely different matter). Also, this setting might be overridden by a process specifically choosing to bind to a specific address instead of using the defaults when initiating connections (rather rare).

2 и 3.
http://sysadminz.ru/index.php?topic=3872.0

Принципиально SNAT ничем не отличается от MASQUERADE, разница лишь в том что SNAT может транслировать адрес источника в любой заданный адрес, а MASQUERADE — только в адрес физического интерфейса, непосредственно установленного на данном компьютере. MASQUERADE рекомендуется использовать только с интерфейсами, имеющими динамические IP адреса (например, при dialup соединении).

—————
Ещё чтива по теме: https://www.tecmint.com/setup-linux-as-router/ http://xgu.ru/wiki/Маршрутизация_в_Linux

Записки про Win7 и HiveOS

1. Win7 при отключении из розетки имеет тенденцию запускать вместо Win7 «средство восстановления при загрузке», которое, конечно же, не может «справиться с неполадкой» ни в каком режиме. Отключить это ненужное поведение можно набрав в консоли:

bcdedit /set bootstatuspolicy ignoreallfailures

Данная команда позволит игнорировать ошибки при завершении работы системы и по-умолчанию загрузка будет происходить в обычном режиме.

2. Для того, чтобы записать образ HiveOS на HDD из-под Windows, придётся потрудиться — ведь HDDRawCopy говорит «Error opening Target: …»
Не поможет ничего, кроме Etcher. Не забудьте включить unsafe mode в настройках =)

Чуть-чуть приватности и децентрализации

тулзы для прохода мимо dpi http://telegra.ph/Avtonomnyj-sposob-obhoda-DPI-i-ehffektivnyj-sposob-obhoda-blokirovok-sajtov-po-IP-adresu-GoodbyeDPI-i-ReQrypt-09-22 (pdf)
скрипт для развертывания OpenVPN на VPS http://telegra.ph/Bezopasnyj-OpenVPN-na-VPS-za-neskolko-minut-08-16 (pdf)
также можно погуглить дистры whonix https://www.whonix.org/ и streisand effect https://github.com/StreisandEffect/streisand
NS-проект Emercoin http://telegra.ph/Decentralizaciya-kak-otvet-bespredelu-sistema-domennyh-imen-kotorye-nevozmozhno-razdelegirovat-10-12 (pdf)
(В настоящее время система поддерживает четыре корневых зоны:
*.coin — всё связанное с монетами и коммерцией;
*.emc — всё связанное с проектом EmerCoin;
*.lib — От слов Library и Liberty — то есть библиотеки и свобода;
*.bazar — различные сервисы купли/продажи.)
подробнее об emercoin https://cryptor.net/kriptovalyuty/pod-kapotom-emercoin-chast-2-decentralizovannaya-necenzuriruemaya-sistema-domennyh
хоспади, я, кажется, полюбил телеграф.