Bądź na bieżąco - RSS

Jak używać SSH jako VPN: przewodnik po Shuttle

24 lutego, 2024 | Brak Komentarzy | Kategoria: Linux, MacOS, Porady
Suttle

Termin “Poor Man’s VPN” często odnosi się do prostych, niestandardowych rozwiązań służących do tworzenia wirtualnych sieci prywatnych (VPN), które nie wykorzystują dedykowanego oprogramowania VPN. Zamiast tego mogą używać innych technologii, takich jak SSH (Secure Shell), do tworzenia zabezpieczonych tuneli przez Internet.

SSH jest często wykorzystywane do tworzenia prostych VPNów, ponieważ umożliwia szyfrowane połączenie między dwoma punktami w sieci. Przykładowo, można przekierować ruch z lokalnego komputera przez zdalny serwer SSH, co zadziała podobnie jak VPN, dzięki tunelowaniu ruchu sieciowego i umożliwi bezpieczny dostęp do zasobów sieciowych.

Shuttle to narzędzie działające jako transparentny serwer proxy, służący jako prosty zamiennik VPN. Działa poprzez przekierowanie ruchu za pomocą SSH. Nie wymaga uprawnień administratora i jest kompatybilne z Linuxem i MacOS. Ponadto obsługuje tunelowanie DNS, co jest istotne w kontekście przekierowania całego ruchu przez łącze VPN. Można go zainstalować na wiele sposobów, w tym przez menedżery pakietów w różnych dystrybucjach Linuxa, PyPI, Homebrew, a także bezpośrednio z kodu źródłowego. Dokumentacja jest dostępna online, a sshuttle może być również konfigurowany jako usługa.

Przykład użycia komendy sshuttle do przekierowania całego ruchu z lokalnego komputera przez połączenie SSH wraz z przekazywaniem zapytań DNS wygląda następująco:

sshuttle -r username@remote_host 0/0 -vv --dns

W powyższym poleceniu:

  • -r username@remote_host określa zdalnego użytkownika i host, przez który ma być przekierowany ruch.
  • 0/0 oznacza, że cały ruch ma być przekierowany.
  • -vv włącza tryb szczegółowych informacji (verbose).
  • --dns oznacza, że zapytania DNS również będą przekierowywane przez połączenie SSH.

Więcej informacji i opcji konfiguracyjnych można znaleźć w dokumentacji sshuttle dostępnej na GitHubie.

G

Tagi: , , , ,

Kopie zapasowe Docker

3 sierpnia, 2022 | Brak Komentarzy | Kategoria: Bez kategorii, Linux, MacOS, Porady, Windows
Kopie zapasowe Docker

Ten temat pojawiał się wielokrotnie we wpisach. Chodzi oczywiście o kopie zapasowe. Ludzie dzielą się na dwie kategorie tych, którzy je robią i tych, którzy je będą robili (truizm, ale trzeba go powtarzać do znudzenia). Tym razem, ponieważ od jakiegoś czasu bardzo popularne są rozwiązania oparte o konteneryzację, parę słów jak to zrobić gdy używamy środowiska Docker.

Oczywiście metodę, o której będzie za chwilę można również stosować np. do migracji całych kontenerów na nowe serwery.

Cała procedura składa się z kilku dosyć prostych kroków. Jedynym wymaganiem jest posiadanie dostępu w wiersza poleceń (konsola). Inna sprawa to mała sugestia, że najlepiej będzie skorzystać ze środowiska Linux (Debian, Ubuntu itp.) do budowy swojego serwera. Jednak w przypadku Windowsów również wszystko powinno działać.

Krok pierwszy to zatrzymanie kontenera, dla którego będziemy tworzyć kopię zapasową:

docker stop nazwa_kontenera

Jeżeli nie wiemy jakiej nazwy użyć lub po prostu otrzymujemy komunikat o błędzie wystarczy sprawdzić wszystkie dostępne kontenery:

docker container ls

W drugim kroku tworzymy obraz naszego kontenera:

docker commit nazwa_kontenera nazwa_kontenera

Ostatni parametr to tak naprawdę nazwa obrazu ale dla uproszczenia przyjmijmy, że jest ona taka sama jak nazwa kontenera.

Trzeci krok to zapisanie obrazu do pliku.

docker save nazwa_kontenera

