Szyfrowane połączenie VNC w Ubuntu
Zdarzają się chwile, gdy chcemy popracować na naszej zdalnej maszynie w trybie graficznym. W tym celu instalujemy serwer X11vnc oraz korzystamy z klienta xtightvncviewer lub innego dającego podobną funkcjonalność.
Można powiedzieć – OK! – jednak co z bezpieczeństwem tak przesyłanych danych? Czy nie lepiej sprawić, aby całe połączenie realizowane było przez bezpieczny protokół SSH?
Dziś zajmiemy się konfiguracją sprzętu aby móc uzyskać taki efekt! Uniemożliwia to w praktyce podsłuchanie i przechwycenie naszych danych. Zatem do roboty! W artykule założyłem, że użytkownik nigdy nie posiadał żadnych pakietów związanych z vnc oraz serwerem ssh.
1. Instalacja sshd na serwerze.
sudo apt-get install opensshd-server
2. Konfiguracja serwera sshd.
Pierwsze czym musimy się zająć to zmienić domyślny port ma którym będzie nasłuchiwać nasz serwer. W tym celu edytujemy niżej wymieniony plik:
sudo nano -w /etc/ssh/sshd_config
I zmieniamy oczywistą wartość Port na żądaną wartość. Pozostawiam Wam tutaj dowolność wyboru. Zmieniamy także wartość X11Forwarding na yes. Restartujemy serwer SSHd za pomocą komendy:
sudo /etc/init.d/ssh restart
W tym momencie mamy doskonale skonfigurowany serwer. Oczywiście wiadomym jest, że musi na nim działać serwer X. Istnieje jednak możliwość skonfigurowania połączenia bez aktywnego serwera X.
3. Konfiguracja klienta
Tutaj właściwie wystarcza 1 polecenie:
sudo apt-get install xtightvncviewer
4. Połączenie!
Połączenie pomiędzy serwerem a klientem realizujemy poniższą komendą:
ssh -t -L 5900:localhost:5900 -p [port] [user](at)[host] 'x11vnc -localhost -display :0'
Co osiągamy? Zestawiamy tunel SSH na localhoście na porcie 5900. W tym kruczku tkwi cały sekret. Oczywiście za wartości [] podstawiamy dane naszego serwera gdzie uruchomiliśmy serwer ssh, za [user](at)[host] podstawiamy login i hostname (adres ip) naszego serwera.
Uruchamiamy VNCviewer:
xtightvncviewer -encodings "copyrect zrle hextile tight fullscreen" localhost:0
Jak widać połączenie wykonywane jest na localhost! Czyli na przetunelowany port poprzez SSH.
Starałem się przedstawić pewien ogólny szkic zestawienia szyfrowanego połączenia zdalnego pulpitu w Ubuntu. Można takie połączenie zestawić w jeszcze bezpieczniejszy sposób, stosując kolejne hasła i więcej algorytmów zabezpieczeń. Dla zainteresowanych polecam zagłębienie się w lekturę manpages dla SSHd oraz X11vnc.
Do czego możemy stosować takie połączenie? Jest co najmniej kilkadziesiąt zastosowań. Obecnie stosuję to rozwiązanie do zarządzania moimi komputerami w sieci domowej. Nie muszę biegać i zmieniać non stop miejsca pracy – wszystko w jednym miejscu. Połączenie takie przydaje się także w celu naprawy zdalnej lub innych czynności administracyjnych, które wymagają włączonego serwera X.
W tym miejscu pragnę podziękować Panu Maciejowi za inspirację dla tego wpisu!
Powiadamianie sms’em w systemie Linux
Ostatnio wykonałem szybką i sprawną migrację całego mojego sprzętu na dystrybucję GNU/Linux Gentoo (spokojnie, nie opuszczam Ubuntu ani nie odwracam się tylem do Community!). Potrzebowałem narzędzia, które informowałoby mnie w każdym momencie i w każdym czasie o zakończeniu kompilacji na moim komputerze domowym. Pomyślałem oczywiście o powiadamianiu SMS. Przykładowy scenariusz:
Wychodzę na uczelnię z domu zostawiając kompilację kdebase. W trakcie 3 wykładu przychodzi do mnie sms informujący mnie o stanie wykonanej czynności, ostatnio zainstalowanych pakietach, czasie kompilacji. Loguję się poprzez ssh z komórki na mój komp, odświeżam pliki konfiguracyjne i zamykam system.
Niemożliwe? Bynajmniej!! Możliwe w 100%! Krótki i treściwy How To:
Zaznaczam, że powiadamianie sms’em możliwe jest na tą chwilę tylko i wyłącznie dla użytkowników posiadających konto GMail oraz komórkę w sieci PlusGSM. W najbliższej przyszłości (czyt. po sesji :P) mam zamiar przerodzić projekt w większą aplikację do powiadamiania użytkownika o dowolnej czynności. HowTo jest tylko szkicem! Aplikacja „mail” powinna znajdować się w paczce „sendmail”.
Konfiguracja powiadamiania SMS'em w Linuksie
1. Konfigurujemy sSMTP. Oczywiście komendy typowe dla systemu Gentoo zamieniamy na typowe dla Ubuntu (sudo apt-get install itp.). Gdyby ktoś bardzo chciał mogę dać zaproszenie do GMail.
2. Tworzymy plik wykonywalny (w dowolnym miejscu, może być np. /opt/powiadom) i wpisujemy doń:
#!/bin/bash Po czym modyfikujemy do dla swoich potrzeb. Powyższy przeznaczony jest do powiadamiania o statusie wykonania Emerge. Po drobnej modyfikacji może on służyć do powiadamiania o statusie wykonania dist-upgrade lub innej czynności związanej z apt-get.
if [ $? = 0 ];
then
{
echo "Emerge zakonczone, ostatni zainstalowany pakiet:";
genlop -lnu | sed -e "s/.*\([/]\+\)/\1/" | tail -n 2;
} | mail -s "LOG" -c 48xxxxxxxxx@text.plusgsm.pl 48xxxxxxxx@text.plusgsm.pl;
else { echo "EMERGE NIEUDANE"; } | mail -s "LOG" -c 48xxxxxxxxxxxxxxx@text.plusgsm.pl 48xxxxxxxxxxxx@text.plusgsm.pl ;
fi
Modyfikacje wnosić możemy w dowolny sposób, pamiętając o zachowaniu składni języka BASH.
3. Dodajemy dowiązanie symboliczne naszego pliku wykonywalnego do /usr/sbin/powiadom
4. Przykładowe wywołanie skryptu:
$ sudo apt-get dist-upgrade; sudo powiadom
# emerge -vaD world; powiadom
Skrypt jest na razie tylko skryptem. Nie ponoszę odpowiedzialności za jego działanie. Jest to pomysł na większe dzieło, którym zamierzam się zając w najbliższych tygodniach. Rozszerzenie funkcji powiadamiania na inne sieci GSM + uniezależnienie skryptu od GMail + zwiększenie funkcjonalności + działanie na wszystkich systemach + uniwersalność. To będzie mój cel w najbliższym czasie. Dodatkowym celem będzie rozszerzenie funkcjonalności na serwery XMPP.
OpenCON 2007 – podsumowanie

