SlideShare une entreprise Scribd logo
1  sur  25
•   SAMBA PDC
   •   PROXY SERVER SQUID
   •   ANALISE DE LOGS VIA SARG




By: Adauto Amaral, Anderson Lago, André Ximenes




                               Maio 2009
Introdução

   Samba é um software utilizado em sistemas operacionais do tipo UNIX, que possibilita
   uma interoperabilidade entre redes mistas LINUX(UNIX) e Windows, atuando no
   gerenciamento e compartilhamento de arquivos.

   Sendo um software livre licenciado sob a GNU - General Public License , o projeto
   samba é um membro da Software Freedom Conservancy. Desde 1992, o Samba
   proporcionou serviços seguros, estáveis e rápidos para todos os clientes que usam o
   protocolo de SMB/CIFS, tal como todas as versões do DOS e o Windows, o OS/2, o
   linux e muitos outros. O Samba é um componente importante para integrar servidores
   linux/Unix e os Desktops em ambientes Active Directory.

   Na versão 3, o Samba não só provê arquivos e serviços de impressão para vários
   Clientes Windows, como pode também integrar-se com Windows Server Domain, tanto
   como Primary Domain Controller (PDC) ou como um Domain Member. Pode fazer
   parte também de um Active Directory Domain.



1. Objetivo

   Configuração de um PDC Samba em conjunto com o Proxy Server Squid, realizando
   autenticação de usuários, e analise de logs via SARG.




2. Visualizando o ambiente

   PDC Samba → PLANETAS

                      GRUPO DE USUARIOS

          Diretoria                           Funcionarios
          - marcos                            - nelson
          - jose                              - luis



                       COMPARTILHAMENTOS
                            Diretoria
                          Funcionarios

                             Publica
3. Sugestão de requisitos de Hardware e Software do sistema.

   Software:

   Utilizaremos como base para implementação de nosso PDC Samba, a distribuição
   Linux CentOS versão 5.4. As estações clientes serão baseadas na plataforma
   WindowsXP.

   Hardware:

   Do ponto de vista de Hardware necessário à instalação, devemos levar em conta
   capacidade de processamento, memória de execução e espaço para armazenamento dos
   compartilhamentos, afinal esse último é nosso foco principal.

   CPU ≥ 1.0 Ghz.
   Mem. RAM ≥ 512 MB.
   HD ≥ 80 GB


4. Pacotes necessários à instalação.

   - samba
   - samba-client
   - samba-common
   - httpd  Servidor Web (Necessário a implementação do Sarg)
   - squid  Servidor de Cache-Proxy
   - sarg  Gerenciador de Logs do Squid


5. Obtenção e instalação do pacotes.

   Inicialmente considerando um ambiente Linux CentOS 5.4 instalado, adotaremos a
   instalação automática dos pacotes através dos repositórios do próprio CentOS. Isso
   garante que serão instalados os pacotes mais recentes disponiveis para sua distribuição.

   Obs1: Lembre-se que o simbolo # determina que você está logado como root.

   Obs2:
   Para evitar problemas de acesso, caso na pós-insatalação do CentOS 5.4 você não tenha
   configurado o firewall do servidor para liberar acesso ao samba, execute como root este
   comando → #service iptables stop
   Isso ira desabilitar o serviço do iptables temporariamente. Para que o serviço não
   reinicie no pŕoximo boot execute o comando ntsysv desmarque a opcção iptables e de
   OK .
Como root execute os comandos

   Verifica se algum pacote do Samba está instalado.
   #rpm -qa samba*
   Caso não estejam execute:
   #yum install samba

   Verifica se algum pacote do Servidor Web está instalado.
   #rpm -qa httpd*
   Caso não estejam execute:
   #yum install httpd

   Verifica se algum pacote do Proxy Server está instalado.
   #rpm -qa squid*
   Caso não estejam execute:
   #yum install squid

   Verifica se algum pacote do Sarg está instalado.
   #rpm -qa sarg*
   Caso não estejam execute:
   #wget http://dag.wieers.com/rpm/packages/sarg/sarg-2.2.3.1-1.el5.rf.i386.rpm
   #rpm -ivh sarg-2.2.3.1-1.el5.rf.i386.rpm


6. Configurando Usuarios e Grupos

   Como root execute os comandos

   Adiciona os Grupos
   #groupadd diretoria
   #groupadd funcionarios

   Obs: Sendo os Usuarios em questão membros de um dominio não é interessante
   permitir o login local no servidor.
   Por motivos de segurança utilizamos o shell /bin/false.

   Adiciona os Usuarios
   Exemplo de sintaxe utilizada
   #adduser -c “Nome Completo” -g grupo_primario -G grupo_secundario
   -s /bin/false usuario

   #adduser -c “Marcos da Silva” -g diretoria -G funcionarios -s /bin/false marcos
   #adduser -c “José da Cunha” -g diretoria -G funcionarios -s /bin/false jose
   #adduser -c “Nelson Rodrigues” -g funcionarios -s /bin/false nelson
   #adduser -c “Luis de Souza” -g funcionarios -s /bin/false luis
7. Criando e configurando os Compartilhamentos

   Como root execute os comandos

   obs: Vamos adotar o diretorio /home como base para criar os compartilhamentos, alem
   dos homes dos usuarios que o sistema criou quando foram adicionados.

   #cd /home
   #mkdir Diretoria
   #mkdir Funcionarios
   #mkdir Publica

   Agora vamos setar as permissões locais de acesso aos compartilhamentos.

   Permissão de leitura, escrita e execução para o Dono e Grupo, e nenhuma para Outros.
   #chmod 770 Diretoria
   #chmod 770 Funcionarios


   Alterando o grupo dos diretorios Diretoria e Funcionarios.
   #chgrp diretoria Diretoria/
   #chgrp funcionarios Funcionarios/

   Para que as permissões do grupo se propaguem dentro do diretorio utilizamos o SGID.
   Assim qualquer arquivo ou diretorio que venham a ser criados, herdam as permissões
   de Grupo setadas em Diretoria ou Funcionarios.
   #chmod g+s Diretoria
   #chmod g+s Funcionarios


   Permissão de leitura, escrita e execução para o Dono, Grupo e Outros.
   #chmod 777 Publica

   Sendo um compartilhamento publico, para que um usuario nao apague indevidamente
   arquivos de outros usuarios utilizamos o STICKY BIT.
   #chmod o+t Publica


8. Mapeando Grupos no samba

   Como root execute os comandos

   Vamos listar os grupos mapeados pelo sistema
   # net groupmap list
   Caso receba algo parecido com....
   Domain Admins (S-1-5-21-2345678901-0987654321-2314567890-1001) -> root
