quinta-feira, 21 de janeiro de 2016

Samba4 + Dominio + AD Debian

Implementando um servidor de domínio com o poderoso Samba4

Amigos,
Já tem um certo tempo que eu não posto nada aqui, mas devido a minha labuta para implementar um servidor de domínio de maneira funcional, resolvi escrever esse artigo para documentar os procedimentos realizados e também para ajudar os colegas que tiverem essa mesma necessidade.
Para montar o ambiente utilizei o Debian Wheezy 7.7 devidamente atualizado e uma máquina com Windows 7 Ultimate para ser a estação de trabalho de testes.
Bom, agora chega de “bla, bla, bla” e vamos colocar a mão na massa!
Para facilitar o nosso trabalho, é altamente recomendável ter um servidor de DHCP na rede. Se você já tem, configure-o para distribuir os Ips, Gateway, DNS, WINS e Domain Search de acordo com o seu ambiente, de modo que o DNS primário e WINS devem ser SEMPRE o IP do Samba4 (no caso desse artigo, o 192.168.0.254). O Domain Search deve ser o domínio criado (no caso desse artigo, meudominio.com.br).
Se você não tem, vamos implementar no próprio servidor do Samba4:
1
# apt-get -y --force-yes install isc-dhcp-server
Agora, vamos editar o arquivo de configuração:
1
# vim /etc/dhcp/dhcpd.conf
Deixe-o de acordo com o seu ambiente! No caso desse artigo, fica assim:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## DHCP
## Por Luiz Henrique M. Fagundes
## www.aprendendolinux.com
 
#nível de log
log-facility local7;
 
shared-network meudominio {
subnet 192.168.0.0 netmask 255.255.255.0 {
 
default-lease-time                600;
max-lease-time                    7200;
 
option subnet-mask                255.255.255.0;
option broadcast-address          192.168.0.255;
option routers                    192.168.0.1;
option domain-name-servers        192.168.0.254;
option netbios-name-servers       192.168.0.254;
option domain-name                "meudominio.com.br";
 
range 192.168.0.2 192.168.0.253;
    }
}
Agora, vamos instalar os os pacotes necessários para essa implementação antes de instalar o samba 4 via backports:
1
# apt-get install attr acl krb5-user ntp
Deixe as repostas padrão na configuração do Kerberos. Apenas atentando para a primeira pergunta “Reino por omissão do Kerberos”, informe seu domínio em letras maiúsculas.
Agora vamos configurar o repositório wheezy-backports para ter uma versão mais recente do samba4:
1
2
# echo "deb http://ftp.br.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list.d/wheezy-backports.list
# apt-get update
Vamos agora instalar (usando o repositório wheezy-backports) os pacotes do samba4, o Bind 9.9 (será usado como DNS para o samba) e o pacote libnss-winbind que usaremos para fazer a integração de outras soluções, caso implementemos nessa mesma máquina:
1
# apt-get install -y -t wheezy-backports samba smbclient libnss-winbind bind9
Vamos então, fazer os ajustes necessários para preparar o sistemas para futuras integrações. Vamos editar o arquivo “/etc/nsswitch.conf”
1
# vim /etc/nsswitch.conf
Vamos alterar apenas as linhas iniciadas com passwd, group e shadow, deixando-as assim:
1
2
3
passwd: compat winbind
group:  compat winbind
shadow: compat winbind
Agora precisamos configurar o suporte a ACLs. Edite o arquivo “/etc/fstab”:
1
# vim /etc/fstab
ATENÇÃO! IMPORTANTE! Não copie e cole a linha abaixo, edite a entrada referente a partição desejada do disco.
1
UUID=2a7a876c-fe12-4945-ad66-b55e173435f2 / ext4 user_xattr,acl,barrier=1,errors=remount-ro 0 1
O disco utilizado não apresenta partições separadas, apenas o /. Ajuste se necessário. Os parâmetros user_xattr, acl e barrier devem ser definidos na partição onde os arquivos dos usuários serão alocados.
Agora, vamos aplicar as mudanças com o comando abaixo:
1
# mount -o remount,rw /
Agora precisamos ajustas as configurações de rede. Então, primeiro vamos configurar o arquivo hosts:
1
# vim /etc/hosts
Insira a linha abaixo, obviamente conforme as configurações do seu servidor:
1
192.168.0.254 nome-da-maquina.meudominio.com.br nome-da-maquina
Agora vamos configurar a interface de rede:
1
# vim /etc/network/interfaces
Obviamente, você deve configurar de acordo com a sua estrutura de rede. No meu caso ficou assim:
1
2
3
4
5
6
7
auto eth0
iface eth0 inet static
    address 192.168.0.254
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameserver 192.168.0.1
    dns-search meudominio.com.br
