Author: Недко

Author, writer, cyclist and a passionate DevOps/QA engineer that love to share his knowledge with everyone.

16.01.2017

Неделя си ходихме към Добрич и толкова много се надявах да има екстремности по пътя, то… нищо. Пътя беше направо сух, макар и отстрани да имаше преспи достигащи до 2.5-3м.

 

Полезни неща, които намерих днес:

  • Злати сподели за трендовете в програмните езици в последно време. Можете да хвърлите един поглед, да ги редактирате или да добавите своите предпочитани и да видите как се изменя търсенето през времето.
  • И още една подобна статистика, но от Tiobe, също доста полезна;
  • Статия в wordpress.com за това как да постваме код в обикновен пост. Имайте предвид, че някои теми имат CSS override на някои shortcodes така, че вашия code може да не изглежда като от статията;
  • И свързано с горния ред – в блога ползвам SyntaxHighlighter Evolved, който е базиран на SyntaxHighlighter на Алекс Горбачев. Проекта можете да видите в github.
    • След като го споделих с Владо получих обратен feedback, че част от нещата не са особено подходящи в muti-user (multi-dev?) среда и че могат да пренапишат историята на repo-то. Така, че be careful.

 

14.01.2017

Днес беше ред да подкарам (най-накрая!) домашния NAS. За целта ще ползвам стария си desktop (стара, но вярна машина) в следната конфигурация:

  1. Системен – Disk 1 – 250 GB;
  2. Storage – Disk 2 – 2 TB;
  3. Backup Disk 3 – 1TB (като тук с rsync ще копирам на дневна база по-важните неща).

За целта ще ползвам Debian 8 и  ownCloud. В отделна статия ще опиша целия процес + настройките по  NAS-а, ако на някого му е интересно.

Иначе в процеса на бекъп имах нужда от няколко неща и попаднах на много яки решения:

  1. Мониторинг на активността по дисковете (когато пуснах dd да прави Debian USB install) – nmon. Инталира се тривиално с:
    1. apt-get install nmon
  2. При неправилно спиране (включително и hibernate и suspend) на Windows и след това опит за достъп през Линукс излиза съобщение, че поради неправилен shutdown не можем да достъпим диска. Вариантите са два – да го mount-нем като read only или да намерим някой тул, който разкарва hibernate info-то и ни позволява да използваме диска в read-write режим. За това намерих един супер удобен инструмент, който си идва с инсталацията на Debian (сигурно и на повечето Linux based дистрибуции):
    1. sudo ntfsfix /dev/sda1
      1. като sda1 е проблемния дял. Имайте предвид, че след тази операция при опит за стартиране на диска под Windows ще си изгубите сесията си (отворените приложения, прозорци и данни).
  3. Оказа се, че в htop има разни благинки, които могат да ни направят живота по-лесен. Например може да ни покажа на колко % е заредена батерията на лаптопа ни, hostname, avg load и всякакви шикарийки. Можете да намерите повече инфо в сайта на htop (линк по-горе (а в секция Screenshots можете да видите и как работи на 128 ядрена машина с 1TB RAM!)). Настойките са достъпни през F2;

Инсталиране на Mate за Debian/Ubuntu:

Инсталирането на любимия ми Desktop Environment – Mate пък е супер лесна и става с една команда (ще инсталира всички екстри, които идват с него + няколко приложения):

sudo apt-get install mate-desktop-environment-extras

Ако не намери такъв пакет добавете в репото следните два реда:

sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate

Много полезно четиво за сигурност на Debian и Ubuntu от самите тях – Securing Debian Manual

Инсталиране и конфигуриране на ufw.

От съкращението си, което е uncomplicated firewall става ясно, че няма да ни е нужно да разбираме в дълбочини iptables за да настроим прости firewall правила.
В моя случай разреших САМО https и custom port на marvin:

ufw allow https

ufw allow 1022

ufw enable

ufw status verbose

 

Смяна на порт за SSH

За да сменим порта на SSH сървъра ни (който често е основен вектор за атаки) правим следното:

mcedit /etc/ssh/sshd_config

Намираме стринга Port 22 и го заменяме с желания от нас порт, например Port 1022.

След това рестартираме SSH сървиса:

 service sshd restart 

и сме готови. Можем да пуснем един nmap за проверка:

nmap localhost

13.01.2017

Снощи ходихме до фитнеса да го видим дали е още там. :) Залепнах за велотренажора, направих една загряваща петкилометрова и после пуснах програма за един час да видим колко ще мога да изкарам. Очаквах около 30 км/ч средна, но се оказа, че забих на 27.3 км/ч (което не е чак толкова много при положение, че нямам баири). И все пак не беше лоша тренировката.
Тегло от снощи – 99 кг. Има надежда.

 

