Samba: fristående server på Debian

Hej kompisar!. Om vi ​​vill ha en oberoende server (Fristående) för att dela resurser antingen från vår arbetsstation; eller för en liten grupp maskiner; eller för ett LAN utan en domänkontrollant av Microsoft-stil är det enklast att göra det med Samba.

Det finns några grafiska verktyg för detta ändamål, liksom verktyget för att administrera Samba via webben «SWAT». I alla fall, vi rekommenderar till nybörjare som börjar i denna underbara värld manuellt. Det är inte så svårt eller djävulskt som många tror. Och i processen lär du dig mycket om SMB/CIFS-nätverk och om behörigheter och rättigheter i Linux-filsystem.

Innan du fortsätter rekommenderar vi att du läser:

Vi kommer inte att se hur man delar skrivare med Samba. För dem som vill använda denna svit för sådana ändamål rekommenderar vi att läsa den medföljande dokumentationen som anges i Samba: Nödvändig introduktion. Du kan också läsa artikeln CUPS: Hur man använder och konfigurerar skrivare på det enkla sättet.

Grundläggande punkter att tänka på

  • Trots all aura som omger de aktiva katalogerna och deras domänkontrollanter, som vid ett flertal tillfällen inte är nödvändiga eller dåligt utnyttjade, ÄR installation och konfigurering av en oberoende Samba-server ett giltigt och tillförlitligt alternativ.
  • En oberoende server kan vara lika säker eller osäker enligt våra behov, och vi kan konfigurera den på ett enkelt eller komplext sätt.
  • Användarautentisering utförs på själva servern där resurserna finns.
  • För att en användare ska kunna komma åt resurser från en fjärrdator måste de också vara registrerade i Samba-användarbasen.
  • Vi kan bara lägga till de användare som redan finns på vår server eller stationära dator i Samba-användardatabasen.
  • En fristående Samba-server tillhandahåller INTE nätverksinloggning, som en domänkontrollant gör. Det ger inte heller inloggning på en domän.
  • Ju mindre vi ändrar och / eller lägger till parametrar i filen /etc/smb.conf Utan att först veta i detalj vad vi vill uppnå blir det mycket bättre.
  • Sambas resursdelningstjänst fungerar ovanpå Linux-filsystemet, inklusive dess inneboende säkerhet. Många problem löses genom att vara uppmärksam på behörigheter för filer och kataloger.
  • Det är viktigt att förstå hur man hanterar filsystemets beteende från filen smb.conf, samt att förstå hur UNIX / Linux-filsystemets säkerhet fungerar.
  • Vi rekommenderar att du inte använder accenter, eñes eller mellanslag i namnen på mappar och delade resurser. Använd helst små bokstäver för namn.
  • Dela namn kan inte upprepas på ett LAN. Varje namn är unikt.
  • Om det inte finns någon WINS-server i vårt LAN kan vi få vår Samba att agera som sådan genom att lägga till i «global»Från filen smb.conf parametern vinner support = Ja., vilket rekommenderas starkt.

Provserver

Namn: miwheezy. Domän: vänner.cu. IP: 10.10.10.20. Användare: xeon, zeus och triton. Ytterligare grupper: räknare

installation

Via Synaptic eller via konsolen installerar vi paketet samba.

sudo aptitude installera samba

Det är mycket användbart att också installera paketet smbclient. Vi kommer att använda den för kontroller.

I processen kommer paketen att installeras - men vi har tidigare installerat några andra relaterade till Suite- samba, samba-vanligt, samba-common-bin y tdb-verktyg. Dessutom skapas filen /etc/samba/smb.conf. Den här filen skapas så länge paketen är installerade samba-vanligt y samba-common-bin, och det kommer inte att tas bort från systemet förrän vi avinstallerar dem.

Filen smb.conf är den viktigaste i Samba Suite

Samba har ett stort antal konfigurationsalternativ, varav de flesta inte visas i exemplet med smb.conf som installeras som standard. Alternativen kommenterade med en «;» anses viktiga nog att visa och deras föreslagna värden skiljer sig från standardvärdena för Samba-beteende. Konfigurationsalternativ kommenterade med en "#«, Har Samba-standardvärden och anses också vara viktiga att visa.

