Configurando Bind9 no Debian do zero

Depois de consultar vários tutoriais de como configurar um DNS no Linux, cheguei ao meu próprio manual para instalação desse cara, vou descrever sucintamente, até porque é bem simples de se fazer.
Vamos lá…

Primeira coisa é instalar o serviço:
apt-get update
apt-get install bind9

Após isso nós vamos adicionar a zona, que é por quais domínios o seu DNS responderá, para isso vamos editar o arquivo:
vim /etc/bind/named.conf.default-zones

E adicionar o seguinte texto ao final do arquivo:

zone "seudominio.com.br" {
type master;
file "/etc/bind/db.seudominio.com.br";
};

Agora nós vamos criar o arquivo que terá todas as configurações do DNS:
Temos que criar um arquivo chamado db.seudominio.com.br, o qual é referenciado no arquivo named.conf.default-zones, tem que ter seu caminho completo especificado senão não irá funcionar:
Nós vamos utilizar um arquivo base para configurá-lo que é o db.empty
cp /etc/bind/db.empty /etc/bind/db.seudominio.com.br
cat /etc/bind/db.empty

; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS localhost.

O meu ficou assim:
vim /etc/bind/db.seudominio.com.br

; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA seudominio.com.br. root.seudominio.com.br. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS localhost.
www IN A 192.168.X.X
ftp IN A 192.168.X.X

Onde 192.168.X.X vai ser o IP do seus servidores que podem ser outras máquinas.

Temos também que colocar o nosso DNS no resolv.conf para que responda por ele mesmo:
vim /etc/resolv.conf
nameserver 192.168.X.X

Agora vamos testar o nosso DNS:

Vamos reiniciar o serviço do Bind9
/etc/init.d/bind9 restart

E agora verificar se a zona esta respondendo:

#named-checkzone www /etc/bind/db.seudominio.com.br
zone www/IN: loaded serial 1
OK
#host seudominio.com.br

E por último ping para seu domínio.

Se tudo correr bem seu DNS esta definitivamente funcionando, agora é só adicionar outros hosts e serviços para que ele possa resolver os nomes.
Espero que tenha ajudado e qualquer coisa é só comentar.

Samba 3.5.6 e LDAP no Debian 7

Um amigo estava com problemas no Samba 3.6.6 + LDAP no Debian 7.
Após quebrarmos as nossas cabeças para saber porque dava erro na hora de mapear a unidade com um usuário LDAP, que tinha mais de um grupo e que não pertencia aquele domínio, descobrimos que a versão do Samba estava influenciando no erro. Então decidimos realizar o downgrade do Samba.
Este tutorial servirá acredito eu para qualquer outra situação que você necessiti de tal recurso.

Vamos lá:
1° – iremos retirar os pacotes do pacote atual:
apt-get remove samba
E assim por diante conforme as dependências forem aparecendo.

2° – colocaremos no sources.list os repositórios que contenham a versão do pacote desejado:

## Repositorio do Debian Squezee
deb http://ftp.br.debian.org/debian/ squeeze main
deb-src http://ftp.br.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.br.debian.org/debian/ squeeze-updates main
deb-src http://ftp.br.debian.org/debian/ squeeze-updates main

3° – atualizaremos a lista de repositórios:
apt-get update

4° – vamos procurar agora os pacotes desejados, mas da seguinte maneira:
apt-cache showpkg samba
2:3.5.6~dfsg-3squeeze11 (/var/lib/apt/lists/ftp.br.debian.org_debian_dists_squeeze_main_binary-i386_Packages) (/var/lib/apt/lists/security.debian.org_dists_squeeze_updates_main_binary-i386_Packages)
Ele irá lhe mostrar todas as versões existentes do pacote.

5° – instalaremos o pacote específico através da versão desejada, no meu caso o samba 3.5.6:
apt-get install samba=2:3.5.6~dfsg-3squeeze11

Observação:
Isso será aplicado a todas as dependências, no caso do samba vai a lista aí em baixo:

apt-get install libwbclient0=2:3.5.6~dfsg-3squeeze11
apt-get install samba-common=2:3.5.6~dfsg-3squeeze11
apt-get install samba=2:3.5.6~dfsg-3squeeze11
apt-get install smbclient=2:3.5.6~dfsg-3squeeze11
apt-get install samba-common-bin=2:3.5.6~dfsg-3squeeze11

Espero que seja útil um dia.
Abraços

Ingressando Ubuntu em um domínio Samba

Este tutorial mostra como fazer máquinas com Ubuntu ingressarem num domínio com Samba, de maneira rápida e simples.

Teremos que efetuar algumas alterações no servidor para receber as máquinas com o Ubuntu.

Antes de qualquer coisa aconselho efetuar backup de todos arquivos que forem editados.

Vamos criar um script para adicionar os computadores:
#!/bin/bash
useradd -g machines -c "Samba machine" -d /dev/null -s /bin/false $1"$"
passwd -l $1"$"
smbpasswd -a -m $1

Criado o script, agora vamos colocá-lo no smb.conf no lugar do useradd… do item add machine script:
add machine script = machineadd %m

Agora temos que acertar o winbind dentro do smb.conf:
dmap uid = 1000-20000
idmap uig = 1000-20000
winbind uid = 1000-20000
winbind gid = 1000-20000
template shell = /bin/false

Agora é reiniciar o serviço do Samba.

Bom agora vamos estação, o desktop do usuário.

Vamos instalar alguns pacotes com o seguinte comando:
# apt-get install samba smbfs smbclient libpam-mount winbind