Днес разбрах, че норвежеца Viljami Kuosmanen (това не мога да го произнеса на глас) показа на Google, Apple и Opera foundation как лесно може да се възползва от един елементарен security flow (макар, че по дефиниция не бих го нарекал така). Идеята е, че ако имам поле с id=name autofill на браузъра ще ми предложи да попълня полето, но хватката е ако имаме няколко скрити полета с margin-left:-500px. В случая са скритите полета са phone, organization, address, postal и city. Така при $_POST освен данните, които виждаме (name и email) ще постнем и останалите (ако са въведени в autofill-а). Хубавото в случая е, че пароли и CVV на кредитни карти не се изпращат.

Можете да разгледате live demo-то на скрипта и да си поиграете. Има го в github в горния линк.

 

  • In other news намерих един много приятен Online JSON viewer. Върши страхотна работа при визуализация на JSON и за по-лесно намиране на счупен такъв;
  • От същата поредица намерих и един много приятен online DIFF checker, който може освен да ви покаже в много приятен вариант разликите в два текста и да ви запази за определен период стринговете. Ето и един вариант – https://www.diffchecker.com/XuNaSlwI
  • Малко приятна фонова музика;
  • А случайно да имате ли проблеми със запомнянето на response codes като мен? HTTP Status Cats API е вашия помощник. Този малък инструмент събира двете най-важни неща в Интернет – котки и status codes. Якото е, че можете да го викате и по линк – https://http.cat/[response code]. Например едно от любимите ми https://http.cat/416 :D
  • Един малък thread за любими книги свързани с Quality Assurance Engineering. Като преглътнем индийците има някои интересни четива;

 

И за накрая едно тъжно интервю от Саймън Синек за хората на Новото Време като го наричахме преди или за децата израстли след 2000 година. Силно препоръчвам ако сте от тях или сте родители на такива деца.

12.01.2017

Днес гледах (за пръв път!) как се сплайсва оптика. В нас в коридора. Защото котката Иво я прегриза и саботира най-святото ни вкъщи!
Времето най-накрая отпусна и има шанс уикенда да мръднем на някъде.

След два дни ще има един много екстремен бревет – “Загоре 200 км” – Твърдица, Казанлък, Загоре, Раднево. За жалост няма как да отида, но пък се глася за “Странжда 200″(Февруари),  “Тракийска пролет 200” (Март), “Варна 300км”  (Април) и ако моите ме приемат да спя в Шабла може и да участвам на международната седмица на предизвикатеството в частта на Белослав-Варна-Калиакра до Шабла (400 км.) или целия бревет от общо 600 км. После ще последва скоростното каране с Пешо София – Бургас под 20 ч. или София – Варна под 24 ч.
За тези неща ще пиша отделен постинг + план за това как ще процедирам, подготовки и прочее.

 

Интересни неща, които намерих днес:

  1. Годишната LUG-BG среща ще се проведе в Пловдив на 11.02.2017 г. Търсят се лектори;
  2. CodeAnywhere – много интересна идея – мултиплатформен облачен IDE за разработка. Рекламират, че с него ще можете да имате достъпност до кода си от всякъде. Аз лично бих деплойнал gitlab на marvin;
  3. Not An Imposter: Fighting Front-End Fatigue – статия за това какво е да си frontend developer. Обърнете внимание на списъка в началото на статията с тегнологиите, които един себеуважаващ се FE dev трябва да има понятие (всъщност написано е от страна на FE, но backend developers изобщо не им е по-лесно);
  4. RadoRado говори за това “Защо имаме глад за програмисти” (обърнете внимание и на коментарите);
  5. Geek-and-Poke с нов комикс, посмяхме се в офиса;
  6. Бреветен календар за 2017 г.

11.01.2017

В офиса днес правихме план за моето развитие за следващите 6 месеца. Новините са доста добри, много се кефя на компанията. Ще имам бая четене, но пък ще науча супер много неща.

Вечерта открих милонга сезона! Бях във Винтидж 33, срещнах се с много приятели, говорихме дълго, танцувахме и лека-полека всеки по къщите.
Навън имаше баси супер много сняг и шофирането беше голямо (и приятно) приключение.

11.01.2017

Днес денят започна с ринене на сняг, но път никога не е лоша тренировката рано сутрин. Закарах Злати до офиса ѝ и към моя.

Попадна ми и интервюто на моя приятел Ях за Информационна Агенция “Добруджа”.

 

