Remote Access

Opis

Aplikacja pozwalająca na zdalny dostęp do komputera osoby uruchamiającej program pod systemem Windows (2000 i nowszym). Po stronie serwera potrzebna jest zainstalowana i działająca instancja OpenSSH, a osoby łączącej się dowolny klient VNC.

Program uruchomiony u klienta spowoduje zamknięcie działających instancji VNC (jeżeli są takowe), oraz poinformuje o tym fakcie, następnie połączy się z zdalnym serwerem SSH przekierowując wstecznie losowy port i uruchomi własny serwer VNC,który również odpowiednio skonfiguruje oraz wykona kopie zapasową ustawień zainstalowanego serwera, jeżeli jest zainstalowany.

Elementy

Aplikacja składa się z kilku komponentów uruchamianych u klienta:

  • plink.exe – (./data/) – Program pozwalający na połączenie się z serwerem SSH.
  • winvnc.exe – (./data/) – Serwer UltraVNC wykorzystywany do kontroli komputera.
  • vnchooks.dll – (./data/) – Biblioteka dynamiczna wymagana przez UltraVNC.
  • Aplikacja uruchamiająca – Program napisany w C, będący częścią Remote Access konfigurujący i uruchamiający powyższe elementy w odpowiedni sposób.
  • 7ZSD.sfx – (./tools/) – Nagłówek samorozpakowującego się archiwum zawierającego powyższe komponenty.

W celu zbudowania aplikacji potrzebne są jeszcze inne narzędzia pomocnicze:

  • 7ZSD.sfx – (./tools/) – Nagłówek samorozpakowującego się archiwum zawierającego programy uruchamiane po stronie klienta.
  • www.7-zip.org/ – (./tools/) – Program tworzący archiwum zawierające komponenty aplikacji.
  • upx.exe – (./tools/) – Program kompresujący pliki wykonywalne.
  • ResHacker.exe – (./tools/) – Program pozwalający edytować zasoby plików wykonywalnych.
  • puttygen.exe – Aplikacja do zmiany kluczy OpenSSH do formatu PuTTY.
  • Dev-C++ – Środowisko wykorzystywane do kompilacji aplikacji uruchamiającej. (Przy odrobinie chęci można wykorzystać inne środowiska)

Konfiguracja

Konfiguracja składa się z kilku elementów. Po stronie serwera należy stworzyć konto SSH, na które nie można się zalogować w trybie interaktywnym (brak konsoli), dla ów użytkownika należy wygenerować klucze bez hasła (lub skorzystać z agenta) i odpowiednio skonfigurować OpenSSH, aby pozwalał na przekierowania portów oraz logowanie z użyciem pary kluczy.

Konfiguracja aplikacji natomiast składa się kilku plików ini oraz klucza prywatnego z serwera SSH. (Tak prywatnego, dlatego konto nie zezwala na logowanie się do konsoli).

W pierwszej kolejności należy umieścić odpowiednie narzędzia w odpowiednich katalogach, a następnie zadbać o konfiguracje UltraVNC. Ta znajduje się w katalogu ./data/ w dwóch plikach. ultravnc.ini oraz vnc.ini. Pierwszy plik to konfiguracja UltraVNC wykorzystywana przez samo VNC, drugi to zrzut rejestru (do formatu ini oczywiście). Opis konfiguracji można znaleźć na stronie projektu. Nas interesuje w zasadzie tylko hasło, cała reszta jest skonfigurowana na potrzeby aplikacji. Hasło można skonfigurować w instancji UltraVNC i wyciągnąć z pliku konfiguracyjnego lub rejestru.

Następnym elementem konfiguracji jest właściwa konfiguracja aplikacji. W katalogu ./settings/ należy utworzyć katalog bez spacji, będzie to nazwa konfiguracji, a następnie skopiować do nowego katalogu plik ./settings/example/settings.ini oraz klucz prywatny serwera SSH pod nazwą key.ppk. Następnie edytujemy plik settings.ini:

  • RServer
    • PortRangeStart – Początkowy port do przekierowania.
    • PortRangeEnd – Końcowy port do przekierowania. Port z tego zakresu jest przekierowywany.
    • RemoteHost – Adres serwera SSH.
    • RemoteUser – Nazwa konta SSH.
    • RemoteHostSSHPort – Port SSH na który aplikacja ma się łączyć.
  • SshHostKeys
    • rsa2@22:example – Klucz hosta SSH dodany przez aplikacjie PuTTY lub plink, można je znaleźć w rejestrze (HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys). Nazwa wpisu musi oczywiście zawierać poprawny port i adres serwera SSH. Można definiować wiele elementów.

Budowanie

Przed wysłaniem aplikacji do osoby do której komputera chcemy się dostać aplikacje należy skonfigurować, skompilować i przygotować. Źródła aplikacji znajdują się w katalogu ./src/. Skompilowana aplikacja powinna znalesć się w katalogu ./bin/ pod nazwą RemoteAccess.exe.

Aplikacje do dystrybucji przygotowuje uruchomienie pliku ./make_7zSFX.cmd. Po uruchomieniu pojawi się prośba o podanie nazwy konfiguracji, po jej podaniu w katalogu ./rel/ powinniśmy znaleźć rezultat naszych prac.

Wykorzystanie

Gotową aplikacje przesyłamy do osoby zainteresowanej. Osoba ta po uruchomieniu aplikacji może zostać spytana o pozwolenie na połączenie przez firewall, na co powinna wyrazić zgodę. Po chwili na ekranie w prawym górnym rogu pojawi się niewielkie okienko z stanem aplikacji oraz guzikiem Disconnect. Po połączeniu na ów okienku widnieć będzie losowy port (z zdefiniowanego przy budowaniu zakresu), który podaje osobie chcącej się połączyć. osoba ta łączy się przy pomocy klienta VNC do serwera SSH na podany port, wpisuje definiowane w konfiguracji hasło i ma dostęp do pulpitu maszyny klienta.

Znane problemy

  • W UltraVNC niekiedy nie chce się zastosować ustawienie Allow loopback connections. W tej sytuacji po połączeniu operator musi poinstruować klienta jak włączyć tą opcje. (Administracja serwera VNC).

Licencja

Aplikacja jest rozpowszechniana na licencji GNU General Public License v3 oraz licencjach poszczególnych komponentów uruchamianych na komputerze klienta.

Download

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *