Připojení k Sybase SQL přes SSL tunel vytvořený SSH klientem Putty

Program Putty je volně použitelný SSH klient pro OS Linux a Windos. Použijeme jej typicky pro bezpečné kryptované připojení ke vzálenému počítači přes nebezpečnou síť (typicky Internet). Další použití je např. pro vytvoření bezpečného kryptovaného tunelu mezi dvěma počítači, krerým pak komunikujeme protokolem jenž sám o sobě bezpečný není.
Programy PSCP a PSFTP z balíku Putty můžeme též využít k bezpečnému přenosu souborů mezi počítači, pracují na příkazové řádce a je možné je s výhodou použít ve scriptech.

V následujím článku je popis konfigurace připojení ke vzdálenému Sybase SQL serveru (předpokladem samozřejmě je, že na vzdálené straně běží SSH server, např. Unix/Linux ssh daemon). Princip je jednoduchý:

  1. Spustíme Putty klienta nakonfigurovamého tak, že TCP port 2638 (implicitní port Sybase serveru) lokálního počítače bude forwardovat na stejný port na vzdáleném SQL serveru.
  2. Poté normálně spustíme svého Sybase SQL klienta /např. (Unix)ODBC driver ap./ a místo na vzdálený se připojíme na port 2638 vlastního stroje, jako kdyby SQL server běžel na něm.
Toto nejjednodušší schéma může mít další varianty - lokální a vzdálený port mohou být různé, SQL server nemusí běžet na stejném stroji jako SSH daemon a ten pak forwarduje pakety dále do vnitřní sítě na SQL server, může se zároveň používat některá forna port/IP forwardingu apod. V tomto příkladu vyjdeme z následujících údajů fiktivního spojení:
- Sybase SQL server i SSH daemon běží na stejném stroji "hjplus.hjplus.cz"
- SSH daemon naslouchá na TCP portu 2223 (pozor - implicitní port je 22 !)
- SQL daemon naslouchá na portu 2638 (implicitní port) minimálně na loopback rozhraní
- máme přihlašovací účet pro SSH daemona na vzdáleném systému jako uživatel "petr" s heslem "tajne"

Instalace: Program můžeme stahnout např. z domovské stránky projektu (k 30.3.2005 je aktuální verze 0.57) jako samostatný program nebo zazipovaný balík programů. Není potřeba instalace, je však vhodné si na něj vytvořit odkaz na ploše nebo v systémovém menu.

Použití: Po spuštění Putty nabídne obsah našich "sezení" (session) v konfiguračním okně. Pokud máme pro požadovaní spojení jeho parametry v nějaké stávající session již nadefinované, pouze tuto session vybereme a potvrdíme tlačítkem <Open>.
Pokud session pro požadované spojení není nadefinována, vytvoříme ji pro takto:

Session -> Host name (or IP address): hjplus.hjplus.cz (nebo IP adresu 62.240.186.160), Port=2223 , Protocol: SSH , Saved Sessions: Sybase_HJPlus (nebo jiné mnemo označení) - viz obrázek:


Přihlašovací jméno můžeme zadat v kategorii voleb Connection -> Auto-login username: petr
viz obrázek:


Věci okolo spojení:
Connection -> SSH -> Zaškrtnout Enable compression (vhodné na pomalých linkách a výkonných strojích) a "Preferred SSH protocol version:" 2
viz obrázek:


A tunel se nastaví ve volbách:
Connection -> SSH -> Tunnels -> Source port: 2638
Connection -> SSH -> Tunnels -> Destination: 127.0.0.1:2638
viz obrázek:


A potvrdíme přidání kliknutím na <Add>
viz obrázek:


Tím jsou základní volby nastaveny a je možno session uložit:
Session -> : <Save> (Právě nadefinovaná session je uložena pod jménem "Sybase_HJPlus")
viz obrázek:

Připojení se k vzdálenému počítači:
Máme-li nadefinovanou session, můžeme vzdálené připojení provést dvěma způsoby:

  1. Spustíme Putty, vybereme požadovanou session a spustíme ji tlačítkem <Open>.
  2. Vytvoříme zástupce, který definuje spuštění Putty s parametrem " -load jmeno_session. Pro výše uvedenou session a pro OS Windos by tedy v poli "Cíl" bylo
    "C:\Program Files\putty\PUTTY.EXE" -load "Sybase_HJPlus"
    V OS Linux má příkaz tvar
    /usr/bin/putty -load "Sybase_HJPlus"
Putty se zeptá na heslo ke vzdálenému účtu (pokud jsme nevyplnili položku "Auto-login username" tak i na přihlašovací jméno) a při jeho správném zadání jednak naváže spojení na SSH server, a také vytvoří tunel na SQL server. Při prvním připojení se musíme potvrdit přijetí spojení se vzdáleným počítačem kliknutím na "Accept"
viz obrázek:


Po připojení jsme v přihlašovacím shellu daného uživatele (většinou /bin/bash), okno Putty můžeme shodit na lištu (NEzavírat!, drží nám tunel!) a můžeme spustit SQL klienta.



Poslední aktualizace: 1.4.2005 Franta Hanzlík                   Připomínky na Frantu Hanzlíka