Czasem jest tak, ze do bezpiecznego i prywatnego surfowania po sieci sam VPN nie wystarcza – a czasem jest tak, że VPN to aż za dużo. Z pomocą przychodzi wtedy zdalny pulpit, który w wielu scenariuszach może być bardziej przydatny od VPNa.
We współpracy z firmą ArubaCloud pokazaliśmy Wam, jak postawić swój serwer backupów, jak skonfigurować własny serwer VPN i podłączyć do niego komputer, telefony komórkowe oraz domowy ruter a także jak schować się przed cenzurą sieci i jak zacząć serwer zabezpieczać. Dzisiaj pokażemy, jak jeszcze możemy serwer Aruby wykorzystać, by poprawić swoje bezpieczeństwo i prywatność.
Jeśli nie macie jeszcze swojego własnego serwera, to jest to dobra okazja by się w taki wyposażyć. Aruba oferuje dwa miesiące korzystania ze swojego podstawowego serwera gratis – a po zakończeniu promocji będzie on Was kosztował zaledwie 4 złote miesięcznie. Instrukcję jak krok po kroku skorzystać z promocji i uruchomić swój serwer znajdziecie w tym artykule. Jeśli macie już swój serwer – to zapraszamy do lektury kolejnych akapitów.
Po co mi zdalny pulpit
Zdalny pulpit to najprościej rzecz ujmując możliwość korzystania z innego komputera. W naszym przypadku tym innym komputerem będzie serwer w ArubaCloud – z innym adresem IP, innym systemem operacyjnym i inną przeglądarką. Czym takie rozwiązanie różni się od VPNa?
Po pierwsze VPN zmienia (ukrywa) jedynie nasz adres IP, podczas kiedy korzystanie ze zdalnego pulpitu nie tylko daje nam inny adres IP, ale także tworzy dodatkową warstwę pomiędzy nami a serwerem, który chcemy odwiedzić. Dzięki temu serwer docelowy nie tylko widzi inny system i przeglądarkę (to akurat możemy względnie prosto sfałszować) ale także w razie gdyby serwer zdalny próbował nas zaatakować (np. poprzez błędy we wtyczkach czy przeglądarkach) to wszystko, co może osiągnąć, to uzyskanie kontroli nad naszym serwerem, gdzie nie posiadamy żadnych istotnych danych i który możemy w każdej chwili porzucić lub przywrócić do stanu sprzed ataku. Atakujący w najgorszym razie będzie mógł poznać adres IP z którego się połączyliśmy, lecz nie dostanie się do naszych danych. Dodatkowym atutem jest fakt, że zdalne zautomatyzowane ataki najczęściej wymierzone są w systemy Windows, przez co większość z nich nie ma możliwości powodzenia na naszej przeglądarce na serwerze.
Drugim dużym atutem takiej konfiguracji jest możliwość korzystania z niej do poszczególnych przypadków. Oczywiście nie wątpimy, że są wśród Was osoby, które VPNa nigdy nie wyłączają, jednak większości użytkowników nie jest on potrzebny cały czas. Zamiast go zatem włączać i wyłączać czasem prościej jest zalogować się na zdalny serwer, zrobić co jest do zrobienia i wrócić do swojego zwykłego komputera.
Przykładowe scenariusze, przy których zdalny pulpit może się przydać to:
- odwiedziny na stronach które mogą być potencjalnie złośliwe (np. w trakcie analizy zgłoszonego podejrzenia infekcji witryny),
- pobieranie złośliwego oprogramowania z serwerów kontrolowanych przez przestępców (nie zostawiamy śladów bezpośrednio do nas prowadzących),
- analizy incydentów związanych z wyciekami danych (na wszelki wypadek lepiej nie robić tego z domowego adresu IP),
- pobieranie plików z serwerów hostingowych (nigdy nie wiadomo, na co się trafi…),
- czytanie artykułów w serwisach które ograniczają liczbę wizyt z poszczególnych adresów IP (odpalanie VPNa dla jednego artykułu to trochę strzelanie z armaty do muchy),
- korzystanie z Tora z dodatkową warstwą bezpieczeństwa (chociaż nasz poradnik nie obejmuje tego scenariusza, to instalacja oprogramowania nie będzie problemem).
Czas zatem skonfigurować naszą usługę.
Konfiguracja serwera w Aruba Cloud
Na serwerze zdalnym musimy zainstalować wymagane oprogramowanie: system okien X window, środowisko graficzne Xfce oraz podstawowe aplikacje z grupy „Desktop”. W tym celu posłużymy się systemem zarządzania pakietami – yum:
$ sudo yum groupinstall "Desktop" "Xfce" "X Window System"
Do serwera graficznego będziemy łączyli się używając protokołu VNC. Jeśli nie mamy zainstalowanej usługi VNC wydajemy polecenie:
$ sudo yum install vnc-server
Aby zarządzać usługą VNC musimy skopiować odpowiedni plik. Plik o nazwie [email protected] kopiujemy jako vncserver@:1.service i ustawiamy w nim nazwę użytkownika dla którego będzie uruchamiana usługa VNC:
sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
Edytujemy plik /etc/systemd/system/vncserver@:1.service. W pliku tym zmieniamy słowo <USER> na nazwę naszego użytkownika na serwerze. Proces VNC będzie uruchamiany z konta tego użytkownika. Dla użytkownika o loginie 'krystian’ plik wygląda następująco (zmiany nastąpiły w linii 9 oraz 10):
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l krystian -c "/usr/bin/vncserver %i" PIDFile=/home/krystian/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
Ustawiamy hasło do połączenia z VNC:
vncpasswd
Aby uruchomić środowisko graficzne Xfce po nawiązaniu połącznia VNC edytujemy plik /home/krystian/.vnc/xstartup. W pliku tym wprowadzamy nazwy programów które chcemy, aby zostały uruchomione po nawiązaniu połączenia do środowiska X Window. My uruchomimy środowisko Xfce:
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS #exec /etc/X11/xinit/xinitrc startxfce4
Następnie uruchamiamy usługę na serwerze:
sudo systemctl start vncserver@:1.service
Jeśli zdecydujemy się na uruchamianie usługi podczas startu systemu, wykonujemy polecenie:
sudo systemctl enable vncserver@:1.service
Usługa VNC zostanie uruchomiona na lokalnym adresie 127.0.0.1:5901.
Mam VNC, mam środowisko graficzne, ale jak mam się podłączyć?
Usługa VNC została uruchomiona serwerze zdalnym, na porcie 5901. Usługa nasłuchuje jednak na lokalnym interfejsie localhost:5901. Zdecydowanie nie rekomendujemy uruchamiania usługi na publicznym interfejsie – ograniczymy w ten sposób ryzyko potencjalnych nadużyć związanych z możliwością wystąpienia błędów w usłudze VNC. Jak zatem mamy się teraz połączyć do loklanie uruchomionej usługi? Skonfigurujemy w tym celu tunel, w którym przekierujemy port 5901 z serwera zdalnego do naszego komputera.
Tunel SSH z systemu Windows z użyciem PuTTy
Uruchamiamy PuTTy i w głównym oknie programu PuTTY wybieramy menu Connection -> SSH -> Tunnels. Ustawiamy port źródłowy (Source port: 5901) oraz port docelowy (Destination port: localhost:5901). Następnie instalujemy klienta VNC (np. TightVNC) w którym podajemy adres komputera zdalnego: 127.0.0.1:5901.
Musimy pamiętać, że tunel otwarty jest tylko wtedy, gdy jesteśmy zalogowani na serwerze. Zamykając okno PuTTY jednocześnie zamykamy nasz tunel i zrywamy połączenie ze zdalnym pulpitem.
Tunel SSH z systemu Linux
W celu utworzenia tunelu w konsoli wydajemy polecenie:
ssh -C -L 5901:localhost:5901 krystian@adres_serwera_aruba
Dzięki parametrowi -C kompresujemy dane a parametr -L 5901:localhost:5901 powoduje, że tunelujemy połączenie TCP ze zdalnego serwera z portu 5901 do naszego komputera (localhost) na port 5901. Po uzyskaniu połączenia SSH, uruchamiamy program do nawiązywania połączeń VNC. W Linuksie doskonale sprawuje się vinagre, który oprócz VNC obsługuje także inne protokoły, np. RDP.
Co dalej?
Po połączeniu do serwera możemy zaninstalować potrzebne nam oprogramowanie, np. przeglądarkę WWW, klienta IRC czy paczkę Tora. Nic nie stoi też na przeszkodzie aby uruchomić kolejne usługi VNC dla innych uzytkowników. Aby dodać kolejną usługę należy utworzyć nowe konto dla użytkownika:
adduser adam
a następnie skopiować utworzony już plik /etc/systemd/system/vncserver@:1.service jako vncserver@:2.service:
cp /etc/systemd/system/vncserver@:1.service /etc/systemd/system/vncserver@:2.service
W utworzonej usłudze wystarczy zamienić <USER> na nazwę użytkownika (adam) oraz powtórzyć kroki z tego poradnika. Usługa będzie uruchomiona na porcie 5902/tcp itd.
Podsumowanie
Na koniec mała premiera – pierwszy film naszego kanału na Youtube, pokazujący krok po kroku operacje opisane powyżej. Dajcie znać czy się Wam przydał – jeśli uznacie taką formę za użyteczną, to będą kolejne.
Dla pełnej przejrzystości – za przygotowanie oraz opublikowanie powyższego artykułu otrzymujemy wynagrodzenie.
Komentarze
Równie dobrze można to zrobić na lokalnej wirtualnej maszynie.
Można, ale wtedy wychodzisz ze swojego adresu IP a tego autor artykułu chciał uniknąć. No i (dla paranoików), łatwiej o ucieczkę z VM do hosta niż do hosta przez klienta VNC.
Z drugiej strony, można użyć whonixa, ale to trochę overkill dla odmiany.
Ale wtedy wychodzisz na swiat poprzez swoje polaczenie internetowe.
A nie prościej Socks proxy przez tunel SSH i wtyczka do przeglądarki?
Fajny wpis, dawno już nie było ciekawego, praktycznego oraz bardziej technicznego poradnika. Dla użytkowników z systemem Linux polecam aplikację Remmina zamiast Vinagre. Remmina również obsługuje VNC/RDP a dodatkowo tunelowanie SSH.
Mozna skorzystać równiez serwera X zainstalowanego lokalnie . Xy można zainstalować równiez na win32, polecam VcXsrv. Dzieki takiemu rozwiązaniu możemy zrobić skróty na naszym pulpicie do zdalnej przeglądarki.
peace
A nie lepszym zamiennikiem VNC jest X2GO?
ssh -X user@server
$ firefox
Voila! Zdalny Firefox przekierowany na Twoje X-y.
All you need is love (and a bit of Linux).
+1
trzeba tylko pamiętać że Xy i firefoksa i tak trzeba zainstalować, ale konfiguracja VNC odpada :-)
Filmik super, WINCYJ!!!
sudo apt-get install xrdp
sudo apt-get install xfce4
echo xfce4-session >~/.xsession
sudo service xrdp restart
Jasne. Anonimowo blah blah… A przy rejestracji:
Imię: *
Nazwisko: *
Forma prawna:
FirmaOsoba prywatna
Firma: *
NIP lub PESEL: *
Telefon komórkowy: *
Wymagany jest poprawny numer telefonu ponieważ voucher jest wysyłany SMS-em.
Adres email: *
Sami sie w to bawcie. Znam o wiele lepsze za btc.
Myślę, że w używaniu zdalnego pulpitu w sposób który jest opisany w artykule nie chodzi o zapewnienie anonimowości, lecz bezpieczeństwa. To trochę różne sprawy jednak. Oczywiście o anonimowości nie ma mowy, skoro rejestrujemy się w sposób jaki wkleiłeś. Ale tu raczej chodzi o to, by ewentualne ataki/malware nie atakował Twojego własnego komputera, lecz zdalny serwer.
He he dokładnie też mnie to zainteresowało :) chociaż VPS za 4 zł do zabawy i na serwer LAMP dla mnie wystarczy
Ale przeciez takie sprawy tak samo jak konta bankowe i rejestracje sim… Stawiasz winko za 5 zł i robisz na pana żula.
Ale serwer zna twoje dane tj. IP i komórkę.
Poprosze o przyklady, sprawdze ;-)
Fajna reklama :)
decker lepszy
zaczekam az bedziecie udostepniac dokera, taki maly linux zajmuje jakies 4-5Mb
Przy prędkościach jakie oferuje Aruba to napewno będzie wydajna praca. Podobnie jak reklamowany vpn,który do niczego się nie nadaje. Gdyż prywatność na ich usłudze jest zerowa. A jeśli jeszcze do tego złamiemy regulamin to Aruba od razu podaję nasze dane na tacy.
No wszystko bylo by fajnie jak by wasza zajebista aruba miala zabezpieczenie DDOS. Polasilem sie po waszym letnim artykule na arube no ale porazka jest.
Mógłbyś rozwinąć? Za te 4 złote to myślałem, żeby wziąć do zabawy, ale jak są problemy to raczej podziękuję.
ssh -D 8081 -C2 -N user@server -p 10023
Witam
u mnie coś nie chodzi przy probie odpalenia usługi.
„Job for vncserver@:1.service failed because the control process exited with error code. See „systemctl status vncserver@:1.service” and „journalctl -xe” for details.”
z systemctl status vncserver@:1.service
„vncserver@:1.service – Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2016-11-17 07:16:52 EST; 33s ago
Process: 11281 ExecStart=/usr/sbin/runuser -l thor -c /usr/bin/vncserver %i (code=exited, status=9)
Process: 11279 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Nov 17 07:16:46 zeus systemd[1]: Starting Remote desktop service (VNC)…
Nov 17 07:16:52 zeus systemd[1]: vncserver@:1.service: control process exited, code=exited status=9
Nov 17 07:16:52 zeus systemd[1]: Failed to start Remote desktop service (VNC).
Nov 17 07:16:52 zeus systemd[1]: Unit vncserver@:1.service entered failed state.
Nov 17 07:16:52 zeus systemd[1]: vncserver@:1.service failed.
”
nie mam pomysłu
daj output z `journalctl -xe`, za mało danych by zdiagnozować w czym problem
— Unit session-c5.scope has begun starting up.
Nov 17 12:50:51 zeus runuser[11929]: pam_unix(runuser-l:session): session opened for user thor by (uid=0)
Nov 17 12:50:51 zeus runuser[11929]: A VNC server is already running as :1
Nov 17 12:50:51 zeus runuser[11929]: pam_unix(runuser-l:session): session closed for user thor
Nov 17 12:50:51 zeus systemd[1]: vncserver@:1.service: control process exited, code=exited status=98
Nov 17 12:50:51 zeus systemd[1]: Failed to start Remote desktop service (VNC).
— Subject: Unit vncserver@:1.service has failed
— The result is failed.
Nov 17 12:50:51 zeus systemd[1]: Unit vncserver@:1.service entered failed state.
Nov 17 12:50:51 zeus systemd[1]: vncserver@:1.service failed.
Już masz uruchomioną tą usługę dlatego masz błąd, bo próbujesz uruchomić ją drugi raz:
Nov 17 12:50:51 zeus runuser[11929]: A VNC server is already running as :1
spróbuj:
`sudo systemctl restart vncserver@:1.service`
Witam
kiedy wydaje komendę restart jest to samo
Kup serwer ssd na ovh i po problemie. Nie dość że bije na głowę Arube pod każdym względem to w dodatku nie ma tak pojeb…. interfejsu. Inna bajka że za każdą reinstalację w Aruba placisz dodatkowo.
Ja tam wrzuciłem im te 2 dyszki i się bawię, już któryś raz z kolei system zmieniałem (VPN na CentOSie wg poradnika za nic nie chciał ruszyć, a że tu gdzie jestem nowe prawa weszły w życie trzeba mi było na gwałt, to stanęło na Ubuntu 16 LTS) i nie skasowali mnie za to nic ekstra.
Prywatność? Mam watpliwości, ale na moje potrzeby codzienne starcza.
Ale usługę masz już włączoną. Rób tunel i łącz się przez vnc :)
Czy na tym VPS Cloud co mamy zainstalowane śr graficzne, możemy zainstalować VPN tak by tylko można było się zalogować na taki pulpit zdalny z tylko i wyłacznie z jednego adresu IP tworząc prawdziwy i bezpieczny tunnel ? Oczywiście że można ale czy ten VPS za 4 zł uniesie VPN wraz ze środowiskiem graficznym ? i jak zrobić by logowanie było tylko z jednego adresu IP ?
Możemy zainstalować vpn – serwer w Aruba Cloud powinien dać radę (nawet ten za 4 zł).
Jeśli chcesz zezwalać na połączenia tylko z jednego adresu – ustaw regułę na firewall, której zezwalasz na połączenia na port 5901 z określonego adresu ip… szybki przykład:
#zezwalamy na połączenie z określonego adresu ip
iptables -A INPUT -p tcp -s Adres_ip_ktory_moze_sie_podlączyć –dport 5901 -j ACCEPT
#całej reszcie blokujemy dostęp
iptables -A INPUT -p tcp –dport 5901 -j DROP
Jeśli korzystasz z VPN, jako adres IP musisz podać adres w tunelu vpn. Ponadto usługa vnc powinna nasłuchiwać na adresie serwera vnc, a nie na 127.0.0.1.
To tak na szybko :)
Witam.
Czy na tej maszynie da się postawić server dns.
Jakieś gratisy od firmy Aruba dla obecnych klientów? :)
Po wpisaniu polecenia sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
pojawia mi się błąd:
cp: cannot stat ‘/lib/systemd/system/[email protected]’: No such file or directory
a mam zainstalowany vnc-server, próbowałem już odinstalowywać i instalować ponownie, nie pomogło. Co mogę jeszcze zrobić?
Po którejś z kolei próbie przeinstalowywania vnc-serwer w końcu się udało, lecz nie mam teraz w pliku /home/marcin/.vnc/xstartup
w katalogu .vnc jest tylko plik passwd
nie mam zielonego pojęcia dlaczego, robiłem tak samo jak jest na filmiku
Cześć, wreszcie udało mi się wszystko skonfigurować.
Mam tylko pytanko czy to się tak zawsze tnie wszystko? 1 gb ramu dla CenOs to chyba wystarczająco.
Tnie się tak, że widać animacje jak przeciągam okno przeglądarki :(
Jakieś sterowniki do karty graficznej muszę zainstalować?
Cześć. Bawiłem się z ustawieniami myszki na połączeniu zdalnego pulpitu coś odznaczyłem i pojawił mi się komunikat „Connection has been gracefuly closed” I teraz przy każdej próbie połączenia się mam ten komunikat.
Resetowałem już serwer niestety nic nie pomogło. Byłbym wdzięczny za pomoc, bo nie mam zielonego pojęcia jak to naprawić ;(