Isso quer dizer que os usuarios do grupo root terão permissão de Administrador no
   Dominio.

   Obs: Não é aconselhavel que um usuario comum tenha permissões administrativas no
   dominio.

   Caso “Domain Admins” exista mas está mapeando outro grupo, modifique:
   # net groupmap modify ntgroup="Domain Admins" unixgroup=root type=d

   Caso “Domain Admins” não exista, temos que criar. Execute o comando
   #net groupmap add ntgroup="Domain Admins" unixgroup=root type=d

   Após mapear “Domain Admins” podemos então partir para confirguração dos grupos
   dos usuarios do domínio.

   Vamos agora mapear o "Domain Users" .
   Como criamos dois grupos, diretoria e funcionarios, devemos incluir os dois.
   #net groupmap add ntgroup="Domain Users" unixgroup=diretoria type=d
   #net groupmap add ntgroup="Domain Users" unixgroup=funcionarios type=d

   Listando os grupos mapeados devemos receber algo como....
   # net groupmap list

   Domain Admins (S-1-5-21-2345678901-0987654321-2314567890-1001) -> root
   Domain Users (S-1-5-21-2515407768-3015396816-253187376-1007) -> funcionarios

   Domain Users (S-1-5-21-2515407768-3015396816-253187376-1006) -> diretoria




9. Entendendo e configurando o smb.conf

   Antes de qualquer coisa devemos efetuar um backup de segurança do arquivo de
   configuração do samba, smb.conf.

   Como root execute os comandos

   #cp -a /etc/samba/smb.conf /etc/samba/smb.conf_original

   Feito o backup, podemos brincar sem medo....
   Como root crie o diretorio que vamos utilizar como compartilhamento padrão dos
   Scripts de configuração dos usuarios.
   #cd /etc/samba
   #mkdir netlogon
O smb.conf é o principal arquivo de configuração do SAMBA. Podemos efetuar 3
tipos basicos de configurações, PDC, DM e STAND-ALONE, no entanto o nosso
objetivo é a configuração do samba como PDC – Controlador de Domínio Primario.

O SAMBA se utiliza de variaveis internas que facilitam sua configuração. Segue
abaixo uma lista de algumas delas (mais significativas).


             Descrição                                         Variável
             Nome da máquina (host)                            %h
             Mostra a versão do samba                          %v
             Nome do serviço (compartihamento) atual.          %S
             Nome do usuário                                   %u
             Nome do grupo.                                    %g
             Nome do diretório pessoal do usuário.             %H
             Nome da máquina cliente fornecido pelo NetBIOS.   %m
             Nome do servidor NetBIOS.                         %L
             Nome Internet da máquina cliente.                 %M
             Sistema operacional da máquina remota.            %a
             O endereço IP da máquina cliente.                 %i
             Data e horário.                                   %t




Tendo conhecimento das variaveis, podemos começar a configurar o smb.conf
Segue abaixo um exemplo de configuração do smb.conf, comentado, utilizado como
base para implementação de nosso servidor SAMBA.



O smb.conf se divide em duas partes distintas.


[global]

Configurações gerais do Servidor




[public]

[homes]                   Compartilhamentos

[printers]
##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### INICIO #######

[global]

#Dominio utilizado no exemplo
workgroup = PLANETAS

#Nome netbios do Servidor(nome da maquina)
netbios name = saturno

#Descrição do Servidor que aparecerá nos compartilhamentos e unidades mapeadas
server string = %h server (Samba, Ubuntu)

#Tipo de Banco de Dados de senhas que iremos utilizar
passdb backend = tdbsam

#Tipo de Autenticação
security = user

#
username map = /etc/samba/smbusers


#Define qual o serviço de nomes em que ordem devem ser usados para resolver hosts
#em IP.
name resolve order = wins bcast hosts

#Define se o Servidor pode autenticar usuarios.
domain logons = yes

#Atua como Servidor de Dominio Primario
preferred master = yes

#Habilita Suporte ao serviço de nomes do Windows
wins support = yes


# Configuração do CUPS para impressoras

load printers = yes

printcap name = CUPS

printing = CUPS

;printer admin = @lpadmin
# Logon Padrão

#Determina a letra “H” para mapeamento das homes dos usuarios
logon drive = H:

#Nome do Script padrão que será iniciado quando o usuario se logar nas maquinas
#clientes do dominio. No exemplo utilizamos a variavel %G de grupos para
#determinar cada grupo tem um Script especifico.
logon script = %G.bat

#Utilizada para determinar o profile de cada usuario. Em nosso servidor profile movel.
#logon path = server1profile%U
logon path =




# Script para adcionar computadores automaticamente




add user script = /usr/sbin/adduser --quiet --disabled- password --gecos "" %u

delete user script = /usr/sbin/userdel -r %u

add group script = /usr/sbin/groupadd %g

delete group script = /usr/sbin/groupdel %g

add user to group script = /usr/sbin/usernod -G %g %u

add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u

idmap uid = 15000-20000

idmap gid = 15000-20000

template shell = /bin/bash
# Sincronismo das senha locais com as do SAMBA



passwd program = /usr/bin/passwd %u

passwd chat = *EntersnewsUNIXspassword:* %nn
*RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* .

passwd chat debug = yes

unix password sync = yes



# Definição do loglevel

log level = 3




#Vamos iniciar a seção dos compartilhamentos




#Compartilhamento padrão das homes dos usuarios.

[homes]

comment = Home

valid users = PLANETAS%S

read only = no

browsable = no
#Compartilhamento padrão dos Scripts de configuração dos usuarios.
[netlogon]

comment = Serviço de logon

path = /etc/samba/netlogon

admin users = root

read only = no

guest ok = no

writable = no

share modes = no

;browsable = no


#Compartilhamento padrão da Diretoria, apenas membros do grupo diretoria tem
#acesso.

[Diretoria]

comment = Arquivos da Diretoria

path = /home/Diretoria

read only = no

public = no

valid users = @diretoria

write list = @diretoria

writable = yes

printable = no

browseable = no

create mask = 0770

directory mask = 0770
#Compartilhamento padrão dos Funcionarios, apenas membros do grupo funcionarios
#e diretoria tem acesso.

[Funcionarios]

comment = Arquivos dos Funcionarios

path = /home/Funcionarios

read only = no

public = no

valid users = @funcionarios,@diretoria

write list = @funcionarios,@diretoria

writable = yes

printable = no

browseable = no

create mask = 0770

directory mask = 0770


#Compartilhamento Publico, todos tem acesso.

[Publica]

comment = Arquivos Publicos

path = /home/Publica

read only = no

public = no

valid users =@diretoria,@funcionarios

write list =@diretoria,@funcionarios

writable = yes
printable = no

browseable = no

create mask = 0777

directory mask = 0777


##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### FIM #######


Agora que já temos o exemplo de configuração do smb.conf e a copia de segurança,
execute os seguinetes comandos como root, dentro do diretorio /etc/samba.

#rm -rf smb.conf
#touch smb.conf

Edite o novo Script smb.conf, copie e cole o conteudo do Script de configuração do
exemplo acima e salve o arquivo. Lembre-se que deve copiar tudo entre os
comentarios....
##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### INICIO #######

##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### FIM #######

Feito isso execute o comando.

#testparm

Deve receber algo como....

Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[netlogon]"
Processing section "[Diretoria]"
Processing section "[Funcionarios]"
Processing section "[Publica]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC

Press enter to see a dump of your service definitions
Pressionando ENTER....




[global]

                                     workgroup = PLANETAS

                                     netbios name = SATURNO

                                     server string = %h server (Samba, Ubuntu)

                                     passdb backend = tdbsam

                                     passwd program = /usr/bin/passwd %u

                                passwd chat = *EntersnewsUNIXspassword:*
%nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* .

                                     passwd chat debug = Yes

                                     username map = /etc/samba/smbusers

                                     unix password sync = Yes

                                     log level = 3

                                     name resolve order = wins bcast hosts

                                     printcap name = CUPS

                                     add user script = /usr/sbin/adduser --quiet
--disabled- password --gecos "" %u

                                     delete user script = /usr/sbin/userdel -r %u

                                     add group script = /usr/sbin/groupadd %g

                                     delete group script = /usr/sbin/groupdel %g

                                     add user to group script = /usr/sbin/usernod -G
%g %u
add machine script = /usr/sbin/useradd -s
/bin/false/ -d /var/lib/nobody %u

                                    logon script = %G.bat

                                    logon path =

                                    logon drive = H:

                                    domain logons = Yes

                                    preferred master = Yes

                                    wins support = Yes

                                    idmap uid = 15000-20000

                                    idmap gid = 15000-20000

                                    template shell = /bin/bash



[homes]

                                    comment = Home

                                    valid users = PLANETAS%S

                                    read only = No

                                    browseable = No



[netlogon]

                                    comment = Serviço de logon

                                    path = /etc/samba/netlogon

                                    admin users = root

                                    share modes = No
[Diretoria]

                 comment = Arquivos da Diretoria

                 path = /home/Diretoria

                 valid users = @diretoria

                 write list = @diretoria

                 read only = No

                 create mask = 0770

                 directory mask = 0770

                 browseable = No



[Funcionarios]

                 comment = Arquivos dos Funcionarios

                 path = /home/Funcionarios

                 valid users = @funcionarios, @diretoria

                 write list = @funcionarios, @diretoria

                 read only = No

                 create mask = 0770

                 directory mask = 0770

                 browseable = No



[Publica]

                 comment = Arquivos Publicos

                 path = /home/Publica

                 valid users = @diretoria, @funcionarios
write list = @diretoria, @funcionarios

                                     read only = No

                                     create mask = 0777

                                     directory mask = 0777

                                     browseable = No




Se o testparm passar sem nenhum erro, vamos iniciar o SAMBA. Execute o comando.

#service smb restart
Se o servidor já estiver em execução reiniciamos o serviço com as novas
configurações.

Pronto, já temos nosso PDC funcionando. Agora só falta adicionar os usuarios ao
SAMBA, e criar seus Scripts de inicialização *.bat.



Como root execute os comandos....


Vamos adicionar nosso Administrador do dominio.
#smbpasswd -a root
Voce deve digitar uma senha que pode ou não ser igual a do sistema.



Agora os demais usuarios....

#smbpasswd -a marcos
Digite uma senha para este usuario

#smbpasswd -a jose
Digite uma senha para este usuario

#smbpasswd -a nelson
Digite uma senha para este usuario

#smbpasswd -a luis
Digite uma senha para este usuario
Com o comando abaixo vamos listar os usuarios cadatsrados no SAMBA.
    #pdbedit -L

    Para obter mais detalhe de uma conta execute.
    #pdbedit -Lv nome_do_usuario_do_SAMBA


    Pronto, SAMBA configurado e rodando com respectivos usuarios cadastrados. Agora
    sim vamos brincar!




10. Scripts de logon dos usuarios ( *.bat)

    Obs: Para evitar conflitos de plataformas vamos editar os Scripts *.bat em maquinas
    Windows.
    Abra o bloco de notas e digite....

    @ECHO off

    cls


    REM Mapeando unidades

    net use L: saturnoDiretoria


    net use M: saturnoFuncionarios

    net use N: saturnoPublica


    salve como diretoria.bat


    Obs: CUIDADO para não salvar os Scripts *.bat como *.bat.txt
Abra o novamente bloco de notas e digite....

   @ECHO off

   cls


   REM Mapeando unidades


   net use M: saturnoFuncionarios

   net use N: saturnoPublica

   salve como funcionarios.bat


   Obs: CUIDADO para não salvar os Scripts *.bat como *.bat.txt


   Agora copie os arquivos que você criou para a pasta /etc/samba/netlogon.
   Toda vez que um usuario do grupo diretoria ou funcionarios logar em uma maquina do
   dominio o sistema executará o Script relativo ao seu grupo primario.


11. Inserindo uma maquina no dominio

   Para inserir uma maquna WindowsXP no dominio, siga os passos como usuario
   Administrador....

   Iniciar>Painel de Controle>Sistema
   Clique na aba “Nome do Computador” depois em “Alterar”
   Na opção “Membro de” selecione “Dominio” e digite o nome do nosso dominio

   PLANETAS

   Na janela de autenticação digite....

   Nome de usuario : PLANETASroot
   senha : senha_cadastrada_no_SAMBA

   Se tudo correr bem você deve receber uma mensagem de boas vindas ao dominio, e sua
   maquina devara ser reiniciada. Após reiniciar faça login com um usuario que você
   cadastrou no SAMBA e verifique se seus compartilhamentos foram mapeados.
Obs: CERTIFIQUE-SE de fazer login no DOMINIO PLANETAS e não na máquina
    local.



12. Squid

   O Squid é um servidor proxy que suporta HTTP, HTTPS, FTP e outros. Ele reduz a
   utilização da conexão e melhora os tempos de resposta fazendo cache de requisições
   freqüentes de páginas web numa rede de computadores. Ele pode também ser usado
   como um proxy reverso.


   O Squid foi escrito originalmente para rodar em sistema operacional tipo Unix, mas ele
   também funciona em sistemas Windows desde sua versão 2.6.STABLE4.
   Em nosso Servidor utilizaremos o Squid para armazenar em cache os sites visitados
   pelos usuarios e em sua Autenticação no acesso a sites na Internet ou Intranet.


13. Configurando o Squid

   Da mesma forma como no SAMBA vamos fazer um backup do aquivo de
   configuração, o squid.conf.

   Como root execute os comandos.

   #cd /etc/squid/
   #cp squid.conf squid.conf_original
   #rm -rf squid.conf
   #touch squid.conf

   Edite o arquivo smb.conf em branco e cole o conteúdo do Script abaixo....


   ##### EXEMPLO DE CONFIGURAÇÃO SQUID.CONF #### INICIO #######

   # CONFIGURAÇÃO SERVIDOR PROXY



   http_port 3128

   # http_port 3128 transparent (caso seja transparente)

   visible_hostname PLANETAS_PROXY
# Configuracoes de cache, dono, logs, errors

cache_effective_user squid

cache_effective_group squid


cache_mem 128 MB


cache_dir ufs /var/spool/squid 1000 32 256


access_log /var/log/squid/access.log squid


cache_log /var/log/squid/cache.log


cache_store_log /var/log/squid/store.log


error_directory /usr/share/squid/errors/Portuguese



# Atualização do cache

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin ?

no_cache deny QUERY

auth_param basic children 5

auth_param basic realm PLANETAS Proxy

auth_param basic credentialsttl 2 hours

auth_param basic casesensitive off

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320


# CONFIGURA AUTENTICAÇÃO PELO SAMBA - PARTE I