Злати ми прати днес обяснение на феномена тумбене. Авторът очевидно е добър в описанието и бая се забавлявах докато го четох.

И докато преди няколко дни ми попаднаха HTTP статусите обяснени с …котки днес ми попадна и това, обяснено от мъжкия мироглед. Автор е web комикса www.monkeyuser.com

HTTP status codes

 

EDIT 07.11.2022 – Ъпдейтнах линка за статията на Ях към web.archive.org, защото иначе не се отваряше.

10.11.2017

Днес деня започна с поезия. Този път ред е на Мария Донева и нейния блог, който влиза в личния ми feedly моментално:

 

Тя се готви да пътува.

Тя се готви да пътува.
Вече знае накъде.
Но макар че се шегува,
тайна мисъл я яде.

И макар че тя е смела
и е купила билет,
във лъжи се е оплела.
За да продължи напред,

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

И четирите саксии
на сираческа съдба
да остави. Да изтрие
спомена за веселба.

Да извика студовете.
Да си спомни за дъжда
във леглото, на ръцете –
пръстените със ръжда.

Да не мисли за доброто.
Да не мисли за вина.
Да си навлече палтото.
Без целувка на уста

да потегли, да замине –
вече знае накъде.
Да остави да изстине
окаденото кафе.

Да не мие тези чаши,
да не готви за обяд.
Да се радва, че се плаши,
Да не търси път назад.

Да не спира. Да не чака,
време е да се реши –
който пак я е разплакал,
няма да я утеши.

Тя се готви да пътува,
но да се стопи снега.
Ще избяга, ще отплува,
но не знам кога,
кога…

 

 

Нещо интересно, което намерих днес:

  • Новината на деня – след като verizon купиха огроман част от Yahoo остатъка от компанията се преименува на … “Altaba”??? Мисля, че по-тъпо име не е било възможно да бъде измислено;
  • Chrome Backdoor – Chromebackdoor is a pentest tool, this tool use a MITB technique for generate a windows executable “.exe” after launch run a malicious extension or script on most popular browsers, and send all DOM datas on command and control;
  • 3 Ways to Permanently and Securely Delete ‘Files and Directories’ in Linux;
  • И едно очарователно видео. Канят няколко badasses в стая и малко по-късно влиза малко момиченце, което без да казва нищо започва да си разтоварва нещата от раничката и кани лошите чичковци на по чаша кафе/чай/торта (пластмасови). И разтапя тия лошите татуирани и начумерени хора с една усмивка;

09.11.2016

Днес колата запали на -19 (според термометъра на колата) след 4-5 опита. Много се радвам, че взех 72 mah акумулатор. И че съм с хубави зимни гуми, че във Варна по мои наблюдения не е много модерно да караш със зимни гуми през зимата.

Вечерта отделих над 2 часа да изчистя, смажа и вкарам в ред шосейката. Чудя се кога ще мога да изляза да покарам малко. Навън всичко е лед и с колата е трудно, камо ли с колелото. За сега плана е да тренирам повече в залата и февруари ако е сухо да карам навън. Че наближава голямото каране (един бревет Март месец и после София – Бургас за под 20 часа или София – Варна за под 24 часа). Да видим.

И нещо интересно – при някои тестове се налага постоянно да рестартирам браузъра си. И видях нещо напълно безполезно, но може да стане приятна шега на някого. Ако bookmark-нете следния адрес:

 

<em>chrome://restart</em>

 

При клик върху него браузъра на “жертвата” ще се рестартира.

 

Интересни неща, които намерих днес:

08.01.2017

Днес ходих да въртя като хамстер във фитнеса. След час тренировка се чувствах много добре. Изпозлването на читав фитнес велотренажор се оказа, че е търпимо решение. Пък и аз имам сериозна нужда да се движа и да карам.

След това ходих да взема подарък на Чъмпа, бяхме на гости със Злати в старата компания и като цяло беше много приятно. Малко преди това ходих да давам ток на един Голф, който не беше пален последните дни и имаше по 1 см лед навсякъде. Мисията беше успешна, но тоя, който е решил да сложи акумулатора под шофьорската врата е за бой.
После последва малко пазар и почивка вкъщи. Готвих! Не е нещо специално, но отдавна не бях го правил май. Сготвих свински късове с лук, подправки, лук, съвсем малко чесън и малко шарлан. Станаха добре. Злати каза, че ѝ харесва (макар, че може да е и от любезност, знам ли :D), Иво (котката) намаза едно парче, че малко падна докато пресипвах храната по чиниите. Щом никой не умря значи е било ок.

 

