Servidor Debian - Parte 2 - Samba
No início o Samba era um sistema de rede projetado para construir pequenas redes locais.
Havia naquele sistema um “pedaço de software”, conhecido até hoje como NetBIOS (Network Basic Input Output System), que fornecia uma interface entre os programas e o hardware de rede.
O NetBIOS passou por uma grande evolução, tornando-se capaz de trabalhar com protocolos de alto nível — entre eles o famoso TCP/IP. Mais tarde, depois de o Windows se consolidar no mercado, a Microsoft acrescentou ao protocolo SMB (Service Message Block) um controlador de domínio (Windows NT Domain Control).
Dentre tantas funcionalidades presentes no servidor Samba, podemos destacar:
Vale ressaltar que os recursos do Samba são bastante completos. Não por acaso, muitas corporações que possuem equipes de TI dedicadas usufruem dos recursos do Samba.
Que vantagens o Samba oferece?
Como a principal função do servidor Samba é simular um servidor Windows, mais precisamente as distribuições do Windows Server, inevitavelmente o custo-benefício entra em jogo a favor do Samba.
Levando em consideração os bugs, que são muito menos recorrentes no Samba, a estabilidade e a segurança — visto que o software é instalado em um sistema GNU/Linux —, o sistema da Microsoft fica para trás.
Havia naquele sistema um “pedaço de software”, conhecido até hoje como NetBIOS (Network Basic Input Output System), que fornecia uma interface entre os programas e o hardware de rede.
O NetBIOS passou por uma grande evolução, tornando-se capaz de trabalhar com protocolos de alto nível — entre eles o famoso TCP/IP. Mais tarde, depois de o Windows se consolidar no mercado, a Microsoft acrescentou ao protocolo SMB (Service Message Block) um controlador de domínio (Windows NT Domain Control).
Dentre tantas funcionalidades presentes no servidor Samba, podemos destacar:
- Compartilhamento de arquivos, impressoras, diretórios, entre outros, com máquinas que rodam o Windows;
- Controle de acesso e privilégios;
- Resolução de nomes (DNS);
- Configurações a partir de ambientes remotos.
Vale ressaltar que os recursos do Samba são bastante completos. Não por acaso, muitas corporações que possuem equipes de TI dedicadas usufruem dos recursos do Samba.
Que vantagens o Samba oferece?
Como a principal função do servidor Samba é simular um servidor Windows, mais precisamente as distribuições do Windows Server, inevitavelmente o custo-benefício entra em jogo a favor do Samba.
Levando em consideração os bugs, que são muito menos recorrentes no Samba, a estabilidade e a segurança — visto que o software é instalado em um sistema GNU/Linux —, o sistema da Microsoft fica para trás.
Instalação
apt install samba
Configuração
Acesse o arquivo de configuração:
nano /etc/samba/smb.conf
[global]
workgroup = bureau
netbios name = dataserver
[publica]
path = /arquivos/publica
null passwords = yes
available = yes
read only = yes
guest ok = yes
writeable = yes
browseable = yes
force create mode = 777
force directory mode = 777
[rh]
path = /arquivos/rh
available = yes
read only = no
workgroup = bureau
netbios name = dataserver
[publica]
path = /arquivos/publica
null passwords = yes
available = yes
read only = yes
guest ok = yes
writeable = yes
browseable = yes
force create mode = 777
force directory mode = 777
[rh]
path = /arquivos/rh
available = yes
read only = no
Esse é um exemplo simples de compartilhamento de pasta no samba.
Depois de salvar, digite o comando testparm para verificar erros no arquivo de configuração.
testparm
Para adicionar usuários para compartilhar algum diretório, basta criar o diretório e criar o usuário no samba.
chmod 777 -R /pastaCompartilhada
adduser usuario
smbpasswd -a altair
adduser usuario
smbpasswd -a altair
Para reiniciar o samba basta usar o comando:
systemctl restart smbd
systemctl restart nmdb
O samba não é apenas um servidor para compartilhar pastas e impressoras, ele também pode gerenciar um domínio de rede completo, no melhor estilo Windows Server!
Ex.:
[global] workgroup = dominioPDC netbios name = samba server string = Servidor Samba admin users = @"%L\Domain Admins" #keepalive = 300 #deadtime = 10 domain master = yes domain logons = yes logon script = netlogon.vbs security = user encrypt passwords = true passdb backend = tdbsam prefered master = yes local master = yes os level = 100 wins support = yes #deixar em branco caso não seja necessário o Roaming Profiles #armazena somente pasta "Desktop", "Modelos" e "Meus Documentos", além das entradas do menu iniciar, cookies, arquivos temporários do IE e bookmarks. logon home = \\%L\%u\.profiles logon path = \\%L\profiles\%u #logon home = #logon path = #wins support = yes time server = yes #dns proxy = no #log file = /var/log/samba/log.%m #max log size = 1000 #syslog = 0 #panic action = /usr/share/samba/panic-action %d #add machine script = /usr/sbin/useradd -s /bin/false -d /var/lib/nobody %u [netlogon] path = /var/samba/netlogon read only = yes browseable = no guest ok = yes [arquivos] path = /var/arquivos guest ok = yes #read only = yes writable = yes browseable = yes force directory mode = 777 [homes] valid users = %S guest ok = yes browseable = no #Aqui são configurações para ativar os perfis remotos, caso o usuário possua muitos arquivos pode sobrecarregar a rede e causar demora no momento do login e logout [profiles] path = /var/profiles writable = yes browseable = no create mask = 0600 directory mask = 0700
- Dica: sempre usar testparm após a configuração. Caso esteja tudo ok aparecerá "Server role: ROLE_DOMAIN_PDC"
- Verificar se o root do sistema foi cadastrado no samba e se as senhas são iguais: smbpasswd -a root
- É necessário adicionar a linha "/bin/false" no arquivo /etc/shells
- Criar a pasta do path na seção [netlogon]. No nosso caso está em /var/samba/netlogon: mkdir -p /var/samba/netlogon e chmod 775 /var/samba/netlogon
- Criar os usuários e senhas: adduser teste
- No samba também smbpasswd -a teste
- Adicionar o login de máquina: useradd -d /dev/null -s /bin/false pc01$ (não tem diretório home (-d /dev/null), nem shell (-s /bin/false) e é uma conta de máquina ($ ao fim do nome)) passwd -l pc01
- smbpasswd -a -m pc01
- Dica: smbstatus mostra todos os usuários logados e a máquina em que estão.
Roaming Profiles
- No caso de utilização do Roaming Profiles é necessário criar o diretório .pds: mkdir /home/teste/profile.pds
- chown -R teste.teste /home/teste/profile.pds
- Criar a pasta "/var/profiles", onde será armazenado as informações o usuário: mkdir /var/profiles e dar permissões chmod 1777 /var/profiles
- Obs: Para excluir o usuário: smbpasswd -x teste e depois userdel -r teste. O -r é para exluir todo o cache e maildir da conta.
Adicionando usuário no grupo de administradores do windows
- Primeiro é necessário criar os grupos no linux groupadd -g 512 ntadmins, groupadd -g 513 ntusers e groupadd -g 512 ntguests
- Mapeá-los no samba: net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d, net groupmap add ntgroup="Domain Users" unixgroup=ntusers rid=513 type=d e net groupmap add ntgroup="Domain Guests" unixgroup=ntguests rid=514 type=d
- Adicionar os usuários nos seus devidos grupos com o comando gpasswd -a dener ntadmins
Proxy Autenticado
- Criar a pasta compartilhada na seção [netlogon]
- Criar um arquivo chamado "proxyauth" somente com a palavra "allow" dentro dele e colocá-lo na pasta netlogon.
- No caso de utilização do proxy autenticado juntamento com o squid, é necessário realizar o seguinte teste: /usr/lib/squid3/smb_auth -W dominioPDC - U 192.168.2.2 -d
- Digitar o nome do usuário e a senha separados por espaço: teste 123123
- O seguinte resultado deverá aparecer:
Domain name: dominioPDC Pass-through authentication: no Query address options: -U 192.168.2.2 -R Domain controller IP address: XX.XX.XX.XX Domain controller NETBIOS name: SAMBA Contents of //SAMBA/NETLOGON/proxyauth: allow OK
Porém provavelmente aparecerá este:
Domain name: dominioPDC Pass-through authentication: no Query address options: -U 192.168.2.2 -R Domain controller IP address: XX.XX.XX.XX Domain controller NETBIOS name: SAMBA Contents of //SAMBA/NETLOGON/proxyauth: ERR
- Para resolver este erro (Um problema "na sintaxe do comando smbclient da nova versão 3.3 do Samba"), é necessario acessar o arquivo /usr/lib/squid3/smb_auth.sh e alterar a linha de authinfo=`smbclient "//$dcname/$AUTHSHARE" -I $dcip -d$ 0 -E -W "$DOMAINNAME" -c "get $authfilebs -" 2>/dev/null` para authinfo=`$SAMBAPREFIX/bin/smbclient "//$dcname/$AUTHSHARE" -U $USER -I $dcip -d 0 -E -W "$DOMAINNAME" -c "get $authfilebs -" 2>/dev/null`
- No mesmo arquivo, adicionar logo no início, a seguinte linha: export SAMBAPREFIX=/usr
- Salvar o arquivo e executar os três comandos seguintes:
mkdir -p /usr/local/samba/bin ln -s /usr/bin/nmblookup /usr/local/samba/bin/nmblookup ln -s /usr/bin/smbclient /usr/local/samba/bin/smbclient
- Executar novamente o teste: /usr/lib/squid3/smb_auth -W dominioPDC - U 192.168.2.2 -d seguido do usuário e senha.
- Agora os computadores clientes solicitarão usuário e senha para liberar o acesso à internet.
Netlogon
- Dica: Para executar o arquivo netlogon.bat, é necessário ser administrador do windows
- Criar o arquivo netlogon.vbs (o arquivo .vbs executa o .bat e impede que a tela do prompt se abra ao logar com o usuário, impedindo que o cidadão feche-o) com o conteúdo:
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.run "%comspec% /c \\sambaPDC\netlogon\netlogon.bat",0 Set WshShell = Nothing
Criar também o arquivo netlogon.bat (Caso o arquivo netlogon.bat foi criado no linux é necessário rodar unix2dos netlogon.bat para converter no formato ms-dos)
rem O "rem" é utilizado para comentários no ms-dos rem net use m: /HOME rem Mapear unidade de rede net use O:\\samba\arquivos /yes rem Sincroniza hora com o servidor PDC net time \\samba /set /yes rem A partir daqui é possível ativar ou desativar os itens do windows. rem "REG_DWORD /d 00000001 /f" basta mudar o final do hexadecimal rem Desativa o painel de controle rem 1 = Bloqueia / 0 = Libera reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoControlPanel /t REG_DWORD /d 00000001 /f rem Define o papel de parede rem Inserir o arquivo do papel de parede na pasta netlogon reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ConvertedWallpaper /t REG_SZ /d "\\samba\netlogon\wallpaper.jpg" /f reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v OriginalWallpaper /t REG_SZ /d "\\samba\netlogon\wallpaper.jpg" /f reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "\\samba\netlogon\wallpaper.jpg" /f rem Bloqueia a alteração de papel de parede rem 1 = Bloqueia / 0 = Libera reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDesktopCleanupWizard /t REG_DWORD /d 0x00000001 /f rem Bloqueia Página para configurações de tema rem 1 = Ativa / 0 = Desativa reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoThemesTab /t REG_DWORD /d 0x00000001 /f rem Desativa o firewall do windows rem 1 = Ativa / 0 = Desativa reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v EnableFirewall /t REG_DWORD /d 0x00000000 /f rem Bloqueia a Notificação de Anti Virus rem 0 = Ativa / 1 = Desativa reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Security Center" /v AntiVirusDisableNotify /t REG_DWORD /d 0x00000001 /f rem Bloqueia a Notificação de Firewall rem 0 = Ativa / 1 = Desativa reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Security Center" /v FirewallDisableNotify /t REG_DWORD /d 0x00000001 /f rem Bloqueia a Notificação de Atualização Automática rem 0 = Ativa / 1 = Desativa reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Security Center" /v UpdatesDisableNotify /t REG_DWORD /d 0x00000001 /f rem Impede a exclusão de impressoras rem 1 = Ativa / 0 = Desativa reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDeletePrinter /t REG_DWORD /d 0x00000000 /f