segunda-feira, 31 de maio de 2010

IPFW - Instalação do IPFW com suporte ao IPFW2(+IPv6) sobre FreeBSD

Se ainda não conhece o IPFW leia o artigo com a introdução do mesmo no link abaixo:
http://conteudoopensource.blogspot.com/2010/05/introducao-ao-ipfw-instalando.html

Dica:
Esse processo do make para recompilar e instalar o novo kernel modificado, exige um pouco de memória RAM em torno de 292 MB, para não acabar utilizando o swap, se não houver memória suficiente o processo será morto pelo kernel e lançará uma excessão ocasionando na parada da instalação do novo kernel. Outro ponto importante é do espaço livre em disco utilize pelo menos 5 GB para a participação do seu FreeBSD.

O IPFW2 já vem nativo apartir da versão 5x do FreeBSD, não sendo necessária nenhuma modificação no kernel(inclusão do options IPFW2 no kernel) do sistema para utilizar o mesmo. A inclusão desse aopção acontecia apenas na versão 4x e anteriores do FreeBSD.

Utilizando para este artigo o FreeBSD 7.2


# cd /usr/src/sbin/ipfw

se o diretorio acima não existir você precisará instalar esses src's através do comando sysintall:

# sysinstall

Navegue pelo menu do sysinstall configure > distributions e marque a opção:

[ X ] ports

depois em configure > distributions > src maque as opções:

[ X ] base
[ X ] lib
[ X ] sbin
[ X ] sys

# vi /etc/make.conf

---> Insira:
IPFW2=true

Voltando ao userland :

# cd /usr/src/sbin/ipfw/

Recompile o ipfw:

# make clean


# make -DIPFW2


# make -DIPFW2 install

Recompile a libalias:

# cd /usr/src/lib/libalias/


# make clean


# make -DIPFW2


# make -DIPFW2 install

Vamos agora modificar o nosso kernel padrão(GENERIC) fazendo uma cópia do kernel default:

# cd /usr/src/sys/i386/conf/
# cp GENERIC NOME_DO_SEU_SERVIDOR


# vi NOME_DO_SEU_SERVIDOR

---> Procure a linha ident no kernel que foi copiado(NOME_DO_SEU_SERVIDOR) e modique-a colocando ao invés de:

ident GENERIC

para:

ident NOME_DO_SEU_SERVIDOR

Coloque essas linhas no final do kernel copiado(NOME_DO_SEU_SERVIDOR):

options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPDIVERT
options DUMMYNET

-->salve e saia.

Vamos agora compilar e instalar o novo kernel(este passo é bastante demorado):

# cd /usr/src/

Compilando o kernel.

# make buildkernel KERNCONF=NOME_DO_SEU_SERVIDOR

Instalando o novo kernel.

# make installkernel KERNCONF=NOME_DO_SEU_SERVIDOR

Se tudo ocorreu bem, já temos o nosso kernel modificado bastando apenas reiniciar a máquina para utiliza-lo:

# reboot

Depois de reiniciar verifique que já estamos usando o novo kernel:

# uname -a

Instale um outro aplicativo que irá ajudar o ipfw a calcular os endereços de rede e host que são definidos no arquivo de regras do ipfirewall na forma "Ciderizada"(CIDR ex.: 189.87.34.2/21). Com isso você irá obter uma melhor perfomance no firewall:

# cd /usr/ports/net-mgmt/ipcalc/ && make install clean

Iremos configurar o rc.conf, para iniciar o firewall no boot e suas regras que serão pre-definidas por você, para isso basta editar /etc/rc.conf:

# vi /etc/rc.conf

-->Insira as seguintes linhas:

#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# FIREWALL IPFW COM SUPORTE AO IPFW2 E IPV6
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
firewall_enable="YES"
firewall_type="/tools/firewall/ipfw.rules"
firewall_quiet="NO"
firewall_logging="YES"

--> Onde firewall_type é seu arquivo de regras, falerei mais sobre as regras em outra postagem...

Iremos agora ativar o log
Crie os aquivo de log:

# mkdir /var/log/ipfw && touch /var/log/ipfw/ipfw.log

Depois configure o syslog:

# vi /etc/syslog.conf

--> Insira no final deste arquivo as linhas:
!ipfw
*.* /var/log/ipfw/ipfw.log

