Arquivo

Archive for the ‘Diversos’ Category

Instalação do Samba4.1 no Debian Wheezy

No inicio do ano publiquei um post sobre a instalação do Samba4 (Instalação do Samba4 – Active Directory compatible Domain Controler). Depois de um tempo de uso, de apanhar bastante e de várias coisas darem errado, a gente acaba vendo tudo diferente, aprende a simplificar e otimizar os trabalhos. Como a solução final foi realmente mais simples e limpa que a anterior, resolvi fazer uma atualização do post anterior. Algumas coisas permanecerão as mesmas, outras deixarão de existir (como compilação do bind, por exemplo) e algumas serão adicionadas, devido a atualização das versões utilizadas e tombos sofridos durante o caminho.

Enfim, falando do que interessa, desta vez nosso ambiente é o seguinte:

  • Debian Wheezy 7.2
  • Samba4.1
  • Bind9

Antes de começar, ajuste os arquivos /etc/hosts e /etc/hostname do servidor com o IP, FQDN e nome correto do servidor para que não tenhamos problemas com o Kerberos.

 

Bind

Sem necessidade de compilação e utilizando versões estáveis disponíveis:

# apt-get install bind9

 
Vamos informar ao Bind que o Samba poderá alterar as entradas de DNS do domínio. No arquivo /etc/bind/named.conf, inserir a linha:

 include "/var/lib/samba/private/named.conf";

 
Agora, vamos informar ao Bind para onde ele deve encaminhar as solicitações que ele não consegue resolver (Forwarders)  e quais redes são autorizadas a utilizar este servidor para resolução de nomes (acl e allow-query):

# vim /etc/bind/named.conf.options

acl redesautorizadas {
192.168.0.0/24;
192.168.2.0/24;
192.168.3.0/29;
};

options {
directory "/var/cache/bind";
//dnssec-validation auto;
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
allow-query { redesautorizadas; };

forwarders{
8.8.8.8;
8.8.4.4;
};

auth-nxdomain no;    # conform to RFC1035
//      listen-on-v6 { any; };
};

 

Preparação do SO

Dependências necessárias para o serviço:

 # apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev \
libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config \
libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl \
libcups2-dev acl

 
Serão solicitados o domínio e servidor administrativo, no caso:

Kerberos Realm: TESTE.COM
KDC: dc.teste.com

 

Configurar o sistema de arquivos para suporte a acl e attr. No arquivo /etc/fstab, localizar a linha que define o ponto de montagem do diretório raiz e deixá-la como no exemplo:

 UUID=uuid_disco  /   ext3    user_xattr,acl,barrier=1,errors=remount-ro  0  1

 

Depois de um tempo com o Samba em funcionamento e o servidor de arquivos ativo, observamos que a partição /run/lock enchia rapidamente e o serviço simplesmente parava. Resultado, muitas reclamações e muitos probemas. Depois de muita pesquisa e alguns testes, descobrimos que seria necessário aumentar o tamanho dessa partição no /etc/fstab e a dor de cabeça cessaria… 
Originalmente essa linha não aparece no arquivo, então é necessário adicioná-la:

tmpfs /run/lock tmpfs rw,noexec,nosuid,nodev,size=52428800 0 0

 

Mais explicações sobre o problema e a solução: 

 

Download configuração e instalação do Samba

# wget -c https://ftp.samba.org/pub/samba/stable/samba-4.1.0.tar.gz
# gunzip samba-4.1.0.tar.gz
# tar -xvf samba-4.1.0.tar
#  cd samba-4.1.0/
# ./configure --enable-debug --enable-selftest --enable-fhs \
--prefix=/usr --sysconfdir=/etc --localstatedir=/var
# make && make install
# mkdir /var/run/samba

Nota: Na configuração, os parâmetros prefix, sysconfdir e localstatedir não são obrigatórios, fiz desta forma apenas para que os arquivos de configuração e executáveis do Samba fossem copiados para os locaias padrão da distribuição.
 

Configuração do NSS (Network Service Switch)