W tym miejscu należy wspomnieć, że do tego momentu udało się zapisać stan kontenera. Jeśli instalacje, dla których robimy kopie mają zdefiniowane zewnętrzne wolumeny to należy skopiować ich zawartość oddzielnie. Generalnie można to zrobić ręcznie, ale dużo wygodniej będzie skorzystać z gotowego rozwiązania. Warto polecić skrypt docker-volumes.sh. Za jego pomocą dosyć łatwo można zapisać wszystkie stałe dane do jednego archiwum:

docker-volumes.sh nazwa_kontenera \ 
save nazwa_kontenera_wolumeny.tar.gz

Mając kopie zapasową w postaci dwóch plików tj. obrazu kontenera oraz wolumenów jesteśmy zabezpieczeni. Jeśli chcielibyśmy przenieść dane na inne sewery wystarczy skopiować je do nowej lokalizacji.

Ostatecznie na nowym serwerze, po przygotowaniu środowiska Docker, wykonujemy trzy polecenia.

Tworzymy kontener z wykorzystaniem skopiowanego obrazu:

docker create --name nazwa_kontenera \
{zestaw_opcji_uruchomieniowych} nazwa_kontenera

Przywracamy wolumeny:

docker-volumes.sh nazwa_kontenera load nazwa_kontenera_wolumeny.tar.gz

Uruchamiamy kopie kontenera:

docker start nazwa_kontenera

Przy odrobinie szczęścia, w tym momencie powinniśmy cieszyć się kolejną, nową instancją naszej usługi.

MG

Tagi: , ,

Homebrew i problemy z unrar

3 lutego, 2021 | Brak Komentarzy | Kategoria: MacOS, Porady
Homebrew RAR

Jeśli jesteś użytkownikiem MacOS to bardzo prawdopodobne, że już słyszałeś o aplikacji Homebrew. Ten system dystrybucji oprogramowania zastępuje dobrze znane rozwiązania konsolowe z systemów linuksowych. Pozwala dbać o aktualizacje, czyścić system z niepotrzebnych pozostałości po instalacjach itd. W zasadzie można powiedzieć, że dla kogoś kto jest przyzwyczajony do repozytoriów oprogramowania stanowi swoiste narzędzie typu must have dla fanów Apple.

Biorąc pod uwagę bogactwo oprogramowania, które trudno znaleźć w oficjalnych kanałach dystrybucji MacOS Homebrew na pewno jest alternatywą dla osób instalujących takie perełki jak np. Midnight Commander czy ffmpeg. Zazwyczaj instalacja takich aplikacji nie stanowi dla niego większych problemów bo sprowadza się do wpisania jednej linijki z komendą w shellu systemowym.

W codziennej pracy z systemem nieodzowne jest narzędzie to archiwizacji plików. W pracy z MacOS dostępnych jest wiele programów spełniających dobrze te funkcje dla większości otwartych algorytmów jak np. Keka. Co jednak jeżeli otrzymamy pliki spakowane za pomocą RAR. Czy szukać płatnej alternatywy dla jabłuszka? A może po prostu zainstalować unrar za pomocą Homebrew? To ostatnie rozwiązanie powinno wystarczyć, aby okazyjnie poradzić sobie z takim problemem. I rzeczywiście do niedawna wystarczało, bo wspomniany unrar został usunięty z oficjalnych repozytoriów Homebrew.

Aby zaradzić przedstawionym powyżej problemom wystarczy jednak skorzystać z prostej metody korzystając z dodatkowych kanałów dystrybucji. W tym celu używając shella systemowego wpisujemy polecenie:

brew install carlocab/personal/unrar

W ten prosty sposób zainstalujemy unrar i zaoszczędzimy trochę pieniędzy.

MG

Tagi: , ,

Zepsuty pendrive i Macbook

27 grudnia, 2020 | Brak Komentarzy | Kategoria: MacOS, Porady
Pendrive

Pendrive może zostać zepsuty. Wielokrotnie, jako użytkownikowi Macbooka, zdarzało mi się to zrobić. Działający bez zarzutu przestawał być rozpoznawany przez system. Zdarzało się to po takich operacjach jak formatowanie czy wgrywanie obrazu ISO np. z najnowszą wersją Raspberry Pi OS. Czy to oznacza, że pendrive jest bezpowrotnie uszkodzony? Muszę przyznać, że w 100% przypadków nie. Zazwyczaj nie pomagały żadne wbudowane graficzne narzędzia dla mac OS. Jednak wcale nie oznaczało to, że inne systemy jak Linux czy Windows nie potrafiły naprawić i poprawnie sformatować ponownie pendrive’a. W zasadzie zawsze chodziło o błędy tablicy partycji. No właśnie, czy mac OS jest na tyle kaleki, że trzeba szukać komputera z Windows? Jak poradzić sobie z tak prostym w zasadzie wyzwaniem?

