Samba: server autonomo su Debian

Ciao amici!. Se vogliamo avere un server indipendente (Indipendente, autonomo) per condividere le risorse sia dalla nostra postazione di lavoro; o per un piccolo gruppo di macchine; o per una LAN senza un controller di dominio in stile Microsoft, è più semplice farlo usando Samba.

Ci sono alcuni strumenti grafici per questo scopo, così come lo strumento per amministrare Samba tramite il web «SWAT». Però, si consiglia ai principianti che iniziano manualmente in questo meraviglioso mondo. Non è così difficile o diabolico come molti pensano. E durante il processo impari molto sulle reti SMB / CIFS e sui permessi e sui diritti sui file system Linux.

Prima di continuare, ti consigliamo di leggere:

Non vedremo come condividere le stampanti usando Samba. A chi volesse utilizzare questa suite per questi scopi, si consiglia di leggere la documentazione a corredo come indicato in Samba: introduzione necessaria. Puoi anche leggere l'articolo CUPS: come utilizzare e configurare le stampanti in modo semplice.

Punti fondamentali da considerare

  • Nonostante tutta l'aura che circonda Active Directory e i loro Domain Controller, che in numerose occasioni non sono necessari o poco sfruttati, installare e configurare un Independent Samba Server È un'opzione valida e affidabile.
  • Un server indipendente può essere sicuro o insicuro in base alle nostre esigenze e possiamo configurarlo in modo semplice o complesso.
  • L'autenticazione dell'utente viene eseguita sul server stesso in cui risiedono le risorse.
  • Affinché un utente possa accedere alle risorse da un computer remoto, deve anche essere registrato nella base utenti di Samba.
  • Possiamo solo aggiungere al database degli utenti di Samba quegli utenti che già esistono sul nostro server o computer desktop.
  • Un server Samba autonomo NON fornisce l'accesso alla rete, come fa un controller di dominio. Inoltre non fornisce l'accesso a un dominio.
  • Meno cambiamo e / o aggiungiamo parametri al file /etc/smb.conf Senza prima sapere in dettaglio cosa vogliamo ottenere, sarà molto meglio.
  • Il servizio di condivisione delle risorse in Samba funziona sul filesystem Linux, inclusa la sua sicurezza intrinseca. Molti problemi vengono risolti prestando la dovuta attenzione ai permessi di file e directory.
  • È essenziale capire come gestire il comportamento del file system dal file smb.conf, oltre a comprendere come funziona la sicurezza del file system UNIX / Linux.
  • Si consiglia di non utilizzare accenti, eñes o spazi nei nomi di cartelle e risorse condivise. Preferibilmente usa lettere minuscole per i nomi.
  • I nomi delle condivisioni non possono essere ripetuti su una LAN. Ogni nome è unico.
  • Se NON c'è un server WINS sulla nostra LAN, possiamo fare in modo che il nostro Samba si comporti come tale aggiungendo nel campo «globale»Dal file smb.conf il parametro vince il supporto = Sì., che è altamente raccomandato.

Server di esempio

Nome: strepitoso. dominio: amici.cu. IP: 10.10.10.20. Utenti: xeon, zeus e triton. Gruppi aggiuntivi: contatori

Installazione

Tramite Synaptic o tramite console installiamo il pacchetto samba.

sudo aptitude installa samba

È molto utile installare anche il pacchetto smbclient. Lo useremo per i controlli.

Nel processo, verranno installati i pacchetti, ma in precedenza ne abbiamo installati altri relativi alla Suite- samba, samba-comune, samba-comune-bin y strumenti tdb. Inoltre, il file viene creato /etc/samba/smb.conf. Questo file verrà creato finché i pacchetti saranno installati samba-comune y samba-comune-bine non verrà eliminato dal sistema finché non li disinstalleremo.

Il file smb.conf è il più importante in Samba Suite

Samba ha un numero enorme di opzioni di configurazione, la maggior parte delle quali non sono mostrate nell'esempio di smb.conf che si installa per impostazione predefinita. Le opzioni commentate con un «;»Sono considerati abbastanza importanti da essere visualizzati e i loro valori predefiniti differiscono dai valori predefiniti del comportamento di Samba. Le opzioni di configurazione commentate con un «#«, Hanno impostazioni predefinite di Samba e sono anche considerate importanti da visualizzare.

Se vogliamo vedere il contenuto del file senza considerare le opzioni commentate neanche con «;"o con"#«, Dobbiamo eseguire:

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

Se vogliamo vedere il contenuto del file senza considerare le opzioni commentate con «#«, Dobbiamo eseguire:

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

La prima cosa da fare è una copia del file /etc/samba/smb.conf. Nel file stesso troviamo il modo in cui Samba consiglia di fare una copia funzionante, che dettagliamo di seguito. Come radice eseguiamo:

cd / etc / samba mv smb.conf smb.conf.master testparm -s smb.conf.master> smb.conf
root @ miwheezy: / etc / samba # ls -l
totale 32 -rw-r - r-- 1 radice radice 8 Nov 10 2002 gdbcommands -rw-r - r-- 1 radice radice 805 4 agosto 12:05 smb.conf -rw-r - r-- 1 radice radice 12173 4 12 agosto 05:XNUMX smb.conf.master

Notare la differenza di dimensioni tra il file smb.conf generato in questo modo e l'originale. Poiché le dimensioni sono inferiori, le prestazioni del server aumentano in base a quanto indicato dal Team Samba.

Il contenuto iniziale del file /etc/samba/smb.conf Sarà (ricorda che non svilupperemo la condivisione della stampante):

[globale]
        gruppo di lavoro = AMICI netbios name = MIWHEEZY security = user
        stringa del server =% h mappa del server su guest = utente non valido obbedisce alle restrizioni pam = Sì modifica password pam = Sì programma passwd = / usr / bin / passwd% u passwd chat = * Immettere \ snew \ s * \ spassword: *% n \ n * Ridigita \ snew \ s * \ spassword $ unix password sync = Sì syslog = 0 file di registro = /var/log/samba/log.%m dimensione massima del registro = 1000 dns proxy = Nessuna condivisione utenti consente agli ospiti = Sì azione di panico = / usr / share / samba / panic-action% d idmap config *: backend = tdb [homes] comment = Directory home utenti validi =% S create mask = 0700 directory mask = 0700 browseable = No

I valori evidenziati in grassetto sono gli unici che dobbiamo modificare inizialmente. Nota che, nonostante sia il comportamento predefinito di Samba, abbiamo dichiarato esplicitamente l'opzione security = user data la sua grande importanza.

Se NON c'è un server WINS sulla nostra LAN, possiamo fare in modo che il nostro Samba si comporti come tale aggiungendo nel campo «globale»Dal file smb.conf il parametro vince il supporto = Sì., che è altamente raccomandato.

regola d'oro: Meno cambiamo e / o aggiungiamo parametri al file smb.conf senza prima sapere in dettaglio cosa vogliamo ottenere, molto meglio sarà.

