Taglinux

03.01.2018

Зъб. Цяла вечер ме боля, мамицата му. Смятах в един момент да взема клещите и да стигна до саморазправа.

 

In other news:

  • DRAMA-та се задълбочава. TheRegister описаха случая и няколко техни теста. И един туит описващ всичко:

  • Оказа се, че много online services of GPS location tracking са vulnerable. В общи линии трето лице може да проследи физически клиентите, които използват тези сървиси (описани са в статията). Оказа се също и че някои от провайдърите са идиоти, защото паролите им по подразбиране са 123456.

Решението на един стар проблем

На marvin живеят няколко WordPress-а, но и с него влача няколко мои стари проекти. Един от тях скоро ще стане на 9 години. И понеже живеят на Joomla 1.5, която практически е невъзможно (варианти има, но безплатните не работят, а за платени не смятам, че искам) да се ъпгрейдне към latest. За това nginx-а ми работи с php-fpm, който търкаля две версии на PHP – 5.х и 7.х. И понеже първата е крайно архаична взех решението старите сайтове да ги разкарам напълно. Така или иначе нямам никаква полза от тях.

И вчера вдигнах още един VPS и започнах да конфигурирам наново nginx/php-fpm/etc. Оказа се, че съм позабравил част от configuration flow-а и седнах да помисля какво и как да направя. Най-накрая стигнах до решението, че вместо да си блъскам главата ще инсталирам един стар LTS на Ubuntu в който се поддържа PHP 5.x и всичко тръгна от раз.

Тенденцията ще е да разкарам всичките си клиенти (в големи кавички, таксите им са малко над цените на домейна) и да мина най-накрая на latest and greatest без да се занимавам с излишни глупости.

 

И така на marvin ще се освободи още малко място така, че ако някой (с предимство са студенти/ученици/преподаватели) има нужда да хостне нещо може да се възползва напълно безплатно.

09.12.2017

Днес е малко време за четене и спокойствие. И разходка!

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

Вечерта започнах да се подготвям за миграцията на marvin към php-fpm (не с manually build PHP (и при това две – едно антично и едно latest and greatest)), Никото ми представи няколко много вълнуващи идеи и конфигурации за nginx-а.
Плана е да deploy-на наново nginx, php-fpm и да пренапиша изцяло vhost-овете. Освен това сега използвам letsencrypt за … да – да генерирам сертификати за Let’s Encrypt. Ще мигрирам на certbot.

Тези промени ще подобрят:

  • Работата на marvin като цяло;
  • Много по-леката конфигурация на nginx, очаквам скоростта на блога и останалите сайтове да се качи значително;
  • Всичко, което носи PHP 7.2 и най-вече сигурност и скорост;
  • Сигурността трябва да се повиши (имам някои проблеми си правата и потребителите, които ще бъдат разрешени с деплоя на новия nginix);
  • Ще науча много за nginx, конфигурацията му и работата с vhosts;
  • Ще разкарам всичките php-fpm глупости – в момента търкалям PHP 5.3 (което е свръх-антично) и PHP 7.0.3. Накрая ще стане само един (колко крайно прозвуча това :D) – 7.2.

 

In other news:

01.12.2017 – Linux Journal shuts down

Едно от най-големите списания за Linux и Open Source спира изданията си от днес. Първото издание на списанието е от 1994 година и по техни думи е с едно от най-силните микро общества фокусирани в open source-а. Последното печатно издание е от 2011 година, но портала остава популярен и до днес.
Финалната статия на Kyle Rankin повдига няколко основни въпроса относно open source, linux и идеята, която стои зад тях – свобода, прозрачност и гъвкавост.

So long and thanks for all the bash, Linux Journal!

How to enable friendly URL’s for Joomla using nginx

Когато преместих вече античния nasam.be на marvin имах един основен проблем свързан с прехода между apache2 и nginx и това беше, че nginx не поддържа .htaccess (повече можете да прочетете тук и тук). Там (почти) всичко е организирано в sites-avialable/ профила на сайта, който хоствам и грозните линкове, които Joomla генерира (от типа на https://nasam.be/index.php?option=com_content&view=article&id=183:qa-test-types&catid=53:software-testing&Itemid=167) с един ред и един рестарт станаха по-прилични (https://nasam.be/kompyutarni/software-testing/qa-test-types.html)

Промяната е в /etc/nginx/sites-avialable/project_name:

location / {
 try_files $uri $uri/ /index.php?$args;
 }

Или добавяме в основната location / {} директива точно преди затварящата къдрава скоба следния ред:

 try_files $uri $uri/ /index.php?$args;

Следва рестарт на nginx, сменяне на настройките в Joomla да се използва mod_rewrite и това е :)

 

Искам да отбележа, че това не е специфично Joomla! или WordPress решение, а универсално. Ако имате каквато и да е система, която използва rewrite на линковете това решение би трябвало да ви свърши работа.

Free backup script

Баси тъпото заглавие.

Anyway – днес fork-нах един проект, който използвам от извесно време с разни адаптации за marvin и реших да го публикувам.
github проекта за сега носи работното име Full Web Server Backup, а основния проект можете да намерите тук.

Основните разлики между проектите са:

  • Основния проект има Amazon S3 sync, аз го махнах, защото използвам услугите на pCloud;
  • В моя има архивиране на /etc, почистени са малко неразбории.

