Seja bem vind@, se você é um debiano (um baiano que usa debian) faça parte de nossa comunidade!


Implantando autenticação centralizada e segura usando Openldap

July 31, 2010, by Unknown - 0no comments yet

Openldap

Uma autenticação centralizada faz parte do processo de adequação do ambiente as boas práticas de segurança. Esta solução provê recursos que atendem aos principios de autenticidade e não-repúdio. Usando a criptografia juntamente com esta solução poderemos previnir ataques de hijacking, spoofing e man in the middle.

O LDAP (Lightweight Directory Access Protocol) é um protocolo cliente-servidor, utilizado para acessar um serviço de Diretório. Ele foi inicialmente usado como uma interface para o X.500, mas também pode ser usado com autonomia e com outros tipos de servidores de Diretório. Atualmente vem se tornando um padrão, diversos programas já têm suporte a LDAP. Livros de endereços, autenticação, armazenamento de certificados digitai
s (S/MIME) e de chaves públicas (PGP), são alguns dos exemplos onde o LDAP já é amplamente utilizado.

O Openldap é a solução livre para a implementação do LDAP. Diferentemente das soluções proprietárias ( e.g. Active Directory ™ ), ele implementa de forma fidedigna as especificações das RFCs deste protocolo.

Este artigo têm como principal objetivo ensinar como implantar uma solução livre e gratuita de autenticação com segurança. Não abordarei conceitos sobre o funcionamento do protocolo, para isso recomendo a leitura das referências.

Inicialmente irei configurar um servidor LDAP e um cliente autenticando nesta base. Os próximos artigos apresentarei como integrar outros serviços com HTTP ( Apache ), Proxy ( Squid ) , Email ( Postfix + Dovecot ) ao serviço de diretório.

Divirtam-se!!

= Configurando o LDAP server ==

Instale os pacotes necessários

aptitude install slapd ldap-utils migrationtools

dpkg-reconfigure slapd

DNS domain name: acme.local
Organization name: acme
Database backend to set: HDB
Do you want the database to be removed when slapd is purged? No
Move old database? Yes
Allow LDAPv2 protocol? Yes

== Adicionando Schemas ==

Acesso o diretório /etc/ldap/schemas

cd /etc/ldap/schemas

Faça o download dos schemas. Eles serão importantes na implementação do kerberos e na autenticação dos usuários do Postfix

wget http://www.bayour.com/openldap/schemas/krb5-kdc.schema

wget http://trac.kyapanel.com/export/360/trunk/ldap/schema/qmailuser.schema

Edite o arquivo /etc/ldap/slapd adicionando os novos schemas e novos indices no index

vim /etc/ldap/slapd.conf

include /etc/ldap/schema/krb5-kdc.schema
include /etc/ldap/schema/qmailuser.schema

index objectClass,ou,cn,sn,uid,uidNumber,mail,mailAlternateAddress,mailForwardingAddress,memberUid eq

Reinicie o slapd

invoke-rc.d slapd restart

== Testando ==

ldapsearch -x -b “dc=acme,dc=local”

# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# acme.local
dn: dc=acme,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: acme
dc: acme

# admin, acme.local
dn: cn=admin,dc=acme,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

== Migrando os usuários e grupos locais com o migration tools ==

O migrationtools é um conjunto de scripts responsáveis por migrar as informações locais como hosts, serviços, usuários, grupos e etc para a infraestrutura do LDAP.

Edite as seguintes linhas do arquivo /usr/share/migrationtools

vim migrate_common.ph

$DEFAULT_MAIL_DOMAIN = “acme.local”;

$DEFAULT_BASE = “dc=acme,dc=local”;

$EXTENDED_SCHEMA = 1;

Importe a base

./migrate_base.pl > base.ldif

O arquivo base.ldif contém a infraestrutura básica de OUs ( Unidades Organizacionais ). Como o objetivo de nosso LDAP é autenticação então edite o arquivo base.ldif deixando somente as seguintes informações:

dn: dc=acme,dc=local
dc: acme
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: acme.local

dn: ou=People,dc=acme,dc=local
ou: People
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: acme.local