Dnia dzisiejszego w godzinach 10.00 – 15.00 w auli Politechniki Wrocławskiej odbył się pierwszy w historii OpenCON . Miałem zaszczyt być na tej jednodniowej konferencji poświęconej w całości Wolnemu Oprogramowaniu. Konferencję tą organizowała ASSO , znana między innymi z FreeCON’a. A było to tak:
Ciepły, styczniowy poranek. Godzina 8.00. Ledwo zwlekam się z łózka poganiany przez Hanię. Łazienka, szybka przekąska, kawa, laptop pod rękę i w drogę. Po 30 minutach paradowałem z dumą z identyfikatorem „OpenCON” po całym budynku A1 Politechniki. Pomijając nieistotne sprawy jak polowanie na kanapki tudzież laptopa znajomego, granie we Frozen Bubble i dobitne grupowe wskazywanie odgłosami brzuszno-gardłowymi w stylu „Windows bleeee” na jedyny słuszny system operacyjny – przejdźmy do sedna sprawy : prelekcje.
Wykład pierwszy
„Czy potrzebujemy drogich rozwiązań – wolne implementacje protokołów dynamicznego routingu w praktyce administratora sieci” prowadzony przez Piotra Kościańskiego – zaciekawił. I tylko tyle – w zasadzie nic z przedstawionych rzeczy nie było mi obcych – poznałem tylko program Quagga oraz w teorii nauczyłem się konfiguracji sieci rozproszonej z dwoma i więcej przyłączami do sieci Internet. Ot, taka zabawa administratora – nikomu niepotrzebna (w końcu i tak większość rzeczy dziś jest automatyzowana aby admin mógł spokojnie grać w ET..).
Pytań do wykładu było kilka – w zasadzie większość dotyczyła zabezpieczeń tego typu sieci (stworzonej na oprogramowaniu OpenSource). Można się było tego domyślić
Wykład drugi
„Apple, oprogramowanie open source i Macintosh” poprowadzony przez Wojciecha Roleckiego. Cóż – znudził mnie. Nie dość że czytał wykład z ekranu laptopa (Mac’a oczywiście), to jeszcze było to zwyczajnie nieciekawe. Zastrzyk historii, pokazanie hybrydowego jądra OSX, wskazanie na OpenSource. Na koniec zadałem pytanie dot. środowiska graficznego OSX – czyli Carbon – zaciekawiło mnie czy dostępne są ogólnodostępne źródła dla programistów aplikacji okienkowych dla MacOS. Okazało się tak – oczywiście nie jako OpenSource tylko jako licencjonowana aplikacja (jedyna słuszna) dostarczana bezpośrednio od Apple. Heh – nadal uważam że Mac’i są ble. :) Poza tym zrobiło mi się w połowie wykładu zimno z powodu zbytniej klimatyzacji sali… Katorga..
Tutaj nastąpiła krótka przerwa na posiłek i kawę, w której to tłumaczyłem, jak zainstalować rar’a w Ubuntu (:P) i poznałem członków i prezesa ww. organizacji ASSO, z którą to mam nadzieję w niedalekiej przyszłości współpracować. Na dodatek wydaje się, że nie pozostanie to tylko w sferze marzeń. :-)
Wykład trzeci
„Nie tylko MP3: otwarte formaty multimediów” znowuż Piotr Kościański. Ciekawy, aczkolwiek mało odkrywczy wykład. Ot, do posłuchania i krótkiej dyskusji na temat przyszłości OGG Vorbis i innych wolnych kodeków multimediów. Było miło, w pamięć specjalnie nie zapadło. W czasie wykładu zostały rozdane kartki z pytaniami konkursowymi. Wypełniłem i oddałem.
Wykład czwarty
„Wolne Oprogramowanie – moralność czy funkcja?” – Paweł Wilk. Czekałem na ten wykład. I się doczekałem – warto było! Czegoś takiego jeszcze nie widziałem ani nie słyszałem – organizatorzy musieli przerwać dyskusję z powodu ograniczeń czasowych. W niedługim czasie powinny pojawić się w sieci filmy z tego wykładu – podam natychmiast linka gdyż opowieść nie odda klimatu… Jeden cytat:
„Niektórzy z nas używają wolnego oprogramowania. Potem przychodzi taki, mówi że zainstalował linuksa, jest debeściak, a na końcu występuje w TVN”. Specyficzny humor prowadzącego + ciekawy temat doprowadziły do sytuacji, w której nie mogłem nawet zadać żadnego pytania (zbyt wielu chętnych, ogólna dyskusja i miła, geekowa atmosfera :-)).
Po wykładzie został rozwiązany konkurs. I tutaj niespodzianka – wygrałem pierwszą nagrodę :P. Pudełkową, oryginalną dystrybucję SuSE Linux 9.3 Professional z pełnym supportem + aktualizacjami. Korzystam z Ubuntu, więc pójdzie na półkę. Wygląda ładnie ;-)
To tyle z OpenCON’a. Zostają jak zawsze wspomnienia, nowe znajomości. Czekam na kolejne edycje. Pozostał mały niesmak – za krótko. Za mało. Ale już niedługo EduCON! Niestety Warszawa. Następnie FreeCON… Może już po drugiej stronie mikrofonu? :]
Filmy + zdjęcia pojawią się, gdy tylko zostaną zamieszczone w Internecie. Tymczasem zdjęcie mojej nagrody głównej. Mogę jedynie przeprosić za jakość – telefon komórkowy…
Broadcom BCM4318 – instalator dla Ubuntu
Dla własnej wygody napisałem skrypt do instalacji karty bezprzewodowej Broadcom BCM4318:
Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
Skrypt instaluje i konfiguruje kartę automatycznie.
Wymaga włożonej do napędu CD i dodanej do spisu repozytoriów płyty LiveCD Ubuntu Edgy Eft.
Zamieszczam – może ktoś skorzysta…
Bezpośredni download
Firestarter a pusty Events log – rozwiązanie problemu
Kilkadziesiąt minut temu przedstawiony mi został problem pustego listingu Events w programie Firestarter. Zakładka Events odpowiada za wyświetlanie wszystkich zdarzeń dotyczących interfejsów sieciowych – ich logowaniem zajmuje się demon syslogd. Niestety – zakładka ta w Ubuntu 6.10 pozostaje pusta przez cały czas działania Firestartera. Okazało się, że standardowo zainstalowany w Ubuntu menadżer logów syslogd oraz klogd nie radzą sobie w żaden sposób z prefiksem —log-level którego używa Firestarter (i nota bene także iptables). Syslog.conf, mimo że zawiera regułkę LOG_LEVEL=INFO ani myśli pokazywać logów – tak do /var/log jak i na konsole wirtualne tty. Rozwiązaniem była w tej sytuacji zmiana domyślnego menadżera logów na (IMHO) 100% lepszy syslog-ng oraz edycja plików konfiguracyjnych Firestartera.
Dojście do tego rozwiązania nie było banalne i musiałem poświęcić sporo czasu na diagnostykę. Oto krótki HowTo dla wszystkich, którzy borykają się z tym problemem:
Kopiujemy konfigurację Firestarter’a do odpowiednich lokalizacji:
sudo cp -r /etc/firestarter/inbound /usr/local/etc/firestarter
sudo cp -r /etc/firestarter/outbound /usr/local/etc/firestarter
Modyfikujemy konfigurację Firestarter’a:
sudo nano -w /etc/firestarter/configuration
sudo nano -w /usr/local/etc/firestarter/configuration
W obu tych plikach, na samym ich końcu, sprawdzamy czy mamy wpis:
LOG_LEVEL=info
Jeśli nie to dodajemy go i zapisujemy pliki, jeśli tak to zostawiamy jak jest.
W dalszej kolejności instalujemy syslog-ng
sudo apt-get install syslog-ng
Restartujemy naszego nowego menedżera logów:
sudo /etc/init.d/syslog-ng restart
I włączamy program Firestarter. U mnie zadziałało :).



