Sobre o novo sistema de avaliação de palestras do FISL

Esse post é uma rant. Nem é tão pela minha palestra não ter sido chamada, é mais pela esquisitisse da coisa.

Para quem não sabe, o FISL mudou a avaliação esse ano. Basicamente, organizaram as palestras em duplas, como se fosse um campeonato, e todo mundo que submeteu palestras ganhou tokens para avaliar 5 palestras, funcionando como um campeonato de Xadrez: você podia escolher qual das duas palestras “ganhava” entre as duas avaliadas, se “empatava” ou ainda podia pular aquelas duas e ir para outras palestras.

Os problemas na minha opinião começam exatamente na opção de ‘pular’ as palestras. Com isso eu pude simplesmente ficar pulando as palestras até cair em uma que eu conhecesse o palestrante ou o assunto e escolhesse aquela. Eu espero que o sistema tenha sido desenhado de forma que todas as palestras recebessem o mesmo número de votos!

O outro problema é que essa forma de avaliação virou um concurso de popularidade. Obviamente as pessoas escolheram palestras de pessoas que conheciam, ou de assuntos extremamente populares mas não necessariamente relevantes.

Alguns exemplos: Se você usa Java, o FISL não vai ser um lugar interessante para você. Das 20 palestras na trilha PHP/Java, só 3 falam de Java. Na trilha de assuntos emergentes, 5 das 10 palestras são sobre Cloud Computing e 2 sobre virtualização (que é bem ali, pregado em Cloud Computing).

Esse efeito parece ser menos acentuado nas trilhas mais especializadas, como a de Kernel e a de Segurança, mas mesmo assim o que se observa é que os assuntos ‘populares’ foram escolhidos a revelia de assuntos que poderiam ser interessantes, mas que os ‘avaliadores’ (palestrantes) não tinham como julgar.

Por exemplo, na trilha de Desenvolvimento (outras linguagens) você tem palestras sobre Javascript, MySQL Stored Procedures e  Shell Script, mas deixaram palestras sobre Clojure, Scala e C de fora. Isso só demonstra que as pessoas que estavam avaliando estavam pensando no pop, não no realmente interessante. Se você analisar bem as trilhas, vai ver que as palestras escolhidas são sempre as que apresentam uma solução (nem sempre nova), enquanto as que são de aprofundamento em algum assunto ou ferramenta são largadas de lado.

Isso vai de encontro ao que se espera do FISL: palestras que mostrem para quem já trabalha na área temas tecnicamente atraentes ou assuntos populares/básicos? Precisamos realmente de tantas palestras de PHP e Cloud Computing, deixando de fora assuntos não populares mas extremamente interessantes? Eu preferiria ver palestras sobre novas linguagens como Scala e Clojure do que MAIS UMA palestra sobre Shell Script, mas aparentemente eu sou a minoria :)

Acho que é muito bonito isso de ‘democratizar a escolha das palestras’, mas ainda acho que esse tipo de coisa tem de ser resolvida na base de benevolent dictatorship mesmo, ou pelo menos uma forma de garantir que um certo nível de homogeneidade seja mantida.

intel

PS: Claro, a sempre presente palestra “Mulheres e Software Livre” está lá de novo esse ano. É quase uma presença tão garantida quanto o Maddog.

Posted in Linux e Open Source | Tagged , | 3 Comments

Caveira Raimundo, outra vez

Recebi este email agora, e achei que seria de bom tom reproduzí-lo aqui no blog integralmente. Desde que fiz o post sobre a música do Caveira Raimundo (também conhecida como Coveiro Raimundo ou Raimundo o Coveiro), recebi vários comentários e aparentemente o email abaixo corrobora a informção sobre a música ter sido apresentada num festival de música em Brasília. Parece sólido.

Olá José,
Acabei de ler o texto que você escreveu perguntando sobre a origem da música “Raimundo, O coveiro”… em 13 de agosto de 2008…

Bom, você pode acreditar ou não…
Mas quem compôs esta música foi meu tio Aureo Delábio Ferraz, que faleceu no ano de 1984…
Meu tio apresentou esta música num festival de música na UnB, na época que ele era estudante aqui em Brasília, desde então a música ficou conhecida… Você pode ver que ele se formou na UnB em Engenharia Civil, coloca o nome dele no google que sai…
Infelizmente é a unica citação dele no google.
Meu tio faleceu quando era muito jovem num acidente de carro e em uma época que não havia internet, assim a música ficou na memória de muitos, mas o nome dele e a banda não… Inclusive várias pessoas plagiaram a música e disseram que a música era dos mesmos..
Eu não conheci meu tio, nasci em 1987, mas ouço esta música desde que era muito pequena, assim como outras que meu tio fez (Meleca no almoço, meleca no jantar, meleca tá virando prato popular….)…
Hoje, no aniversário de Brasília, acho que devo este favor ao meu querido tio…

