Script para gerar listagem que contenha os grupos de e-mails e as pessoas que fazem parte desse grupo

Eae pessoal, tudo bem?

Sim, eu sei que o Blog está meio abandonado, reconheco. Mas esses utlimos meses estou trabalhando muitooo!.

Bom, Precisei gerar esses dias uma listagem dos grupos de e-mail do meu zimbra. Alem dos simples grupos de e-mail, precisava saber tambem as pessoas que fazem parte de cada grupo.

Para isso criei um script muito simples, vamos lá:

1
2
3
4
5
6
7
#!/bin/bash
for i in `/opt/zimbra/bin/zmprov gadl`
do
Members=`/opt/zimbra/bin/zmprov -l gdl $i | grep zimbraMailForwardingAddress: | cut -d" " -f2 | tr 'n' ' '`
echo -e "Group:${i}tMembers:${Members}"
done
#fim

O commando:

1
/opt/zimbra/bin/zmprov gadl

vai gerar a lista de todos os grupos.

O commando:

1
/opt/zimbra/bin/zmprov -l gdl $i | grep zimbraMailForwardingAddress: | cut -d" " -f2 | tr 'n' ' '

irá filtrar os membros do grupo listado pelo primeiro commando.

A linha:

1
echo -e "Group:${i}tMembers:${Members}"

joga na tela o resultando da primeira e segunda linha.

Super simples não?

Aquele abraço.

Rapidinha, Bloquear acesso remoto pela conta root.

Uma medida para melhorar a segurança de seu servidor é bloquear o acesso remoto do server usando diretamente a conta de root.

Vamos lá, com seu editor de textos, abra o arquivo /etc/ssh/sshd_config

vim /etc/ssh/sshd_config

Localize as linhas abaixo:

#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6

Altere o parametro “PermitRootLogin” para “no

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6

Saia do editor salvando o arquivo, em seguida restarte o servido do sshd:

service sshd restart

Vamos tentar acessar agora com o root? Vejam:

09Otimo, acesso pelo root bloqueado! Agora para acessar o server, será necessario primeiro logar com o seu usuario (já criado), em seguida dar um su – , entre com a senha de root. Uma vez feito esse passo, voce estará como usuario root, veja:

10

Até a proxima

Autenticando o IIS 7.5 no OpenLDAP

Iae pessoal.

Esses dias recebi a missão de fazer o IIS 7.5 se autenticar no OpenLDAP.

Essa tarefa parece simples não? Porem alguem ja tentou fazer? Pois é, eu tentei, e voces não tem ideia da grande dificuldade que tive para fazer essa integração funcionar.

Acontece que a anos a Microsoft vem falando sobre integração de sistemas, e bla bla bla, mas isso é tudo balela. Quando queremos integrar o Apache para autenticar no LDAP, usamos apenas um modulo e uma linha de configuração, agora, tente fazer o IIS se autenticar no LDAP, não é só um modulo e uma linha de configuração, é bemmm mais complexo.

O ActiveDirectory funciona da mesma forma que o LDAP, todos sabemos, então teoricamente, todos os conectores que o funcionam para integar o IIS no AD deveria funcionar com o LDAP certo? Talvez sim, talvez ele funcione, porem quero ver alguem realmente fazer isso funcionar.

Bom, depois de muito (muito mesmo) pesquisar, a melhor solução que eu encontrei está descrita neste site: http://www.danhendricks.com/source-code/aspnet/authenticating-against-novell-with-ldap/

Ele nos descreve perfeitamente como fazer a integração.

O que basicamente vamos precisar:

  • Um OpenLdap devidamente intalado e funcionando!
  • Um servidor Windows com o IIS Intalado e com os modulos ASP.NET e o ASP (com todas as suas dependencias instaladas), neste do post foi utilizado o Win2008R2+IIS7.5
  • Uma antiga (datada de 2004) DLL desenvolvida pela Novell (isso mesmo, a Grande Novell) que vai fazer a ponte entre o IIS e o OpenLDAP
  • Uma pequena pagina de Login desenvolvida em ASP que vai ser a responsavel por chamar a DLL.
  • Muitos testes. =P

Bom, a primeira coisa que temos que fazer é fazer o dowload do pacote login.zip, em seguida vamos descompacta-lo.
Após a descompactação, é necessario “desbloquear” os arquivos, para isso, clique com o botão direito do mouse, em seguida propriedades.

Na janela a seguir, clique em “Unblock”:

03Esse passo deverá fazer isso com TODOS os arquivos.

Vamos agora criar uma aplicação ASP que vai utilizar os arquivos acima descompactados.

Vamos lá:

Abra seu gerenciador do IIS, siga até o site que voce precisa de autenticação, em seguida clique com o botão direito do mouse e selecione “Add Application”

01

Entre com as devidas informações, como o nome da aplicação e a localização dos arquivos que foram descompactados conforme passo acima, em seguida clique em OK. Voce vai ter uma tela parecida com a abaixo:

02Bom feito isso é necessario ativar no IIS a execução de aplicativos de 32 bits (a DLL é compilada para plataforma 32Bits, por isso esse passo é bastante importante). Para isso, clique em cima de “Application Pools”, na tela seguinte, em cada uma das aplicações, clique com o botão direito, e em seguida clique em “Advanced Settings”, Na tela que irá aparecer, selecione a opção “Enable 32-Bit Applications” como “TRUE“.

05

Estamos quase lá, agora voce deve estar se pergunta. “onde eu configuro o IP do meu servidor LDAP e a base em que devo procurar?”.

Essa é facil, 1 dos arquivos que voce descompactou chama-se “loging.aspx“. É nesse arquivo que vamos adicionar as configurações de nosso LDAP.

Abra-o com o seu editor de texto prefererido.

As linhas 10 e 15 devem conter as informações referentes ao seu ambiente, repare a configuração abaixo:

06Feito isso, salve o arquivo, e reinicie completamente o serviço do IIS.

Hora de testar =)

Acesse a pagina de login: http://localhost/login, e voce irá cair na tela de login, entre com o usuario e senha do LDAP. Nesse caso, vamos entrar com uma senha invalida:

07E agora, com a senha correta:

08=))))))))) o/ o/

Vejam, que o sistema fez a autenticação no LDAP, e validando a senha, encaminhou para uma pagina “login/default.aspx”, é aqui que entra a sua pagina.

Bom, veja que a validação via LDAP funcioinou perfeitamente…..logicamente esse sistema carece de melhorias e tudo mais, mas resolveu o meu problema aqui na empresa.

Aquele abraço.

Alguns comandos de LDAP

Iae Pessoal, tudo bem?

Esses dias precisei gerar uma listagem com o Nome, Sobrenome e E-mail de todos os usuários pertencentes a um determinado grupo do OpenLDAP.

A forma mais fácil de fazer isso foi criando um Script bem simples, onde eu jogo em um arquivo a listagem dos usuários do Grupo (na qual eu gerei essa listagem em um passo anterior) e esse Script lê os nomes de usuários desse arquivo, faz a consulta no LDAP e retorna para um novo arquivo o Nome, Sobrenome e E-mail de cada usuario.

Vamos ao Script:

#!/bin/bash
for i in `cat /tmp/listausers.txt`
        do
                mail=`/usr/bin/ldapsearch -x -b dc=seudominio,dc=com "uid=$i" | grep mail: | cut -f2 -d' '`
                givenName=`/usr/bin/ldapsearch -x -b dc=seudominio,dc=com "uid=$i" | grep givenName: | cut -f2 -d' '`
                sn=`/usr/bin/ldapsearch -x -b dc=seudonominio,dc=com "uid=$i" | grep sn: | cut -f2 -d' '`
                echo $i,$givenName,$sn,$mail
        done

Deixe-me TENTAR explicar um pouco o Script:

O Script primeiramente le linha por linha o arquivo “listusers.txt” e armazena a linha (no caso, cada nome de usuario) dentro da variavel $i

Logo em seguida, o Script chama a ferramenta “ldapsearch” para fazer uma busca dentro dd base LDAP usando como parâmetro o usuário que está dentro da variável $i (uid=$i)

Achando o usuario em questão, eu uso “grep” para pegar justamente a linha do que diz respeito ao e-mail deste usuario, no caso o filtro “mail”.

Uma vez que achei a linha que contem o mail do Cabra, eu uso a ferramenta “cut” para cortar a parte da linha de e-mail achada que não me interessa. Veja que usei como delimitador o “<espaço em branco>”.

Toda essa “engenharia” acima é para preencher a variavel “mail” no inicio da linha, ou seja, ele faz a busca do e-mail do usuario, corta a parte que lhe interressa, e atribui o resultado para a variavel.

Esse “passo” é repetido mais duas vez, no final do loop, eu vou ter as variáveis “mail”, “givenName” e “sn” devidamente preenchidas.

O passo seguinte e imprimir na tela o resultado. O que faz isso é justamente a linha:

echo $i,$givenName,$sn,$mail

Veja que ele imprime na tela, em ordem (separado por “,”) as variáveis que foram preenchidas com as linhas anteriores.

Como é um loop, o Script vai fazer isso até que todos os valores que são definidos na variável $i sejam esgotados.

Pessoal, eu estou engatinhando na questão de Scripts, talvez alguma explicação acima não esteja com os devidos nomes e relações. Sei também que existe forma mais “elegante” que o Script acima, porem esse pequeno Script resolveu perfeitamente meu problema.

Até a proxima

Desativando completamente o Firewall de um Windows Server Core

Hello Guys,

Esses dias precisei instalar o sistema de virtualização do Microsoft em um server parrudo que temos aqui na empresa. A versão do Windows escolhida foi a Windows Hyper-V Server 2008 R2.

A instalação é simples, assim como qualquer instalação do Windows, porem antes de colocar o server em produção, precisamos fazer aquelas tarefas basicas de instalar as atualizações do Windows, clientes do Nagios e OpenManage da Dell etc..etc..etc…