Agora precisamos reiniciar o serviço de rede:
1
# service networking stop ; sleep 2 ; service networking start
Agora vamos ajustas as configurações do DNS:
1
# vim /etc/resolv.conf
Configure de acordo com o seu ambiente:
1
2
3
4
domain meudominio.com.br
search meudominio.com.br
nameserver 192.168.0.254
nameserver 192.168.0.1
O nameserver 192.168.0.254 será utilizado pelo samba, enquanto o 192.168.0.1 é o serviço de DNS da rede local que está em vigor.
Precisamos também configurar serviço de NTP para a atualização de data/hora:
1
# vim /etc/ntp.conf
Deixe esse arquivo EXATAMENTE como nesse conteúdo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/ntp.drift
 
# Enable this if you want statistics to be logged.
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
 
# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
server ntp.usp.br
server gps.ntp.br
 
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# might also be helpful.
ntpsigndsocket /var/lib/samba/ntp_signd/
 
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
 
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
Agora precisamos reiniciar o serviço:
1
# service ntp restart
Enfim, chegou o momento de começarmos a configurar o Samba4. Por padrão, a instalação do samba4 instalada do repositório wheezy-backports está definida apenas para compartilhamento de arquivos e impressoras. Vamos então configurá-lo para trabalhar como servidor de domínio.
Primeiro devemos parar o serviço do samba. Usaremos o comando abaixo:
1
# service samba stop
Agora, vamos remover o arquivo de originar de configuração, mas vamos manter uma cópia de segurança:
1
# mv /etc/samba/smb.conf /etc/samba/smb.conf.default
E enfim, vamos rodar o comando que vai gerar as novas configurações:
1
samba-tool domain provision --option="interfaces=lo eth0" --option="bind interfaces only=yes" --use-rfc2307 --realm=MEUDOMINIO.COM.BR --domain=MEUDOMINIO --server-role=dc --dns-backend=BIND9_DLZ --adminpass='123Mudar'
Explicando as opções:
–option=”interfaces=lo eth0″ –option=”bind interfaces only=yes” – Se seu controlador de domínios tem mais de uma interface de rede essa opção é obrigatória. Isso força o samba escutar e resolver corretamente o DNS para a interface da sua rede local;
–use-rfc2307 – O uso dessa opção ativa o Samba Active Directory para armazenar atributos posix. É também criado informações NIS (Network Information Service) no AD, permitindo a administração de UIDs/GIDs e outras funções Unix;
–realm=MEUDOMINIO.COM.BR – É onde setamos o domínio completo, no caso prefixo mais sufixo;
–domain=DOMINIO – Nessa opção, devemos setar apenas o prefixo do domínio;
–dns-backend=BIND9_DLZ – Por padrão Samba4 utiliza o seu próprio DNS. Essa opção força o Samba4 utilizar o Bind como DNS Backend. Na minha opinião é o mais recomendado, pois se tratar da solução Open Source mais flexível disponível no momento;
–adminpass=’123Mudar’ – Aqui configuramos a senha do usuário “Administrator”, que será o administrator do sistema. Defini a senha para ‘123Mudar’.
Agora vamos preparar o bind para ser usado como DNS do Samba4. Edite primeiro o arquivo “/etc/bind/named.conf”
1
# vim /etc/bind/named.conf
Inclua no final do arquivo a seguinte linha:
1
include "/var/lib/samba/private/named.conf";
Agora precisamos editar o arquivo “/etc/bind/named.conf.options”.
1
# vim /etc/bind/named.conf.options
ATENÇÃO! Abaixo da linha “dnssec-validation auto;” insira a seguinte linha:
1
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
Agora como instalamos a versão 9.9 do Bind, precisamos ajustar isso no arquivo de configuração gerado pelo Samba4. Edite o arquivo “/var/lib/samba/private/named.conf”:
1
# vim /var/lib/samba/private/named.conf
COMENTE a linha referente ao Bind 9.8.0 e DESCOMENTE a linha referente ao Bind 9.9.0. Fica assim:
1
2
3
4
5
6
7
dlz "AD DNS Zone" {
    # For BIND 9.8.0
    # database "dlopen /usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9.so";
 
    # For BIND 9.9.0
    database "dlopen /usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9_9.so";
};
Agora, precisamos copiar as configurações do Kerberos geradas pelo samba para o diretório de configurações do sistema:
1
# cp /var/lib/samba/private/krb5.conf /etc/
Agora precisamos fazer o seguinte: Iniciar o samba para que ele prepare o arquivo “ dns.keytab” para o Bind, reiniciar o Bind para ativar essas configurações e restartar o samba para que ele passe a usar efetivamente o Bind como DNS. Faremos os comandos nessa sequencia:
1
2
3
# service samba start
# service bind9 restart
# service samba restart
Agora, vamos desativar a política de atualização de senha para o usuário administrador, para que a senha não expire nunca:
1
# samba-tool user setexpiry administrator --noexpiry
Agora vamos ajustar as configurações do samba conforme as nossas preferências.
No meu caso eu fiz assim… Primeiro eu criei as pastas:
1
# mkdir -p /srv/samba/home /srv/samba/profiles /srv/samba/trash
Então, vamos ajustar as configurações do samba conforme as necessidades:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[global]
    workgroup = MEUDOMINIO
    realm = MEUDOMINIO.COM.BR
    netbios name = NOME-DA-MAQUINA
    interfaces = lo, eth0
    bind interfaces only = Yes
    server role = active directory domain controller
    server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
    idmap_ldb:use rfc2307 = yes
 
    ## Configura Lixeira para o Samba4
    vfs objects = recycle
    recycle:keeptree = yes
    recycle:versions = yes
    recycle:repository = /srv/samba/trash/%U
    recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak
    recycle:exclude_dir = tmp, cache, profiles
 
    ## Desabilita o compartilhamento de impressoras
    printcap name = /dev/null
    load printers = no
    disable spoolss = yes
    printing = bsd
 