Então…. A letra que você colocou no seu texto é uma versão plagiada, a versão original é esta…

Letra original
Raimundo Coveiro

Era um coveiro com cara de defunto
Era um coveiro que se chamava Raimundo
Raimundo, Raimundo, levanta vagabundo
Raimundo, Raimundo, chegou mais um defunto
Até as caveira já o conheciam
Até as caveira já diziam todo dia
Raimundo, Raimundo, levanta vagabundo
Raimundo, Raimundo, chegou mais um defunto
mas um belo dia Raimundo adoeceu
E de repente Raimundo morreu
Raimundo, Raimundo, bem vindo ao nosso mundo
Raimundo, Raimundo, vem pr’esse buraco fundo
E no cimitério Raimundo se enturmou
Pela sua vizinha Raimundo se apaixonou
Era uma caveira alta e desdentada
Pelo tal Raimundo ficou louca apaixonada
Raimundo, Raimundo, teu olhar é tão profundo
Raimundo, Raimundo, vem fundo vagabundo
E dona caveira que era uma gracinha
Com o tal Raimundo teve várias caveiras
Mamãe, mamãe, eu quero mamadeira…
Cala a bola não chateia não tenho peito sou caveira…
Era um coveiro…

Abraços de uma Sobrinha emocionada.

intel

Posted in Pessoal | Tagged , | 3 Comments

PKI: Indo de Gnomint para EJBCA

Uma das coisas que eu sempre me preocupo em fazer ao chegar em um novo trabalho para lidar com infraestrutura é instalar uma série de serviços para ajudar na administração. Isso inclui wikis, monitoramento, um sistema de tickets de serviço, e por ai vai. Outra coisa é criar uma estrutura básica de PKI para emissão de certificados SSL para servidores e outros serviços.

Gerenciar uma Certificate Authority (Autoridade Certificadora ou CA) pode ser feito de várias formas, desde usando os comandos do openssl na mão, passando por utilizar as facilidades de PKI do Active Directory do Windows e algumas ferramentas gráficas como o Gnomint.

Até a semana passada eu estava realmente usando o Gnomint, mas tive uma série de problemas, principalmente com encoding e com um plano de utilizar essa PKI de forma mais ampla. O Gnomint é ótimo para gerenciar pequenas PKIs, mas quando você pensa em emitir milhares de certificados SSL, vocẽ precisa de algo mais parrudo.

Acabei lendo sobre o EJBCA, que é uma aplicação que roda em JBoss e tem uns usuários bem famosos (incluindo o SERASA, aqui no Brasil). O EJBCA foi então a escolha para gerência da PKI.

A instalação dele no Debian (Lenny) foi bem simples, basicamente porque o pacote JBoss do Debian atualmente não faz porra nenhuma, e você tem de baixar o mesmo do site do JBoss e instalar na mão (isso quer dizer descompactar para algum lugar, eu sugiro o /opt). Algumas coisas que eu fiz e podem ajudar:

  • Instalar o JDK6 e o ant via pacote do Debian mesmo: sun-java6-sdk e ant, o ant instala como ant-gcj mas funcionou certinho.
  • Baixar do site da Sun a JCE (Java Cryptography Extensions), e colocar os conteúdos do zip em /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/security – isso é necessário para que o Java aceite algumas características mais pesadas em certificados, como senhas com mais de 7 caracteres.
  • Baixe o EJBCA e descompacte no /opt também. Eles não avisam, mas um monte de coisas precisa ser feita desse diretório, ou seja, não se pode simplesmente instalar e apagar, tem de guardar e fazer backup.
  • Configurar as variáveis JAVA_HOME e APPSRV_HOME (apontando para onde está o JBoss) no seu ambiente corretamente. Isso é uma mão na roda e evita que você rode a parada com uma jvm diferente da que você quer. Configure também as variáveis ANT_OPTS e JAVA_OPTS para incluir os parâmetros de memória, eu uso “-Xms128m -Xmx768m” em uma  VM de 1 GB de memória.
  • Se você vai usar poucos certificados, ou está instalando para testar, pode utilizar o banco de dados padrão que é em memória. Caso contrário, instale o postgresql-8.3 (ou mais atual).

Com isso você mata os pré-requisitos do EJBCA. De resto, o guia de instalação dele é bem certinho. Mas basicamente o que você tem de fazer é:

  • Dentro do diretório do EJBCA tem o diretório conf, onde você deve copiar o ejbca.properties.sample para ejbca.properties e configurar. Algumas coisas são bem avançadas como por exemplo guardar as chaves e certificados em dispositivos de hardware, mas no meu caso a maioria dos padrões serviu bem.
  • Leia o arquivo database.properties.sample e o documento howto databases que tem dentro do /doc do EJBCA. Lá tem os comandos para se criar o banco postgres mas basicamente você cria um usuário ejbca com uma senha qualquer, e um banco com este usuário sendo o owner.