O próximo passo é editar o arquivo /etc/samba/smb.conf:
[global]
workgroup = WORKGROUP
netbios name = COMPUTADOR
winbind use default domain = yes
obey pam restrictions = yes
security = domain
encrypt passwords = true
wins server = 192.168.2.1
winbind uid = 1000-20000
winbind gid = 1000-20000
template shell = /bin/bash
template homedir = /home/%U
winbind separator = +
printing = cups
invalid users = root

Edite as primeiras linhas do /etc/pam.d/login para:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_mount.so
auth sufficient pam_winbind.so
account sufficient pam_winbind.so
session required pam_winbind.so

Edite as primeiras linhas do /etc/pam.d/gdm para:
#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale

#@include common-auth
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth optional pam_smbpass.so migrate missingok

#@include common-auth
auth optional pam_gnome_keyring.so

#@include common-account
account sufficient pam_winbind.so
account required pam_unix.so

#@include common-account
session required pam_limits.so

#@include common-session
session required pam_unix.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel

#@include common-session
session optional pam_gnome_keyring.so auto_start

#@include common-password
password requisite pam_unix.so nullok obscure md5
password optional pam_smbpass.so nullok use_authtok use_first_pass
missingok

#@include common-password

Edite as primeiras linhas do /etc/nsswitch.conf para:
passwd: compat winbind
shadow: compat winbind
group: compat winbind

Por último execute o seguinte comando:
# net rpc join member -U admin

Provalmente ele apresentará um erro “Unable to join domain”, execute o comando de novo que aparecerá a mensagem de “Joined domain DOMINIO.”

Você pode efetuar testes com os seguintes comandos wbinfo -u e wbinfo -g eles vão apresentar os usuários e grupos do Samba.
Reinicie o computador e efetue o login.

Bom espero que funcione pra você…

Obs: Este tutorial foi realizado com sucesso no Ubuntu 7.04 com Samba 3.0.24 e servidor Debian com a mesma versão do cliente.

Referências:
http://www.dicas-l.com.br/dicas-l/20060512.php
http://www.guiadohardware.net/tutoriais/samba-pdc/pagina5.html

Autores:
Eduardo Bernardino e Ricardo Caldas

Um LiveCD do seu Ubuntu

O Ubuntu que você instalou, atualizou, configurou e customizou pode ser transformado em um LiveCD, por meio de um software que faz tudo pra você. Quem realiza este milagre é o Remastersys um aplicativo simples de utilizar, que permite você efetuar backup de todo o sistema, criando uma imgem com os dados pessoais ou apenas criar um LiveCD do seu sistema.

Para instalar o Remastersys é muito simples:

1 – Adicione a seguinte linha deb http://www.remastersys.klikit-linux.com/repository remastersys/ no arquivo source.list ou utilize o Synaptic “Sistemas -> Administração -> Gerenciador de Pacotes Synaptic -> Cofigurações -> Repositórios“.

synaptic

Após isso atualize a lista de pacotes através do comando apt-get update ou pelo botão recarregar do Synaptic.

Depois é só executar o apt-get install remastersys ou localizar pelo Synaptic marcar e instalar.

Acabando de instalar você irá em Sistemas -> Administração -> Remastersys Backup.

remastersys

Agora é só escolher a opção mais interessante para sua necessidade dar OK -> OK e aparecerá uma tela de terminal, criando a iso do sistema. Terminado ela  estará dentro do /home/remastersys/remastersys/.

Aí pra testar você pode emular numa ferramenta de virtualização, tipo QtEmu, Virtualbox, etc ou queimar um CD mais provavelmente um DVD e bootar pra ver o que dá.

Espero que a dica seja útil , pois customizei muitas distros tendo que usar mount, chroot, dd, cloop, etc e agora com o Remastersys achei muito mais prático.

Cadastrando computadores no DHCPD.CONF automaticamente

Espero que eu não seja o único preguiçoso, que não gosta de ficar configurando um servidor DHCP, prendendo os MAC’s com os IP’s. Por achar que não estou sozinho nesta empreeitada criei um script que busca os computadores na rede através do programa nbtscan, que é um scanner de netbios, onde ele mostra o nome, IP e Mac dos computadores de sua rede, montando uma tabela pra você.
O script que denominei como Autodhcpd.sh, filtra estas informações do nbtscan e formata as entradas do seu arquivo dhcpd.conf, gerando um servidor DHCP com configurações básicas e com todos os hosts de sua rede presos por endereço MAC, aumentado assim a organização e segurança de sua rede.

Uma prévia do comando nbtscan.

Instalação no Debian, que é a distribuição que uso:
#apt-get install nbtscan

Modos de utilização do comando:
#nbtscan 192.168.1.0/24
#nbtscan 192.168.1.25-137

Onde a saída vai ser algo deste tipo:
#nbtscan 192.168.1.1
Doing NBT name scan for addresses from 192.168.1.1
IP address NetBIOS Name Server User MAC address
-----------------------------------------------------------------------------------------------------------------------------------
192.168.1.1 Fulano-Machine Fulano 00:00:00:00:00:00

Funcionamento básico do Script:
O nbtscan, que você terá que instalar previamente, busca os hosts da rede e gera uma tabela como expliquei acima, depois de gerada ele filtra o que interessa e começa a alimentar o seu novo dhcpd.conf, por isso aconselho vocês a fazer um backup do antigo, o que ele não conseguir scanear irá informar, tentando outro método para descobrir o endereço MAC.

Clique aqui e baixe o autodhcpd.sh

Bom espero que gostem e que seja útil… Ahhh aguardo sugestões no script, pois não sou muito bom em programar… Valeu.

Autor: Eduardo de Souza Bernardino da Silva