dn: ou=Group,dc=acme,dc=local
ou: Group
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: acme.local

Migre as contas e as senhas dos usuários

ETC_SHADOW=/etc/shadow ./migrate_passwd.pl /etc/passwd > passwd.ldif

Migre os grupos

./migrate_group.pl /etc/group > group.ldif

== Atualize o BD do LDAP ==

ldapadd -h localhost -x -W -D “cn=admin,dc=acme,dc=local” -c -f base.ldif

ldapadd -h localhost -x -W -D “cn=admin,dc=acme,dc=local” -c -f passwd.ldif

ldapadd -h localhost -x -W -D “cn=admin,dc=acme,dc=local” -c -f group.ldif

== Testando ==

ldapsearch -LL -H ldap://localhost -b”dc=acme,dc=local” -x “(uid=alexos)”

dn: uid=alexos,ou=People,dc=acme,dc=local
uid: alexos
cn: alexos
sn: alexos
mail: alexos@acme.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: krb5Principal
objectClass: shadowAccount
shadowMax: 99999
shadowWarning: 7
krb5PrincipalName: alexos@ACME.LOCAL
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/alexos
gecos: alexos,,,

Referências:

Andreaswacker
Linsec.ca
Openldap.org

Continua….



FISL 11 e Porto Alegre

July 26, 2010, by Unknown - 0no comments yet

De 20 a 24 de julho, participei da 11ª edição do Fórum Internacional de Software Livre. O FISL esse ano me agradou mais do que a edição anterior. Percebi uma diversidade maior de temas na programação e acho que consegui escolher melhor as palestras do que no ano passado.

Assisiti boas palestras sobre HTML5, ministradas pela equipe da Fundação Mozilla, os quais mostraram alguns recursos que o HTML5 + javascript proporciona para o vídeo na web. Por falar em javascript, acho que essa é uma linguagem que vale a pena estudar atualmente, pois abre muitas possibilidades quando usada com o HTML5.

Encontro LGM Brasil

Um momento importante do FISL, foi o encontro LGM Brasil, que reuniu algumas pessoas que colaboram/trabalham com softwares gráficos livres. Um dos temas discutidos foi a possibilidade de realizar o encontro LGM Internacional no Brasil em 2012. Consideramos que, a menos que consigamos um forte apoio de algum orgão estatal, seria muito difícil realizar o encontro aqui, pois boa parte dos desenvolvedores vivem na Europa e América do Norte. Como o custo das passagens é bastante alto e seria prejudicial para o LGM se muitos desenvolvedores não conseguirem vir. Além do encontro, a programação contou com várias palestras sobre os softwares gráficos.

Além disso, vi uma excelente palestra sobre o Open Street Map, um projeto colaborativo para a criação de mapas sob licenças livres . O mapeamento pode ser feito por meio de um aparelho GPS ou pelo site do projeto, com base nas fotos de satélite que o Yahoo disponiblizou. Em cidades como Berlin e Londres, as informações do Open Street Map são mais completas do que as do Google Maps. O OSM foi a principal fonte de informação para as equipes humanitárias que atuaram no Haiti após o terremoto. Em apenas 48 horas, pessoas do mundo todo ajudaram a mapear grande parte da região atingida pelo terremoto.

Mesa - Licenciamento de Software Livre
Foi muito boa também a palestra do JS sobre DRM, as mesas “Professor, um jeito hacker de ser”, composta por Nelson Pretto, Sérgio Amadeu e Adriano Teixeira, e a de licenciamento de software livre, as lightning talks do pessoal da #horaextra, entre outras…

Em Porto Alegre, não consegui visitar muitos lugares, pois a programação diária do FISL foi de 12h. Este ano, o clima estava menos frio do que no ano passado. O ruim foi que nos dois primeiros dias choveu bastante e o sol praticamente não apareceu. Como fiquei hospedado no centro da cidade caminhei bastante por lá e aproveitei para conhecer o mercado público (mas esqueci de fazer fotos). Quando eu retornar da Argentina e Uruguai, pretendo passar pelo menos um dia andando por PoA.



