Category: Блогинки

22062026

Май беше време да си рестартирам nginx-а след 6 месеца работа

Както и малко под 200 дни uptime от последния рестарт:

WordPress Europe 2026 – lecture and code

Howdy dear visitor.

In this page you’ll find the repo with the code I’ve used to create the presentation for Wordcamp Europe 2026.

Everything is dockerized so you can run the exact setup I used to present locally on your PC.

Note that the repo is under GPL license, such as WordPress itself. I firmly believe in knowledge sharing as the only way to keep ourselves better.

https://github.com/NedkoHristov/WordPress-Europe-2026/

01062026

Щях да пиша нещо за WordCamp и колко се вълнувам от цялото нещо, но видях, че е минало 00:00 часа и – честит ден на детето.

След всичката гняс, която ям от 2 години и повече след развода още стои в мен искрата на детето в мен, макар и по-бледа от всякога.

Но не се отказвам лесно. Хвърлям се в приключения, борим се с децата в тревата в двора, смеем се когато някой пръдне и се изненадвам на моите набори (и по-млади), които го нямат този живец.

Колкото и трудно да е три неща трябва да са в центъра на всеки човек:

  1. Здраве
  2. Детската искра
  3. Любов (към нещо – деца/половинка/място/хоби/каквотоидае)

Та честит ден на детето.

27052026

Откритието на деня. Нещо изискано като праскова и вино от Сотерн. Но за да има смисъл и за вас горното сравнение оставям този великолепен диалог между Mythical Kitchen и Алтън Браун в който си говорят за храната и за бащите.

А Тами Нелсън сама по себе си е бижу, която наподобява на смесицата между една от любимите ми песни изобщо, тази на Iyeoka, която идва със абсолютната нежност, на грубия глас на Kovacs и може би мааааалко на Bet Harth като и трите са в свои собствени категории.

Май малко се увлякох. In other news – нов епизод на подкаста ще има, пиша сега скрипта!

Ще бъда лектор на WordCamp Europe 2026

Както писах преди време, че нещо голямо се задава – ще бъда лектор на WordCamp Europe 2026!

Ще говоря за две неща, които ме бутнаха напред в моята кариера и за които говорих на Cybersec usergroup-а на dev.bg, на OpenFest 2025 и сигурно на още много места – WordPress и Security.

Всичко започна преди доста годни (домейна към момента е на 19 години така, че няколко месеца/година след регистрацията) с една Joomla! която в последствие ме вкара в web development-а, но след редица грешни решения на Joomla дойде време да се разделим и минах към CMS-а, който бута малко 43% от ЦЕЛИЯ (видим) Интернет и 62% от CMS пазара.

С годините мигрирах от споделения хостинг на superhosting.bg (преди да ги купят) към Vultr, след това на моя home server (vortex и marvin) и накрая, от вече няколко години – в DigitalOcean. И понеже не обичам да НЕ оптимизирам неща покрай себе си ми се струваше, че 1GB RAM и 1vCPU са прекалено много за един клет блог така, че реших да се насоча към кеширане, FPM, mySQL оптимизации и още много малки и големи трикове. И изведнъж видях как се освободиха значителни ресурси. А после дойде и downscale initiative-a и сега блога, cdn-check и още няколко проекта си живеят съвсем комфортно на 1vCPU и едва 1GB RAM:

Тоест 430МБ RAM на разположение (available) и пог-оре виждате натовраврането на CPU-то.

Та когато видях, че WordCamp Europe, най-голямото WordCamp събитие в Европа и едно от най-големите в света, имат CfP (Call for Papers) реших да се включа с тема, която ми е близка – как да натъпчем колкото можем повече WordPress в малък VPS.

И демото щеше да е просто – щях да използвам вече направеното в dev.bg workshop-а за сигурност, което както и бях обещал, живее тук – https://github.com/NedkoHristov/WordPress-Security-or-keep-yourself-positive-dev-bg-webinar (и е под GPL лиценз, така, че няма проблем да си го вземете и използвате и вие), да емулирам малко постове, WooCommerce плъгини и още малко неща и кот-такоа.

Накрая приключих с цялостен docker compose, който вдига nginx + mariaDB + apache + k9 + playright + grafana/logi/prometheus, абееее 100000 неща. И съм доволен. Дори имам скрипт, който следи за точно определено събитие за да направи правилни screenshots за презентацията. Този път съм доволен то себе си, ти да видиш.

Събитието ще е в Краков, Полша и е второто ми такова извън страната за тази година.
Доволен съм.

Линк към LinkedIn поста

11052026

Е – най-накрая го постигнах. С ръка на сърцето мога да кажа, че съм в най-лошата форма в живота си.

