Total de visualizações de página

Pesquisar este blog

segunda-feira, 27 de agosto de 2012

Samba Autenticando no Active Directory



Olá minha necessidade hoje é integrar o Active Directory (Windows Server 2003) com o SAMBA (que será o servidor de arquivos no Sistema Operacional Debian Squeeze).

Mas porque essa necessidade? Devido ao grande números de senhas que tenho em minha rede, devo centralizar as mesmas juntamente com as permissões para cada usuario e seus respectivos compartilhamentos.

Levo em consideração que o Windows Server 2003 já esteja com o DC (Domain Controler) do seu dominio.

# Cenário:

domínio: EMPRESA.LOCAL

1. Linux = 192.168.1.70/24
HOSTNAME = debian-01
FQDN = debian-01.empresa.local

2. Windows = 192.168.1.69/24
HOSTNAME = win2003srv
FQDN = win2003srv.empresa.local

# Ajustando o cenario no Linux editando o arquivo /etc/hosts:
vi /etc/hosts
192.168.1.69 win2003srv.empresa.local win2003srv
192.168.1.70 debian-01.empresa.local debian-01

# Ajustando o arquivo hostname do servidor:
vi /etc/hostname
debian-01.empresa.local

# Rodando shell para ajustar o HOSTNAME:
/etc/init.d/hostname.sh

# Conferindo o nome completo FQDN (Fully Qualified Domain Name):
hostname -f

# Configurando o arquivo resolv.conf
vi /etc/resolv.conf
search lan
domain empresa.local
nameserver 192.168.1.69

# Instalar o SAMBA e ntpdate
aptitude install -y samba samba-common smbclient ntpdate

Nota: informe o nome do dominio que você deseja ou deixe como WORKGROUP que podemos alterar depois;

# Instalar o Kerberos e winbind
aptitude install -y krb5-user winbind

# Configuração do SAMBA. Como "boas práticas" faça uma cópia do arquivo smb.conf original para smb.conf.default;
# Já estou considerando que a estrutura de compartilhamentos como '/arquivos/administrativo' e '/arquivos/financeiro' já estão criados;
vi /etc/samba/smb.conf
[global]
workgroup = EMPRESA
realm = EMPRESA.LOCAL
netbios aliases = Servidor SAMBA Linux
server string = %h
security = ADS
obey pam restrictions = Yes
passdb backend = tdbsam
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
log level = 1
syslog = 1
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
wins server = 192.168.1.69
panic action = /usr/share/samba/panic-action %d
idmap backend = idmap_rid:EMPRESA=100000-200000
idmap uid = 100000-200000
idmap gid = 100000-200000
template shell = /bin/bash
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes

[Administrativo]
        comment = Servidor de Arquivos - Administrativo
        path = /arquivos/administrativo
        available = yes
        browseable = yes
        public = yes
        guest only = no
        writable = yes
        ;force user = suporte
        ;force group = flex
        guest account = root
        create mode = 0664
        directory mode = 0775
        valid users = @Administrativo
        veto files = /*.mp3/*.wma/*.wmv/*.avi/*.mpg/*.wav/*.mpeg/
        delete veto files = yes

[Financeiro]
        comment = Servidor de Arquivos - Financeiro
        path = /arquivos/financeiro
        available = yes
        browseable = yes
        public = yes
        guest only = no
        writable = yes
        ;force user = suporte
        ;force group = flex
        guest account = root
        create mode = 0664
        directory mode = 0775
        valid users = @Financeiro
        veto files = /*.mp3/*.wma/*.wmv/*.avi/*.mpg/*.wav/*.mpeg/
        delete veto files = yes

# Configurando o Kerberos. Mais uma vez como boas praticas faça uma cópia do arquivo krb5.conf para krb5.conf.default
vi /etc/krb5.conf
[libdefaults]
default_realm = EMPRESA.LOCAL
dns_lookup_realm= true
dns_lookup_kdc= true
ticket_lifetime= 24h
forwardable= yes

krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

        v4_instance_resolve = false
        v4_name_convert = {
host = {
rcmd = host
ftp = ftp
                }
plain = {
something = something-else
                }
        }
fcc-mit-ticketflags = true

[realms]
EMPRESA.LOCAL= {
kdc= win2003srv.EMPRESA.LOCAL
admin_server= win2003srv.EMPRESA.LOCAL
default_domain= EMPRESA.LOCAL
        }

[domain_realm]
.EMPRESA.LOCAL= EMPRESA.LOCAL
        EMPRESA.LOCAL= EMPRESA.LOCAL

[login]
        krb4_convert = true
        krb4_get_tickets = false

# Configuracao do arquivo /etc/nsswitch.conf sei que estou sendo repetitivo mas copie /etc/nsswitch.conf para /etc/nsswitch.conf.default
vi /etc/nsswitch.conf
passwd:         compat files winbind
group:          compat files winbind
shadow:         compat files winbind

hosts:          files dns wins
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

# Adicionando maquina linux no Active Directory
net ads join -U Administrador

Nota:
Apresentando a mensagem abaixo sua máquina foi inserida no ad com sucesso;
Using short domain name -- EMPRESA
Joined 'DEBIAN-01' to realm 'EMPRESA.LOCAL'

# Teste se o computador foi adicionado com sucesso no ad
net ads testjoin

# Teste se o AD está configurado com o winbind
wbinfo -u //retorna a lista de usuarios do AD

Feito isso seu Linux pode ser o servidor de arquivos dentro de sua rede utilizando seu Active Directory para autenticar seus usuários.

sexta-feira, 3 de agosto de 2012

Servidor Openfire

Bom dia hoje vamos ver um comunicador instantâneo para o meio corporativo (como um msn interno). Tínhamos na empresa o Google Talk porém a necessidade e a grande IMPRODUTIVIDADE do usuário final ocasionou em aplicar essa solução.

Mão a obra: Hoje uso o Debian 6 codinome Squeeze

Edite o arquivo /etc/apt/sources.list 
# vi /etc/apt/sources.list
e insira o conteúdo abaixo.

deb http://ftp.br.debian.org/debian/ squeeze main non-free
deb-src http://ftp.br.debian.org/debian/ squeeze main non-free

Atualize
# apt-get update

Instalando o java
# apt-get install sun-java6-jdk sun-java6-plugin

Instale o MySQL e guarde a senha :-)
# aptitude install mysql-common mysql-server-5.1 mysql-client-5.1 mysql-server-core-5.1 libmysqlclient16 libmysqlclient-dev

Instale o Apache & PHP
# aptitude install apache2 php5 php5-common libapache2-mod-php5 php5-mysql

Download do arquivo do Openfire
# cd /opt
# wget -c http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.7.1_all.deb

Instalando o Openfire
# dpkg -i openfire_3.7.1_all.deb

Feito isso acesse o console de Administracao do Openfire
# http://ip_servidor:9090

Agora a meta é ligar o Openfire no AD sendo que hoje trabalho em uma empresa que o ambiente é tudo Microsoft, no caso Windows 2003 e Windows 2008 Server.