[netlogon]
    path = /var/lib/samba/sysvol/aprendendolinux.com/scripts
    read only = No
    browseable = No
 
[sysvol]
    path = /var/lib/samba/sysvol
    read only = No
    browseable = No
 
[profiles]
    path = /srv/samba/profiles
    read only = No
    browseable = No
 
[home]
    path = /srv/samba/home
    read only = No
     
[Lixeira]
    comment = Lata de Lixo
    path = /srv/samba/trash/%U
    read only = No
    directory mask = 0777
Agora vamos aplicar as novas configurações:
1
# smbcontrol all reload-config
Agora precisamos testar as configurações.
Vamos testar se o PDC está asseitando autenticação:
1
# kinit administrator@MEUDOMINIO.COM.BR
Digite a senha. No caso 123MudarNada deve ser retornado nesse comando se tudo correu bem.
Vamos agora testar as configurações de DNS do samba:
1
2
3
host -t SRV _ldap._tcp.meudominio.com.br
host -t SRV _kerberos._udp.meudominio.com.br
host -t A nome-da-maquina.meudominio.com.br.
Testar a conectividade com o samba:
1
smbclient -k //nome-da-maquina.meudominio.com.br/netlogon -c 'ls'
Se tudo saiu bem, algo parecido com isso deve ser retornado:
1
2
3
4
Domain=[MEUDOMINIO] OS=[Unix] Server=[Samba 4.1.11-Debian]
  .                                   D        0  Tue Nov 18 19:14:27 2014
  ..                                  D        0  Tue Nov 18 19:14:40 2014
        36015 blocks of size 2097152. 33671 blocks available