# vim /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

 

Ajustes Kerberos

#vim /etc/krb5.conf
[libdefaults]
default_realm = TESTE.COM
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
TESTE.COM = {
kdc = kdc.teste.com
admin_server = kdc.teste.com
}

[domain_realm]
.teste.com = TESTE.COM
teste.com = TESTE.COM

Nota: Nas configurações do kerberos deve-se respeitar upper case e lower case na configuração dos parâmetros. 

 

Como o pacote do samba foi compilado o script de inicialização do serviço não foi criado, vamos criá-lo e configurar a inicialização automática no sistema:

# vim /etc/init.d/samba4

#! /bin/bash
### BEGIN INIT INFO
# Provides:          samba4
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start Samba daemons
### END INIT INFO
#
# Start/stops the Samba daemon (samba).
# Adapted from the Samba 3 packages.
#
PIDDIR=/var/run/samba
SAMBAPID=$PIDDIR/samba.pid
 # clear conflicting settings from the environment
unset TMPDIR
# See if the daemon and the config file are there
test -x /usr/sbin/samba -a -r /etc/samba/smb.conf || exit 0
. /lib/lsb/init-functions
case "$1" in

start)
log_daemon_msg "Starting Samba 4 daemon" "samba"
# Make sure we have our PIDDIR, even if it's on a tmpfs
install -o root -g root -m 755 -d $PIDDIR
if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/samba -- -D; 
then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;

stop)
log_daemon_msg "Stopping Samba 4 daemon" "samba"
start-stop-daemon --stop --quiet --name samba $SAMBAPID
# Wait a little and remove stale PID file
sleep 1
if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
then
# Stale PID file (samba was succesfully stopped),
# remove it (should be removed by samba itself IMHO.)
rm -f $SAMBAPID
fi
log_end_msg 0
;;

restart|force-reload)
$0 stop
sleep 1
$0 start
;;
*)

echo "Usage: /etc/init.d/samba {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0

 
# chmod +x /etc/init.d/samba4
# update-rc.d samba4 defaults

 

Samba4 instalado e sistema ajustado. Segue alguns comandos que podem ser úteis na criação e configuração do domínio:

 

– Provision Domain
# samba-tool domain provision

– Join Domain
# samba-tool domain join teste.com DC -Uuser.adm –realm=teste.com –dns-backend=BIND9_DLZ –site=SITE –server=DC

– Retirar membro de domínio
# samba-tool domain demote –realm=TESTE.COM -Uuser.adm –password=xxxxxx –server=DC

– Teste DNS
# host -t SRV _ldap._tcp.teste.com.
# host -t A dc.teste.com

 Update Samba
* Compilar e instalar o novo pacote com as instruções anteriores.
* Alterar a permissão do arquivo key.pm
# chmod 0600 /var/lib/samba/private/tls/key.pem

 

Após os ajustes reiniciar os serviços do samba e bind.

Categorias:Diversos

Instalação do Samba4 – Active Directory compatible Domain Controler

Depois de muita espera e muita expectativa finalmente chegou o Samba4, prometendo (e cumprindo) implementação do ambiente criado pelo Active Directory (Microsoft), após a instalação a gerência e configuração do domínio e DC’s é feita utilizando as próprias ferramentas da Microsoft.

E vamos ao que interessa. Neste post serão abordadas a instalação do Samba4 no Debian Squeeze6.0.6 e Ubuntu 12.04LTS utilizando o Bind como DNS backend, nessa caso é necessário que o pacote tenha versão  igual ou superior a 9.7.x

– Bind – DNS

Debian Squeeze 6.0.6

O último pacote de instalação do bind disponível para o Debian é o 9.6 nesse caso teremos que compilar o pacote correto.

Para que não seja necessário criar os scripts de start/stop do serviço vamos instalá-lo e removê-lo utilizando o apt-get.

Nota: caso a versão disponível seja superior a 9.7.x não é necessária a remoção do serviço.

# apt-get install bind9
# apt-get autoremove bind9

Dependências necessárias

