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.

Anúncios

Script para adicionar grupos Unix e NT simultaneamente no Linux

Se você, assim como eu acha um saco cadastrar os grupos no Linux e depois ter que adicioná-los via net groupmap add, para que seus computadores com Windows reconheçam os grupos do domínio Samba, fica aí um pequenino script que faz essa tarefa chata para você:
Denominei ele de manutgroup.
Sintaxe:
#manutgroup nome_do_grupo


#!/bin/bash

cat /etc/group | grep -i $1 >> /dev/null
teste0=`echo $?`
net groupmap list | grep -i $1 >> /dev/null
teste1=`echo $?`

if test $teste0 = 0
then
echo "Grupo já se encontra cadastrado no arquivo group"
else
groupadd $1
echo "Grupo cadastrado no arquivo group"
fi
if test $teste1 = 0
then
echo "Grupo já se encontra cadastrado no arquivo groupmap list"
else
net groupmap add ntgroup="$1" unixgroup=$1 type=d
echo "Grupo cadastrado no arquivo groupmap"
fi

É bem simples e fácil de entender o que o script faz, até porque não sou bom em programação.
Pegue o conteúdo do arquivo e jogue dentro de uma arquivo, depois somente dê permissão de execução e se divertir.

Linux e Servidor Wins

Uma maneira de fazer com que as máquinas com Linux falem com o servidor Wins é instalando o Samba e configurando o arquivo /etc/nsswitch.conf.

Instale os seguintes pacotes:
apt-get install samba winbind

Configurando o Samba, partindo do princípio que ele está instalado:
[global]
workgroup = "Nome do Grupo de Trabalho"
netbios name = "Nome da máquina"
winbind use default domain = yes
obey pam restrictions = yes
security = user
encrypt passwords = true
wins server = "Endereço IP do servidor Wins"
template shell = /bin/bash
template homedir = /home/%U
# winbind separator = +
printing = cups
invalid users = root
idmap uid = 1000-20000
idmap gid = 1000-20000
winbind uid = 1000-20000
winbind gid = 1000-20000
template shell = /bin/false

Configurando o arquivo /etc/nsswitch.conf:
Na linha hosts coloque o “wins”.
hosts: files dns wins

Depois é só testar pingando para um nome.

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