Om vi ​​vill se innehållet i filen utan att överväga de kommenterade alternativen antingen med «;"eller med"#«, Vi måste köra:

 egrep -v '# |; | ^ * $' /etc/samba/smb.conf

Om vi ​​vill se innehållet i filen utan att överväga de alternativ som kommenteras med «#«, Vi måste köra:

egrep -v '# | ^ * $' /etc/samba/smb.conf

Det första vi måste göra är en kopia av filen /etc/samba/smb.conf. I själva filen hittar vi det sätt på vilket Samba rekommenderar att man gör en arbetskopia, som vi beskriver nedan. Som rot vi utför:

cd / etc / samba mv smb.conf smb.conf.master testparm -s smb.conf.master> smb.conf
root @ miwheezy: / etc / samba # ls -l
totalt 32 -rw-r--r-- 1 rotrot 8 nov 10 2002 gdbcommands -rw-r--r-- 1 rotrot 805 Aug 4 12:05 smb.conf -rw-r--r-- 1 rotrot 12173 4 aug 12:05 smb.conf.master

Notera skillnaden i storlek mellan smb.conf som genereras på detta sätt och originalet. Eftersom storleken är mindre, ökar serverns prestanda enligt vad som indikeras av Samba Team.

Det ursprungliga innehållet i filen /etc/samba/smb.conf Det kommer att vara (kom ihåg att vi inte kommer att utveckla skrivardelning):

[global]
        arbetsgrupp = FRIENDS netbios namn = MIWHEEZY säkerhet = användare
        serversträng =% h serverkarta till gäst = Dålig användare följer pam-begränsningar = Ja pam-lösenordsändring = Ja lösenordsprogram = / usr / bin / passwd% u passwd chat = * Ange \ snew \ s * \ spassword: *% n \ n * Skriv in \ snew \ s * \ spassword $ unix lösenord sync = Ja syslog = 0 loggfil = /var/log/samba/log.%m max loggstorlek = 1000 dns proxy = Ingen användardel tillåter gäster = Ja panikåtgärd = / usr / share / samba / panic-action% d idmap config *: backend = tdb [hem] kommentar = Hemkataloger giltiga användare =% S skapa mask = 0700 katalogmask = 0700 webbläsbar = Nej

Värdena markerade i fet stil är de enda som vi måste ändra initialt. Observera att trots att detta är standardbeteendet för Samba, har vi uttryckligen deklarerat alternativet säkerhet = användare med tanke på dess stora betydelse.

Om det inte finns någon WINS-server i vårt LAN kan vi få vår Samba att agera som sådan genom att lägga till i «global»Från filen smb.conf parametern vinner support = Ja., vilket rekommenderas starkt.

gyllene regel: Ju mindre vi ändrar och / eller lägger till parametrar i filen smb.conf utan att först veta i detalj vad vi vill uppnå, desto bättre blir det.

