Cesta: Aktuality / Technické články / Propojte si platformy


Propojte si platformy

Luděk Šafář, Services Team Leader Novell Professional Services

Provozujete ve vaší síti společně Linux a Windows? Dělá to tak spousta lidí a podobně jako vy se denně potýkají s problematikou propojení těchto dvou světů. V tomto článku se podíváme na to, jakým způsobem lze na různých úrovních zprostředkovat mezi těmito dvěma operačními systémy výměnu potřebných informací.

Síťová vrstva

Na úrovni síťových protokolů jsou oba systémy propojitelné velmi jednoduše – IP jako komunikační vrstva a rodina protokolů nad ní postavené (tedy zejména TCP) je v současnosti de-facto standardem objevujícím se v různých modifikacích kam se podíváme. Valná většina otevřených operačních systémů používá TCP/IP jako „standardní“ síťový protokol a ve všech aktuálních verzích Windows tomu není jinak.

Proto můžete firewally, aplikační brány nebo proxy – tedy síťové subkomponenty, které jsou zodpovědné na řízení síťové komunikace na úrovni jednotlivých paketů – kombinovat téměř libovolně. Linux najdete na mnoha místech v roli firewallu nebo proxy, bez ohledu na to, jaké operační systémy se vyskytují ve vnitřní síti. Podobně to platí i naopak. Žádná specifická rozšíření definice paketů jako takových vám tudíž problémy způsobovat nebudou.

Ale pakety jsou příliš nízko – ve většině případů potřebujeme mezi operačními systémy sdílet data nebo vzájemně přistupovat k aplikacím.

Sdílení dat na úrovni souborových systémů

Nejjednodušším způsobem sdílení dat mezi dvěma operačními systémy je použít úložiště, které je přístupné oběma (například v situaci, kdy je více operačních systému nainstalováno na jednom počítači).

Z prostředí Linuxu můžete číst i zapisovat na souborové systémy FAT (jak původní FAT16, tak novější implementaci FAT32). Existují standardní moduly do Linuxu, které umožňují číst i z oddílů se souborovým systémem NTFS, nicméně zápis na tyto oddíly je stále chápán jako experimentální a relativně dobrodružná věc s reálným rizikem ztráty dat. Nejbezpečnější variantou je použít speciální moduly, které jsou navázány na ovladače pro souborový systém přímo z Windows (lépe řečeno jejich binární kód). Alternativou jsou pak nejnovější beta verze modulů s podporou zápisu.

V Linuxu existuje souborových systémů přehršel a jsou optimalizované pro různé způsoby využití – některé pro velké množství malých souborů (například ReiserFS), některé zase pro malé množství extrémně velkých souborů (např. XFS) a podobně. Některé z nich mají ovladač, který umožňuje jejich použití i ve Windows – příkladem může být souborový systém Ext2/Ext3, propojený projektem EXT2IFS.

Sdílení po síti – kdo je kdo?

I když topologie rozvržení sítě může být jiná, budeme pro potřeby tohoto textu používat termín server pro počítač, který poskytuje daný prostředek – ať už jsou to data nebo aplikace. Pod pojmem klient pak budeme rozumět počítač, který k poskytovanému prostředku přistupuje a umožňuje jej uživateli využít. Mějte proto na paměti, že když budeme používat termín server, může jít de facto o pracovní stanici, u které jste se jen rozhodli sdílet některá data s ostatními uživateli.

Srdnaté standardy

Nejspolehlivějším způsobem sdílení dat je využití některého z existujících standardů. Ve světě operačních systémů UNIX je známý protokol přímo optimalizovaný pro přenos souborů – NFS. NFS server je pro Linux standardně k dispozici, ve Windows budete muset použít některý z produktů třetích stran nebo použít specializovaný software Windows Services for UNIX. Tato komponenta umožní vytvořit NFS soubor i ve Windows a přistupovat k němu z Linuxu pomocí NFS klienta, který je standardně v distribucích obsažen.

FTP je další variantou sdílení souborů – pro Linux existuje několik implementací FTP serverů (například bezpečnostně optimalizovaný vsftpd), ve Windows je FTP server součástí IIS komponenty. Jako jednoduchého klienta můžete použít internetový browser (Mozilla Firefox, Internet Explorer) nebo některou ze specializovaných aplikací.

Samba, to je tanec

V mnoha sítích najdeme Linux na straně serveru, poskytujícího různé infrastrukturní síťové služby (fungujícího jako firewall, DNS server apod.). Nicméně Linux můžete použít i pro sdílení dat. Existuje samostatný projekt, který má dokonce za úkol emulovat do určité míry síť Windows a fungovat na jedné straně jako Windows Server – je jím softwarový komponent Samba.