#xxx.xxx.xxx.xxx → Troque os xxx.... pelo IP do seu Servidor.

auth_param basic program /usr/lib/squid/smb_auth -W PLANETAS -U xxx.xxx.xxx.xxx


# IP's da rede local com tudo liberado

acl ip_diretoria src "/etc/squid/ip_diretoria"

http_access allow ip_diretoria


## CONFIGURA AUTENTICAÇÃO PELO SAMBA - PARTE II

acl autoriza_samba proxy_auth REQUIRED


#Opicional##############################
# IP's da rede local bloqueados

#acl ip_bloqueado src "/etc/squid/ip_bloqueado"

#http_access deny ip_bloqueado

#######################################


#BLOQUEIO POR HORARIO########
#Bloqueio de acesso aos dominios de Sites incluidos
#no arquivo /etc/squid/dominio_bloqueado nos Intervalos de hora definidos abaixo,
#em todos os dias da semana exceto finais de semana.
#xxx.xxx.xxx.xxx → Troque os xxx.... pelo IP da Rede EX.: 192.168.1.0

acl net_local src xxx.xxx.xxx.xxx/255.255.255.0

acl sites url_regex "/etc/squid/dominio_bloqueado"

acl h_manha1 time MTWHF 08:00-09:45

acl h_manha2 time MTWHF 10:15-12:00

acl h_tarde1 time MTWHF 14:00-15:30
acl h_tarde2 time MTWHF 16:00-17:00

acl h_noite1 time MTWHF 18:30-20:00

acl h_noite2 time MTWHF 20:30-22:00

http_access deny net_local sites h_manha1

http_access deny net_local sites h_manha2

http_access deny net_local sites h_tarde1

http_access deny net_local sites h_tarde2

http_access deny net_local sites h_noite1

http_access deny net_local sites h_noite2




### CONFIGURA AUTENTICAÇÃO PELO SAMBA - PARTE III

http_access allow autoriza_samba


# ACL's da rede local
#xxx.xxx.xxx.xxx → Troque os xxx.... pelo IP da Rede EX.: 192.168.1.0

acl REDE_INTERNA src xxx.xxx.xxx.xxx/24



# ACL global e portas

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/255.255.255.255
acl Safe_ports port 10000 # webmin
acl Safe_ports port 631 # cups
acl Safe_ports port 901 # samba
acl SSL_ports port 443 563 1834 1863 4242 # SSL
acl Safe_ports port 80 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT


# Validação das redes local

http_access allow REDE_INTERNA
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access deny all !REDE_INTERNA
icp_access deny all !REDE_INTERNA

deny_info ERR_ACCESS_DENIED dominio_bloqueado

##### EXEMPLO DE CONFIGURAÇÃO SQUID.CONF #### FIM #######

Após editar o squid.conf e antes de iniciar o serviço, vamos falar um pouco sobre o
módulo SMB de autenticação.

Módulo SMB de autenticação.

Esse módulo usa base de dados de usuários do Samba (ou Windows NT) para fazer
autenticação. Isso é bom porque você evita duplicar o esforço de manter duas bases de
dados e o esforço complicado de manter as senhas sincronizadas. Você também leva
vantagem por poder usar as ferramentas de administração de usuários do SAMBA,
como os programas smbpasswd, SWAT, Webmin ou FAUS (no caso de utilizar o
Samba).

Para usar o módulo SMB, você precisará de um servidor SAMBA ou Microsoft NT
que realize autenticação de usuários como PDC;

No nosso caso utilizaremos o SAMBA como PDC.

Esse módulo funciona da seguinte maneira: é criado um arquivo no servidor SAMBA
(ou Windows NT) chamado proxyauth. Se o programa smb_auth conseguir ler o
arquivo com as credenciais(login/senha) fornecidas pelo usuário, o usuário é permitido
a utilizar o proxy.
Vamos as configurações....


1. No compartilhamento netlogon, crie o arquivo proxyauth e insira dentro dele a
palavra allow.

Como root execute os comandos.

#cd /etc/samba/netlogon
#touch proxyauth
#echo allow > proxyauth


2. Garanta acesso de leitura ao arquivo proxyauth para todos os usuários ou grupos que
você quer que tenha acesso ao proxy.


Como root execute os comandos.

#chmod 644 proxyauth

Agora podemos iniciar o SQUID....

Como root execute os comandos.

#service squid restart

Caso o serviço não inicie devido a algum problema relativo a criação do CACHE, force
a criação dos arquivos do cahe.

Como root execute os comandos.

#squid -z

Depois iniciamos o serviço.

#service squid restart

Se tudo correu bem até aqui, só nos restaconfigurar o Navegador das maquinas
WindowsXP e testar o acesso a internet via smb_auth no SQUID.....

Contenu connexe

Tendances

Compartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupoCompartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupoCarlos Eduardo
 
Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012Carlos Melo
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioFernando Palma
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend frameworkMarcos Oliveira
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioCarlos Melo
 
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - FacecaFLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - FacecaMárcio Henrique da Silva
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Prova sistemas-operacionais-23082012
Prova sistemas-operacionais-23082012Prova sistemas-operacionais-23082012
Prova sistemas-operacionais-23082012Carlos Melo
 
Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011Carlos Melo
 
SegurançA BáSica Do Apache
SegurançA BáSica Do ApacheSegurançA BáSica Do Apache
SegurançA BáSica Do ApacheFelipe Santos
 

Tendances (20)

Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 
Linux - DNS
Linux - DNSLinux - DNS
Linux - DNS
 
Compartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupoCompartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupo
 
Tutorial memcached
Tutorial memcachedTutorial memcached
Tutorial memcached
 
Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012
 
Samba configurando
Samba   configurandoSamba   configurando
Samba configurando
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
(16) dns
(16) dns(16) dns
(16) dns
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend framework
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primário
 
Dhcp
DhcpDhcp
Dhcp
 
Instalação do Servidor Ubuntu 12.04 32 bits
Instalação do Servidor Ubuntu 12.04 32 bitsInstalação do Servidor Ubuntu 12.04 32 bits
Instalação do Servidor Ubuntu 12.04 32 bits
 
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - FacecaFLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
05 servidor dhcp
05   servidor dhcp05   servidor dhcp
05 servidor dhcp
 
07 - Atividade III
07 - Atividade III07 - Atividade III
07 - Atividade III
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Prova sistemas-operacionais-23082012
Prova sistemas-operacionais-23082012Prova sistemas-operacionais-23082012
Prova sistemas-operacionais-23082012
 
Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011
 
SegurançA BáSica Do Apache
SegurançA BáSica Do ApacheSegurançA BáSica Do Apache
SegurançA BáSica Do Apache
 

Similaire à Trab linux+sarg

Controlador de Domínio Open Source
Controlador de Domínio Open SourceControlador de Domínio Open Source
Controlador de Domínio Open SourceRicardo Pinheiro
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioCarlos Melo
 
Prova sistemaso redes1-06092012
Prova sistemaso redes1-06092012Prova sistemaso redes1-06092012
Prova sistemaso redes1-06092012Carlos Melo
 