# apt-get install devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev

Criar diretório de cache e alterar as permissões

# mkdir /var/cache/bind
# chown bind:bind /var/cache/bind

Baixar o pacote

# mkdir bind9
# cd bind9
# dget -x http://ftp.de.debian.org/debian/pool/main/b/bind9/bind9_9.8.4.dfsg.P1-3.dsc
# tar -xvzf bind9_9.8.4.dfsg.P1.orig.tar.gz
# cd bind9-9.8.4.dfsg.P1/
 
Compilar e instalar o serviço
#  ./configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –sysconfdir=/etc/bind –localstatedir=/var –enable-threads –enable-largefile –with-libtool –enable-shared –enable-static –with-openssl=/usr –with-gssapi=/usr –with-gnu-ld –with-dlz-postgres=no –with-dlz-mysql=no –with-dlz-bdb=yes –with-dlz-filesystem=yes –with-dlz-ldap=yes –with-dlz-stub=yes –with-dlz-dlopen=yes –with-geoip=/usr CFLAGS=-fno-strict-aliasing

# make install
Ubuntu 12.04LTS

Dependências necessárias:

# apt-get install  devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev 

No Ubuntu o pacote disponível no repositório atende aos requisitos do Samba4, nesse caso não é necessário compilar o pacote, a instalação pode ser feita via apt-get:

# apt-get install bind9

Para que o Samba possa alterar as configurações e criar as entradas para o domínio é necessário fazer algumas alterações, são elas:

# vim /etc/bind/named.conf
include “/usr/local/samba/private/named.conf”;
 
# vim /etc/bind/named.conf.options
tkey-gssapi-keytab “/usr/local/samba/private/dns.keytab”;
forwarders {
                8.8.8.8;
                8.8.4.4;
                };

Nota: A opção forwarders só deve ser usada caso o servidor encaminha solicitações que ele não consiga resolver para servidores DNS externos.

Samba4

Dependências necessárias:

Debian 6.0.6 – Squeeze
# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
 
Ubuntu 12.04LTS
# apt-get install libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl

Nota: Serão solicitados o domínio do servidor e FQDN dos servidores do Kerberos.

No Ubuntu ainda é necessária uma alteração no apparmor para que ele permita alterações no bind