Acontece que de forma alguma estava conseguindo acessar o server de forma remota, a culpa era o Firewall. Para desabilitar o Firewall, acesso o prompt do DOS e digite:

  • netsh advfirewall set allprofiles state off

WindowsFirewallPronto! Firewall desabilitado! A partir de agora voce não será mais “incomodado” por ele. Não se esqueça de quando for colocar o server em produção, ativar o firewall novamende seguindo as politicas de segurança de sua empresa ok?

Até a proxima.

Como "forçar" o Browser a fazer o download de um arquivo de "Midia"

Iae Pessoal

Esses dias tive um pequeno problema com um site na qual tenho que administrar. Esse site é feito em php, porem precisava hospedar um video em mov, de tal forma que as pessoas pudessem fazer o download.

Até ai td bem, porem se voce colocar no link para baixar o arquivo mov (pode ser flash, mp3, etc…) será “tocado” dentro do seu Brower, ou seja, pode acontecer de o usuario não ter a opção de fazer o “Download” do arquivo.

Para resolver esse problema é mto simples, crie o arquivo “download.php” dentro do servidor NO MESMO nivel (mesma pasta) na qual o arquivo de midia a ser disponibilizado irá ficar e insira o seguinte texto:

<!--?php if (isset($_GET['file'])) {
$file = $_GET['file'];
if (file_exists($file) && is_readable($file) && preg_match('/.mov$/',$file)) {
header('Content-Type: application/mov');
header("Content-Disposition: attachment; filename="$file"");
readfile($file);
}
} else {
header("HTTP/1.0 404 Not Found");
echo "<h1-->Error 404: File Not Found:
<em>$file</em>";
}
?&gt;

Repare que o texto acima se refere ao um arquivo mov, troque a extensão para o tipo de arquivo que tem que ser “downloadado” =)

Feito isso, atualize o link para o arquivo inserindo antes do arquivo o texto “download.php?file=“, veja abaixo como o link ficará:

Antes:

  • http://www.seusite.com.br/arquivo.mov

Depois:

  • http://www.seusite.com.br/download.php?file=arquivo.mov

Pronto, dessa forma o arquivo de midia em seu site inevitavelmente será chamado para ser salvo em seu computador.

Isso ae pessoal, aquele abraço.

Rapidinha: "Unlockando" um arquivo do SVN.

Iae pessoal,

Quem trabalha como administrador de repositorio de codigo fonde vira e mexe precisa forçar o “UNLOCK” de determinado arquivo.

Para fazer isso no SVN, logue-se no seu server, e rode:

svn unlock --force --username USERNAME --password PASSWORD http://svn.seudominio.com/seuarquivolocado.txt

Isso vai fazer com que ele sejas “unlockado” e voce consiga voltar a usar o arquivo novamente.

Aquele apraço.

Rapidinha, O que instalar depois de uma instalação "Básica do Red Hat"??

Iae Pessoal,

Quem me conhece sabe, que quanto mais enxuto o servidor, mais rapido e seguro ele se torna, porem não adianta ser enxuto, e impossivel de se Administrar, faltando um monte de pacotes, e “facilidades”, dessa forma, apenas para deixar anotado, segue o que eu “Costumo” instalar em um servidor com a instalação Básica:

yum install vim-enhanced ntp nss_ldap.x86_64 nss_ldap.x86_64 nrpe nagios-plugins-load.x86_64 nagios-plugins-swap.x86_64 nagios-plugins-disk.x86_64 nagios-plugins-procs.x86_64 nagios-plugins-users.x86_64 system-config-network-tui fuse ntfs-3g.x86_64 nfs-utils.x86_64

Com essa linha eu instalo:

  • Serviço de NTP
  • VIM com syntaxe.
  • Plugins mais utilizados do Nagios (em conjunto com NRPE)
  • Pacote necessario para ativar a autenticação via LDAP no server.
  • Configuração “gráfica” da placa de rede.
  • Suporte a montagem de HDs/PenDrives formatados em NTFS
  • Suporte ao protocolo de rede NFS

É issoae pessoal.

Aquele abraço.

Rapidinha: Como configurar o Linux para que crie o home do usuario de forma automatica ao se autenticar pelo LDAP

Iae pessoal td tranquilo?

Antes de mais nada, eu testei essa dica no CentOS e no RedHat, acredito que para outras distribuições isso não vá funcionar ok?

Bom, imagine o cenario:

Voce trabalha em uma empresa, na qual utiliza como sistema de autenticação o LDAP. Todos os sistema da empresa verificam o usuario e senha nessa base LDAP. Acontece que os servidores tambem se autenticam nessa base, porem toda vez que algum usuario do LDAP se autenticava no server, voce tem esse erro:

homedirPara resolver esse problema é simples, umas vez que seu server esta DEVIDAMENTE configurado para se autenticar no LDAP, rode essa pequena linha do console do server como root:

authconfig --enablemkhomedir --updateall

Esse comando diz para o Linux habilitar a criação do homedir do usuario de forma automatica toda vez que um usuario que se autenticou pelo LDAP.

Super simples não?

Aquele abraço