Här är en kort sammanfattning av några av alternativen som visas. För mer information, vänligen kör man smb.konf.

  • arbetsgrupp: Styr i vilken arbetsgrupp utrustningen visas när du skapar en webbläsare. Den här parametern styr även domännamnet när du arbetar med alternativet säkerhet = domän och där teamet går med i en domän. Vi kommer att se det i senare artiklar. Standardvärdet är ARBETSGRUPP.
  • netbios namn: Ställer in NetBIOS-namnet som Samba-servern kommer att kännas för i nätverket. Som standard är det samma som den första komponenten i FQDN från värden. I vårt exempel FQDN av laget är miwheezy.amigos.cu. Vi kan använda ett annat namn än värden för vår Samba-server. I så fall är det lämpligt att inkludera en CNAME-post i vår DNS.
  • säkerhet: Parameter som påverkar hur klienter svarar på Samba och är en av de viktigaste i filen smb.conf. Standardvärdet är användare.
  • serversträng: Kontrollerar vilket namn som visas i kommentarerna som visas i en webbläsare bredvid lagets namn.
  • karta till gäst: Parameter som endast är användbar när den är inställd säkerhet = användare o säkerhet = domän. Värdet "Dålig användare" talar om för Samba att avvisa ett ogiltigt lösenord, såvida inte användaren INTE existerar, i vilket fall den kommer att behandlas som en gäst eller "gäst«. Om vi ​​inte vill tillåta gästsessioner måste vi ändra dess värde till Aldrig, vilket är exakt standardvärdet, och ändra också parametern användardel tillåter gäst a Nej, vilket också är standardvärdet.
  • följ pam-begränsningar: Kontrollerar om Samba måste följa PAM: s egna begränsningar eller inte «Anslutningsbar autentiseringsmodul«, När det gäller direktiven för administration av användarkonton och sessioner. Standardvärdet är Nej.
  • ändra pam-lösenord: Ber Samba att använda PAM för lösenordsändringar som begärs av en SMB-klient. Standardvärdet är Nej.
  • passwd-program: Program som används för att ställa in UNIX-lösenord för användare.
  • passwd chatt: Kedja som styr konversationen som äger rum mellan demonen smbd och det lokala programmet för lösenordsändring som definierats i föregående parameter.
  • unix lösenordssynkronisering: Ber Samba att synkronisera SMB-lösenordet med UNIX-lösenordet, så länge det tidigare ändras. Standardvärdet är Nej.
  • giltiga användare: Lista över användare som får logga in på en delning.

Starta om eller ladda om Samba-tjänsten

När vi gör betydande förändringar, särskilt i avsnittet «[global]" av smb.conf, måste vi starta om tjänsten. Om vi ​​redan har användare anslutna till vår server kommer vi att koppla bort dem varje gång vi startar om Samba. Det är därför, och praktiskt taget från och med nu, vi bara kommer att ladda om tjänsten när vi lägger till eller ändrar delade resurser. För att starta om tjänsten kör vi som rot:

tjänsten samba startar om

Så här laddar du upp tjänsten:

service samba ladda om

Vi lägger till användarna i systemet och i Samba-användardatabasen

Vi kan bara lägga till de användare som redan finns på vår lokala server i Samba-användardatabasen.

I vårt exempel, användaren xeon det lades till under Wheezy-installationen. Därför lägger vi inte till teamanvändarna. Användargruppen finns i systemet och skapades under installationen.

Några kommandoalternativ smbpasswd ljud:

  • -a: Lägg till den angivna användaren till den lokala filen smbpasswd.
  • -x: Den angivna användaren måste tas bort från den lokala filen smbpasswd. Endast tillgängligt när smbpasswd springer som rot.
  • -d: Det angivna användarkontot måste inaktiveras. Endast tillgängligt när smbpasswd springer som rot.
  • -e: Mittemot alternativet -d så länge användarens konto är inaktiverat.

För att skapa användare i vårt team gör vi det med det välkända kommandot Lägg till användare.

adduser zeus adduser triton

För att skapa gruppen räknare:

addgroup-räknare

Så här lägger du till användare i Samba-databasen:

smbpasswd -en rot
smbpasswd -a xeon smbpasswd -a zeus smbpasswd -a triton

Vi går med i gruppen räknare till de användare vi vill ha:

adduser xeon-räknare adduser zeus-räknare adduser triton-räknare

Det rekommenderas att gå med i varje användare som skapas i gruppen användare, om vi vill ge behörigheter till alla användare som vi har skapat, på en specifik resurs. Ett enklare sätt att ansluta flera användare till en grupp är att direkt redigera filen / etc / gruppoch lägga till listan över användare åtskilda med ett komma. De kan vägledas av gruppen räknare. Vi antar att vi går med i användarna till gruppen användare.

På en arbetsstation för att ta bort användare som skapats med Lägg till användare, vi måste redigera filen /etc/gdm3/greeter.gsettings och avmarkera alternativet disable-user-list = true, så att INGEN användarlista visas när du loggar in. Detta är standardbeteendet för alla Windows-klientdatorer som är anslutna till en domän.