Prova sistemaso redes1-17092012
Prova sistemaso redes1-17092012Prova sistemaso redes1-17092012
Prova sistemaso redes1-17092012Carlos Melo
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 
Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012Carlos Melo
 
Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012Carlos Melo
 
Tutorial do ris serviços de instalação remota
Tutorial do ris   serviços de instalação remotaTutorial do ris   serviços de instalação remota
Tutorial do ris serviços de instalação remotafernandao777
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 

Similaire à Trab linux+sarg (20)

Samba4+backup
Samba4+backupSamba4+backup
Samba4+backup
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Controlador de Domínio Open Source
Controlador de Domínio Open SourceControlador de Domínio Open Source
Controlador de Domínio Open Source
 
Apostila samba
Apostila sambaApostila samba
Apostila samba
 
Zabbix
ZabbixZabbix
Zabbix
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primário
 
Apache
ApacheApache
Apache
 
Roteiro samba
Roteiro sambaRoteiro samba
Roteiro samba
 
Sos final
Sos finalSos final
Sos final
 
Prova sistemaso redes1-06092012
Prova sistemaso redes1-06092012Prova sistemaso redes1-06092012
Prova sistemaso redes1-06092012
 
Unidade O5
Unidade O5Unidade O5
Unidade O5
 
Prova sistemaso redes1-17092012
Prova sistemaso redes1-17092012Prova sistemaso redes1-17092012
Prova sistemaso redes1-17092012
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012
 
Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012Atividade sor-sambapfmgpo-24082012
Atividade sor-sambapfmgpo-24082012
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Tutorial do ris serviços de instalação remota
Tutorial do ris   serviços de instalação remotaTutorial do ris   serviços de instalação remota
Tutorial do ris serviços de instalação remota
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 

Plus de Anderson Lago

(07) instalaã§ã£o de programas
(07) instalaã§ã£o de programas(07) instalaã§ã£o de programas
(07) instalaã§ã£o de programasAnderson Lago
 
(06) aula pratica permissoes, usuarios, grupos e quotas
(06) aula pratica permissoes, usuarios, grupos e quotas(06) aula pratica permissoes, usuarios, grupos e quotas
(06) aula pratica permissoes, usuarios, grupos e quotasAnderson Lago
 
(04) permissãµes, usuarios, grupos e quotas[1]
(04) permissãµes, usuarios, grupos e quotas[1](04) permissãµes, usuarios, grupos e quotas[1]
(04) permissãµes, usuarios, grupos e quotas[1]Anderson Lago
 