За в бъдеще смятам да добавя:

  • Избор на compression level;
  • Изнасяне на mySQL user/pass в ~/.my.cnf
  • Избор на специфични директории в /etc, които да архивираме или exclude-нем;
  • cronjob;
  • Архивиране на /home директорията на определен потребител (ако имаме права за това).

Ако имате друга идея с радост ще я прегледам. marvin си пази бекъпите с този скрипт и за момента работи безпроблемно.

Огромна дупка в сигурността на Bluetooth протокола

Както каза Владо – щом уясвимостта си има лого и име нещата са лоши :D

Long story short – при включен bluetooth човек може да придобие известен контрол над устройствата ви. Проблема е в начина на автентикация (каква е българската дума за authentication?) и по-точно начина по който публичния и частния ключ биват разменяни между двата клиента (encryption keys).

Има си и PoC (Proof of Concept) за Андроид, Windows и Linux.

Примера с Android е много кофти, защото хакера придобива пълен достъп и в демото прави снимка на себе си без изобщо да докосва телефона (тук не е ясно дали телефона е с парола и/или криптиран).

 

PoC с Linux е как хакват smartwatch и успешно пускат микрофона, а после рестартират часовника.


При Windows нещата са също интересни. Там атакуващия прави MiTM (Man in the middle) атака, което ще рече, че се позиционира между клиента и ресурса, който иска да достъпи (в случая сайт). Така например мога да взема HTML кода на банката в която е електронното ви банкиране и да правя $_POST към мой сървър в който ще получа потребителско име и парола.

 

А защо iOS не е засегнат?

Единственото нещо, което пречи тази уязвимост да бъде използвана срещу iOS устройства е, че те не позволяват т.нар. silent authentication, което от своя страна значи, че потребителя първо ще бъде попитан за съгласие дали иска някой да се свърже с него преди да изпълни злонамерения си код.

 

Бен Сери (Ben Seri) и Грегъри Вишнеполски (Gregory Vishnepolsky) са разписали много подробен в whitepaper по въпроса.

 

CVE-тата (common vulnerabilities and Exposures) са както следва:

  1. Linux kernel RCE vulnerability – CVE-2017-1000251
  2. Linux Bluetooth stack (BlueZ) information Leak vulnerability – CVE-2017-1000250
  3. Android information Leak vulnerability – CVE-2017-0785
  4. Android RCE vulnerability #1 – CVE-2017-0781
  5. Android RCE vulnerability #2 – CVE-2017-0782
  6. The Bluetooth Pineapple in Android – Logical Flaw CVE-2017-0783
  7. The Bluetooth Pineapple in Windows – Logical Flaw CVE-2017-8628
  8. Apple Low Energy Audio Protocol RCE vulnerability – CVE-2017-14315

 

Как да се защитите?
Най-лесния начин преди да излязат security fixes е да си спрете блутута. А и никога не трябва да си го ставяте пуснат ако не го използвате.

 

 

24.08.2017

Днес деня започна рано сутринта – около 6:30. Направихме традиционното сутрешно кафе с Теди и Ели и после към работа. Днес ще е шантав ден.

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

In other news:

  • Linux: 25 Iptables Netfilter Firewall Examples For New SysAdmins;
  • Uptime Robot – полезен тул за следенето на uptime-ма на даден сайт. Може да следи и по ping, port и разбира се http(s). Ограничението е цели 50 job-а, като честотата на проверка е през 5 минути;
  • Apache Guacamole – Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.

Как да разберем кой сървис е отворил порт на нашия сървър

Има лесен начин да намерим кой сървис е отворил порт на нашата машина.
Стъпките са следните:

0. Ако нямате nmap инсталиран:

nedko@marvin: sudo aptitude install nmap

nedko@marvin:/home/nedko# nmap localhost

Starting Nmap 7.01 ( https://nmap.org ) at 2017-08-16 23:41 EEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
1022/tcp open exp2
3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

  1. lsof -i :3306

nedko@marvin:/etc/mysql/conf.d# lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 30190 mysql 25u IPv4 9345387 0t0 TCP localhost:mysql (LISTEN)

2. ps -fp 4486

nedko@marvin:/etc/mysql/conf.d# ps -fp 30190
UID PID PPID C STIME TTY TIME CMD
mysql 30190 1 0 00:26 ? 00:00:01 /usr/sbin/mysqld

 

As simple as that.

How to fix: “Briefly unavailable for scheduled maintenance”

Днес ъпдейтвах qualityassurance.pro и явно нещо се счупи, backend-а ми върна “Briefly unavailable for scheduled maintenance” и до там.

Всъщност това е нормално поведение. При ъпдейт на ядрото или някой плъгин WordPress си създава един временен файл, който да уведоми потребителите, че нещо се случва и скоро всичко ще работи както обикновено.

Обаче в моя случай вероятно защото се опитах да ъпдейтна 4-5 плъгина, ядро и темата едновременно ми е timeout-нало (мога само да предполагам) и остана така.

Решението

  • В основната директория на сайта има един файл, който се казва .maintenance. Единственото, което трябва да направите е да го изтриете;
  • Ако горния метод не сработи има и още един вариант – отворете файла wp-activate.php в основната директория на сайта и сменете стойността на променливата WP_INSTALLING на false.