Autenticando usuário via LDAP tanto em domínio único quanto em uma floresta inteira

HowTo: Autenticação de usuários de forma transparente, buscando o mesmo em uma floresta e não apenas no domínio principal Active Directory.

EXPLICANDO O CENÁRIO:

Uma empresa que possui 6 unidades (matriz e 5 filiais) interligadas com Active Directory (VPN, link dedicado ou outra forma…).

Se tem um problema que costuma dar dor de cabeça é a questão das senhas dos usuários, pois eles vivem esquecendo e confundindo senha de domínio com senha de sistema, senha de sistema com senha de comunicador e por aí vai.

Nada melhor do que poder integrar tudo que for possível ao controlador de domínio, unificando as senhas. Ao trocar a senha de domínio, trocam-se todas ao mesmo tempo, tudo fica automatizado, economizando um tempo enorme com atendimentos para trocas de senhas e manipulação de grupos e usuários em vários sistemas e softwares.

Vamos usar como exemplo a aplicação OPENFIRE (servidor de chat corporativo), mas funciona em qualquer outra aplicação que permita autenticação no Active Directory ou LDAP, testei também no REDMINE, GLPI e em um script de autenticação em PHP que utilizamos em alguns sistemas.

Integrar o OPENFIRE em um domínio AD/LDAP é relativamente fácil.

Basta que na Configuração de Perfis, seja escolhida a opção Servidor de Diretórios (LDAP), na sequência especificar o tipo do servidor (no meu caso o AD), o host (que pode ser o FQDN – desde que possa ser resolvido pelo DNS – ou IP do controlador de domínio, eu utilizo por IP), a porta LDAP (389 por padrão), a base DN completa (em formato LDAP, dc=empresa,dc=com,dc=br), o DN completo do Administrador do DC (também em formato LDAP, cn=administrador,cn=users,dc=empresa,dc=com,dc=br) e por fim a senha do Administrador do domínio.

No final da configuração, indique no mínimo um usuário do AD para ser administrador do Openfire (obrigatório).

Isso é o suficiente para fazer com que o OPENFIRE interaja com o DC, lendo a base LDAP do AD e reconhecendo grupos e usuários do domínio, podendo assim autenticá-los com suas respectivas senhas do domínio, bastando tão somente habilitar no OPENFIRE os grupos do AD (o que é o menor dos problemas).

Não vou entrar em detalhes sobre a instalação por não ser este o objetivo deste tutorial, mas indico este link.

Servidor Messenger Openfire passo-a-passo no Linux

EXPLICANDO O PROBLEMA

Se eu tivesse apenas 1 domínio eu estaria plenamente satisfeito, mas era exatamente neste ponto que morava meu problema, já que tenho 6 domínios em relação de confiança separados fisicamente nas unidades.

Como fazer com que os usuários de todos os domínios da floresta se loguem e se enxerguem em uma única interface?

Se o AD é capaz de procurar usuários/grupos em toda a floresta de uma única vez, obviamente existe uma forma de realizar essa consulta via LDAP e consequentemente, utilizar no OPENFIRE.

E graças a Microsoft TechNet foi possível chegar a solução de como realizar consultas LDAP tanto em domínios únicos quanto em uma floresta inteira (catálogo global), que era exatamente o que eu precisava e BINGO! Funcionou exatamente e perfeitamente como esperado.

Usuários de todos os domínios logando-se em um único servidor integrado a floresta do AD e se enxergando na lista de contatos uns dos outros, cada um no seu devido grupo.

A partir daí foi só habilitar os grupos de todos os domínios filhos de acordo com a estrutura organizacional da empresa para que tudo estivesse de acordo com o escopo do projeto.

A SOLUÇÃO

A solução é bem simples, baseia-se parte no nome do domínio e parte em configuração de porta.

Ou seja, quando se deseja realizar consultas que se estendam por toda a floresta (domínios pai e filhos) é necessário especificar apenas parte do nome do domínio e alterar a porta de 389 para 3268, como na figura abaixo.

Perceba que a Base DN é apenas “com.br” em formato LDAP. Apenas o DN do Administrador do Domínio Pai deve ser completo, pois ele é quem poderá realizar as consultas em todos os Domínios da floresta.

A diferença entre as portas 389 e 3268 é que a primeira permite a consulta somente na base local e é necessário que a base DN seja completa (dc=empresa,dc=com,dc=br) e a segunda permite a consulta em toda a floresta, especificando apenas parte do nome do domínio (dc=com,dc=br). Abaixo um exemplo com a configuração no REDMINE:

Exemplo:

Eu tenho 6 domínios em relação de confiança:
—empresa1.com.br
——-filial1.empresa1.com.br,
——-filial2.empresa1.com.br,
——-filial3.empresa1.com.br,
——-filial4.empresa1.com.br e
—-empresa2.com.br