(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processos(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processosAnderson Lago
 
(11) hardware, modulos
(11)   hardware, modulos(11)   hardware, modulos
(11) hardware, modulosAnderson Lago
 
(03) shell e comandos basicos[1]
(03) shell e comandos basicos[1](03) shell e comandos basicos[1]
(03) shell e comandos basicos[1]Anderson Lago
 
(02) instalacao fedora[1]
(02) instalacao   fedora[1](02) instalacao   fedora[1]
(02) instalacao fedora[1]Anderson Lago
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Treinamento sol virtualização
Treinamento sol   virtualizaçãoTreinamento sol   virtualização
Treinamento sol virtualizaçãoAnderson Lago
 

Plus de Anderson Lago (17)

(10) network
(10) network(10) network
(10) network
 
(07) instalaã§ã£o de programas
(07) instalaã§ã£o de programas(07) instalaã§ã£o de programas
(07) instalaã§ã£o de programas
 
(06) aula pratica permissoes, usuarios, grupos e quotas
(06) aula pratica permissoes, usuarios, grupos e quotas(06) aula pratica permissoes, usuarios, grupos e quotas
(06) aula pratica permissoes, usuarios, grupos e quotas
 
(05)particoes, raid
(05)particoes, raid(05)particoes, raid
(05)particoes, raid
 
(04) permissãµes, usuarios, grupos e quotas[1]
(04) permissãµes, usuarios, grupos e quotas[1](04) permissãµes, usuarios, grupos e quotas[1]
(04) permissãµes, usuarios, grupos e quotas[1]
 
(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processos(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processos
 
(14) ftp
(14) ftp(14) ftp
(14) ftp
 
(13) nfs
(13) nfs(13) nfs
(13) nfs
 
(12) crontab
(12) crontab(12) crontab
(12) crontab
 
(11) impressao
(11)   impressao(11)   impressao
(11) impressao
 
(11) hardware, modulos
(11)   hardware, modulos(11)   hardware, modulos
(11) hardware, modulos
 
(03) shell e comandos basicos[1]
(03) shell e comandos basicos[1](03) shell e comandos basicos[1]
(03) shell e comandos basicos[1]
 
(02) instalacao fedora[1]
(02) instalacao   fedora[1](02) instalacao   fedora[1]
(02) instalacao fedora[1]
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Treinamento sol virtualização
Treinamento sol   virtualizaçãoTreinamento sol   virtualização
Treinamento sol virtualização
 
Hardening
HardeningHardening
Hardening
 
Nfs Ppt
Nfs PptNfs Ppt
Nfs Ppt
 

Trab linux+sarg

  • 1. SAMBA PDC • PROXY SERVER SQUID • ANALISE DE LOGS VIA SARG By: Adauto Amaral, Anderson Lago, André Ximenes Maio 2009
  • 2. Introdução Samba é um software utilizado em sistemas operacionais do tipo UNIX, que possibilita uma interoperabilidade entre redes mistas LINUX(UNIX) e Windows, atuando no gerenciamento e compartilhamento de arquivos. Sendo um software livre licenciado sob a GNU - General Public License , o projeto samba é um membro da Software Freedom Conservancy. Desde 1992, o Samba proporcionou serviços seguros, estáveis e rápidos para todos os clientes que usam o protocolo de SMB/CIFS, tal como todas as versões do DOS e o Windows, o OS/2, o linux e muitos outros. O Samba é um componente importante para integrar servidores linux/Unix e os Desktops em ambientes Active Directory. Na versão 3, o Samba não só provê arquivos e serviços de impressão para vários Clientes Windows, como pode também integrar-se com Windows Server Domain, tanto como Primary Domain Controller (PDC) ou como um Domain Member. Pode fazer parte também de um Active Directory Domain. 1. Objetivo Configuração de um PDC Samba em conjunto com o Proxy Server Squid, realizando autenticação de usuários, e analise de logs via SARG. 2. Visualizando o ambiente PDC Samba → PLANETAS GRUPO DE USUARIOS Diretoria Funcionarios - marcos - nelson - jose - luis COMPARTILHAMENTOS Diretoria Funcionarios Publica
  • 3. 3. Sugestão de requisitos de Hardware e Software do sistema. Software: Utilizaremos como base para implementação de nosso PDC Samba, a distribuição Linux CentOS versão 5.4. As estações clientes serão baseadas na plataforma WindowsXP. Hardware: Do ponto de vista de Hardware necessário à instalação, devemos levar em conta capacidade de processamento, memória de execução e espaço para armazenamento dos compartilhamentos, afinal esse último é nosso foco principal. CPU ≥ 1.0 Ghz. Mem. RAM ≥ 512 MB. HD ≥ 80 GB 4. Pacotes necessários à instalação. - samba - samba-client - samba-common - httpd  Servidor Web (Necessário a implementação do Sarg) - squid  Servidor de Cache-Proxy - sarg  Gerenciador de Logs do Squid 5. Obtenção e instalação do pacotes. Inicialmente considerando um ambiente Linux CentOS 5.4 instalado, adotaremos a instalação automática dos pacotes através dos repositórios do próprio CentOS. Isso garante que serão instalados os pacotes mais recentes disponiveis para sua distribuição. Obs1: Lembre-se que o simbolo # determina que você está logado como root. Obs2: Para evitar problemas de acesso, caso na pós-insatalação do CentOS 5.4 você não tenha configurado o firewall do servidor para liberar acesso ao samba, execute como root este comando → #service iptables stop Isso ira desabilitar o serviço do iptables temporariamente. Para que o serviço não reinicie no pŕoximo boot execute o comando ntsysv desmarque a opcção iptables e de OK .
  • 4. Como root execute os comandos Verifica se algum pacote do Samba está instalado. #rpm -qa samba* Caso não estejam execute: #yum install samba Verifica se algum pacote do Servidor Web está instalado. #rpm -qa httpd* Caso não estejam execute: #yum install httpd Verifica se algum pacote do Proxy Server está instalado. #rpm -qa squid* Caso não estejam execute: #yum install squid Verifica se algum pacote do Sarg está instalado. #rpm -qa sarg* Caso não estejam execute: #wget http://dag.wieers.com/rpm/packages/sarg/sarg-2.2.3.1-1.el5.rf.i386.rpm #rpm -ivh sarg-2.2.3.1-1.el5.rf.i386.rpm 6. Configurando Usuarios e Grupos Como root execute os comandos Adiciona os Grupos #groupadd diretoria #groupadd funcionarios Obs: Sendo os Usuarios em questão membros de um dominio não é interessante permitir o login local no servidor. Por motivos de segurança utilizamos o shell /bin/false. Adiciona os Usuarios Exemplo de sintaxe utilizada #adduser -c “Nome Completo” -g grupo_primario -G grupo_secundario -s /bin/false usuario #adduser -c “Marcos da Silva” -g diretoria -G funcionarios -s /bin/false marcos #adduser -c “José da Cunha” -g diretoria -G funcionarios -s /bin/false jose #adduser -c “Nelson Rodrigues” -g funcionarios -s /bin/false nelson #adduser -c “Luis de Souza” -g funcionarios -s /bin/false luis
  • 5. 7. Criando e configurando os Compartilhamentos Como root execute os comandos obs: Vamos adotar o diretorio /home como base para criar os compartilhamentos, alem dos homes dos usuarios que o sistema criou quando foram adicionados. #cd /home #mkdir Diretoria #mkdir Funcionarios #mkdir Publica Agora vamos setar as permissões locais de acesso aos compartilhamentos. Permissão de leitura, escrita e execução para o Dono e Grupo, e nenhuma para Outros. #chmod 770 Diretoria #chmod 770 Funcionarios Alterando o grupo dos diretorios Diretoria e Funcionarios. #chgrp diretoria Diretoria/ #chgrp funcionarios Funcionarios/ Para que as permissões do grupo se propaguem dentro do diretorio utilizamos o SGID. Assim qualquer arquivo ou diretorio que venham a ser criados, herdam as permissões de Grupo setadas em Diretoria ou Funcionarios. #chmod g+s Diretoria #chmod g+s Funcionarios Permissão de leitura, escrita e execução para o Dono, Grupo e Outros. #chmod 777 Publica Sendo um compartilhamento publico, para que um usuario nao apague indevidamente arquivos de outros usuarios utilizamos o STICKY BIT. #chmod o+t Publica 8. Mapeando Grupos no samba Como root execute os comandos Vamos listar os grupos mapeados pelo sistema # net groupmap list Caso receba algo parecido com.... Domain Admins (S-1-5-21-2345678901-0987654321-2314567890-1001) -> root
  • 6. Isso quer dizer que os usuarios do grupo root terão permissão de Administrador no Dominio. Obs: Não é aconselhavel que um usuario comum tenha permissões administrativas no dominio. Caso “Domain Admins” exista mas está mapeando outro grupo, modifique: # net groupmap modify ntgroup="Domain Admins" unixgroup=root type=d Caso “Domain Admins” não exista, temos que criar. Execute o comando #net groupmap add ntgroup="Domain Admins" unixgroup=root type=d Após mapear “Domain Admins” podemos então partir para confirguração dos grupos dos usuarios do domínio. Vamos agora mapear o "Domain Users" . Como criamos dois grupos, diretoria e funcionarios, devemos incluir os dois. #net groupmap add ntgroup="Domain Users" unixgroup=diretoria type=d #net groupmap add ntgroup="Domain Users" unixgroup=funcionarios type=d Listando os grupos mapeados devemos receber algo como.... # net groupmap list Domain Admins (S-1-5-21-2345678901-0987654321-2314567890-1001) -> root Domain Users (S-1-5-21-2515407768-3015396816-253187376-1007) -> funcionarios Domain Users (S-1-5-21-2515407768-3015396816-253187376-1006) -> diretoria 9. Entendendo e configurando o smb.conf Antes de qualquer coisa devemos efetuar um backup de segurança do arquivo de configuração do samba, smb.conf. Como root execute os comandos #cp -a /etc/samba/smb.conf /etc/samba/smb.conf_original Feito o backup, podemos brincar sem medo.... Como root crie o diretorio que vamos utilizar como compartilhamento padrão dos Scripts de configuração dos usuarios. #cd /etc/samba #mkdir netlogon
  • 7. O smb.conf é o principal arquivo de configuração do SAMBA. Podemos efetuar 3 tipos basicos de configurações, PDC, DM e STAND-ALONE, no entanto o nosso objetivo é a configuração do samba como PDC – Controlador de Domínio Primario. O SAMBA se utiliza de variaveis internas que facilitam sua configuração. Segue abaixo uma lista de algumas delas (mais significativas). Descrição Variável Nome da máquina (host) %h Mostra a versão do samba %v Nome do serviço (compartihamento) atual. %S Nome do usuário %u Nome do grupo. %g Nome do diretório pessoal do usuário. %H Nome da máquina cliente fornecido pelo NetBIOS. %m Nome do servidor NetBIOS. %L Nome Internet da máquina cliente. %M Sistema operacional da máquina remota. %a O endereço IP da máquina cliente. %i Data e horário. %t Tendo conhecimento das variaveis, podemos começar a configurar o smb.conf Segue abaixo um exemplo de configuração do smb.conf, comentado, utilizado como base para implementação de nosso servidor SAMBA. O smb.conf se divide em duas partes distintas. [global] Configurações gerais do Servidor [public] [homes] Compartilhamentos [printers]
  • 8. ##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### INICIO ####### [global] #Dominio utilizado no exemplo workgroup = PLANETAS #Nome netbios do Servidor(nome da maquina) netbios name = saturno #Descrição do Servidor que aparecerá nos compartilhamentos e unidades mapeadas server string = %h server (Samba, Ubuntu) #Tipo de Banco de Dados de senhas que iremos utilizar passdb backend = tdbsam #Tipo de Autenticação security = user # username map = /etc/samba/smbusers #Define qual o serviço de nomes em que ordem devem ser usados para resolver hosts #em IP. name resolve order = wins bcast hosts #Define se o Servidor pode autenticar usuarios. domain logons = yes #Atua como Servidor de Dominio Primario preferred master = yes #Habilita Suporte ao serviço de nomes do Windows wins support = yes # Configuração do CUPS para impressoras load printers = yes printcap name = CUPS printing = CUPS ;printer admin = @lpadmin
  • 9. # Logon Padrão #Determina a letra “H” para mapeamento das homes dos usuarios logon drive = H: #Nome do Script padrão que será iniciado quando o usuario se logar nas maquinas #clientes do dominio. No exemplo utilizamos a variavel %G de grupos para #determinar cada grupo tem um Script especifico. logon script = %G.bat #Utilizada para determinar o profile de cada usuario. Em nosso servidor profile movel. #logon path = server1profile%U logon path = # Script para adcionar computadores automaticamente add user script = /usr/sbin/adduser --quiet --disabled- password --gecos "" %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/sbin/usernod -G %g %u add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u idmap uid = 15000-20000 idmap gid = 15000-20000 template shell = /bin/bash
  • 10. # Sincronismo das senha locais com as do SAMBA passwd program = /usr/bin/passwd %u passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* . passwd chat debug = yes unix password sync = yes # Definição do loglevel log level = 3 #Vamos iniciar a seção dos compartilhamentos #Compartilhamento padrão das homes dos usuarios. [homes] comment = Home valid users = PLANETAS%S read only = no browsable = no
  • 11. #Compartilhamento padrão dos Scripts de configuração dos usuarios. [netlogon] comment = Serviço de logon path = /etc/samba/netlogon admin users = root read only = no guest ok = no writable = no share modes = no ;browsable = no #Compartilhamento padrão da Diretoria, apenas membros do grupo diretoria tem #acesso. [Diretoria] comment = Arquivos da Diretoria path = /home/Diretoria read only = no public = no valid users = @diretoria write list = @diretoria writable = yes printable = no browseable = no create mask = 0770 directory mask = 0770
  • 12. #Compartilhamento padrão dos Funcionarios, apenas membros do grupo funcionarios #e diretoria tem acesso. [Funcionarios] comment = Arquivos dos Funcionarios path = /home/Funcionarios read only = no public = no valid users = @funcionarios,@diretoria write list = @funcionarios,@diretoria writable = yes printable = no browseable = no create mask = 0770 directory mask = 0770 #Compartilhamento Publico, todos tem acesso. [Publica] comment = Arquivos Publicos path = /home/Publica read only = no public = no valid users =@diretoria,@funcionarios write list =@diretoria,@funcionarios writable = yes
  • 13. printable = no browseable = no create mask = 0777 directory mask = 0777 ##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### FIM ####### Agora que já temos o exemplo de configuração do smb.conf e a copia de segurança, execute os seguinetes comandos como root, dentro do diretorio /etc/samba. #rm -rf smb.conf #touch smb.conf Edite o novo Script smb.conf, copie e cole o conteudo do Script de configuração do exemplo acima e salve o arquivo. Lembre-se que deve copiar tudo entre os comentarios.... ##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### INICIO ####### ##### EXEMPLO DE CONFIGURAÇÃO SMB.CONF #### FIM ####### Feito isso execute o comando. #testparm Deve receber algo como.... Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[Diretoria]" Processing section "[Funcionarios]" Processing section "[Publica]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions
  • 14. Pressionando ENTER.... [global] workgroup = PLANETAS netbios name = SATURNO server string = %h server (Samba, Ubuntu) passdb backend = tdbsam passwd program = /usr/bin/passwd %u passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* . passwd chat debug = Yes username map = /etc/samba/smbusers unix password sync = Yes log level = 3 name resolve order = wins bcast hosts printcap name = CUPS add user script = /usr/sbin/adduser --quiet --disabled- password --gecos "" %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/sbin/usernod -G %g %u
  • 15. add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u logon script = %G.bat logon path = logon drive = H: domain logons = Yes preferred master = Yes wins support = Yes idmap uid = 15000-20000 idmap gid = 15000-20000 template shell = /bin/bash [homes] comment = Home valid users = PLANETAS%S read only = No browseable = No [netlogon] comment = Serviço de logon path = /etc/samba/netlogon admin users = root share modes = No
  • 16. [Diretoria] comment = Arquivos da Diretoria path = /home/Diretoria valid users = @diretoria write list = @diretoria read only = No create mask = 0770 directory mask = 0770 browseable = No [Funcionarios] comment = Arquivos dos Funcionarios path = /home/Funcionarios valid users = @funcionarios, @diretoria write list = @funcionarios, @diretoria read only = No create mask = 0770 directory mask = 0770 browseable = No [Publica] comment = Arquivos Publicos path = /home/Publica valid users = @diretoria, @funcionarios
  • 17. write list = @diretoria, @funcionarios read only = No create mask = 0777 directory mask = 0777 browseable = No Se o testparm passar sem nenhum erro, vamos iniciar o SAMBA. Execute o comando. #service smb restart Se o servidor já estiver em execução reiniciamos o serviço com as novas configurações. Pronto, já temos nosso PDC funcionando. Agora só falta adicionar os usuarios ao SAMBA, e criar seus Scripts de inicialização *.bat. Como root execute os comandos.... Vamos adicionar nosso Administrador do dominio. #smbpasswd -a root Voce deve digitar uma senha que pode ou não ser igual a do sistema. Agora os demais usuarios.... #smbpasswd -a marcos Digite uma senha para este usuario #smbpasswd -a jose Digite uma senha para este usuario #smbpasswd -a nelson Digite uma senha para este usuario #smbpasswd -a luis Digite uma senha para este usuario
  • 18. Com o comando abaixo vamos listar os usuarios cadatsrados no SAMBA. #pdbedit -L Para obter mais detalhe de uma conta execute. #pdbedit -Lv nome_do_usuario_do_SAMBA Pronto, SAMBA configurado e rodando com respectivos usuarios cadastrados. Agora sim vamos brincar! 10. Scripts de logon dos usuarios ( *.bat) Obs: Para evitar conflitos de plataformas vamos editar os Scripts *.bat em maquinas Windows. Abra o bloco de notas e digite.... @ECHO off cls REM Mapeando unidades net use L: saturnoDiretoria net use M: saturnoFuncionarios net use N: saturnoPublica salve como diretoria.bat Obs: CUIDADO para não salvar os Scripts *.bat como *.bat.txt
  • 19. Abra o novamente bloco de notas e digite.... @ECHO off cls REM Mapeando unidades net use M: saturnoFuncionarios net use N: saturnoPublica salve como funcionarios.bat Obs: CUIDADO para não salvar os Scripts *.bat como *.bat.txt Agora copie os arquivos que você criou para a pasta /etc/samba/netlogon. Toda vez que um usuario do grupo diretoria ou funcionarios logar em uma maquina do dominio o sistema executará o Script relativo ao seu grupo primario. 11. Inserindo uma maquina no dominio Para inserir uma maquna WindowsXP no dominio, siga os passos como usuario Administrador.... Iniciar>Painel de Controle>Sistema Clique na aba “Nome do Computador” depois em “Alterar” Na opção “Membro de” selecione “Dominio” e digite o nome do nosso dominio PLANETAS Na janela de autenticação digite.... Nome de usuario : PLANETASroot senha : senha_cadastrada_no_SAMBA Se tudo correr bem você deve receber uma mensagem de boas vindas ao dominio, e sua maquina devara ser reiniciada. Após reiniciar faça login com um usuario que você cadastrou no SAMBA e verifique se seus compartilhamentos foram mapeados.
  • 20. Obs: CERTIFIQUE-SE de fazer login no DOMINIO PLANETAS e não na máquina local. 12. Squid O Squid é um servidor proxy que suporta HTTP, HTTPS, FTP e outros. Ele reduz a utilização da conexão e melhora os tempos de resposta fazendo cache de requisições freqüentes de páginas web numa rede de computadores. Ele pode também ser usado como um proxy reverso. O Squid foi escrito originalmente para rodar em sistema operacional tipo Unix, mas ele também funciona em sistemas Windows desde sua versão 2.6.STABLE4. Em nosso Servidor utilizaremos o Squid para armazenar em cache os sites visitados pelos usuarios e em sua Autenticação no acesso a sites na Internet ou Intranet. 13. Configurando o Squid Da mesma forma como no SAMBA vamos fazer um backup do aquivo de configuração, o squid.conf. Como root execute os comandos. #cd /etc/squid/ #cp squid.conf squid.conf_original #rm -rf squid.conf #touch squid.conf Edite o arquivo smb.conf em branco e cole o conteúdo do Script abaixo.... ##### EXEMPLO DE CONFIGURAÇÃO SQUID.CONF #### INICIO ####### # CONFIGURAÇÃO SERVIDOR PROXY http_port 3128 # http_port 3128 transparent (caso seja transparente) visible_hostname PLANETAS_PROXY
  • 21. # Configuracoes de cache, dono, logs, errors cache_effective_user squid cache_effective_group squid cache_mem 128 MB cache_dir ufs /var/spool/squid 1000 32 256 access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log error_directory /usr/share/squid/errors/Portuguese # Atualização do cache hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin ? no_cache deny QUERY auth_param basic children 5 auth_param basic realm PLANETAS Proxy auth_param basic credentialsttl 2 hours auth_param basic casesensitive off refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440
  • 22. refresh_pattern . 0 20% 4320 # CONFIGURA AUTENTICAÇÃO PELO SAMBA - PARTE I #xxx.xxx.xxx.xxx → Troque os xxx.... pelo IP do seu Servidor. auth_param basic program /usr/lib/squid/smb_auth -W PLANETAS -U xxx.xxx.xxx.xxx # IP's da rede local com tudo liberado acl ip_diretoria src "/etc/squid/ip_diretoria" http_access allow ip_diretoria ## CONFIGURA AUTENTICAÇÃO PELO SAMBA - PARTE II acl autoriza_samba proxy_auth REQUIRED #Opicional############################## # IP's da rede local bloqueados #acl ip_bloqueado src "/etc/squid/ip_bloqueado" #http_access deny ip_bloqueado ####################################### #BLOQUEIO POR HORARIO######## #Bloqueio de acesso aos dominios de Sites incluidos #no arquivo /etc/squid/dominio_bloqueado nos Intervalos de hora definidos abaixo, #em todos os dias da semana exceto finais de semana. #xxx.xxx.xxx.xxx → Troque os xxx.... pelo IP da Rede EX.: 192.168.1.0 acl net_local src xxx.xxx.xxx.xxx/255.255.255.0 acl sites url_regex "/etc/squid/dominio_bloqueado" acl h_manha1 time MTWHF 08:00-09:45 acl h_manha2 time MTWHF 10:15-12:00 acl h_tarde1 time MTWHF 14:00-15:30
  • 23. acl h_tarde2 time MTWHF 16:00-17:00 acl h_noite1 time MTWHF 18:30-20:00 acl h_noite2 time MTWHF 20:30-22:00 http_access deny net_local sites h_manha1 http_access deny net_local sites h_manha2 http_access deny net_local sites h_tarde1 http_access deny net_local sites h_tarde2 http_access deny net_local sites h_noite1 http_access deny net_local sites h_noite2 ### CONFIGURA AUTENTICAÇÃO PELO SAMBA - PARTE III http_access allow autoriza_samba # ACL's da rede local #xxx.xxx.xxx.xxx → Troque os xxx.... pelo IP da Rede EX.: 192.168.1.0 acl REDE_INTERNA src xxx.xxx.xxx.xxx/24 # ACL global e portas acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/255.255.255.255 acl Safe_ports port 10000 # webmin acl Safe_ports port 631 # cups acl Safe_ports port 901 # samba acl SSL_ports port 443 563 1834 1863 4242 # SSL acl Safe_ports port 80 8080 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews
  • 24. acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # Validação das redes local http_access allow REDE_INTERNA http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny all http_reply_access deny all !REDE_INTERNA icp_access deny all !REDE_INTERNA deny_info ERR_ACCESS_DENIED dominio_bloqueado ##### EXEMPLO DE CONFIGURAÇÃO SQUID.CONF #### FIM ####### Após editar o squid.conf e antes de iniciar o serviço, vamos falar um pouco sobre o módulo SMB de autenticação. Módulo SMB de autenticação. Esse módulo usa base de dados de usuários do Samba (ou Windows NT) para fazer autenticação. Isso é bom porque você evita duplicar o esforço de manter duas bases de dados e o esforço complicado de manter as senhas sincronizadas. Você também leva vantagem por poder usar as ferramentas de administração de usuários do SAMBA, como os programas smbpasswd, SWAT, Webmin ou FAUS (no caso de utilizar o Samba). Para usar o módulo SMB, você precisará de um servidor SAMBA ou Microsoft NT que realize autenticação de usuários como PDC; No nosso caso utilizaremos o SAMBA como PDC. Esse módulo funciona da seguinte maneira: é criado um arquivo no servidor SAMBA (ou Windows NT) chamado proxyauth. Se o programa smb_auth conseguir ler o arquivo com as credenciais(login/senha) fornecidas pelo usuário, o usuário é permitido a utilizar o proxy.
  • 25. Vamos as configurações.... 1. No compartilhamento netlogon, crie o arquivo proxyauth e insira dentro dele a palavra allow. Como root execute os comandos. #cd /etc/samba/netlogon #touch proxyauth #echo allow > proxyauth 2. Garanta acesso de leitura ao arquivo proxyauth para todos os usuários ou grupos que você quer que tenha acesso ao proxy. Como root execute os comandos. #chmod 644 proxyauth Agora podemos iniciar o SQUID.... Como root execute os comandos. #service squid restart Caso o serviço não inicie devido a algum problema relativo a criação do CACHE, force a criação dos arquivos do cahe. Como root execute os comandos. #squid -z Depois iniciamos o serviço. #service squid restart Se tudo correu bem até aqui, só nos restaconfigurar o Navegador das maquinas WindowsXP e testar o acesso a internet via smb_auth no SQUID.....