På samma sätt, om vi vill att de skapade användarna inte ska starta en fjärrsession genom ssh, vi redigerar filen / Etc / ssh / sshd_config och lägg till instruktionen i slutet av filen Tillåt användare. exempel:

[....] # och ChallengeResponseAuthentication till 'no'. UsePAM ja AllowUsers xeon

Vi lägger till delade resurser

1 exempel: Vi vill dela mappen / hem / xeon / musik för alla registrerade användare. Tillståndet är skrivskyddat. Först och främst skapar vi mappen / hem / xeon / musik och vi konfigurerar dess ägare och behörigheter vid behov. Som användare Xeon vi utför:

mkdir / home / xeon / musik ls -l / home / xeon | grep-musik

Sedan i slutet av filen smb.conf vi lägger till följande:

[music-xeon] comment = Personlig musikmappsökväg / / home / xeon / music read only = Ja giltiga användare = @användares läslista = @användare

Efter ändringarna i filen kör vi testparm som användare xeon och vi laddar upp tjänsten som rot. Vi kan också köra båda kommandona som rot:

testparm service samba reload

För att kontrollera den nyligen konfigurerade tjänsten kan vi göra det genom att utföra följande kommando på själva datorn:

smbclient -L localhost -U%

2 exempel: Vi vill dela mappen / hem / xeon / musik för alla registrerade användare. Behörigheterna kommer att läsas / skrivs för xeon och skrivskyddad för resten av de användare som tillhör gruppen användare. Vi behöver inte ändra ägaren eller behörigheterna i mappen. Vi ändrar bara delningsinställningarna lite i filen smb.conf.

[xeon-music] comment = Hemmusikmappsökväg = /home/xeon/musik skrivskyddad = Inga giltiga användare = @användare skrivlista = xeon läslista = @användare

3 exempel: Vi vill dela mappen / hem / xeon / redovisning för användargrupp räknare. Alla gruppmedlemmar har läsbehörighet. Användarna triton y Zeus de kommer att kunna skriva till den delade mappen.

Nu om vi måste ändra ägaren och behörigheterna för mappen redovisning efter att de har skapats så att de kan skriva triton y Zeus som är medlem i gruppen räknare. Vi måste också se till att den sista användaren som skapar eller ändrar en fil inte blir dess absoluta ägare, så att den kan ändras av andra användare med skrivbehörighet.

Det är viktigt att förstå hur man hanterar filsystemets beteende från smb.conf, samt att förstå hur UNIX / Linux-filsystemets säkerhet fungerar.

I dessa fall måste vi:

  • Förklara när det är bekvämt vem som ska vara ägare och vem som kommer att vara ägargrupp för den delade katalogen.
  • Tillåt skrivning till den delade katalogen av ägargruppen.
  • Förklara lite SGID (Ställ in grupp-ID) av katalogen under skapandet.
  • Förklara korrekt i filen smb.conf sätten att skapa filer och kataloger inom vår delade resurs.

En enkel och möjlig lösning i praktiken kommer vi att ha om vi utför som rot:

mkdir / hem / xeon / redovisning chown -R root: räknare / hem / xeon / redovisning chmod -R g + ws / hem / xeon / redovisning ls -l / hem / xeon

Och vi lägger till följande i slutet av filen smb.conf:

[accounting] comment = Mapp för räknare sökväg = /home/xeon/accounting skrivskyddad = Inga giltiga användare = @counters skrivlista = triton, zeus läslista = @counters force create mode = 0660 force directory mode = 0770

Vi kontrollerar omedelbart den grundläggande syntaxen för smb.conf genom testparm och vi laddar upp tjänsten igenom service samba ladda om. Vi kan också springa smbclient -L localhost -U%. på den lokala servern och smbclient -L mywheezy -U% o smbclient -L mywheezy.friends.cu -U% från fjärrdatorn.

Det är dags för oss att ansluta till resursen från en fjärrdator och göra alla nödvändiga tester. Det är tillrådligt att kontrollera hur användaren som äger mapparna och filerna ändras när de skapas i resursen.

