A cerca de três anos atrás foi promovido a analista de sistemas e administrador de redes de um órgão público, bem posso dizer que maior do que os problemas que encontrei, só mesmo a falta de recursos para solucioná-los.
Um dos principais motivos e minhas dores de cabeça era o nosso PDC, um Pentium III de 500 Mhz, 256MB de memória, rodando o Windows NT 4 Server, segurando uma rede com mais de 200 usuários e 150 estações.
O carinha tava pedindo “pelo amor de Deus” para ser aposentado, como a produtividade estava sendo prejudicada pelos constantes problemas na rede, não foi difícil convencer a chefia da necessidade urgente de um upgrade, então eles me deram as peças para montar uma nova máquina: Placa-mãe Asus P5Q-E, 2GB de Ram DDR-II, 2 HDs Sata de 80GB e um Core 2 Quad CPU Q9550 @ 2.83GHz.
Tudo perfeito, o pessoal foi correndo montar a maquina em um lido gabinete preto acompanhado de monitor LCD, depois de tudo pronto percebemos que tava faltando o principal: cadê o Sistema Operacional?
Agente só tinha a licença de velho NT, é claro que nem em pesadelo eu iria colocá-lo no novo servidor, a outra opção seria esperar por uma nova licitação que na melhor das hipóteses iria demorar mais uns três meses…
Enquanto o mundo gira o pessoal de TI se virar! Comecei a googlar sobre o Samba e enfrentar o caminho das pedras para levantar o novo PDC, sem saber nada sobre servidores Linux, isso todo bem no momento em que o Pentium III começou a “bater as botas”.
Hoje depois de dois anos trabalhando com o Samba, eu percebo que apesar de na época ele ter sido minha única opção, ele foi também a melhor que eu poderia ter escolhido.
Com o Samba é possível montar um servidor, robusto, seguro, flexível, fácil de administrar e livre de pragas virtuais. Um software de extrema qualidade e 100% livre.
Quando eu instalei o Samba pela primeira vez, cometi o equivoco de não documentar o processo, daí me veio a ideia de escrever esse artigo, aproveitando substituição do HD do sistema e do Debian 5 pelo Ubuntu Server 11.04. Achei o processo bem mais fácil, em poucas horas de trabalho já estava acionando usuários e maquinas ao domínio.
Requisitos:
O Ubuntu Server Edition é feito para rodar em qualquer processador Intel ou AMD,. Ele requer um mínimo de 192MB de RAM e 1 GB de espaço em disco. Dependendo de suas necessidades, você pode conseguir com menos do que isso. No entanto, a maioria dos usuários correm o risco de ficar frustrados caso ignorem estas sugestões.
Configurações:
Proceda normalmente o processo de instalação, na tela de seleção de software marque a opção Samba file server.
Ao final da instalação, todos os pacotes necessários para inicializar o seu controlador de domínio já vai estar instalado, falta apenas alguns detalhes:
Facilitando ainda mais seu trabalho
Para simplificar o processo de administração do nosso servidor, vamos instalar o Webmin a partir de: http://www.webmin.com/download.html
ou pela linha de comando:
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.550_all.deb sudo dpkg --install webmin_1.550_all.deb |
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.550_all.deb sudo dpkg --install webmin_1.550_all.deb
Agora você poderá configurar todas as funcionalidades e serviços instalados no servidor a partir de uma interface web, usando qualquer estação da rede que possua um navegador de Internet, acessando o endereço: http://IP_DO_SERVIDOR:10000/
Acionando usuários e grupos ao novo domínio
Os usuários podem ser acionados pelo webmin ou pela linha de comando:
smbpasswd -a nome_do_usuario
Antes da criação dos usuários é conveniente criamos os grupos de usuários do domínio, da mesma forma que ocorre com os usuários, todos os grupos de usuários do samba deve esta associado a um grupo um grupo preexistente no sistema.
Usuários com privilégios de administrador nas estações Windows:
– Primeiro, crie um grupo no Linux (exemplo: administradores), você pode chamá-lo de qualquer coisa …
– Em seguida execute o seguinte comando em um terminal:
net groupmap add ntgroup=”Domain Admins” unixgroup= administradores rid=512 type=d
Agora certifique-se que você adicionou os usuários que terão direitos de administrador nas estações de trabalho Windows para o grupo Linux “administradores” que havíamos criado anteriormente.
Nota: Adicionar usuários ou grupos na opção “admin users” do smb.conf só permite aos usuários adicionar máquinas ao domínio.
Aqui esta o meu samba.conf (/etc/samba/smb.conf) comentado em algumas partes importantes da configuração:
[global] #nome do domínio workgroup = h4ck3z server string = %h PDC server security = user domain master = yes prefered master = yes local master = yes netbios name = servlinux map to guest = Bad User pam password change = Yes encrypt passwords = true client lanman auth = Yes smb passwd file = /etc/samba/smbpasswd #usuários administradores da rede (permissão para adicionar maquinas no dominio). admin users = administrador ivan #restrige o acesso ao servidor apenas nas afixas de IP informadas. hosts allow = 10.23.0. 127. enable privileges = yes time server = yes passdb backend = tdbsam socket options = TCP_NODELAY SO_RCVBUF=102400 SO_SNDBUF=102400 #interfaces de redes habilitadas ao acesso interfaces = lo eth0 bind interfaces only = yes log level = 0 #scripts para inclusão automática de usuários e maquinas ao domínio add user script = /usr/sbin/useradd -m %u set primary group script = /usr/sbin/usermod -g %g %u /bin/false -d /dev/null %u add group script = /usr/sbin/groupadd %g add user to group script = /usr/bin/gpasswd -a %u %g #o comado abaixo é responsável pelo ingresso automático das maquinas, para que funcione #corretamente você deve criar um grupo no samba para receber os computadores do domínio #nesse exemplo o nome do gropu é "maquinas". add machine script = useradd -g maquinas -c "Maquina h4ck3z.local" -s /bin/false -d /dev/null %u delete group script = /usr/sbin/groupdel %g delete user from group script = /usr/bin/gpasswd -d %u %g delete user script = /usr/sbin/userdel -r %u rename user script = /usr/sbin/usermod -l %unew %uold obey pam restrictions = yes domain logons = yes unix password sync = Yes syslog = 1 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No usershare allow guests = Yes panic action = /usr/share/samba/panic-action %d logon path = logon script = netlogon.bat level2 oplocks = no ntlm auth = yes lanman auth = yes client ntlmv2 auth = yes #não permite a gravação das extensões de arquivos declaradas nas pastas compartilhadas #do servidor ex: filmes, músicas executáveis, etc. veto files = /*.mp3/*.avi/*.mpeg/*.mpg/*.wma/*.wmv/*.cmd/*.exe/*.bat/*.scr/*.inf/*.vmx delete veto files = yes unix charset = iso8859-1 display charset = cp850 follow symlinks = yes wide links = no getwd cache = yes vfs object = recycle full_audit # Auditoria - Grava no log todas as alterações processadas pelos usuários no servidor full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir full_audit:prefix = %u|%I|%S full_audit:failure = none full_audit:facilit = local5 full_audit:priority = notice # Lixeira - Guarda uma cópia dos arquivos excluídos em uma pasta oculta recycle:repository = .lixeira recycle:keeptree = yes recycle:versions = yes #tipos de arquivos que não vão para a lixeira recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso recycle:exclude_dir = tmp, cache [netlogon] comment = Serviço de Logon path = /var/netlogon guest ok = Yes browseable =no write list = ivan public = no veto files = vfs object = full_audit force create mode = 0777 directory mask = 0777 force directory mode = 777 [Publica] comment = Pasta publica path = /files/shares/public writeable = yes public = yes vfs object = full_audit force create mode = 0777 directory mask = 0777 force directory mode = 777 [suport] write list = ivan path = /files/shares/suport comment = Equipe Telemática veto files = vfs object = full_audit force create mode = 0777 directory mask = 0777 force directory mode = 777 [RH] comment = Exemplo de Compartilhamento com acesso restrito path = /files/shares/RH #somente usuários do grupo RH e o administrador terão acesso aos arquivos. valid users = administrador @RH writeable = yes force create mode = 0777 directory mask = 0777 force directory mode = 777 |
[global] #nome do domínio workgroup = h4ck3z server string = %h PDC server security = user domain master = yes prefered master = yes local master = yes netbios name = servlinux map to guest = Bad User pam password change = Yes encrypt passwords = true client lanman auth = Yes smb passwd file = /etc/samba/smbpasswd #usuários administradores da rede (permissão para adicionar maquinas no dominio). admin users = administrador ivan #restrige o acesso ao servidor apenas nas afixas de IP informadas. hosts allow = 10.23.0. 127. enable privileges = yes time server = yes passdb backend = tdbsam socket options = TCP_NODELAY SO_RCVBUF=102400 SO_SNDBUF=102400 #interfaces de redes habilitadas ao acesso interfaces = lo eth0 bind interfaces only = yes log level = 0 #scripts para inclusão automática de usuários e maquinas ao domínio add user script = /usr/sbin/useradd -m %u set primary group script = /usr/sbin/usermod -g %g %u /bin/false -d /dev/null %u add group script = /usr/sbin/groupadd %g add user to group script = /usr/bin/gpasswd -a %u %g #o comado abaixo é responsável pelo ingresso automático das maquinas, para que funcione #corretamente você deve criar um grupo no samba para receber os computadores do domínio #nesse exemplo o nome do gropu é "maquinas". add machine script = useradd -g maquinas -c "Maquina h4ck3z.local" -s /bin/false -d /dev/null %u delete group script = /usr/sbin/groupdel %g delete user from group script = /usr/bin/gpasswd -d %u %g delete user script = /usr/sbin/userdel -r %u rename user script = /usr/sbin/usermod -l %unew %uold obey pam restrictions = yes domain logons = yes unix password sync = Yes syslog = 1 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No usershare allow guests = Yes panic action = /usr/share/samba/panic-action %d logon path = logon script = netlogon.bat level2 oplocks = no ntlm auth = yes lanman auth = yes client ntlmv2 auth = yes #não permite a gravação das extensões de arquivos declaradas nas pastas compartilhadas #do servidor ex: filmes, músicas executáveis, etc. veto files = /*.mp3/*.avi/*.mpeg/*.mpg/*.wma/*.wmv/*.cmd/*.exe/*.bat/*.scr/*.inf/*.vmx delete veto files = yes unix charset = iso8859-1 display charset = cp850 follow symlinks = yes wide links = no getwd cache = yes vfs object = recycle full_audit # Auditoria - Grava no log todas as alterações processadas pelos usuários no servidor full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir full_audit:prefix = %u|%I|%S full_audit:failure = none full_audit:facilit = local5 full_audit:priority = notice # Lixeira - Guarda uma cópia dos arquivos excluídos em uma pasta oculta recycle:repository = .lixeira recycle:keeptree = yes recycle:versions = yes #tipos de arquivos que não vão para a lixeira recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso recycle:exclude_dir = tmp, cache [netlogon] comment = Serviço de Logon path = /var/netlogon guest ok = Yes browseable =no write list = ivan public = no veto files = vfs object = full_audit force create mode = 0777 directory mask = 0777 force directory mode = 777 [Publica] comment = Pasta publica path = /files/shares/public writeable = yes public = yes vfs object = full_audit force create mode = 0777 directory mask = 0777 force directory mode = 777 [suport] write list = ivan path = /files/shares/suport comment = Equipe Telemática veto files = vfs object = full_audit force create mode = 0777 directory mask = 0777 force directory mode = 777 [RH] comment = Exemplo de Compartilhamento com acesso restrito path = /files/shares/RH #somente usuários do grupo RH e o administrador terão acesso aos arquivos. valid users = administrador @RH writeable = yes force create mode = 0777 directory mask = 0777 force directory mode = 777
Os grandes desafios são sempre uma oportunidade de crescimento e superação.