salve e saia e depois na shell enviei um hungup para o syslog:

# killall -HUP syslogd

quarta-feira, 26 de maio de 2010

pfSense - Introdução

Se estiver projetando a implantação de um servidor que contenha os serviços como: routing, daemon para roteamento RIP ,OSPF e BGP, Firewall, proxy, VPN, DHCP relay, DHCP server, DNS forwarder, DDNS, PPPoE server, Balanceamento de carga, Fail Over com carp, IDS, Traffic Graph por endereço IP entre outros .... você irá encontrar tudo isso e muito mais com o software opensource pfSense.

pfSense é livre, um open source customizado baseado na distribuição do S.O FreeBSD, adaptado para ser usado como um firewall e roteador.

Além de ser um poderoso firewall e roteador com uma plataforma flexível , ele inclui uma longa lista de ferramentas e um sistema de packages permitindo futuras expansabilidades, sem falar do potencial de segurança em termos de vulnerabilidades para a distribuição base. pfSense é um projeto popular com mais de 1 milhão de downloads desde seu início, e comprovada em inúmeras instalações que vão desde a proteção de pequenas redes domésticas e um Xbox até para grandes corporações, universidades e outras organizações protegendo milhares de dispositivos de rede.

Este projecto começou em 2004 como um fork do projeto m0n0wall, mas com foco para a instalação no PC ao invés do enfoque de software embarcado do m0n0wall. pfSense também oferece uma imagem incorporada para instalações em Compact Flash, porém não é o foco principal.

sexta-feira, 21 de maio de 2010

MediaWiki - Autenticando acesso via LDAP

A classe PHP LdapAuthentication, ou no linguajar do Wiki: "extensão LdapAuthentication" prover fucionalidades de autenticação e também algumas funcionalidades de autorização para o seu wiki, ele se integra com os seguintes serviços: Active Directory - Smartcard - Kerberos já disponiveis em sua rede.

Para instalação dessa funcionalidade em seu wiki você primeiramente deverá identificar a versão do seu mediawiki, para isso vá em páginas especiais do seu wiki depois vá no link Versões(/Especial:Version) e veja a sua versão essa funcionalidade esta disponivel para funcionar nos wikis aparti da versão 1.6+. Identificado a versão do seu wiki você deverá baixar a extensão LdapAuthentication em http://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication de acordo com a versão do wiki.... Após ter baixado a extensão coloque no dirétorio extension do wiki, como mostra o comando abaixo:


# tar -xzf LdapAuthentication-MW1.13-r36354.tar.gz -C /var/www/mediawiki/extensions/LdapAuthentication/


Após ter feito isto você deverá configurar o seu LocalSetings.php, aqui utilizo a versão 1.11.0 do MediaWiki e a versão 1.10 do LdapAuthentication para realizar a autenticação dos usuário wiki utilizando o AD, configurações no LocalSettings.php:




/*
AUTENTICAÇAO NO AD PARA O WIKI
POR LEONARDO COUTO CONRADO
EM 20.04.2010

PROCURA NA BASE LDAP O OBJETO(USUÁIO DIGITADO NO LOGIN), A AUTENTICACAO FICA MAIS DINAMICA,POIS, NÃO SE LIGA DIRETO A UM UNICO OBJ(USUARIO LDAP)
ELE IRÁ AUTENTICAR UM CONJUNTO DE USUARIOS LDAP INFORMADO NO ATRIBUTO $wgLDAPBaseDNs - FUNCIONANDO-OK - EM PRODUÇÃO:
*/

require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array("NOMEDOMINIO");
$wgLDAPServerNames = array("NOMEDOMINIO"=>"srvpdc1tecnotrlocal.nomedominio.local");
$wgLDAPEncryptionType = array("NOMEDOMINIO"=>"clear");
$wgLDAPUseLocal = false;
$wgMinimalPasswordLength = 1;

//A COLEÇÃO DE USUÁRIO QUE SERÁ PERMITIDO LOGAR NESTE WIKI SERÁ O CONTAINER(O.U.) LDAP ABAIXO:
$wgLDAPBaseDNs = array("NOMEDOMINIO"=>"OU=USUARIOS,OU=TRSSA,DC=nomedominio,DC=local");