Ecco un breve riepilogo di alcune delle opzioni mostrate. Per ulteriori informazioni, esegui uomo smb.conf.

  • gruppo di lavoro: Controlla in quale gruppo di lavoro apparirà l'apparecchiatura quando si crea un browser web. Questo parametro controlla anche il nome di dominio quando si lavora con l'opzione sicurezza = dominio e in cui il team entra a far parte di un dominio. Lo vedremo negli articoli successivi. Il valore predefinito è GRUPPO DI LAVORO.
  • nome netbios: Imposta il nome NetBIOS con cui il server Samba sarà conosciuto sulla rete. Di default è lo stesso del primo componente di FQDN dall'host. Nel nostro esempio il file FQDN della squadra è miwheezy.amigos.cu. Possiamo usare un nome diverso dall'host per il nostro server Samba. In tal caso è consigliabile includere un record CNAME nel nostro file DNS.
  • problemi di: Parametro che influenza il modo in cui i client rispondono a Samba ed è uno dei più importanti nel file smb.conf. Il valore predefinito è Utente.
  • stringa del server: Controlla il nome visualizzato nei commenti visualizzati in un browser Web accanto al nome del team.
  • mappa per ospite: Parametro utile solo se impostato security = user o sicurezza = dominio. Il valore "Bad User" dice a Samba di rifiutare una password non valida, a meno che l'utente NON esista, nel qual caso verrà trattato come Guest o "ospite«. Se non si desidera consentire le sessioni ospite, è necessario modificarne il valore in Mai, che è esattamente il valore predefinito, e modificare anche il parametro condivisione utenti consentire ospite a no, che è anche il valore predefinito.
  • obbedire alle restrizioni di pam: Controlla se Samba deve obbedire o meno alle restrizioni di PAM «Modulo di autenticazione plugable«, Per quanto riguarda le direttive di amministrazione degli account utente e delle sessioni. Il valore predefinito è no.
  • modifica della password pam: Dice a Samba di utilizzare PAM per le modifiche della password richieste da un client SMB. Il valore predefinito è no.
  • programma passwd: Programma utilizzato per impostare le password UNIX per gli utenti.
  • chat passwd: Catena che controlla la conversazione che si svolge tra il demone smb e il programma locale per la modifica della password definita nel parametro precedente.
  • sincronizzazione password unix: Dice a Samba di sincronizzare la password SMB con la password UNIX, a condizione che la prima venga modificata. Il valore predefinito è no.
  • utenti validi: Elenco di utenti a cui è consentito accedere a una condivisione.

Riavvia o ricarica il servizio Samba

Ogni volta che apportiamo modifiche significative, soprattutto nella sezione «[globale]"di smb.conf, dobbiamo riavviare il servizio. Se abbiamo già utenti connessi al nostro server, ogni volta che riavviamo Samba, li disconnetteremo. Ecco perché, e praticamente d'ora in poi, ricaricheremo il servizio solo quando aggiungeremo o modificheremo le risorse condivise. Per riavviare il servizio, eseguiamo come radice:

riavviare il servizio samba

Per ricaricare il servizio:

ricarica di samba del servizio

Aggiungiamo gli utenti al sistema e al database degli utenti di Samba

Possiamo solo aggiungere al database degli utenti di Samba quegli utenti che già esistono sul nostro server locale.

Nel nostro esempio, l'utente Xeon è stato aggiunto durante l'installazione di Wheezy. Pertanto, non lo aggiungeremo agli utenti del team. Il gruppo di utenti esiste nel sistema ed è stato creato durante l'installazione.

Alcune opzioni di comando smbpasswd sono:

  • -a: Aggiunge l'utente specificato al file locale smbpasswd.
  • -x: L'utente indicato deve essere rimosso dal file locale smbpasswd. Disponibile solo quando smbpasswd funziona come radice.
  • -d: L'account utente indicato deve essere disabilitato. Disponibile solo quando smbpasswd funziona come radice.
  • -e: L'opposto dell'opzione -d fintanto che l'account dell'utente è disabilitato.

Per creare gli utenti nel nostro team, lo facciamo con il noto comando Aggiungi utente.

adduser zeus adduser triton

Per creare il gruppo contadores:

contatori addgroup

Per aggiungere utenti al database Samba:

smbpasswd -a radice
smbpasswd -a xeon smbpasswd -a zeus smbpasswd -a triton

Ci uniamo al gruppo contadores agli utenti che vogliamo:

contatori adduser xeon contatori zeus adduser contatori triton adduser

Si consiglia di unirsi a ogni utente creato nel gruppo utenti, nel caso in cui vogliamo concedere i permessi a tutti gli utenti che abbiamo creato, su una specifica risorsa. Un modo più semplice per unire più utenti a un gruppo è modificare direttamente il file /etc/groupe aggiungendo l'elenco degli utenti separati da una virgola. Possono essere guidati dal gruppo contadores. Partiamo dal presupposto che ci uniamo gli utenti al gruppo utenti.

Su una workstation, per rimuovere la visualizzazione degli utenti creati utilizzando Aggiungi utente, dobbiamo modificare il file /etc/gdm3/greeter.gsettings e rimuovere il commento dall'opzione disable-user-list = true, in modo che NESSUN elenco di utenti venga visualizzato durante l'accesso. Questo è il comportamento standard di qualsiasi computer client Windows aggiunto a un dominio.