# vim /etc/apparmor.d/usr.sbin.named
/usr/local/samba/private/** rkw,
/usr/local/samba/private/dns/** rkw,
/usr/local/samba/lib/** rm,# /etc/init.d/apparmor reload

Se o sistema de arquivos utilizado for ext3 ou ext4 será necessário configurá-lo para suportar acl e attr. Para isso vamos editar o arquivo /etc/fstab e incluir as opções “user_xattr,acl,barrier=1” na montagem do volume. Após alterado o arquivo deve estar parecido com este:

# vim /etc/fstab
/dev/hda       /               ext3    user_xattr,acl,barrier=1,errors=remount-ro  0       1

Montar novamente o sistema de arquivos

# mount -o remount,rw /

Também é importante verificar se o nome do host está definido corretamente, verifique as configurações dos arquivos /etc/hosts e /etc/hostname, faça as alterações necessárias e reincie o servidor.

Download, configuração e instalação do Samba

# wget -c http://www.samba.org/samba/ftp/stable/samba-4.0.1.tar.gz
# tar -xvf samba-4.0.1.tar.gz
# cd samba-4.0.1/
# ./configure –enable-debug –enable-selftest
# make
# make install

Após instalado o samba, vamos criar o domínio:

# /usr/local/samba/bin/samba-tool domain provision

Serão solicitadas informações como: realm,domain, server role, DNS backend e password. As configurações serão aplicadas e o domínio criado, uma saída semelhante a esta será apresentada:

Realm: TESTE.COM
Domain [TESTE]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=teste,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=teste,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4-dc
NetBIOS Domain: TESTE
DNS Domain: teste.com
DOMAIN SID: S-1-5-21-2228987782-1448195482-472659170

Antes de iniciar o Samba, reiniciar o bind para que as alterações sejam aplicadas:

# /etc/init.d/bind9 restart

Iniciar o samba

# /usr/local/samba/sbin/samba

Atualizar a base DNS

# /usr/local/samba/sbin/samba_dnsupdate –verbose –all-names

Testar o DNS
# host -t SRV _ldap._tcp.senior.local

Nota: Para funcionamento correto dos comandos acima, é necessário que no /etc/resolv.conf o nameserver contenha o IP do servidor local.

Outro serviço importante a ser configurado para o correto funcionamento do samba4 e kerberos é o NTP, caso os relógios não estejam sincronizados os serviços podem apresentar problemas.

Referências:

Autenticação NTLM no Apache

Ambiente:
– Samba 3.5.6 e 3.6.6
– Apache 2.2
– Debian Wheezy 7.1

Pacotes necessários: samba, smbclient, winbind, libapache2-mod-auth-ntlm-winbind

# Samba

No arquivo /etc/smb/smb.conf adicionar as configurações

workgroup = <dominio>
server string = %h server
netbios name = <nomeservidor>
realm = <dominio.com>
log level = 2
log file = /var/log/samba/samba.log
max log size = 50
security = domain
password server= <servidor que validará as requisições. Ex: ad, ldap>
socket options = SO_KEEPALIVE TCP_NODELAY
encrypt passwords = yes
allow trusted domains = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users =yes
winbind enum groups = yes
winbind use default domain = yes
winbind use default domain = yes
hosts allow = <rede com permissão para autenticar. Ex: 192.168.>

# Configurações winbind

Editar o arquivo /etc/nsswitch.conf de maneira que fiquei como a seguir

passwd: files winbind
group: files winbind
shadow: files winbind

# Incluir o servidor no domínio

net join -w DOMAIN -SSERVER -U USER

– DOMAIN: domínio
– SERVER: PDC
– USER: usuário com permissão de administrador no domínio
– Adicionar o usuário www-data ao grupo winbindpriv

# Apache

Nos arquivos do diretório conf.d, referentes aos sistemas que precisam de autenticação, adicionar as linhas:

AuthType NTLM
 AuthName "Autenticar Acesso"
 NTLMAuth on
 NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
 NTLMBasicAuthoritative on
 require valid-user

# Reiniciar o winbind e o apache

/etc/init.d/winbind restart
/etc/init.d/apache2 restart

Categorias:Diversos

Você é Hands On?

Você é Hands On ?
Vi um anúncio de emprego. A vaga era de Gestor de Atendimento Interno, nome que agora se dá à Seção de Serviços Gerais. E a empresa exigia que os interessados possuíssem – sem contar a formação superior – liderança, criatividade, energia, ambição, conhecimentos de informática, fluência em inglês e não bastasse tudo isso, ainda fossem HANDS ON.
Para o felizardo que conseguisse convencer o entrevistador de que possuía essa variada gama de habilidades, o salário era de 800 reais. Ou seja, nenhuma fábula… Não que esse fosse algum exemplo fora da realidade. Ao contrário, é quase o paradigma dos anúncios de emprego. A abundância de candidatos permite que as empresas levantem cada vez mais a altura da barra que o postulante terá de saltar para ser admitido.
E muitos, de fato, saltam. E se empolgam. E aí vêm as agruras da super-qualificação, que é uma espécie do lado avesso do efeito pitico…
Vamos supor que, após uma duríssima competição com outros candidatos tão bem preparados quanto ela, a Fabiana conseguisse ser admitida como gestora de atendimento interno… E um de seus primeiros clientes fosse o seu Borges, Gerente da Contabilidade.
Seu Borges: — Fabiana, eu quero três cópias deste relatório.
Fabiana: — In a hurry!
Seu Borges: — Ãh??!!
Fabiana: — Seu Borges, isso quer dizer “bem rapidinho”. É que eu tenho fluência em inglês. Aliás , desculpe perguntar, mas por que a empresa exige fluência
em inglês se aqui só se fala português?
Seu Borges: — E eu sei lá? Dá para você tirar logo as cópias?
Fabiana: — O senhor não prefere que eu digitalize o relatório? Porque eu tenho profundos conhecimentos de informática.
Seu Borges: — Não, não.. Cópias normais mesmo.
Fabiana: — Certo. Mas eu não poderia deixar de mencionar minha criatividade.. Eu já comecei a desenvolver um projeto pessoal visando eliminar 30% das cópias que tiramos.
Seu Borges: — Fabiana, desse jeito não vai dar!
Fabiana: — E eu não sei? Preciso urgentemente de uma auxiliar.
Seu Borges: — Como assim???
Fabiana: — É que eu sou líder, e não tenho ninguém para liderar. E considero isso um desperdício do meu potencial energético.
Seu Borges: — Olha, neste momento, eu só preciso das três cópias.
Fabiana: — Com certeza. Mas antes vamos discutir meu futuro…
Seu Borges: — Futuro? Que futuro?
Fabiana: — É que eu sou ambiciosa. Já faz dois dias que eu estou aqui e ainda não aconteceu nada.
Seu Borges: — Fabiana, eu estou aqui há 18 anos e também não me aconteceu nada!
Fabiana: — Sei. Mas o senhor é hands on?
Seu Borges: — Hã?
Fabiana: — Hands on… Mão na massa.
Seu Borges: — Claro que sou!
Fabiana: — Então o senhor mesmo tira as cópias. E agora com licença que eu vou sair por aí explorando minhas potencialidades. Foi o que me prometeram quando eu fui contratada.
Então, o mercado de trabalho está ficando dividido em duas facções:
1 – Uma, cada vez maior, é a dos que não conseguem boas vagas porque não têm as qualificações requeridas.
2 – E o outro grupo, pequeno, mas crescente, é o dos que são admitidos porque possuem todas as competências exigidas nos anúncios, mas não poderão usar nem metade delas, porque, no fundo, a função não precisava delas.
Alguém ponderará – com justa razão – que a empresa está de olho no longo prazo: sendo portador de tantos talentos, o funcionário poderá ir sendo preparado para assumir responsabilidades cada vez maiores.
Em uma empresa em que trabalhei, nós caímos nessa armadilha. Admitimos um montão de gente superqualificada. E as conversas ficaram de tão alto nível que um visitante desavisado confundiria nossa salinha do café com a Fundação Alfred Nobel.
Pessoas super qualificadas não resolvem simples problemas!
Um dia um grupo de marketing e finanças foi visitar uma de nossas fábricas e no meio da estrada, a van da empresa pifou. Como isso foi antes do advento do milagre do celular, o jeito era confiar no especialista, o Cleto, motorista da van.
E aí todos descobriram que o Cleto falava inglês, tinha informática e energia e criatividade e estava fazendo pós-graduação… só que não sabia nem abrir o capô.
Duas horas depois, quando o pessoal ainda estava tentando destrinchar o manual do proprietário, passou um sujeito de bicicleta. Para horror de todos, ele falava “nóis vai” e coisas do gênero. Mas, em 2 minutos, para espanto geral, botou a van para funcionar. Deram-lhe uns trocados, e ele foi embora feliz da vida.
Aquele ciclista anônimo era o protótipo do funcionário para quem as Empresas modernas torcem o nariz:
O QUE É CAPAZ DE RESOLVER, MAS NÃO DE IMPRESSIONAR!

Max Gehringer (Colunista Revista EXAME)

Categorias:Diversos Tags:

Welcome

Como sempre encontro muita coisa e muito do que aprendi devo à Internet e redes sociais, quis abrir mais um canal de comunicação, talvez específico, talvez nem tanto para compartilhamento de idéias, experiências e conhecimento.

Vou tentar manter as idéias e notícias em dia, alimentando o blog com coisas do dia-a-dia, experiências antigas, curiosidades, tendências… o que for interessante, válido e que não contrarie a natureza do linuxnatyworking.

Fiquem à vontade para comentar, sugerir, criticar ou elogiar.

Categorias:Diversos