//ATRIBUTO PARA CHECK, PESQUISA E COMPARA O QUE O USUÁRIO DIGITOU PARA REALIZAR O LOGIN NO WIKI, UTILIZANDO O TIPO DE ATRIBUTO LDAP sAMAccountName QUE CORRESPONDE AO NOME DE USUÁRIO(Exemplo.: sAMAccountName de Leonardo Conrado = leonardo.conrado):
$wgLDAPSearchAttributes = array("NOMEDOMINIO"=>"sAMAccountName");

//SOMENTE MEMBROS DESTE GRUPO SERÁ PERMITIDO LOGAR NO WIKI :
$wgLDAPGroupDN = "cn=GRUPO_WIKI,ou=USUARIOS,ou=TRSSA,dc=NOMEDOMINIO,dc=LOCAL";

//USUÁRIO PROXY PARA LEITURA DA BASE LDAP:
$wgLDAPProxyAgent = array("NOMEDOMINIO"=>"cn=winbind.user,cn=users,dc=NOMEDOMINIO,dc=LOCAL");

//SENHA DESTE USUÁRIO PROXY:
$wgLDAPProxyAgentPassword = array("NOMEDOMINIO"=>"linux123");

//CHECAR SE O USUÁRIO NÃO ESTAR DESABILITADO NO AD:
$wgLDAPRequireAuthAttribute = array("NOMEDOMINIO"=>true);

//The userAccountControl attribute has hex flags that specify information about a user's account a hex flag of 2 specifies the user's account is disabled:
$wgLDAPAuthAttribute = array("NOMEDOMINIO"=>"!(userAccountControl:1.2.840.113556.1.4.803:=2)");


quinta-feira, 20 de maio de 2010

Shell script - backup de seus bancos de dados Mysql em servidores remotos

Utilize o usuário root para o procedimento abaixo ou crie um usuário backup com uma senha forte, pois, iremos colocar senhas de BDs nos arquivos shell script, logo, por motivo de segurança é aconselhado realizar esta estratégia.

1 - Crie a seguinte estrutura de pastas no seu unix-like(Substitua o diretório sistema_mapas pelo o nome do seu sistema que deseja realizar o back-up):
# mkdir -p /backups_BDs_mysql/sistema_mapas/bkps

--->Somente o usuário root ou backup terá acesso ao conjunto de pastas por motivos de segurança, , então der o comando chmod -r:
# chmod -R 700 /backups_BDs_mysql/sistema_mapas/bkps

2 -Após isto, crie o seguinte arquivo shell script em /backups_BDs_mysql/sistema_mapas/:
# touch /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

# chmod 755 /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

# vi /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

---> Insira o conteúdo abaixo no shell script:

#!/bin/bash

# Bkp banco mysql
# Por Leonardo Couto Conrado
# Em 19.10.2009

now=$(date +%Y%m%d)
clockNow=$(date +%d.%m.%Y-%H:%M)
nomeFile=$now.mapas.sql
pathBkp="/backups_BDs_mysql/sistema_mapas"

`mysqldump -u usuarioComAcessoAoBanco -psenhaDoBanco -h nomeOuIPDoServidorDeBanco --databases nomeDoBanco > $pathBkpMapas/bkps/$nomeFile`
`tar --absolute-names -czf $pathBkp/bkps/$nomeFile.tar.gz $pathBkpMapas/bkps/$nomeFile`
`rm -f $pathBkp/bkps/$nomeFile`

if [ $? -ne 0 ];
then
echo "$clockNow - $0, possiveis erros na linha acima ^" >>  /var/log/backups_BDs_mysql.log
else
echo "$clockNow - $0, possiveis erros na linha acima ^" >>  /var/log/backups_BDs_mysql.log
fi


3 - Crie os arquivos de log em /var/log/:
# touch /var/log/backups_BDs_mysql.log

4 - Teste executando o shell script:
# /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

---> Se estiver tudo ok será gerado com arquivo tallbar comprimido(tar.gz) em /backups_BDs_mysql/sistema_mapas/bkps/ com o backup do banco, caso contrário verifique o problema provavelmente usuário, senha, nome do banco inserido incorreto no script...