Na szczęście zawsze można skorzystać z poleceń konsolowych i trików dobrze znanych ze wszytskich platform unixo-podobnych. Wiem, że być może nie jest to ładny i dopracowany interfejs graficzny użytkownia, ale zawsze działa niezawodnie. Zatem do dzieła!

Po pierwsze podłączamy kartę SD, dysk twardy lub inne urządzenie. Potem wydajemy polecenie, aby zobaczyć, jako które urządzenie /dev/diskN system zamontował nasz pendrive:

diskutil list

Następnie musimy odmontować dysk, gdzie N jest numerem dysku z poprzedniego polecenia:

diskutil unmountDisk /dev/diskN

Po trzecie przechodzimy do sedna i wykonujemy polecenie dd jako superuser dla dysku, dla którego N jest numerem z pierwszego kroku.

sudo dd if=/dev/urandom of=/dev/diskN bs=1000000

Spowoduje to nadpisanie wszystkich partycji, rekordów MBR i danych. Trzeba pamiętać, że wszytsko może trochę potrwać w zależności od rozmiaru dysku. Niestety nie ma wskaźnika postępu. Warto jednak poczekać i odzyskać prawie utracony pendrive.

MG

Tagi: ,

0x80004005 – błąd uruchomienia VirtualBox

2 grudnia, 2020 | Brak Komentarzy | Kategoria: MacOS, Porady
VirtualBox

Wirtualizacja jest obecnie jednym z najczęściej stosowanych rozwiązań zarówno na platformach serwerowych jaki i na komputerach osobistych. Pozwala przygotować środowisko testowe dla programisty. Pozwala uruchomić aplikacje napisane dla innych systemów operacyjnych niż ten, który jest naszym głównym. Zastosowań i pomysłów jest wiele. W szczególności jeśli jesteś właścicielem MacBooka Apple to prawie na pewno chociaż raz zastanawiałeś się jak uruchomić aplikację dla Windows. I nie piszę tu tylko o grach ale również o całkiem sporej rzeszy programów biurowych. Tego typu rozważania prowadzą wprost do produktów takich jak VMware Workstation lub VirtualBox – celowo pomijam programy płatne, takie rownież się znajdą dla macOS.

Z powodu przyzwyczajenia od lat korzystam z VirtualBoxa. Nie jest być może najbardziej wydajny, jak również nie zapewnia pełnego wsparcia sprzętowego, ale jako dobrze znany ma dużą społeczność użytkowników, więc można liczyć prawie zawsze na pomoc. Poza tym jego instalacja dla macOS jest banalnie prosta, a w sieci można znaleźć gotowe do użytku obrazy z Windows. Można również skorzystać z poradników typu jak przygotować sobie Windowsy bez ponoszenia kosztów i pozostać legalnym użytkownikiem – tak przynajmniej twierdzą ich autorzy.

Niestety tak jak często w życiu bywa nawet najbardziej doskonałe rozwiązania potrafią zawodzić. Tak właśnie się stało z moim VirtualBoxem po aktualizacji MacBooka do systemu macOS Big Sur wersja 11. Niby wszystko działało poprawnie i VirtualBox uruchomił się bez zarzutu, ale żadna z maszyn wirtualnych nie chciała już wystartować. Na ekranie pojawiał się komunikat: “The virtual machine ‘XXX’ has terminated unexpectedly during startup with exit code 1 (0x1).” Szczegóły błędu są mało czytelne, szczególnie w kontekście wyszukania i dopasowania informacji w Inetrnecie:

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: MachineWrap

Rzecz jasna jeśli zaczniemy przeglądać różne fora – również te poświęcone systemom od Apple – to spostrzeżemy, że porad jak zapobiegać takim wyjątkom jest cała masa. Ja zaś tradycyjnie chciałbym się skupić na na kilku prostych krokach, które przywracają pełną funkcjonalność VirtualBox. Przynajmnie do czasu kiedy ukaże się kolejna wersja tego oprogramowania.

Po pierwsze należy uruchomić MacBooka w trybie Recovery – przy starcie wybieramy kombinację klawiszy cmd+R. Ten krok może trwać dość długo jeżeli konieczne będzie pobranie obrazu systemu z serwerów Apple. Gdy znajdziemy się już w trybie awryjnym to wystarczy uruchomić terminal i wydać dwa polecenia:

csrutil clear
reboot

