Introdução
Vamos começar lendo sobre OpenBSD e Samba.
O OpenBSD é um sistema operacional livre da família UNIX, multiplataforma. Seu time de desenvolvedores enfatiza a portabilidade, padronização, correção e segurança. Ele suporta emulação binária da maioria dos binários de SRV4 (Solaris), FreeBSD, Linux, SunOS e HP-UX e funciona nas plataformas i386, SPARC, hp300, Amiga, Mac68k, PowerPC, pmax, mvme68k. A versão mais atual é a 4.1.
Texto retirado de: AQUI
Samba é um programa de computador, utilizado em sistemas operacionais do tipo Unix, que simula um servidor Windows, permitindo que seja feito gerenciamento e compartilhamento de arquivos em uma rede Microsoft.
Texto retirado de: AQUI
Bom, acredito que se você tá lendo esse texto é porque já tem conhecimento sobre o que cada software faz, caso não, leia os sites indicados a cima para poder se interar melhor.
Começando a Instalação
Levando em conta que seu sistema já esteja instalado e configurado adequadamente para o seu uso, contendo as suas ferramentas preferidas para shell e edição de textos. Vamos começar:
Primeiro vamos instalar o samba usando o ports do openbsd, poderiamos baixar o source do site e usa-lo, mas pelo ports iremos manter a robustez do OpenBSD, há quem diga que instalando pacotes via source a pureza do S.O. acaba se perdendo. hehehe. Como querendo um sistema puro e seguro, vamos usar o ports. Na verdade pelo ports, ele baixa o source sim, mas também aplica os patchs criados pela turma desenvolvedora do sistema.
# cd /usr/ports/net/samba/
# make install
(Dependendo de sua conexão e de sua maquina, isso pode ser um pouco demorado, eu aconselho um copo de sorvete de flocos pra esperar isso terminar)
Deve demorar caso o servidor esteja limpo ainda, sem muita coisa instalada ele vai baixar as dependencias.
Essa parte é simples, facil até. Terminando, vamos para a parte boa. Configurar.
Configurando smb.conf
Para configurar ele também segue o padrão do Linux. Vamos iniciar:
# cd /etc/samba
# cp smb.conf smb.conf-bkp
Agora vamos configurar o smb.conf por partes, abra ele com o seu editor preferido (se bem que no openbsd so vem instalado o vi por padrao… hehehe)
Apos abrir, vamos configura-lo:
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
workgroup = minha-casa
– Aqui você altera o nome do workgroup para o nome do seu dominio.
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the “loopback” interface. For more examples of the syntax see
# the smb.conf man page
hosts allow = 10.1.1. 127.
– Aqui você determina quais faixas de ip irão poder se conectar no pdc.
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don’t use this
# if you already have a Windows NT domain controller doing this job
domain master = yes
– isso é pra definir que o servidor será o controlador de dominio master
# WINS Server – Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
wins server = 10.1.1.6 (ip do seu servidor)
O resto do arquivo são as definições de compartilhamento. Nelas você coloca da forma que achar melhor e de acordo com a organização de sua rede.
Abaixo segue o script logon.bat, que deve ficar dentro do diretório “netlogon”, ele é assim mesmo, com o # na frente mesmo, coloque essa linha no arquivo logon.bat e salve:
#net time \\pdc /set /yes
Depois disso, faça o seguinte, atribua permissões de execução ao arquivo:
# chmod +x logon.bat
Obs.: Esse arquivo bat deve ser criado no windows e copiado para estacao para que funcione corretamente. Caso contrario ele nao ira pegar o horario do servidor.
Lembrando que é preciso também criar o grupo “estacoes”:
# groupadd estacoes
Agora vamos ao mais “chatinho” que consigo, ficar adicionando as máquinas no domínio. Para cada máquina é necessário adicionar um usuário com um $ na frente, por exemplo:
# useradd -g estacoes -s /bin/false -d /dev/null maquina$
# smbpasswd -am maquina$
Deve aparecer a seguinte mensagem:
Added user maquina$
Agora para adicionar usuários na rede, é preciso fazer a seguinte seqüência:
# useradd -g estacoes -s /bin/false -d /home/usuário usuário
# smbpasswd -a usuário
Nisso ele vai pedir pra inserir uma senha, essa senha será a senha para se usar para logar na rede.
Configurando Inicialização
Essa parte é um pouco chatinha, mas vamos lá, mão na massa.
Para que o samba seja inicializado “automagicamente” quando o servidor for ligado ou reinicializado por conta de queda de energia ou qualquer outra coisa, insira as seguintes linhas no /etc/rc.local
if [ -f /etc/samba/smb.conf -a X”${samba}” != X”NO” ]; then
if [ X”${smbd_flags}” != X”NO” -a -x /usr/local/libexec/smbd ]; then
echo -n ‘ smbd’; /usr/local/libexec/smbd ${smbd_flags}
fi
if [ X”${nmbd_flags}” != X”NO” -a -x /usr/local/libexec/nmbd ]; then
echo -n ‘ nmbd’; /usr/local/libexec/nmbd ${nmbd_flags}
fi
fi
Pra ele rodar com a flag -D, insira no /etc/rc.conf
smbd_flags=”-D”
nmbd_flags=”-D”
Agora vamos Iniciar o samba, pode escolher duas maneiras de faze-lo. Reiniciar o servidor ou mandar esses dois comandos.
# /usr/local/libexec/smbd -D
# /usr/local/libexec/nmbd -D
Pronto, agora ele estara rodando, por exemplo:
# ps aux | grep mbd
root 4638 0.0 1.5 2676 1980 ?? Is 12:29AM 0:00.04 /usr/local/libexec/smbd -D
root 2476 0.0 0.5 2676 592 ?? I 12:29AM 0:00.01 /usr/local/libexec/smbd -D
root 10081 0.0 1.0 1148 1292 ?? Ss 12:29AM 0:00.02 /usr/local/libexec/nmbd -D
Agora, vamos aos testes.
Testando o Servidor
O primeiro teste pode ser feito localmente, usando o smbclient, vamos primeiro definir a senha de root do samba.
# smbpasswd -a root
Agora vamos usar o smbclient para listar os compartilhamentos e infos do servidor
# smbclient -L 127.0.0.1 -U root
deve aparecer algo mais ou menos assim:
# smbclient -L 127.0.0.1 -U root
Password:
Domain=[MINHA-CASA] OS=[Unix] Server=[Samba 3.0.24]
Sharename Type Comment
——— —- ——-
PUBLICO Disk Diret_rio Publico
pchome Disk PC Directories
IPC$ IPC IPC Service (Controlador de Dom_nio Prim_rio (closedbox))
root Disk Diret_rio do Usu_rio
Domain=[MINHA-CASA] OS=[Unix] Server=[Samba 3.0.24]
Server Comment
——— ——-
PDC Controlador de Dom__rio (closedbox)
Workgroup Master
——— ——-
MINHA-CASA
Agora vamos adicionar uma maquina e um usuario no samba, para que possamos inserir essa maquina (Windows) no dominio e logar usando esse usuario.
# useradd -g estacoes -s /bin/false -d /dev/null myhome$
# smbpasswd -am myhome$
Agora vamos criar o usuario
# useradd -m -g estacoes -s /bin/false -d /home/thiago thiago
# smbpasswd -a thiago
Obs.: A opção -m ja vai criar a home na execução do comando.
Agora vamos inserir a maquina windows que se chama winteste no dominio.
Caso não saiba como fazer, siga o artigo de nosso companheiro srf
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1643
Instalando e configurando o Clamav
Apos o samba estar funcionando corretamente, vamos agora instalar o clamav, para que este possa verificar os arquivos compartilhados e usados pelo windows e assim evitar que tenhamos problemas com virus na rede. Uma grande mão na roda isso.
Vamos instala-lo via ports mesmo.
# cd /usr/ports/security/clamav
# make install
Depois de instalar ele, vamos agora adicionar a função para escanear arquivos arj e rar. Basta seguir as instruções no final da instaçalão:
— clamav-0.90.3 ——————-
Edit /etc/clamd.conf and /etc/freshclam.conf
to use ClamAV.
Use freshclam to install an up-to-date virus signature database.
If you want to scan RAR(2.0) and/or ARJ archives, you have to manually
build and install the archivers/unarj and archivers/unrar ports.
Vamos lá
# cd /usr/ports/archivers/unarj
# make install
# cd /usr/ports/archivers/unrar
# make install
Depois disso, vamos configurar o Clamav e atualiza-lo.
Edite o arquivo /etc/clamd.conf com seu editor preferido.
# Comment or remove the line below.
Example
– nessa linha comente o Example, colocando um # na frente dele.
# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
#LogFile /var/log/clamd.log
– Aqui remova o # da frente do LogFile para que o log possa ser gerado e a gente curiar depois.
Agora vamos editar o FreshClam para que possa ser feita a atualização.
Edite o arquivo /etc/freshclam.conf com seu editor preferido.
– Basimente basta comentar a linha Example, que segue:
# Comment or remove the line below.
Example
– Comentando ele, ja vai conseguir atualizar mas recomendo uma leitura no arquivo de configuração para que você ative apenas o que deseja da forma que deseja.
Agora vamos atualizar o clamav.
# freshclam
Pronto, seu clamav vai estar atualizado. Agora para rodar ele, use o comando:
# clamd
Para colocar ele iniciando quando a maquina for ligada, altere o arquivo /etc/rc.local, colocando a linha
/usr/local/sbin/clamd
Pronto, ele estara rodando. Agora vamos instalar o samba-vscan e configura-lo.
Instalando e configurando o Samba-vscan
Antes de instalar o samb-vscan, vamos instalar os seguintes pacotes:
– autoconf
– libmagic
– gmake
– bzip2
Provavelmente um ou outro já devem estar instalado, mas para ter certeza vamos fazer um por um.
# cd /usr/ports/devel/autoconf
# make install
# cd /usr/ports/devel/libmagic
# make install
# cd /usr/ports/devel/gmake
# make install
# cd /usr/ports/devel/bzip2
# make install
Feito isso, vamos agora fazer uma pequena adaptação no source do samba para que tudo corra bem, leia, adaptação, nada de gambiarras… hehehehe
Edite o arquivo:
/usr/ports/net/samba/w-samba-3.0.24/samba-3.0.24/source/autogen.sh
Levando em conta que a versão do samba é a 3.0.24.
TESTAUTOHEADER=”autoheader autoheader-2.53 autoheader2.50 autoheader-2.59″
TESTAUTOCONF=”autoconf autoconf-2.53 autoconf2.50 autoconf-2.59″
Depois disso, vamos rodar o make proto no source pra podermos conseguir instalar o samba-vscan.
no diretorio /usr/ports/net/samba/w-samba-3.0.24/samba-3.0.24/source/
rode:
# ./autogen.sh
# ./configure
# make proto
Agora vamos baixar o samba-vscan mais novo. No link abaixo:
http://www.openantivirus.org/projects.php#samba-vscan
# ftp http://ufpr.dl.sourceforge.net/sourceforge/openantivirus/
samba-vscan-0.3.6b.tar.bz2
# bunzip2 samba-vscan-0.3.6b.tar.bz2
# tar xf samba-vscan-0.3.6b.tar
# cd samba-vscan-0.3.6b
# ./configure –with-samba-source=/usr/ports/net/samba/w-samba-3.0.24/
samba-3.0.24/source/
# gmake clamav
# cp vscan-clamav.so /usr/local/lib/samba/vfs/
# cp clamav/vscan-clamav.conf /etc/samba/
Agora sim. Instalado, vamos configura-lo.
Edite o arquivo /etc/samba/vscan-clamav.conf com seu editor favorito.
Altere o seguinte:
; where to put infected files – you really want to change this!
quarantine directory = /var/clamav/quarantine
– assim ele copia pro quarantine os arquivos possivelmente infectados.
; socket name of clamd (default: /var/run/clamd). Setting will be ignored if
; libclamav is used
clamd socket name = /tmp/clamd
– Assim o socket sera encontrado, senao vai dar erro e acesso negado nos arquivos ja criados.
Agora vamos editar o smb.conf e adicionar as linhas seguintes para que ele seja ativado quando o samba iniciar.
Se quiser que o vscan roda para todos os compartilhamentos (o que demanda ter uma boa maquina) coloque as seguintes linhas no global. Caso contrario, coloque apenas no compartilhamento que deseja que o vscan fique escaneando.
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
Assim, podemos verificar seu funcionamento.
# tail -f /var/log/messages
Deve aparecer a seguinte mensagem quando alguem acessar algum arquivo ou cria-lo.
Aug 19 21:55:50 closedbox smbd_vscan-clamav[27411]: samba-vscan (vscan-clamav 0.3.6b) registered (Samba 3.0), (c) by Rainer Link, OpenAntiVirus.org
Aug 19 21:55:50 closedbox smbd_vscan-clamav[27411]: samba-vscan (vscan-clamav 0.3.6b) connected (Samba 3.0), (c) by Rainer Link, OpenAntiVirus.org
Aug 19 21:55:50 closedbox smbd_vscan-clamav[27411]: INFO: connect to service PUBLICO by user root
Pronto.
Samba-vscan funcionando.
Alternativas para uso do Clamav
Podemos também usar outras alternativas para usar o clamav e assim eliminar os virus que aparecerem em nosso servidor. Como por exemplo agendar no cron para que seja feito varreduras em horarios determinados, por exemplo as 12:00 horas e as 18:00 horas, caso alguém trabalhe até mais tarde, colocamos ele pra varrer no horario apos essa pessoa sair ou então a 00:00.
A sintaxe do clamav para fazer a varredura é:
# clamdscan -r –move=/var/clamav/quarantine /diretorios_para_varrer
Então no cron, pode ficar mais ou menos assim.
# crontab -e
adicionar as linhas
00 00 * * * /usr/local/bin/clamscan -r –move=/var/clamav/quarantine /dir_para_varrer
00 12 * * * /usr/local/bin/clamscan -r –move=/var/clamav/quarantine /dir_para_varrer
00 18 * * * /usr/local/bin/clamscan -r –move=/var/clamav/quarantine /dir_para_varrer
E pronto. A proteção contra virus estara um pouco maior.
Também uma boa ideia é fazer atualizações automaticas todas as noites usando o freshclam. Ficando mais ou menos assim.
00 1 * * * /usr/bin/freshclam 1> /dev/null
Assim todos os dias a 1 hora da manhã ele ira fazer a atualização.
Conclusão
Bom, assim terminamos o nosso artigo. Espero ter correspondido a expectativa criada no inicio do mesmo quando a instalação e configuração.
Qualquer duvida, não hesitem em perguntar.
Agradecimentos
Pessoal do #linuxajuda na irc.freenode.net
Minha namorada que me deixou escrever esse artigo nesse domingo, claro que deixei ela vendo filme, assim nem sentiu minha falta… hehehehe
Sites recomentados e consultados para escrever o artigo:
http://swik.net/Samba
http://swik.net/OpenBSD
http://swik.net/Openbsd+samba
Enfim, tendo em vista que não encontrei nenhum artigo em pt_BR que falassem bem sobre o assunto, resolvi escreve-lo, espero ajudar muita gente e quem sabe aumentar a popularidade do openbsd para outros serviços, senão o de firewall.
Para isso pretendo ir escrevendo mais textos a respeito de OpenBSD e suas incriveis funcionalidades.
OpenBSD
Free, Functional & Secure
Thiago A. dos Santos
thiago[arroba]gmail.com
cvs @ #linuxajuda – irc.freenode.net