No meu caso, tenho 2 domínios com shortnames diferentes (empresa1.com.br e empresa2.com.br), apenas terminados em com.br.

Ao especificar “dc=com,dc=br” e a porta 3268 estou informando que a consulta deve abranger todos os domínios da floresta, que contenham .com.br em seus nomes DNS, dessa forma consigo incluir os domínios com shortnames diferentes (atente-se a esse detalhe caso os domínios não sejam padronizados).

Se eu não tivesse o domínio empresa2.com.br eu poderia especificar a base DN assim: “dc=empresa1,dc=com,dc=br” que seria suficiente.

CONCLUSÃO

No final das contas bastou apenas 1 único servidor para atender toda a floresta de forma efetiva.

Se a função Server 2 Server tivesse funcionado, eu precisaria de 1 servidor Openfire em cada unidade da empresa, alocando recursos, consumo de energia e mais tempo para configurar todos os servidores. Além de ter que me preocupar com 6 servidores estarem online.

Projeto VLAN em uma instituição de ensino

Padronizar a segmentação de rede, ou simplesmente criar VLANs (Virtual Local Area Networks), propicia a solidez exigida para que soluções de gestão de rede mais maduras possam ser adotadas e implementadas com facilidade.

Este é o projeto de padronização de VLANs do Instituto Federal de Santa Catarina, uma instituição de ensino com uma estrutura multicampi. Tem por objetivo propor um modelo teórico de segmentação de rede, o qual possa ser escalável de forma a atender tanto câmpus menores (avançados) quanto câmpus maiores.

Obviamente este modelo serve para diversos outros segmentos.

Donwload do projeto
Agradecimento especial ao professor Emerson Ribeiro de Mello por disponibilizar este material.

Como encontrar e-mails que você enviou mas que não houve resposta no Gmail ou Google Apps

Certamente você é uma pessoa que muitas vezes envia e-mails e depois esquece que eles estão à espera de uma resposta, devido ao grande número de mensagens enviadas.

Bem, há uma solução chamada Aguardando Resposta, que é um script que faz a busca na pasta Enviados para identificar todas as mensagens foram enviadas durante a semana anterior.

Em seguida, verifica cada conversa para determinar se alguém respondeu a sua mensagem. Caso ninguém tenha feito, o script aplica uma etiqueta (marcador, rótulo) Aguardando Resposta.  Para que mais tarde você possa facilmente visualizar as mensagens sem resposta apenas selecionando este rótulo.

Para facilitar, já criei um arquivo de script compartilhado dentro do Google Script, bastando executá-lo, dando permissões na primeira vez. Depois de executar, basta verificar a sua pasta Enviados para você ver quais são seus emails que ainda não foram respondidos.

Clique aqui para executar diretamente do Google Script 

Veja o código do script:

// Este script procura no Gmail mensagens onde que você nunca recebeu resposta durante os últimos 7 dias
// E coloca uma etiqueta chamada Aguardando Resposta na caixa enviados.

var DAYS_TO_SEARCH = 7; // apenas mensagens enviadas nos últimos 7 dias
var SINGLE_MESSAGE_ONLY = false; // nao considerar multi-mensagens (conversas)

function label_messages_without_response() {
var emailAddress = Session.getEffectiveUser().getEmail();
Logger.log(emailAddress);
var EMAIL_REGEX = /[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-z\.A-Z]+/g;
var label = GmailApp.createLabel("Aguardando Resposta");
var d = new Date();
d.setDate(d.getDate() - DAYS_TO_SEARCH);
var dateString = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();
threads = GmailApp.search("in:Sent after:" + dateString);
for (var i = 0; i < threads.length; i++)
{
var thread = threads[i];
if (!SINGLE_MESSAGE_ONLY || thread.getMessageCount() == 1)
{
var lastMessage = thread.getMessages()[thread.getMessageCount()-1];
lastMessageSender = lastMessage.getFrom().match(EMAIL_REGEX)[0];
if (lastMessageSender == emailAddress)
{
thread.addLabel(label);
Logger.log(lastMessageSender);
}
}
}
}

 

Manual – Planejamento e Organização de Eventos

Visando democratizar o acesso aos procedimentos, bem como auxiliar o trabalho de órgãos e unidades acadêmicas, a Coordenadoria de Relações Públicas da Universidade Federal de Goiás disponibilizou este material com dicas relacionadas ao planejamento e organização de eventos.

Essas dicas servem não apenas para o ambiente acadêmico, mas para todos que trabalham ou que precisam organizar eventos.

No manual existem algumas referências a anexos, os quais copio a seguir:

Roteiros das principais atividades voltadas ao planejamento e organização de cerimônias de posse, inauguração e lançamentos.

Aplicações Open Source para transformar a educação

Enquanto alguns educadores rapidamente compreendem o potencial de software de código aberto, muitos outros têm hesitado em se afastar da zona confortável de aplicações comerciais.

No entanto, isso está mudando. Mais professores e instituições estão agora participando de organizações como Schoolforge, a Fundação Open Source para Educação e Escolas Open Source. Esses educadores estão começando a ver que a filosofia open source tem o poder de transformar a educação em vários aspectos.

Em primeiro lugar, as escolas podem usar aplicativos de código aberto para substituir o software comercial caro e liberar recursos para outros fins. Por exemplo, openSIS executa as mesmas tarefas que programas de administração escolar de código fechado (agendamento, notas, boletins, atendimento, etc), reduzindo o custo total de propriedade em até 75% por cento.

Em segundo lugar, aplicativos de código aberto estão mudando a maneiras de alunos e professores interagirem e algumas instituições, nomeadamente o MIT e a Universidade de Berkeley, ter utilizado o conceito de ensino a distância open source.  Como membros do Consórcio OpenCourseWare , eles disponibilizam o conteúdo de alguns cursos gratuitamente, de modo que qualquer pessoa no mundo pode se beneficiar de seus conhecimentos.

Finalmente, o software de código aberto dá aos educadores mais opções do que nunca. Hoje, os instrutores têm dezenas, se não centenas, de opções de aplicativos de código livre e aberto que os ajudam a apresentar lições sobre tudo, desde aprender o ABC até sobre a modelagem das interações complexas de moléculas durante os processos bioquímicos.

Confira no link abaixo uma pequena amostra das aplicações de código aberto disponíveis para ajudar os educadores a ensinar e inspirar seus alunos.

Link: http://www.datamation.com/osrc/article.php/3831751/55-Open-Source-Apps-Transforming-Education.htm

NAT 1:1 ou Proxy Reverso, qual a melhor alternativa?

Genericamente falando, tanto o NAT 1:1 como o Proxy Reverso tem por finalidade ligar um endereço interno específico para um endereço externo.

NAT 1:1 (one-to-one)
Se desejarmos que uma máquina da rede interna possa ser vista de fora da rede, ou seja, possa receber conexões e ter servidores instalados, podemos usar o NAT 1:1. Esse esquema de NAT é bem simples e consiste em criarmos manualmente uma tabela no roteador mapeando o IP privado para um IP público. Esse tipo de NAT também é chamado de NAT estático, uma vez que as informações na tabela permanecem válidas indefinidamente após serem criadas.

Como existe permanentemente uma entrada na Tabela NAT associando o IP 10.1.1.2 ao IP 200.3.3.3, tanto a máquina A pode iniciar a comunicação com alguma máquina da Internet como alguma máquina da Internet é que pode iniciar uma comunicação com a máquina A. A figura acima mostra o caso onde a máquina A enviou um pacote para uma máquina na Internet que possuía o IP 60.6.6.6. Quando esse pacote passa pelo roteador, o IP de origem será trocado para o IP 200.3.3.3. Do mesmo modo, como pode ser visto na próxima figura, sempre que o roteador receber um pacote da Internet para o IP 200.3.3.3 o IP de destino será trocado para 10.1.1.2.

Read More

Como remover placas de redes no CentOS (Vmware ESXi)

No procedimento de clonagem de uma máquina virtual pode acontecer da eth0 não iniciar, este erro foi comentado aqui.

Pois bem, existe ainda o problema de NICs diferentes, ou seja, suponhamos que na máquina de origem havia 2 placas de rede (eth0 e eth1) e na máquina clone, você só irá utilizar uma única placa (eth0).

Ao realizar o clone, normalmente nenhuma das interfaces de rede é levantada, vejamos como corrigir isso.

1. Utilizando o VSphere Cliente, edite as configurações da máquina virtual e remova todas os Networks Adapters e adicione um novo VMXNET 3 ou E1000.

2. Inicialize a máquina.

3. Estando logado na máquina virtual pelo VCenter Console, execute os seguintes comandos:

# rm -rf /etc/udev/rules.d/70-persistent-net.rules
# rm -rf /etc/sysconfig/networking/devices/ifcfg-eth*
# rm -rf /etc/sysconfig/networking/profiles/default/ifcfg-eth*
# rm -rf /etc/sysconfig/network-scripts/ifcfg-eth*

4. Renicie a máquina. Mesmo que você tente adicionar uma interface de rede neste momento utilizando o comando system-config-network não será possível, pois não será detectado uma interface de rede.