Samba může být nastavena tak, aby poskytovala různé úrovně funkcionality – od sdílení jediného adresáře ostatním počítačům v síti až po funkci doménového řadiče, který umožňuje autorizaci a autentizaci uživatelům v síti. Valná většina softwarových distribucí obsahuje nástroje, s jejichž pomocí můžete relativně snadno nakonfigurovat základní rozhraní Samba serveru a tím dosáhnout, že linuxový server začne být „viditelný“ pro počítače s Windows v síti a bude možné na nich používat data.

Samba může vystupovat i na straně klienta – v takovém případě budete konfigurovat základní parametry, které se týkají zejména přístupu do okolní sítě Windows – jedná se o základní autentizační informace. Většina Linuxových distribucí, které jsou určené pro provozování na desktopových počítačích, má zabudovanou automatickou základní konfiguraci Samba klienta, který pak funguje obdobným způsobem jako ve Windows – jste schopni „procházet“ síťovým okolím a „vidět“ počítače, které nabízejí sdílené prostředky k použití.

Chci jen sem tam soubor…

Pro ad-hoc kopírování mezi Linuxem a Windows, pokud už ve Windows jste a nechce se vám (nebo nemůžete) v Linuxu konfigurovat samba server, je nejlepší použít variantu programu scp (secure copy). Program používá protokol ssh, který je základní službou zprostředkovávající vzdálený přístup snad ve všech Linuxových distribucích. S výhodou se dá použít také utility WinSCP, která je k dispozici zdarma a nabídne pro kopírování i grafické prostředí. Jediné co musíte znát je uživatelský účet na linuxovém systému, který zprostředkuje ověření a přístup k souborům.

V Linuxu je nejjednodušší použít již dříve zmíněný klientský komponent systému Samba, zejména jeho utilitu smbclient, která umožní kopírování jednotlivých souborů ke sdíleným zdrojům v síti. Architektura Windows je nicméně taková, že soubor, který chcete kopírovat, musí být nejprve ve sdílené složce, ke které máte dostatečná oprávnění. Při použití scp toto omezení odpadá – můžete kopírovat všechny soubory, ke kterým má uživatel na Linuxu přístup, bez toho, aby bylo nutné je předem nějak explicitně sdílet.

Jak k aplikacím?

Binární modely aplikací ve Windows (známé soubory s koncovkou EXE a DLL knihovny) a v Linuxu (kde se jedná převážně o tzv. ELF soubory) jsou prostě nekompatibilní, a proto není možné pouštět aplikace z jedné platformy na platformě druhé. Jedinou možností je emulace. V Linuxu můžete použít projekt Wine, což je otevřená implementace produktu CrossOver Office společnosti Code Weavers. Do virtuálního emulovaného prostředí pak můžete nainstalovat aplikaci pro Windows. Není to samozřejmě úplně to pravé. Pro přístup k terminálovým službám je možné použít komponenty, které jsou standardně obsažené ve většině Linuxových distribucí – zejména rdesktop (pro přístup ke vzdáleným plochám Windows, podporující nativní rdp protokol), popřípadě tsclient (pro přístup k aplikacím na Windows Terminal Server).

V případě, že potřebujete použít aplikaci Linuxu na Windows, máte možností několik – jako první zmíníme projekt cygwin, který v prostředí Windows poskytuje základní Linuxová API pro spouštění aplikací, nicméně složitější programy v něm asi nespustíte. Většina důležitých aplikací (jako je třeba grafický editor GIMP, nebo kancelářský balík OpenOffice.org) je ale dostupná i pro Windows.

K textovému terminálu Linuxu z Windows můžete přistoupit pomocí programu telnet, nicméně berte v úvahu, že služba telnet je považovaná za extrémně nebezpečnou a proto je na většině linuxových distribucí standardně vypnutá. Mnohem lepší je použít protokol ssh (zkratka secure shell) a některou z terminálových implementací pro Windows – jednou z nejoblíbenějších utilit pro tento typ vzdáleného přístupu je PuTTY, které by nemělo chybět na žádné Windows stanici správce v mixované síti.

Kromě zmíněných „asymetrických řešení“ existují ještě softwarové komponenty umožňující stejný přístup ke grafické ploše na obou platformách – jedná se například o utilitu VNC (zkratka Virtual Network Computing). VNC se skládá ze serverové a klientské části, které jsou dostupné jak pro Linux tak pro Windows a můžete je tak použít ke křížovému přístupu ke grafickým programům Linuxu a Windows.