И не преувеличавам – на медикаменти за кръвно и пулс съм от много време, бях на ръба на инсулиновата резистентност (бях, но не съм си правил скоро изследвания), ментално съм до никъде. Единственото, което имам са децата и съответно хвърлям всичката си енергия там.

А това е смазващо. Особено като си дойдат при мен и видя понякога каква деградация е било и се отчайвам от всичко. Нямам думи да опиша колко жестоко разочарован съм от себе си, от златина, от света и живота си като цяло.

Нямам абсолютно никакво желание да продължавам напред в каквото и да е отношение. Никакво.

10052026

Идвам да кажа, че marp е жесток инструмент! Ей сега разцъквах покрай слайдовете за конференцията за която ще пиша скоро и попаднах на този инструмент. Може да конвертира MarkDown файлове в много неща две от които са PPTX (powerpoint), PDF или направо в HMTL. Това ще рече, че мога да си променям SLIDES.md файла и при commit или PR може да пали pipeline, който да генерира презентацията в няколко формата.

Скоро ще пусна лекцията заедно с md файла и инструкции как да си ги направите в нужния формат.

07052026

Идвам да оставя линка за copy.fail за исторически цели. Много е интересно как има уязвимости, които са well known и не са пачнати от години. Тук оставям и по-дългия writeup по темата https://xint.io/blog/copy-fail-linux-distributions

Има два начина за mitigation:

Module unloading (без рестарт, за текущия kernel):

# Blacklist the module to prevent it from loading
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf

# Remove the module from the current kernel
sudo rmmod algif_aead 2>/dev/null || true

Правилния начин (с debian based distributions):

sudo apt update && sudo apt upgrade
sudo reboot

Ако използвате WSL тогава отвътре в инстанцията няма да можете да фикснете проблема, трябва да вдигнете версията на wsl kernel-а с:

wsl --update

Ако използвате multi-tenant среда, CI/CD runners или workloads, които са containerized имплементирайте seccomp профили за да блокират създаването на AF_ALG сокети.

Понеже fix-а е в linux kernel фикса е най-добре да се приложи с рестарт, защото дори и да имате един user в системата не е сигурно дали нямате други уязвимости/backdoors така, че uptime reset не е по-важно от този фикс.

И успех на всички, които трябва да bake-ват нови images и да деплойват (особено пък тези, които имат решения, които имат общо с linux internals).

dev.bg WordPress ot keep yourself positive

Добре де, нещата малко ескалираха при подготовката за DEV.BG – от bulletpoint lecture (която лесно може да отиде към death by powerpoint) взех, че направих intentionally vulnerable WordPress plugin и тема, които са с повечето известни уязвимости (като гравитацията е около OWASP® Foundation). Всичко това много добре документирано (умря циганката …) и с абсолютно всички примери, които дадох и на почти двучасовия workshop.

Част от темите, които засегнах бяха класическите (и най-разпространени):

* Cross-Site Request Forgery

* Insecure Direct Object Reference

* Remote Code Execution

* Supply Chain Attack

* SQL Injection

* и още няколко дребни

Всичко това в docker compose (с команди как да си вдигнем всичко и как да го затрием), който тръгва точно по начина по който вървеше при мен на демото. И понеже моята същност се връща отново и отново в първата ми голяма сцена на QA: Challenge Accepted когато говорих за performance testing не се сдържах и добавих опция да напълним празния WordPress с доста данни (които са близко до реалните такива по това, което виждам поне в www.nedko.info ) и да направим benchmark с тези данни, след оптимизация (каква – в документацята) като има дори и PoC за с и без Redis caching.

Вътрешното ми чувство обаче ме спря ден преди събитието и реших, че понеже този webinar така и така ще отнеме половин работен ден по-добре да дам всичко от себе си. И ето, че вече имаме и скенер за уязвимости (wp-scan), дори и демо за bruteforce с enumeration & dictionary атака, nginx и PHP препоръки за фиксове на OS ниво и сигурно още неща, които забравям.

Мисля, че това е най-пълния списък, който съм намирал в интернет по темата хем за сигурност, хем за WordPress особено като се има предвид и демо плъгина и темата. Всичко това под MIT лиценз.

Линк към репото:

https://github.com/NedkoHristov/WordPress-Security-or-keep-yourself-positive-dev-bg-webinar

Благодарности на Nemetschek Bulgaria, които за пореден път ми се връзват на налудничевите идеи (скоро идва анонса на нещо много голямо) и на DEV.BG с които организацията както обикновено, е страхотна.

Излишно е да казвам, че всичко това е само за обучителни цели.

Ако някой има интерес към материята и иска нещо, което не е вътре – пишете, интересно ми е и ще надграждам.

// копие на поста ми от linkedin