Allo stesso modo, se vogliamo che gli utenti creati non avviino una sessione remota tramite SSH, modifichiamo il file /etc/ssh/sshd_config e aggiungi alla fine del file l'istruzione Consenti Utenti. Esempio:

[....] # e ChallengeResponseAuthentication su "no". UsePAM sì AllowUsers xeon

Aggiungiamo risorse condivise

Esempio 1: Vogliamo condividere la cartella / home / xeon / music per tutti gli utenti registrati. L'autorizzazione sarà di sola lettura. Prima di tutto creiamo la cartella / home / xeon / music e ne configuriamo il proprietario e le autorizzazioni, se necessario. Come utente Xeon eseguiamo:

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

Quindi alla fine del file smb.conf aggiungiamo quanto segue:

[music-xeon] comment = Percorso cartella musicale personale = / home / xeon / music read only = Sì utenti validi = @users read list = @users

Dopo le modifiche al file, eseguiamo prova par come utente Xeon e ricarichiamo il servizio come radice. Possiamo anche eseguire entrambi i comandi come radice:

ricarica samba del servizio testparm

Per verificare il servizio appena configurato possiamo farlo eseguendo il seguente comando sul computer stesso:

smbclient -L host locale -U%

Esempio 2: Vogliamo condividere la cartella / home / xeon / music per tutti gli utenti registrati. I permessi saranno di lettura / scrittura per Xeon e di sola lettura per il resto degli utenti appartenenti al gruppo utenti. Non abbiamo bisogno di modificare il proprietario o le autorizzazioni sulla cartella. Modifichiamo solo un po 'le impostazioni di condivisione nel file smb.conf.

[music-xeon] comment = Percorso cartella musicale personale = / home / xeon / music read only = Nessun utente valido = @users write list = xeon read list = @users

Esempio 3: Vogliamo condividere la cartella / home / xeon / contabilità per gruppo utenti contadores. Tutti i membri del gruppo avranno il permesso di lettura. Gli utenti tritone y Zeus potranno scrivere nella cartella condivisa.

Ora SE dobbiamo modificare il proprietario e le autorizzazioni della cartella contabilità dopo aver creato, in modo che possano scrivere tritone y Zeus che sono un membro del gruppo contadores. Dobbiamo anche fare attenzione che l'ultimo utente che crea o modifica un file non diventi il ​​suo proprietario assoluto, in modo che possa essere modificato da altri utenti con permessi di scrittura.

È essenziale capire come gestire il comportamento del file system dal smb.conf, oltre a comprendere come funziona la sicurezza del file system UNIX / Linux.

In questi casi dobbiamo:

  • Dichiarare a comodo chi sarà l'utente proprietario e chi sarà il gruppo proprietario della directory condivisa.
  • Consenti la scrittura nella directory condivisa dal gruppo di proprietari.
  • Dichiara il bit SGID (Imposta ID gruppo) della directory durante la sua creazione.
  • Dichiara correttamente nel file smb.conf i modi di creare file e directory all'interno della nostra risorsa condivisa.

Una soluzione semplice e possibile in pratica avremo se eseguiamo come radice:

mkdir / home / xeon / account chown -R root: counters / home / xeon / accounting chmod -R g + ws / home / xeon / accounting ls -l / home / xeon

E aggiungiamo quanto segue alla fine del file smb.conf:

[contabilità] commento = Cartella per i contabili path = / home / xeon / contabilità di sola lettura = Nessun utente valido = @ accountants write list = triton, zeus read list = @ accountants force create mode = 0660 force directory mode = 0770

Controlliamo immediatamente la sintassi di base del file smb.conf attraverso prova par e ricarichiamo il servizio tramite ricarica di samba del servizio. Possiamo anche correre smbclient -L host locale -U%. sul server locale e smbclient -L mywheezy -U% o smbclient -L mywheezy.friends.cu -U% dal computer remoto.

Il tempo è che da un computer remoto ci colleghiamo alla risorsa condivisa e facciamo tutti i test necessari. Si consiglia di verificare come cambia l'utente proprietario delle cartelle e dei file quando vengono creati all'interno della risorsa.

