Montando um PDC com OpenBSD

16 09 2007

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:

OpenBSD 1

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.

openbsd2.jpg

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.

win-dominio.jpg

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


Ações

Information

2 responses

17 09 2007
Cleison Monteiro

Apagadim servindo para algo xD
Jogue duro e manda um cheiro pro LDAP…
ahauahuahua

20 11 2009
хостинг

intiresno muito, obrigado

Deixe um comentário