blog.dsinf.net
2022
VPN site-to-site oparty o strongSwan IPsec i XFRM
·1749 words·9 mins
blog.dsinf.net
ipsec
lxc
vpn
Chcąc połączyć ze sobą dwa data-center lub dwa serwery hostujące kontenery potrzebujemy łączności site-to-site. Można to osiągnąć zwykłym VPNem w rodzaju OpenVPN i ręcznym ustawianiem routingu, jednak nie jest to zbyt wydajne, ani eleganckie. Zaprezentuję jak zestawić takie połączenie dzięki strongSwan sterującym zaimplementowanym w jądrze stosem IPsec - XFRM. Dodatkowo pokażę jak się do takiej sieci podłączyć z zewnątrz i podam kilka wskazówek dotyczących zestawienia tego u Hetznera - łącząc dedykowany serwer używający vSwitch’a z serwerem w Hetzner Cloud. Na koniec kilka słów o podłączaniu się do takiego VPNa z zewnątrz.
2021
Dziwne błędy przy pre-commit-hook na macOS
·222 words·2 mins
blog.dsinf.net
pre-commit to świetny framework do zarządzania gitowymi hookami, które uruchamiane są jeszcze przed zacommitowaniem kodu, dzięki czemu możemy zmusić siebie i innych do wykorzystywania narzędzi walidujących jakość kodu (takich jak yamllint czy gocritic) oraz wykonujących zdefiniowane testy jednostkowe. Ostatnio na stacji roboczej z macOS natrafiłem na dość dziwny błąd, który okazał się w ogóle z pre-commit-hook’iem niepowiązany.
Problem polegał na tym, że w czasie uruchomienia testy z jednego repozytorium nie przechodziły w ogóle, a błąd wygląda jak sieczka wyrazów, wśród której czai się No such file or directory.
macOS i serwery DNS dla pojedynczych domen, w szczególności prywatnych
·141 words·1 min
blog.dsinf.net
dns
intranet
macOS
Problem dość częsty w intranetach dostępnych jedynie po VPN - jak wstrzyknąć resolver DNS działający na pojedynczym połączeniu sieciowym, tak aby klient rozwiązywał nazwy domenowe z niepublicznymi/prywatnymi TLD (czyli poza root DNSami).
Na macOS jest to dość nietrywialne, jeśli używamy systemowego klienta VPN, niekoniecznie bowiem system będzie przestrzegał podanych po IPsec-u DNSów. Można jednak ustawić specyficzne serwery dla konkretnych domen w sposób następujący: w folderze /private/etc/resolver/ należy stworzyć plik (nazwa z grubsza dowolna) dla każdej domeny, która ma być rozwiązywana inaczej niż używając systemowych resolverów, takiej treści:
Słów kilka o projektowaniu mojego pierwszego ambitniejszego obiektu 3D – stojaka na bity do śrubokręta Xiaomi Wowstick 1F
·1188 words·6 mins
blog.dsinf.net
3d
hardware
openscad
Moja przygoda z drukiem 3D zaczęła się jeszcze na studiach, kiedy to w Kole Studentów Informatyki UJ zacząłem korzystać z drukarki SLA (Prusa i3 mk1). Stworzyłem wówczas kilka prostych obiektów w webowym Tinkercadzie. Korzystałem głównie z konwersji grafiki wektorowej na obiekty 3D poprzez prymitywnie “wyciąganie” ich, by uzyskały wysokość oraz sklejania takich elementów ze sobą. Kilka lat później kupiłem swoją drukarkę DLP (Anycubic Photon S) i stanął przede mną problem praktyczny, którego tak łatwo nie można było rozwiązać w prymitywnych narzędziach - stojak na bity do śrubokręta elektrycznego Xiaomi Wowstick 1F.
Serwer nginx – minimalizowanie zbieranych danych w logach dostępu
·289 words·2 mins
blog.dsinf.net
logi
loki
nginx
privacy
promtail
Kończąc opisane dwa miesiące temu zmiany w polityce prywatności, skończyłem projekt usuwania zbędnych danych z logów dostępu nginxa. Opiszę pokrótce gotowy fragment pliku konfiguracyjnego serwera i pokażę, jak skonfigurować Promtaila, żeby przetwarzał logi w nowym formacie.
Prometheus jako baza i system alertowania w mniej standardowych zastosowaniach
·564 words·3 mins
blog.dsinf.net
Prometheus to TSDB (TimeSeries DataBase, czyli po polsku mogłoby to być coś w rodzaju bazy danych szeregów czasowych) i zestaw lekkich agentów raportujących do niej, między innymi metryki zasobów systemu operacyjnego.
Osobiście używam go najwięcej do kolekcjonowania zasobów kontenerów i maszyn wirtualnych, stanu serwisów oraz pewnych podstawowych statystyk o bazach danych i serwerach nginx.
Posiadam w kolekcji jednak dwa małe projekty, wykorzystujące przydatną funkcję podstawowego agenta Prometheusa - node exportera - collector.textfile do dość prymitywnego, ale skutecznego publikowania własnych danych.
Naprawa aktywnego huba USB i rzecz o narzędziach diagnostycznych zasilania po USB (wraz z dygresją o samym zasilaniu USB i trybach ładowania)
·1306 words·7 mins
blog.dsinf.net
Aktywny hub USB od D-linka model DUB-H7 to leciwa, ale bardzo mocna konstrukcja - zwłaszcza, jeśli chodzi o wykorzystanie jej w roli aż 7-portowej ładowarki. Niestety obydwa porty oznaczone symbolem pioruna, a więc te, które powinny dostarczać większy prąd jakiś czas temu przestały działać. Chcąc przywrócić sprzęt do świetności, musiałem zanurkować trochę w odmętach rosyjskojęzycznych forów internetowych i dość długo czekać na elementy zastępcze z Chin. Jednakże dzięki temu może powstać ten artykuł, który dodatkowo opowie o wykorzystywanych przeze mnie narzędziach diagnostycznych zasilania po USB, a także o samym zasilaniu USB i trybach ładowania.
Niedawne ulepszenia prywatności użytkowników blog.dsinf.net i foto.dsinf.net
·983 words·5 mins
blog.dsinf.net
Od jakiegoś czasu moje osobiste celowanie w prywatność stało się jeszcze większym priorytetem i uznałem, że czas zająć się także moim blogiem. Efektem tych działań było między innymi pozbycie się usług Google oraz WordPressa.
Okresowy przegląd bezpieczeństwa i prywatności oraz narzędzie do list kontrolnych – Process Street
·1230 words·6 mins
blog.dsinf.net
Listy kontrolne, w światach korpo-szczurów oraz IT znane bardziej jako checklisty, są bardzo przydatnym sposobem powtarzalnego wykonywania zadań, zwłaszcza okresowych. Jednym z nich może (moim zdaniem powinien) być przegląd bezpieczeństwa i prywatności osobistej - zestaw zadań od sprawdzenia, począwszy od weryfikacji czy do managera haseł nie wkradło się jakieś zbyt proste np. stworzone poza nim, poprzez wykonanie backupu kodów odzyskiwania MFA, aż po weryfikację uprawnień aplikacji na naszym telefonie.
Kilka słów o utrzymywaniu prawdziwej historii w gicie i unikaniu git ammend
·673 words·4 mins
blog.dsinf.net
Tematem tego wpisu jest praktyka, którą zauważyłem zwłaszcza u młodszych programistów podczas pracy na feature branchach - poprawianie literówek, czy drobnych błędów w systemach kontroli wersji typu git za pomocą git ammend. Moim zdaniem nie jest to zbyt uczciwe głównie wobec siebie.
Pokusa, by poprawić literówkę w komentarzu, czy zrobić typową poprawkę w rodzaju +1 za pomocą git commit --ammend, a następnie wypchnąć zmiany do centralnego repozytorium, nadpisując historię zdalnego repozytorium, jest szczególnie duża, kiedy w użyciu jest jakiś system budowania lub pipeline CI/CD, którego nie można uruchomić lokalnie.