Pyroom

July 17, 2010, by Unknown - 0no comments yet

Tela software Pyroom

Hoje instalei o Pyroom, o objetivo dele é retirar os elementos da tela que nos distraem enquanto escrevemos. Aquele menuzinho (presente na imagem acima) aparece apenas se clicarmos com o botão direito do mouse. Além disso e do comando de ajuda (CTRL+H), o Pyroom não tem mais nenhum outro menu ou botão.

Escrevi o último post do blog (e também este) utilizando ele e me parece que cumpre bem o objetivo. Apesar de algumas notificações ainda aparecerem na tela, você não vai clicar toda hora no ícone do Instant Messenger, não vai alternar as janelas tanto quanto se estivesse num editor de texto comum e nem se preocupar com a formatação. Claro que não é garantia de concentração, no entanto pode ajudar.

Por enquanto, funciona apenas em GNU/Linux.

Site: http://pyroom.org



Getting more out of Gwibber

July 6, 2010, by Unknown - 0no comments yet

Gwibber has frustrated me as a microblog reader. A minor issue I have with it is that sometimes I just can't post/reply through it. I don't know whether it is related to the microblogging services have crashed, which is not Gwibber's fault, but it would be nice if if at least warned the user with a "could not send your post" error message.

But the major issue I have with it is that I cannot see enough back in time: since I definitively do not check it all the time, I often lose posts that were not done in the last 24 hours. I tried to solve this by unfollowing people that post a lot, but it did not solve the problem.

I've had read that the Twitter API , which is supported by StatusNet at identi.ca, supports a count argument, which indicated how many posts will be provided, and that it defaults to 20.

Then I did what every programmer should do: look at the source code. I looked inside the implementation of identi.ca account support in Gwibber source code, and found out that it already uses this parameter, although there is no user interface for setting it. Every account has a receive_count attribute that defines how many posts will be fetched from the servers, and it defaults to 20.

While there is no UI for receive_count, you'll need to set this attribute directly in gconf. I used gconf-editor for that, but there are a couple of other options out there. Go to apps/gwibber/accounts, find your accounts, and add a new integer key/value pair there, with key "receive_count", and the value you want to.

 

setting receive_count with gconf-editor



Seja bem vindo Debian

July 2, 2010, by Unknown - 0no comments yet

Como alguns já sabem, sempre fui um usuário da arquitetura de pacotes RPM, pois comecei usando Gnu/Linux de verdade como o Fedora 6. Por todos esses dias, sempre havia trabalhado com servidores CentOS, o que sempre me deixava mais próximo do Fedora, mas na minha ultima mudança de contrato, fui para UFBA, onde todos os servidores são Debian.

A minha primeira impressão foi a melhor possível, pois ainda não havia testado o Debian a esse nível, pois nunca tive curiosidade.

Na verdade a comunidade Debian foi minha primeira frustração no “universo” do software livre, pois foi o primeiro grupo que busquei contato para começar a colaborar. Como é de conhecimento público, essa comunidade não é das melhores para iniciantes e levei uma bela “bordoada” ao fazer questionamentos tão iniciantes. No fim acho que serviu para alguma coisa.

Agora com mais experiência, vejo que o Debian é uma distribuição mais madura do que as outras, que em sua maioria tem foco no desktop. O Debian não tem um foco específico, pelo menos é essa minha visão, pois ele pode ser ajustado para sua vontade. Basta ter conhecimento para tal.

Agora no Debian, sinto mais controle sobre o SO, mais do que já tinha em outros Gnu/Linux. Sem ter feito nenhum teste para obter um dado preciso, apenas na sensibilidade mesmo, percebo que ele é mais leve, mais limpo.

O seu sistema de pacote, ninguém pode falar não é? RPM perde e feio para o DEB.

Hoje posso dizer que sou um feliz usuário e colaborador do Debian, pois não costumo apenas usar algo livre, sempre procuro contribuir de alguma forma.

Na conclusão, posso dizer que estou bem mais satisfeito com o Debian, dentre todas as distribuições de Gnu/Linux que já utilizei.