Viktigt: Användaren rot eller användaren xeon och i allmänhet alla medlemmar i gruppen räknare, kan du skriva från en lokal session som startas på samma dator eller av sshutan att använda SMB / CIFS-protokollet. Om du skapar en mapp eller fil lokalt, kom ihåg att tilldela rätt behörigheter igen. Kolla in ls-l. Att inte göra ovanstående är källan till mycket förvirring.

Vänner, förlåt mig längden på artikeln och jag hoppas att det kommer att vara till nytta för dig. Fram till nästa äventyr!


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   livlig sade

    Utmärkt som alltid. Dessa typer av artiklar uppskattas när vi arbetar med servrar. 😉

  2.   Julio Cesar sade

    Mycket bra freeke men för mig är det bättre att använda FreeNAS för den typen av saker
    😉

  3.   Federico Antonio Valdes Toujague sade

    Tack för dina kommentarer!!!. Freeke, FreeBSD:s FreeNAS är en annan, vild historia, och jag kan ägna en artikel åt den. I slutändan är det Samba på FreeBSD.

  4.   Erick sade

    Jag måste säga att inlägget är väldigt bra, som jag alltid har sagt om du hade postat detta för några år sedan så hade det besparat mig en hel del problem, men det är bra att någon är intresserad av att visa hur man konfigurerar samba, Hälsningar

    1.    Federico Antonio Valdes Toujague sade

      Som ordspråket säger "det är aldrig för sent om lycka är bra" och det andra "det är bättre sent än aldrig". Tack för kommentaren. Jag började använda Samba tror jag runt 2007. Fram tills nu har jag inte kunnat skriva något om det.

      1.    Erick sade

        På samma sätt har jag använt samba i nästan samma tid, men jag ser att du har förbättrats mycket och du har rätt om "det är aldrig för sent om lyckan är bra", tyckte jag det måste jag säga att det är väldigt bra att någon delar med sig av sin kunskap, många Ibland vågar man inte eller hinner inte, i mitt fall är det den första, Mvh

  5.   giskard sade

    Friend @fico, jag gillar verkligen dina artiklar. De är extremt väl förklarade och detaljerade. Tack.

    1.    Federico Antonio Valdes Toujague sade

      Jag hoppas att de är användbara för dig. Det är syftet !!!.

      1.    giskard sade

        Ja, det är 🙂

        Förresten såg jag just din artikel publicerad på en annan sida (http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html) och referensen till källan är väldigt liten. Det är inte gjort. Tack till den som förtjänar det, fitta! Jag vet inte om de härifrån kan be dessa människor att göra ett stort uttalande om vem som gör saker. För det otränade ögat skulle det passera när de skapade det och publicerade det.

  6.   oscar sade

    Herr författare till inlägget, vad sägs om att skapa en artikel om hur man delar filer via samba för vanliga användare, jag menar något mindre omfattande och mer grafiskt, som hur man delar från linux till linux och från linux till windows men inte i ett professionellt sätt men också att dela filer mellan datorer hemma.

    1.    Federico Antonio Valdes Toujague sade

      I det fallet rekommenderar jag att du använder ssh för Linux - Linux och winscp för Windows - Linux. Det finns flera artiklar på samma sida.
      Samma inlägg, även om det kan verka komplicerat, om du kopierar och klistrar in de få kommandona det innehåller, fungerar det också för ett hemnätverk.

      1.    eliotime3000 sade

        Även om det vore mer praktiskt att använda SMB / CIFS-systemet för att använda samma fildelningsprotokoll för Windows (eller delade mappar för kort).

        Jag kommer att göra mina experiment för att kunna göra en handledning om hur man skapar en delad mapp i GNU/Linux (i mitt fall, Debian Wheezy) så att Windows-nätverk känner igen den som en delad mapp.

  7.   en nivå sade

    mycket bra och längden är värt det, men kanske bör du nämna oslevel-parametern tidigt innan du interagerar med windows.
    hälsningar

    1.    Federico Antonio Valdes Toujague sade

      Observera att det är ett nätverk utan en Windows Domain Controller. Vi kommer att använda denna parameter när vi hanterar en maskin som är ansluten till en domän.

  8.   senaste nybörjaren sade

    när jag har lite tid kommer jag att göra det
    [offtopic] Jag skulle vilja lägga upp GIMP-självstudier. Det kan?
    [/ orelevant]

  9.   Federico Antonio Valdes Toujague sade

    Vän @ giskard, jag besökte precis http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html, och jag såg ingen hänvisning till det här inlägget. De gjorde en fräck copy/paste, Hahahahahahaha. Det visar att inlägget åtminstone håller bra kvalitet. Jag säger, eller hur?, Hahahahahahaha.

    1.    giskard sade

      Nära slutet med små bokstäver är länken som säger "källa" och pekar på denna sida. Men att ha gjort det förefaller mig som en total oartighet och brist på respekt. Lyckligtvis vet vi här vem författaren är 🙂

    2.    Julius Caesar sade

      De sätter referensen men det kan knappast märkas att de var tvungna att ha nämnt i början av artikeln

  10.   truko22 sade

    I arch wiki står det att från och med version 3.4 rekommenderas att använda pdbedit istället för smbpasswd.

    En fråga, enligt en vän, innan en användare läggs till i Samba måste en användare skapas i systemet men med / bin / false
    useradd -s / bin / false myuser
    Är 0.o sant?

  11.   Federico Antonio Valdes Toujague sade

    Friend @ truko22, och i allmänhet, för dem som ställer liknande frågor. Kom ihåg att vi alltid har sagt att vi bara ger en Inkörsport till ämnet. Vi rekommenderar också att du läser den medföljande dokumentationen. I slutändan är anpassningen av tjänsten ansvaret för den som implementerar den, så att den möter deras behov och den säkerhetsnivå som tillfredsställer dem.

    Tillståndsproblemet kan till exempel undvikas om vi tillåter någon att skriva till aktien med chmod 777. Naturligtvis är det inte en säker lösning.

    Du kan förhindra att användaren startar en lokal session eller via ssh om vi skapar den genom adduser-användare - skal / bin / falsk. Med andra ord kan användaren som skapas sålunda inte komma åt en terminal eller konsol.

    Med andra ord kan Samba konfigureras på många sätt, allt från det enklaste till det mest komplexa.

    Vad händer?. Om vi ​​från början skriver inlägget utan att tillåta användare som lagts till på Samba att logga in lokalt, kommer de säkert att fråga varför. Det är därför vi föredrar att skriva det på ett så klassiskt sätt som möjligt, och låta alla dra sina egna slutsatser.

    @ truko22, tack för att du gav mig rätt poäng att kommentera tidigare !!!

    1.    truko22 sade

      Tack så mycket, nu förstår jag 😀 om –shell / bin / false

  12.   Federico Antonio Valdes Toujague sade

    Vän @ truko22, jag glömde bort pdbedit. Sedan Etch blev jag van vid att använda smbpasswd. Detta kommando kan utföras av alla användare i systemet, och dess beteende och resultat varierar. pdbedit, kan också användas, men kan endast åberopas av rotanvändaren.

    Om Samba kan du skriva hela artiklar på många av dess kommandon.

  13.   leo sade

    Det är mycket bra!!
    hälsningar

  14.   marcos sade

    Mycket bra artikel. Grattis och tack för ett sådant bidrag

  15.   joseuzin sade

    Jag ville fråga dig om det fanns en artikel om samba som domänkontrollant och om du redan kan styra domänen med grupppolicyer som en Windows-server, jag menar att förhindra ändring av egenskaper för nätverksadresser, använda flash-enheter, etc.

  16.   Ricardo Mejias sade

    Hej, hur mår du Fico, jag har Samba 3.6 installerat med LDAP och LAM 3.7 – jag skulle vilja veta om du vet hur man tillåter användare att ändra lösenordet när man startar sessionen eftersom det säger till mig "du har inte behörighet att ändra ditt lösenord" hälsningar...