Po ponownym uruchomieniu komputera działamy dalej. Po pierwsze pobieramy ze strony producenta najnowszą wersję VirtualBoxa oraz pakiet VirtualBox Extension Pack. Po drugie po zamontowaniu obrazu instalacyjnego najpierw usuwamy aktualną wersję za pomocą skryptu VirtualBox_Uninstall.tool. Ostatecznie zaś instalujemy ponownie aplikację oraz pakiet rozszerzeń.

Mam nadzieję, że pomogłem. 🙂

MG

Tagi: , ,

Karta SD – formatowanie w Mac OS

29 grudnia, 2019 | Brak Komentarzy | Kategoria: MacOS, Porady
karta SD

Karta SD i jej formatowanie w Mac OS może być źródłem problemów. Sam kilka razy miałem kłopoty. Oczywiście jeśli stosujemy standardowe rozwiązania i mamy kartę sformatowaną dla systemu MS-DOS (FAT), tudzież dla typowego Mac OS Extended (Journaled) to raczej nie napotkamy na żadne przeszkody. Czasami jednak, zwłaszcza gdy zamierzamy testować np. Raspberry Pi, musimy zmierzyć się z innymi systemami plików. I nie chodzi w tym przypadku o zakładanie i konfigurowanie tychże, ale o przygotowanie karty do pracy, czyli usunięcie w pierwszym kroku wszystkich partycji z dostępnej przestrzeni. Niestety, bez tego często nie jesteśmy w stanie korzystać z SD. Wiem, że brzmi to co najmniej dziwnie, ale sam miałem takie problemy.

Jak sprawdziłem najszybszą niezawodną metodą jest skorzystanie z wbudowanych narzędzi systemowych. A więc czas uruchomić terminal. 😉

Jednym z najbardziej pożytecznych i skutecznych narzędzi jest diskutil. Program ten pozwoli nam na wyświetlenie zawartości karty SD:

$ diskutil list

Otrzymamy nazwy urządzeń (np. disk2 lub disk3) z przypisanymi partycjami. Z wyświetlonych informacji można łatwo wywnioskować, które urządzenie to karta SD. Zakładając, że jest np. disk2, możemy przygotować kartę do pracy z Raspberry Pi:

$ diskutil eraseDisk FAT32 RASPBIAN MBRFormat disk2

Na tym jednak nie koniec. Wracając do głównego wątku, możemy również dosłownie wyzerować kartę SD. W tym celu najpierw powinniśmy odmontować urządzenie:

$ diskutil unmountDisk disk2

A potem usunąć jej zawartość:

$ diskutil zeroDisk disk2

Lub inną metodą:

$ diskutil randomDisk disk2

Warto wspomnieć, że opisana komenda sprawdza się również w przypadku pamięci USB, dysków twardych itd. Trzeba jej jednak używać bardzo ostrożnie, i chyba nie muszę tłumaczyć dlaczego.

To tyle w tym ostatnim tegorocznym wpisie.

MG

Tagi: , ,

Homebrew autoaktualizacja – nakładka homebrew-autoupdate

16 września, 2017 | Brak Komentarzy | Kategoria: MacOS, Porady

Package Manager - homebrewJakiś czas temu napisałem krótki artykuł [1] o tym jak uslepszyć instalację oprogramowania w systemie Mac OS X. Krótko mówiąc najlepiej jest użyć w tym celu pakietu homebrew [2]. Przyznam, że jako właściciel Macbooka Pro od około pół roku dalej drążyłem temat. Nawyki nabyte podczas użytkownia od wielu lat laptopów z Linuksem dały o sobie znać. Po jakimś czasie zauważyłem, że generalnie dążę do upodobnienia środowiska graficznego Mac OS X do Gnome/Unity [3]. Rzeczywiście jeżeli ktoś przyzwyczaił się do Unity (a wiem, że ten wynalazek Canonical [4] ma tylu samu zwolenników co przeciwników) to trudno oprzeć się wrażeniu, że środowisko jest niemal skopiowane od Apple. Jednak interfejs graficzy to jedno a narzędzia systemowe to drugie. O ile trudno się nie zgodzić, że GUI na Macu jest po prostu bardzo dopracowane i nieporównywalnie lepsze, to już wszelkie narzędzia związane z instalacją oprogramowanie i po prostu zarządzania nim to zupełnie inna bajka.