5 - Para ser executado todos os dias coloque a tarefa agenda no cron, aqui no trabalho rodo o backup todos dias às 23:58 da noite:
# crontab -e -u root

---> Insira a linha abaixo para programar o backup:
58 23 * * * sh /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh 2>> /var/log/backups_BDs_mysql.log

---> Salve e saia do crontab

Pronto! Você pode utilizar este esquema de backup para outros sistemas no seu ambiente, este foi o exemplo para um único sistema aqui onde trabalho, agora só depende da sua criatividade!

domingo, 16 de maio de 2010

sexta-feira, 14 de maio de 2010

IPFW - Introdução ao IPFW sobre FreeBSD

O IPFW ou IPFIREWALL é o filtro de pacotes nativo do FreeBSD, sendo também chamado de IPFW, que é a interface para controle do IPFIREWALL. O IPFIREWALL faz o monitoramento de cada pacote em cada conexão feita à máquina, determinando por meio das regras definidas pelo IPFW qual é o tratamento dado a estes pacotes. As regras são lidas de cima para baixo, e podem determinar se o pacote será liberado, bloqueado, encaminhado etc.

Atualmente podemos ativar o suporte a IPFW2. O IPFW2 é uma nova versão do IPFW, com maior flexibilidade no formato das regras e algumas funcionalidades a mais, entre elas: suporte a regras não específicas para TCP ou UDP com número de porta, suporte a blocos OR, keepalives para sessões stateful e filtragem por cabeçalho MAC.

Ports FreeBSD - Instalando aplicativos via ports no FreeBSD

Existem duas maneiras de se instalar aplicativos de forma "autônomas" no freeBSD, sem se preocupar com as dependências de aplicativos e bibliotecas para o programa ao qual você deseja instalar. As duas formas são: através dos packages e a outra é através do ports do freeBSD, hoje falarei sobre os ports, de como atualizar a lista de ports e a melhor forma de encontrar o port e instala-lo no seu freeBSD.