O resto do guia é bem mastigado. Lembre-se que o login na interface administrativa só é feito via Certificado, então depois de instalado não perca o arquivo superadmin.p12 queé gerado na instalação e deve ser importado no seu browser para que se possa acessar a interface.

Dentro do diretório do EJBCA existem também documentos descrevendo a utilização de vários servidores de aplicação diferentes assim como outros bancos de dados.

A outra parte foi mais complicada. Eu tinha de pegar os certificados e as chaves privadas das minhas CAs internas do Gnomint e colocá-las no EJBCA. Seria simples, se o Gnomint exportasse o PKCS#12 direito, mas aparentemente ele faz alguma besteira no formato e o EJBCA dá um erro. A solução foi a seguinte, e pode ser utilizada para migração de várias outras formas de PKI para o EJBCA:

  • No Gnomint, exportei separadamente o certificado da minha Root CA para um arquivo e a chave privada da mesma para outro.
  • Usando o openssl, criei um arquivo PKCS#12 usando estes dois arquivos, com o seguinte comando:

sudo openssl pkcs12 -export -out rootca.p12 -inkey rootca.key -in rootca.pem -name privateKey

  • Isso ai cria um arquivo que o EJBCA alegremente importou como a minha nova RootCA, via interface gráfica, sem estresse.
  • Caso você, como eu, tenha de importar CAs subordinadas (sempre uma boa idéia), você tem de repetir o procedimento acima para cada uma (exportar chave e certificado de cada uma), mas tem uma pegadinha: no caso de CAs subordinadas, você tem de incluir no comando openssl a opção -certfile rootca.pem. Porquê disso, você deve perguntar. Porquê sem isso, a cadeia (chain) de certificados fica incorreta no PKCS#12 e quando a Sub CA for importada ela vai aparecer como auto-assinada, e não assinada pela sua Root CA (ou seja, sua cadeia vai ficar quebrada).
  • Eu tive de importar também alguns certificados já emitidos para servidores aqui. Isso não é extremamente necessário, mas se não for feito você vai ficar sem uma forma de revogar estes certificados pelo EJBCA futuramente. Existe uma ferramenta chamada bin/ejbca.sh do EJBCA que faz essa importação sem trauma.

Depois disso, só alegria. O EJBCA tem uma interface pública que fica disponível na porta 8080, onde são publicados as CRL (Certificate Revocation Lists) e também onde usuários podem submeter CSRs (Certificate Signing Request) para geração de novos certificados. A interface administrativa roda na porta 8443 e só pode ser acessada por quem tem o certificado correto instalado no browser, e cuida do resto da PKI.

PKIs são dados sensíveis. Você deve ter backups seguros das configurações e principalmente das keychains das suas CAs. Se você perde uma chave ou um certificado Raiz, você perde toda a segurança que ele propõe, e vai ter de re-emitir TODOS os seus certificados. Lembre-se de limitar o acesso a interface administrativa e a própria máquina, várias camadas de firewall são aconselhadas.

A minha PKI roda numa máquina virtualizada, mas eu não aconselho isso para qualquer lugar onde os certificados serão utilizados em funões críticas. Uma máquina virtualizada é altamente mais sucetível a ataques e a roubo de dados (afinal de contas, se roubar a imagem, rouba-se tudo).

O próximo passo é dar uma conferida na integração do EJBCA com LDAP, para ver como fica uma PKI realmente grande e integrada com outros sistemas.

intel

Posted in Linux e Open Source, segurança | Tagged , , , | Leave a comment

Novo embondo

Quase todo mundo já deve saber disso, mas não custa repetir aqui: estou fazendo umas tirinhas, atualização duas vezes por semana (terças e quintas).

Viste o site para saber mais.

intel.

Posted in Literatura, Pessoal | Tagged , | Leave a comment

Para ser um Sysadmin

Vendo o formspring do fike eu tentei me lembrar do que um bom sysadmin precisa. Eu e ele terminamos o papo no gtalk, e eis a lista sem uma ordem específica:

  1. Sistemas Operacionais e Organização de Computadores (não adianta tentar ser um sysadmin sem ter um amplo conhecimento de como o SO e Hardware funcionam)
  2. Rede (mesma coisa ali de cima, e aqui estamos falando daquelas chatices de TCP/IP, cabeçalhos, window size, mtu e tudo mais, não só roteamento)
  3. Programação (tem de saber algum shell script, e mais uma linguagem de verdade)
  4. Conceito das linguagens utilizadas no ambiente que vai se administrar (java, python, etc…)
  5. Banco de Dados (como eles funcionam, transações, locking, particionamento, tuning)
  6. Inglês (isso é óbvio)

Mas dai você vai dizer “porra, mas esse monte de coisa?”. Acredite, o seu ambiente vai dar merda e você pelo menos tem de ter conhecimento o bastante para apontar a falha (além de ter de resolver).

intel

Posted in Linux e Open Source, segurança | Tagged , , | Leave a comment