Por favor, você deve respeitar essa ordem de testes.
Agora, para gerenciar o poderoso Samba4 através do Windows, você precisará do RSAT. Não vou abortar a instalação e configuração dessa ferramenta, até porque encontrei um artigo bem completo sobre isso do Marcelo Matias que você pode acessá-lo clicando aqui.
Para baixar o RSAT para Windows 7 SP1 i386, clique aqui.
Para baixar o RSAT para Windows 7 SP1 x64, clique aqui.
Agora segue um vídeo que ensina a integrar a máquina windows no domínio, configurar as permissões da pasta home e gerenciar o DNS:
Documentação oficial do samba sobre as permissões da pasta home:
http://bit.ly/1ACj9vJ
ALGUMAS DICAS ADICIONAIS:
Para cadastrar um usuário no domínio você terá que respeitar as regras de validação de senha do servidor. Para mudar essas regras utilize os seguintes comandos:
Desativar a verificação de complexidade de senha (por padrão a senha de qualquer usuário deve ter pelo menos três dos quatro ítens: Maiúsculas, Minusculas, Números, Simbolos):
1
# samba-tool domain passwordsettings set --complexity=off
Mudar o tamanho mínimo da senha (definindo como 4):
1
# samba-tool domain passwordsettings set --min-pwd-length=4
Mudar o prazo mínimo em que o usuário pode mudar a senha (usuário só vai poder mudar a senha após 4 dias da última mudança)
1
# samba-tool domain passwordsettings set --min-pwd-age=4
Mudar o tempo de vida máximo da senha do usuário (usuário terá que mudar a senha após 30 dias da última mudança)
1
# samba-tool domain passwordsettings set --max-pwd-age=30
Mudar o histórico de senhas que impede que o usuário utilize uma senha repetida (usuário não vai poder repetir nenhuma das últimas 5 senhas)
1
# samba-tool domain passwordsettings set --history-length=5

Fonte: http://www.aprendendolinux.com/implementando-um-servidor-de-dominio-com-o-poderoso-samba4/

segunda-feira, 18 de janeiro de 2016

Configurações 3G para Modem(Oi, Vivo, Claro e Tim)


Recentemente ganhei um modem 3G da Vivo, mais queria utiliza-ló na Tim, por isso tive que fazer as configurações manuais para que funcionasse. Aproveitando isto resolvi criar esta postagem com as configurações das principais operadoras, para que todos possam usar seus modens com qualquer prestadora que desejar. Mais se você quiser usar a internet em seu celular ou smartphone considere os dados desta postagem.
1 – Oi 3G
Nome: Oi 3G
Número de discagem: *99***1#
APN: gprs.oi.com.br
Usuário: oi
Senha: oi
Modo de autenticação: Marque a opção PAP
Obs.: Marque a opção “Obter o endereço do servidor PDP automaticamente”, marque também “Obter o endereço dos servidores DNS automaticamente”.Defina esta conexão como padrão. Se houver o campo “Tipo de PDP” marque a opção IP.
2- Vivo 3G
Nome: Vivo 3G
Número de discagem: *99#
APN: zap.vivo.com.br
Usuário: vivo
Senha: vivo
Modo de autenticação: Marque a opção PAP
Obs.: Marque a opção “Obter o endereço do servidor PDP automaticamente”, marque também “Obter o endereço dos servidores DNS automaticamente”.Defina esta conexão como padrão. Se houver o campo “Tipo de PDP” marque a opção IP.
3- Claro 3G
Nome: Claro 3G
Número de discagem: *99#
APN: claro.com.br
Usuário: claro
Senha: claro
Modo de autenticação: Marque a opção PAP
Obs.: Marque a opção “Obter o endereço do servidor PDP automaticamente”, marque também “Obter o endereço dos servidores DNS automaticamente”.Defina esta conexão como padrão. Se houver o campo “Tipo de PDP” marque a opção IP.
4- Tim 3G
Nome: Tim 3G
Número de discagem: *99#
APN: tim.br
Usuário: tim
Senha: tim
Modo de autenticação: Marque a opção CHAP
Obs.: Marque a opção “Obter o endereço do servidor PDP automaticamente”, marque também “Obter o endereço dos servidores DNS automaticamente”.Defina esta conexão como padrão. Se houver o campo “Tipo de PDP” marque a opção IP.

Fonte: http://www.noticiaeblog.com/2012/01/configuracoes-3g-para-modemoi-vivo.html