Importante: L'utente radice o l'utente Xeon e in generale qualsiasi membro del gruppo contadores, puoi scrivere da una sessione locale avviata sullo stesso computer o da SSH, ovvero senza utilizzare il protocollo SMB / CIFS. Se crei una cartella o un file localmente, ricordati di riassegnare le autorizzazioni appropriate. Controlla entro ls -l. Non fare quanto sopra è fonte di molta confusione.

Amici, perdonatemi la lunghezza dell'articolo e spero vi sia di qualche utilità. Alla prossima avventura!


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   vivace suddetto

    Eccellente come sempre. Questi tipi di articoli sono apprezzati quando lavoriamo con i server. 😉

  2.   Julio Cesar suddetto

    Freeke molto buono ma per me è meglio usare FreeNAS per quel genere di cose
    😉

  3.   Federico Antonio Valdes Toujague suddetto

    Grazie per i vostri commenti !!!. Freeke, FreeNAS di FreeBSD è un'altra storia selvaggia e potrei dedicarvi un articolo. Alla fine è Samba su FreeBSD.

  4.   Erick suddetto

    Post molto buono devo dire, come ho sempre detto se avessi postato questo qualche anno fa, mi avrebbe risparmiato molti problemi, ma è bene che qualcuno sia interessato a mostrare come configurare samba, Saluti

    1.    Federico Antonio Valdes Toujague suddetto

      Come dice il proverbio "non è mai tardi se la felicità è buona" e l'altro "è meglio tardi che mai". Grazie per il commento. Ho iniziato a usare Samba, credo, intorno al 2007. Fino ad ora non ero stato in grado di pubblicare nulla al riguardo.

      1.    Erick suddetto

        Allo stesso modo uso la samba quasi contemporaneamente, ma vedo che ti sei perfezionato molto e hai ragione che "non è mai troppo tardi se la felicità è buona", mi è sembrato, devo dire che è molto bello che qualcuno condivida le proprie conoscenze A volte non si osa o non si ha tempo, nel mio caso è il primo, Saluti

  5.   Giskard suddetto

    Amico @fico, mi piacciono molto i tuoi articoli. Sono estremamente ben spiegati e dettagliati. Grazie.

    1.    Federico Antonio Valdes Toujague suddetto

      Spero che ti siano utili. Questo è lo scopo !!!.

      1.    Giskard suddetto

        Sì. È 🙂

        A proposito, ho appena visto il tuo articolo pubblicato su un'altra pagina (http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html) e il riferimento alla fonte è davvero piccolo. Non è stato fatto. Merito chi se lo merita, dannazione! Non so se da qui possono chiedere a quelle persone di fare una grande differenza chi fa le cose. A un occhio inesperto sarebbe passato come se lo avessero creato e pubblicato.

  6.   oscar suddetto

    Signor autore del post, e se crei un articolo su come condividere file tramite samba per utenti ordinari, intendo qualcosa di meno ampio e più grafico come come condividere da Linux a Linux e da Linux a Windows ma non da uno modo così professionale ma piace condividere file tra PC a casa.

    1.    Federico Antonio Valdes Toujague suddetto

      In tal caso, consiglio di utilizzare ssh per Linux - Linux e winscp per Windows - Linux. Ci sono diversi articoli su questo stesso sito.
      Questo stesso post, sebbene possa sembrare complicato, se copi e incolli i pochi comandi che include, funziona anche per una rete domestica.

      1.    eliotime3000 suddetto

        Anche se sarebbe più pratico utilizzare il sistema SMB / CIFS per utilizzare lo stesso protocollo di condivisione file per Windows (o cartelle condivise in breve).

        Farò i miei esperimenti per poter fare un tutorial su come creare una cartella condivisa in GNU / Linux (nel mio caso, Debian Wheezy) in modo che le reti con Windows la riconoscano come una cartella condivisa.

  7.   un livello suddetto

    molto buono e ne vale la pena, ma forse dovresti menzionare il parametro oslevel prima di interagire con Windows.
    saluti

    1.    Federico Antonio Valdes Toujague suddetto

      Tieni presente che è una rete senza un controller di dominio Windows. Useremo quel parametro quando abbiamo a che fare con una macchina unita a un dominio.

  8.   ultimo novellino suddetto

    quando avrò un po 'di tempo lo farò
    [offtopic] Vorrei pubblicare tutorial su GIMP. Può?
    [/ offtopic]

  9.   Federico Antonio Valdes Toujague suddetto

    Amico @giskard, ho appena visitato http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.htmle non ho visto alcun riferimento a questo post. Hanno fatto un copia / incolla per l'impudenza, Hahahahahaha. Dimostra che, almeno, il post è di buona qualità. Dico, no?, Hahahahahaha.

    1.    Giskard suddetto

      Verso la fine in lettere minuscole c'è il collegamento che dice "fonte" e punta a questo sito. Ma averlo fatto mi sembra una totale scortesia e una mancanza di rispetto. Fortunatamente, qui sappiamo chi è l'autore 🙂

    2.    Giulio Cesare suddetto

      Mettono il riferimento ma difficilmente si può notare che dovevano essere menzionati all'inizio dell'articolo

  10.   camion22 suddetto

    Nel wiki dell'arch si dice che a partire dalla versione 3.4 si consiglia di utilizzare pdbedit invece di smbpasswd.

    Una domanda, secondo un amico prima di aggiungere un utente a Samba occorre creare un utente nel sistema ma con / bin / false
    useradd -s / bin / false myuser
    0.o vero?

  11.   Federico Antonio Valdes Toujague suddetto

    Amico @ truko22 e, in generale, per coloro che fanno domande simili. Ricorda che abbiamo sempre affermato di dare solo a Punto d'entrata al soggetto. Si consiglia inoltre di leggere la documentazione allegata. Alla fine, la personalizzazione del servizio è responsabilità di chi lo implementa, in modo che risponda alle sue esigenze e al livello di sicurezza che le soddisfa.

    Ad esempio, il problema delle autorizzazioni può essere evitato se permettiamo a chiunque di scrivere sulla condivisione utilizzando chmod 777. Ovviamente questa non è una soluzione sicura.

    Puoi impedire all'utente di avviare una sessione locale o tramite ssh se lo creiamo tramite adduser user –shell / bin / false. Cioè, l'utente così creato non può accedere a un terminale o una console.

    In altre parole, Samba può essere configurato in molti modi, che vanno dal più semplice al più complesso.

    Che succede?. Se scriviamo il post senza consentire agli utenti aggiunti a Samba di accedere localmente, sicuramente chiederanno perché. Ecco perché preferiamo scriverlo nel modo più classico possibile e lasciare che ognuno tragga le proprie conclusioni.

    @ truko22, grazie per avermi dato il punto giusto per fare il commento precedente !!!

    1.    camion22 suddetto

      Grazie mille ora ho capito 😀 riguardo a –shell / bin / false

  12.   Federico Antonio Valdes Toujague suddetto

    Amico @ truko22, mi sono dimenticato di pdbedit. Da quando Etch mi sono abituato a usare smbpasswd. Questo comando può essere eseguito da qualsiasi utente del sistema e il suo comportamento e risultati variano. pdbedit, può anche essere utilizzato, ma può essere richiamato solo dall'utente root.

    A proposito di Samba, puoi scrivere interi articoli su molti dei suoi comandi.

  13.   Leone suddetto

    È molto buono!!
    saluti

  14.   Marcos suddetto

    Articolo molto buono. Congratulazioni e grazie per questo contributo

  15.   Joseuzin suddetto

    Volevo chiederti se c'era un articolo su samba come controller di dominio e se può già controllare il dominio con criteri di gruppo come un server Windows, intendo impedire la modifica delle proprietà degli indirizzi di rete, l'utilizzo di pendrive, ecc.

  16.   Ricardo Méjias suddetto

    Ciao, come sta Fico, ho installato Samba 3.6 con LDAP e LAM 3.7 - Vorrei sapere se sai come consentire agli utenti di cambiare la password quando si avvia la sezione poiché mi dice "non sei autorizzato a cambiare la tua password" saluti ...