Samba - AD-yhteen­sopi­vuutta hal­vem­malla

Olipa kerran IBM:n kehittämä SMB (Server Message Block) -paikallisverkkoteknologia, joka rakentui NetBIOS:n päälle ja jonka Microsoft adoptoi osaksi MSDOS:ia ja Windowsia. TCP/IP ja Internet tulivat isoista tietokoneista myös Windows-paikallisverkkoihin ja lopulta Microsoft siirsi SMB:n toimimaan TCP/IP:n päällä.

SMB:llä pystyi jakamaan tiedostoja paikallisverkossa ja tulostamaan keskitetyn tulostuspalvelun avulla. Lisäksi siinä oli oma nimipalvelu, jotta käyttäjät saattoivat käyttää paikallisverkossa olevista koneista niiden nimeä, eikä SMB-osoitteita. Samaan nimipalveluun oli myös pultattu kiinni käsite tietokoneryhmät. SMB:llä pystyi myös lähettämään viestejä sekä koneelta toiselle (RPC, remote procedure call) että käyttäjältä toiselle (esimerkiksi palvelun shutdown-viestit).

Eräs australialainen tietokoneohjelmoija nimeltään Andrew Tridgell halusi tarjota isoista tietokoneista tiedostoja myös DOS-paikallisverkon tietokoneille, joten hän selvitti verkkoa seuraamalla, miten SMB toimii, ja sen pohjalta kirjoitti Samba-nimisen ohjelmiston. Hän laajensi myöhemmin ohjelmistoa tuomalla siihen myös Microsoft-yhteesopivuuden.

Sittemmin Microsoft on jatkanut SMB:n kehitystä ja tuonut erilaisia paikallisverkon hallintaa helpottavia (tai vaikeuttavia) ominaisuuksia Windowsiin. Monet näistä ominaisuuksista rakentuvat osittain SMB:n päälle. Esimerkiksi Microsoft otti Exchange-sähköpostiohjelmiston X.500-hakemistopalvelun ja teki siitä paikallisverkon tietokoneiden ja käyttäjien "hakemistopalvelun" (tietokannan), kytki siihen DNS-palvelimen ja muokatun (muiden kanssa epäyhteensopivan) Kerberoksen, nimesi sen Active Directoryksi (AD) ja teki siihen myös LDAP-rajapinnan Internet-pohjaisia sovelluksia varten.

Ennen AD:ta Samba oli täysin yhteensopiva Windows-paikallisverkkojen (domains) kanssa. Se saattoi toimia joko jäsenenä tai domain controllerina Windows-paikallisverkossa. Samba 3:n myötä sitä käyttävä kone saattoi toimia täysverisenä jäsenenä myös AD:ta käyttävässä Windows-paikallisverkossa, mutta Samba 3 ei voinut olla enää täysverinen domain controller uusimmille Windowseille, koska siinä ei ollut AD:ta tai X.500-hakemistopalvelua + Kerberosta.

Microsoft päätyi lopulta USA:n ja EU:n kilpailuviranomaisten hampaisiin ja joutui julkaisemaan SMB:n ja AD:n kommunikointiprotokollat. Vuoden 2012 lopulla vihdoin uudelleen kirjoitetun Samba 4:n ensimmäinen versio oli valmis, mutta siitä puuttui vielä monia toiminnallisuuksia, erityisesti jäsenyyteen liittyviä. Vasta viime aikoina Samba 4:ssä on kaikki Samba 3:n ominaisuudet AD-emuloinnin lisäksi.

Nyt siis Samba 4:llä on mahdollista toteuttaa nykyaikaisten Windows-paikallisverkkojen ydin ilman Microsoftin AD:n hankkimista.

Sambaa on vuosien saatossa käytetty paljon esimerkiksi monien valmistajien SMB-tiedostojakopurkkien ja SMB:tä tukevien tulostimien osana. Asiakkaallamme oli aikoinaan meidän hankkima sulautettu SMB-tiedostojenjakolevylaite, jonka sisällä pyöri Samba2/3. Sen jälkeen toteutimme heille HP:n palvelimella SMB-tiedostojen jaon ja siinä käytössä oli Samba3 CentOS-käyttöjärjestelmän päällä.

Lisäksi esimerkiksi MacOS X ja Linux-koneet käyttävät Sambaa siihen, että ne voivat kytkeytyä osaksi Windows-paikallisverkkoa ja keskustella muiden paikallisverkon koneiden kanssa.

Esimerkkejä, mitä Samballa voi tehdä:

  •  Windows-tiedostopalvelun
  •  Windows-tulostuspalvelun
  •  Windows-paikallisverkon domain controllerin
  •  hallita Windows-paikallisverkon koneita Group Policyillä
  •  hakea Windows-tiedostopalvelusta tiedostoja
  •  tulostaa Windows-tulostuspalveluun
  •  rekisteröityä Windows-paikallisverkkoon (tietokone)
  •  kirjautua Windows-paikallisverkkoon (käyttäjä)
  •  hakea tietoja muista tietokoneista ja käyttäjistä
  •  tehdä remote procedure calleja Windows-paikallisverkon koneille
  •  Windowsin version Kerberos-palvelusta
  •  X.500/LDAP-hakemistopalvelun
  •  DNS-palvelun Windows-paikallisverkon koneiden nimistä


Toisin sanoen Samba mahdollistaa muiden kuin Microsoftin Windows-tietokoneiden kytkeytymisen Windows-paikallisverkkoon ja tarvittaessa Windows-paikallisverkkopalveluiden tarjoamisen muille kyseisen verkon koneille.