Para quem não conhece o FreeBSD existe um mini curso falando um pouco sobre o freeBSD desde a sua história até sua instalação, acesse o site(http://www.ignx.com.br) e siga o roteiro do curso, para efetuar o login utilize usuário demo e senha demo.

Bem iremos então partir ao propósito deste post, que é a instalção de aplicativos via ports no freeBSD, mas afinal de contas o que é o ports?

- ports: é uma tecnologia do freeBSD que permite o administrador instalar aplicativos de forma autonôma, pois, ele irá abstrair a complexidade de instalação de softwares já conhecido do estilo unix-like em que o processo deste sistema basicamente se resume em: baixar , descompactar, localizar a documentação(README ou INSTALL) ,procurar e instalar dependências se for necessário, compilar e instalar o software que se deseja. Os arquivos de um port contém todas as informações necessárias para possibilitar que o sistema automatize o processo para você. Você executa um conjunto de comandos simples e o código fonte do aplicativo é automaticamente baixado, descompactado, corrigido, compilado e instalado para você. É interessante informar que os softwares para o freeBSD necessitam de pequenas modificações no código fonte para que ele seja compilado corretamente no freeBSD, mas se você estiver utilizando o ports, você estará instalando um aplicativo que foi deliberamente portado para o FreeBSD, No momento, mais de 12,800 aplicativos já foram disponibilizados desta forma para o freeBSD.

Antes que você possa instalar todas as aplicações de que necessita, você precisa saber do que precisa, e também como a aplicação se chama.

A lista de aplicativos disponiveis para FreeBSD cresce o tempo todo. Felizmente, existem diversas formas de procurar o que você necessita:

O web site do projeto FreeBSD mantém uma lista atualizada de todos os aplicativos disponiveis e na qual você pode executar buscas, em http://www.FreeBSD.org/ports/.

Dan Langille mantém o sítio web FreshPorts, em http://www.FreshPorts.org/. O FreshPorts rastreia as alterações nas aplicações na árvore do ports a medida que elas acontecem, permitindo que você monitore um ou mais ports, enviando um email para você quando eles forem atualizados.

Se você não sabe o nome da aplicação que deseja, consulte um sítio no estilo do FreshMeat (http://www.freshmeat.net/) para procurar um aplicativo que lhe atenda, quando encontrar volte ao sítio do FreeBSD e verifique se o aplicativo já foi incorporado ao ports.

Agora que você já o nome do ports passamos para o passo de instalação do mesmo, você primeiro precisa obter a coleção de ports, a qual é basicamente um conjunto de arquivos Makefiles, patches, e arquivos de descrição colocados sob /usr/ports

A primeira coisa que precisa ser explicada a alguém que está iniciando no uso do ports é que na verdade um port é composto por um ``conjunto de arquivos''. Em poucas palavras, um port é o conjunto mínimo de arquivos que diz ao sistema FreeBSD como compilar corretamente e como instalar um aplicativo. Cada port é composto por:

* Um arquivo Makefile. O Makefile contém várias instruções que definem como o aplicativo deve ser compilado e onde ele deve ser instalado em seu sistema.
* Um arquivo distinfo. Este arquivo contem informações sobre quais arquivos precisam ser obtidos para compilar o port e os seus respectivos checksums, os quais são utilizados para verificar se o o arquivo não foi corrompido durante o processo de transmissão, a verificação é realizada através do utilitário md5(1).
* Um diretório chamado files. Este diretório contém as correções necessárias para que o aplicativo possa ser compilado e instalado no FreeBSD. As correções são basicamente arquivos pequenos os quais especificam alterações a serem aplicadas a determinados arquivos. São arquivos em formato texto plano, e basicamente dizem `` remova a linha 10'' ou ``Altere a linha 26 para ...''. As correções são normalmente conhecidas como ``diffs'', pois são gerados pelo utilitário diff(1)

Este diretório também pode conter outros arquivos necessários para a compilação do aplicativo.
* Um arquivo pkg-descr. Este arquivo contém a descrição detalhada do aplicativo.
* Um arquivo pkg-plist. Este arquivo contém a lista de todos os arquivos que serão instalados pelo port. Ele também diz ao sistema de ports quais arquivos devem ser removidos durante a desinstalação do aplicativo.

Alguns ports possuem outros arquivos, como por exemplo pkg-message. O sistema de ports utiliza estes arquivos para lidar com sistuações especiais. Se você desejar maiores detalhes sobre estes arquivos, e sobre o sistema de ports em geral, consulte o FreeBSD Porter's Handbook .

Para atualizar a sua coleção de ports você deverá executar o seguinte comando(se for a primeira atualização a ser feita após instalação do freeBSD):
# portsnap fetch extract

ele irá atualizar toda a sua coleção de ports do seu freeBSD. Quando for atualizar a coleção de ports nas próximas vezes execute somente o comando abaixo:
# portsnap fetch update

Pronto já temos os ports atualizados o próximo passo agora é finalmente instala-lo, como já deve ser do conhecimento de todos os ports ficam localizados no seguinte caminho abaixo em seu freeBSD:
# cd /usr/ports

Encontrado o seu ports pelo nome é somente executar o seguinte comando dentro da pasta do aplicativo:
# make install clean

Exemplo, vamos instalar por exemplo o apache 2.2 então:
# cd /usr/ports/www/apache22/ && make install clean

Bem, se você utilizar proxy em sua rede talvez seja necessário passar isto para o fecth o aplicativo que baixar o programa para o ports realizar a instalação, para setar o proxy faça o seguinte procedimento:
# vi /etc/make.conf

> insira na ultima linha:

FETCH_ENV = HTTP_PROXY=http://user:passwd@proxy.name:80

Exemplo, proxy sem precisar passar usuário e senha e utilizando a porta 8080:

> insira na ultima linha:

FETCH_ENV = HTTP_PROXY=http://192.168.1.1:8080

Para listar os detalhes dos pacotes instalados através do pkg e ports no FreeBSD:
# pkg_info

Parametros úteis:

-a, mostra detalhes sobre todos os pacotes instalados como: Comment, Description, Required by.

-p nome_do_pkg
, mostra em que local/caminho estar instalado este pacote.

-c nome_do_pkg, mostra o comentário para este pacote.

-d nome_do_pkg, mostra o detalhes para este pacote.

-f nome_do_pkg, mostra packing list para este pacote.

-s nome_do_pkg, mostra o tamanho total do pacote instalado.

-o nome_do_pkg, mostra a "origin" caminho gravado na geração do pacote. Este caminho é o nome do diretório na coleção de ports do FreeBSD.

Para deinstalar um ports(package/aplicativo):

Acesse o diretório da coleção de ports que vc deseja deinstalar, por exemplo para deinstalar o apache22:

# cd /usr/ports/www/apache22 && make deinstall

e depois limpe o "lixo" deixado pela instalação do pacote apache22, ainda na pasta execute o comando abaixo:

# make clean

Ferramenta para limpar o lixo deixado pelo ports e packages:

# portsclean

Simples e fácil!

Espero ter ajudado!

Bibliografia:
http://www.openit.com.br/freebsd-hb/

Integração com winbind - Ingressando estação Linux a um dominio Windows AD

A Necessidade da Integração:

Mesmo que sua empresa opte por uma migração completa, ela não poderá ser realizada da noite para o dia, gerando (mesmo que temporariamente) um ambiente de rede heterogêneo, onde servidores e estações com ambos os sistemas deverão conviver com o menor impacto possível sobre as atividades da empresa.

Onde trabalho já coloquei diversas estações Linux(precisamente distros CentOs) no servidor de dominio windows server 2003. Abaixo descrevo passo à passo com realizar este procedimento e você terá sucesso no join de sua estação Linux ao servidor de dominio windows utilizando o winbind que faz o papel de middleware neste cenário de integração.

A configuração abaixada foi realizada utlizando a distro CentOS, ou seja, derivação RedHat:

1 – CONFIGURAÇÃO DA REDE:

Edite o arquivo /etc/sysconfig/network e coloque as linhas:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=WKSSINAUXOPE001.EMPRESA.SDR

Altere as configurações do arquvivo /etc/hosts:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6
10.0.0.60 WKSSINAUXOPE001.EMPRESA.SDR WKSSINAUXOPE001
# ACIMA COLOQUE O ENDEREÇO IP DO SERVIDOR DO DOMINIO E AO LADO COLOQUE O NOME DA MAQUINA LINUX, NÃO ME PERGUNTE PORQUE MAS SE VC MAPEAR O ENDEREÇO IP DO SERVIDOR PDC COM SEU NOME CORRESPONDENTE NÃO FUNCIONA! VAI ENTENDER NÉ?

Configuração do DNS (resolver)

a.Edite o arquivo /etc/resolv.conf e coloque as informações referentes ao domínio que você criou no w2003:

nameserver 10.0.0.60
domain empresa.sdr
search empresa.sdr

b.Teste

# ping  srvpdc1tecnotrsdr

# dig empresa.sdr NS


2 - CONFIGURAÇÃO DO KERBEROS

a.Edite o arquivo /etc/krb5.conf e coloque as linhas abaixo, porém comente algumas linhas que são de exemplo no do arquivo padrão diferentes das que estão aqui listadas.

[libdefaults]
default_realm = EMPRESA.SDR
dns_lookup_realm = false
dns_lookup_kdc = false
clockskew=11001

[realms]
EMPRESA.SDR = {
kdc = srvpdc1tecnotrsdr.empresa.sdr:88
admin_server = srvpdc1tecnotrsdr.empresa.sdr:749
default_domain = empresa.sdr
}

[domain_realm]
.empresa.sdr = EMPRESA.SDR
empresa.sdr = EMPRESA.SDR

→ O arquivo final ficará parecido a este:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = EMPRESA.SDR
dns_lookup_realm = false
dns_lookup_kdc = false
clockskew=11001

[realms]
EMPRESA.SDR = {
kdc = srvpdc1tecnotrsdr.empresa.sdr:88
admin_server = srvpdc1tecnotrsdr.empresa.sdr:749
default_domain = empresa.sdr
}

[domain_realm]

.empresa.sdr = EMPRESA.SDR
empresa.sdr = EMPRESA.SDR

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

3 - CONFIGURAÇÃO DO SAMBA:

a.Faça uma copia do /etc/samba/smb.conf e crie um novo com o conteúdo abaixo. Fazendo as devidas correções:

Deve ser instalados esses pacotes do samba(não necessariamente nestas versões):

samba-common-3.0.33-3.7.el5_3.1
samba-3.0.33-3.7.el5_3.1
samba-client-3.0.33-3.7.el5_3.1

[global]

security = ADS
password server = 10.0.0.60
realm = EMPRESA.SDR
workgroup = EMPRESA
server string = WKSSINAUXOPE001
encrypt passwords = yes
name resolve order = wins lmhosts bcast
wins server = 10.0.0.60

winbind separator = /
winbind cache time = 7200
idmap uid = 10000-30000
winbind gid = 10000-30000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/bash
winbind use default domain = yes

4 - COLOCANDO A MÁQUINA NO DOMINIO:

a.Acerte o horario da máquina com o servidor AD (lembra do kerberos?), o kerberos não irá aceitar autenticação de estações com atrasos superiores a 5 minutos.


# net time set -I 10.0.0.60

b.Inicie o Kerberos

→ Não necessariamente administrador, essa conta pode ser uma conta do domínio que seja do grupo operadores de conta:

# kinit administrador

Autenticou? Caso não. Reveja o processo.

c.Cadastre a máquina a dominio

→ Não necessariamente administrador, essa conta pode ser uma conta do domínio que seja do grupo operadores de conta:

# net ads join -U administrador


Que retorno você obteve?

5 - TESTE O SAMBA E O WINBIND:

a.Inicie o serviço do winbindd


# /etc/init.d/winbind start

b.Teste se o winbind está trazendo as contas do AD

# wbinfo -u


6 - FAÇA A CPNFIGURAÇÃO DO PAM E DO NSS PARA FAZER A INTEGRAÇÃO DE AUTENTICAÇÃO

a.Edite o arquivo /etc/nsswitch.conf e modifique as linhas de acordo com o exemplo baixo:

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


→ O arquivo final ficará parecido a este:

#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# hesiod Use Hesiod for user lookups
# [NOTFOUND=return] Stop searching if not found so far
#

# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis

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



#hosts: db files nisplus nis dns
hosts: files dns

# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files

bootparams: nisplus [NOTFOUND=return] files

ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files

netgroup: nisplus

publickey: nisplus

automount: files nisplus
aliases: files nisplus

b.Teste

# getent passwd

c.Edite o arquivo /etc/pam.d/system-auth conforme abaixo. Adicione as linhas abaixo nas seções auth, account e session:

auth sufficient /lib/security/pam_winbind.so
account sufficient /lib/security/pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

→ O arquivo final ficará parecido a este:

auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_krb5.so use_first_pass
auth sufficient pam_winbind.so use_first_pass
auth required pam_deny.so

account required pam_unix.so
account sufficient pam_succeed_if.so uid < retry="3" skel="/etc/skel/" umask="0022" success="1" default="ignore]">@localhost

Pronto se tudo ocorreu com deveria sua estação linux estar dentro do dominio Windows. Existe outras maneiras de inserir sua estação a um dominio Windows como por exemplo utilizando ldap do linux ou o pacote gráfico likewise AD no Ubuntu, mas ai já fica a critério e necessidade de cada um...

MediaWiki - Para documentar a sua rede

A documentação bem elaborada de redes tem sido uma tarefa frequentemente esquecida pelos profissionais da área, e isto não é considerado uma prática recomendada. Se você deseja viver por muitos anos, sem problemas de saúde ou histeria, começe hoje mesmo a documentar a sua rede.

Para ajuda-lo nesta tarefa você deve encontrar uma boa ferramenta em que irá te auxiliar a compor a sua documentação de rede, e por que não um software open source? O mediawiki caia como uma luva para documentar e publicar internamente a documentação de sua infra-estrutura, serviços, equipamentos, sistemas corporativos, rede lógica, procedimentos, manuais etc. Para quem não sabia o mediaWiki pode ser baixado e instalado no seu servidor unix-like.

"A melhor maneira de organizar um esforço
colaborativo na web é através de um wiki. O
MediaWiki, o mecanismo por trás da famosa
Wikipedia, dita os padrões para todas as outras
ferramentas de colaboração via web.
Por Elisabeth Bauer"

Iirei falar mais sobre o mediaWiki nas próximas postagem, como configurações do mesmo e de suas extensões de funcionalidades, hoje por enquanto, irei dar o toque da ótima ferramenta para você documentar a sua rede.

Link para baixar o wiki:

http://www.mediawiki.org/wiki/MediaWiki

Seguidores