5. Simplesmente crie o arquivo ifcfg-eth0, com o seguinte conteúdo:

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
NETWORK=192.168.0.0
IPADDR=192.168.0.199
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.2

6. Reinicie novamente a máquina, e ao retornar a eth0 estará ativa e nem sinal da NICs legadas. Você pode inclusive agora usar o setup do CentOS para configurar a rede, normalmente.

Referência:

Plugins WordPress da Boston University

A Universidade de Boston usa o WordPress desde de 2008 e em março de 2013 comemorou o lançamento do site de número 800 baseado neste CMS. Neste processo  tem desenvolvido a sua própria estrutura de temas de forma a padronizar os projetos de centenas de sites internos. Com o WordPress, e através de uma estreita colaboração entre equipes de desenvolvimento e designs, serviços de publicação na web são agora oferecidos a centenas de departamentos universitários, ou seja, uma solução de baixo custo, fácil de usar, profissionalmente projetado, e com uma interface intuitiva com o usuário de forma a proporcionar experiência consistente para os visitantes.

E como forma de brindar a comunidade de código aberto, a Universidade de Boston colocou a disposição no WordPress.org três plugins, os quais têm permitido que Universidade utilize eficazmente o WordPress como um sistema de gerenciamento de conteúdo em larga escala e fornecendo os seguintes recursos e aprimoramentos:

Página do projeto WordPress na instituição: http://www.bu.edu/tech/comm/websites/www/wordpress/

BU Navegação

Com este plug-in, até mesmo as estruturas do site mais rebeldes podem ser domados. Com duas linhas de código qualquer tema pode se beneficiar desta alternativa menu personalizado rico em recursos.

Versão simplificada dos plugins:
http://wordpress.org/plugins/pages-order/
http://wordpress.org/plugins/simple-page-ordering/
http://wordpress.org/plugins/cms-page-order/

Link: http://wordpress.org/plugins/bu-navigation/
BU Seção Edição Plugin

Esta adição permite aos administradores controlar a multidão para WordPress, o que lhes permite criar grupos de seção de edição, editores atribuir a um grupo, e definir o conteúdo membros desse grupo podem editar.

Este fornece permissões avançadas para gerenciar os editores de sua equipe. Pode-se Criar seção “grupos de edição” e granular o controle a quem pode editar o conteúdo. Atribuir editores somente a uma seção específica e definir o que o grupo editar.

Muito semelhante, porém mais simples que o http://wordpress.org/plugins/role-scoper/

Link: http://wordpress.org/plugins/bu-section-editing/
BU versões Plugin

Com este plugin você pode clonar qualquer post publicado (página, post, midias…) para editar e gravar uma versão alternativa sem substituir o conteúdo publicado. Você pode fazer várias edições em qualquer período de tempo, tudo feito “nos bastidores”, sem mudanças destrutiva ao conteúdo “quente”. Isto permite um fluxo de trabalho de publicação que precisa ser analisado e aprovado antes de ser re-publicado. Depois de pronto, a publicação de sua versão irá substituir o post original.

Link:  http://wordpress.org/plugins/bu-versions/

Android 4.0 (Ice Cream Sandwich) no VirtualBox

Uma máquina virtual para Virtual Box, com Android 4.0 (Ice Cream Sandwich) é uma ideia bacana disponibilizada pelo site VMLite para quem esta desenvolvendo para Android, ou queira testar Apps antes de instalar em seu celular ou tablet.

A versão que está atualmente no site é a 4.0.4, mas poderá ser outra quando você for fazer o download, pois eles estão sempre atualizando a máquina virtual. Nos testes que fiz com essa VM, consegui entrar na loja Google Play e instalar aplicativos tranquilamente.

Quem quiser baixar essa máquina virtual basta acessar esse link e clicar em “Download It Now!”, depois basta abrir o arquivo baixado com o VirtualBox.

Cartilha do Servidor Público Federal

Trata-se de cartilha informativa, para uma rápida consulta, elaborada em linguagem simples e de fácil compreensão e visa permitir o acesso, dos servidores às orientações acerca de sua vida funcional, seus direitos e seus deveres, com a indicação da legislação básica.

Embora o foco da cartilha sejam as carreiras de  Técnico-Administrativo e de Docentes das Instituições Federais de Ensino, a mesma contém informações que engloba todos os Servidores Públicos Civis da União pois é baseada na Lei nº 8.112, de 11 de dezembro de 1990 – que define o Regime Jurídico Único e demais normas, além é claro da Lei nº 11.091, de 11/01/2005, e do Decreto nº 94.664, de 23/07/1987 e Lei 11.784 de 22/12/2008 e alterações.

Se você é Servidor Público Federal, ou esta se preparando para um concurso da união, vale a pena ler este material.