Занимвах се с Debian-а, разгледах Gnome-а и правих някакви работи по него. Машината се държи много добре.

07.01.2017 – Малко размисли за Qubes OS и Debian 8

И понеже съм много постоянен разгледах Qubes OS 3.2 за който писах вчера и останах със следните впечатления:

Инсталацията на моето Lenovo T430 с SSD отне доста време, но иначе беше проста. Изпозлвах guided partitioning + encrypted LVM. При първи старт на системата Qubes OS ме пита дали искам да прекарам целия си трафик през Tor.

И сега на най-важното – защо го правя. Концепцията на Qubes OS е нещо много по-различно от всичко, което съм виждал до сега ще се опитам да разкажа и на вас защо я наричат “A reasonably secure operating system”. Qubes използва виртуализация за да изолира различните приложения за да не могат те да работят едновременно ако не им разрешим изрично. Това значи, че мога да направя така, че моя браузър да бъде в съвсем различна среда от файловия ми мениджър, например. Нека кажем, че има екслойт за да кажем Chrome, който успешно може да направи RCE (Remote Code Execution). В нашия свят това би било катастрофално, ако имаме чувствителна информация на машината, която е засегната, но в Qubes OS това няма как да се случи на среда, която е различна от тази в която е изпълнен RCE. Разбира се трябва да разделим и приложенията според критичността им (например браузъра с електронното ми банкиране да е единствено приложение и да е на своя собствена виртуализирана среда). Можем да продължим и още по-напред – всяка виртуална машина може да има свои firewall правила и да разгледаме следната ситуация – във виртуалката с да кажем офисните данни целия трафик да минава само по определен канал през прокси, докато през виртуалката в която минават личните ми данни целия трафил да минава през Tor. И двете среди са изключително разделени.

 

Та след като разгледах Qubes OS реших, че ще ми отнеме много време за да се почувствам конфортно там и сметнах за по-добре да мигрирам от Ubuntu 16.10 към Debian 8. Отдавна се каня да направя тази стъпка, но не мисля, че бях готов до скоро. НАЙ-НАКРАЯ ще се оттърва от Unity и идеята за Ubuntu One!
Сложих си Debian 8 и първото нещо, което срещнах беше, че не ми разпозна wireless-а на Lenovo T430-то. Решението е да инсталираме iwlwifi драйверите:

sudo apt-get install firmware-iwlwifi network-manager

В Wiki-то на Debian има цяла статия за Lenovo 430 така, че който му е интересно може да я погледне. Има листнати всички устройства (дори и docking station-а (заради DVI порт-a)).

След инсталацията сложих и настроих ntp и настроих по тази статия.

С опит да сложа кирилица през графичния интерфейс нещо не ми се получи (имах само Английски) и трябваше да направя следното (ще ви отнеме малко време да знаете):

mcedit /etc/locale.gen

Разкоментирайте българския като махнете # и пуснете да генерирате локалите наново:

sudo locale-gen

И рестартирайте GUI-то си за да видите българския като опция.

В моя случай моя locale.gen беше с всичките локали така, че като пуснах locale-gen чаках 2-3 минути да се генерират всичките, но смятам да коментирам ненужните и да генерирам наново.

След това последва стандартния apt с инсталиране на zip, rar, Midnight Commander (в пакета си идва и с mcedit, любимия ми редактор, убийте ме с пръчки), nmap, ufw, rkhunter и curl (интересно беше, че не влиза в инсталационния пакет на Debian):

sudo apt-get install zip, rar, mc, nmap, ufw, rkhunter, curl &amp;&amp; rkhunter --update

След това идва ред да инсталираме и Sublime 3. За целта ще изтеглим .deb файла в Downloads на текущия логнат потребител (не е препоръчително да го изпълнявате с root), който е за 64 bit Ubuntu и ще инсталираме през dpkg:

 wget ~/Downloads https://download.sublimetext.com/sublime-text_build-3126_amd64.deb
dpkg -i ~/Downloads/sublime-text_build-3126_amd64.deb

Hint – можете да извикате Sublime под конзолата използвайки subl.

Като ми остане малко време ще напиша и малко tips and tricks за ufw.

Какво намерих днес:

  • date-fns – date-fns provides the most comprehensive, yet simple and consistent toolset for manipulating JavaScript dates in a browser & Node.js;
  • VocaJS – Voca is a JavaScript library for manipulating strings;
  • Some useful regex patterns (Злати тества две от тях и не работиха както трябва (например валидацита по мейл приема за валидно – test@abv));
  • wget in examples.