Jedną z olbrzymich zalet Linuksa jest system zarządzania aplikacjami w oparciu o repozytoria. Szczerze mówiąc nie spotkałem żadnego lepszego rozwiązania, a wszystkie sklepy Microsoftu, Apple, Google itd. są po prostu namiastką. Oczywiście zawsze na początku działa efekt wow, głównie ze względu na rzekomą łatwość obsługi i dopracowane szczegóły graficzne, ale po jakimś czasie powoli rezygnuje z korzystania z takich rozwiązań. Naprawdę, bogate narzędzia linii poleceń do instalacji oprogramowania, które oferują praktycznie wszystkie dystrybucje Linuksa, są niezastąpione.

Wspomniany na początku homebrew ma być klonem dla Mac OS X opartym o podobne mechanizmy znane z Linuksa. I wszystko byłoby w porządku gdyby nie problem autoaktualizacji pakietów. Pod tym względem niestety jest po prostu niedopracowany. I tutaj z pomocą przychodzi kolejna nakładka: homebrew-autoupdate [5]. Ujawniając trochę szczegółów – wszystko moża doczytać na stronie projektu, jej instalacja jest bardzo prosta:

brew tap domt4/autoupdate

Po zainstalowaniu narzędzia, można w końcu wydać polecenie:

brew autoupdate

aby dowiedzieć się jakie są jego możliwości, do czego gorąco zachęcam.

MG

Tagi: , , ,

Brew – wygodny instalator dla Mac OS

20 maja, 2017 | Brak Komentarzy | Kategoria: MacOS, Porady

Apple instalatorMacbook jako komputer do pracy kojarzy się przede wszystkim z dość drogim ale za to bardzo wydajnym rozwiązaniem na długie lata. Praktycznie każda typowa czynność została tutaj zoptymalizowana tak aby ułatwić obsługę nawet bardzo opornym użytkownikom. Można śmiało napisać, że jedna z takich funkcji obrosła już legendą, mam na myśli instalator aplikacji. Zawsze bywa podawana jako argument ‘za’ i rzeczywiście dla kogoś kto miał do czynienia tylko z systemem Windows, cały proces wydaje się nieprawdopodobnie prosty. Instaluję przeciągając program do katalogu Aplikacje, odinstalowywuje przeciągając ten sam program do Kosza.

Jednak dla kogoś kto jest przyzwyczajony np. do korzystania z repozytoriów, takie podejście wydaje się nieco dziwne. Przede wszystkim o ile producent aplikacji o to nie zadba, nie ma szans aby aktualizacje przebiegały w sposób automatyczny. Druga sprawa to przyglądając się całości od kuchni, deinstalacja wcale nie oznacza wyczyszczenia systemu z pozostałości po oprogramowaniu. Wystarczy sprawdzić dokładniej swój katalog domowy. Takie przykłady można mnożyć, niemniej nie chodzi o to aby kogoś tu zniechęcać.

Ponieważ żyjemy w bardzo różnorodnym świecie gdzie zamknięte, hermetyczne rozwiązania są praktycznie rzadkością, to okazuje się, że również Mac OS da się trochę podrasować. Z pomocą wszystkim niezadowolonym przychodzi bowiem narzędzie brew. Jego instalacja z poziomu terminala systemowego jest bardzo prosta:

ruby -e $(curl -fsSL https://raw.githubusercontent.com/ →
Homebrew/install/master/install)"

Następnie korzystając z tego samego terminala wystarczy wydać polecenie:

brew search

aby otrzymać, zadziwiająco długą listę programów, które można zainstalować komendą:

brew install {nazwa programu}

Jeśli dołożymy jeszcze polecenia takie jak:

brew update
brew doctor
brew upgrade

to widać wyraźne podobieństwo do narzędzi dobrze znanych z Linuksów.

Dalsze szczegółowe omawianie narządzia brew mija się z celem, dlatego że przede wszystkim w Internecie można znaleźć mnóstwo informacji na ten temat, a po drugie zawsze najlepiej jest pobawić się samemu. Warto jednak dodać, że zdecydowanie rzadziej można znaleźć informacje o tym, że za pomocą opisywanego instalatora można instalować również aplikacje graficzne czyli np. Chrome, Firefox oraz Gimp czy Inkscape. Wybór jest naprawdę duży. W tym przypadku trzeba skorzystać z rozszerzenia cask, czyli użyć komendy rozbudowanej np.

brew cask search

Pozostałe reguły nie zmianiają się. Jak widać za pomocą paru prostych poleceń możemy w Mac OS skorzystać z dość zaawansowanego systemu instalacji, z obsługą aktualizacji oraz  innymi ciekawymi funkcjami.

MG

Tagi: , , ,