I Semana Acadêmica de Computação – Install Party 2012

O que é o evento ?

O Installfest ou Install Party é um evento geralmente promovido por um Grupo de Usuários Linux ou universidade, em que pessoas se reúnem para realizar instalações de um sistema operacional de software livre em vários computadores, principalmente o sistema operacional Linux e outros softwares livres ou de código aberto.

É geralmente um evento de apoio e de construção da comunidade, onde iniciantes trazem seus computadores juntamente com os discos de instalação de seu sistema operacional preferido ao local do installfest, e usuários experientes os auxiliam a iniciar e a resolver problemas. Às vezes CDs contendo alguma distribuição de Linux e informativos são distribuídos gratuitamente aos participantes.

Os installfests recebem bem pessoas de diversos níveis de conhecimento, de iniciantes a usuários avançados. Os installfests podem variar de encontros informais a festas com comida, bebida e música. O tom e o escopo do evento dependerá da organização que o promove.

A palavra Installfest é uma junção de instalação e festival. O termo install fest ou a variação Install Fest são também utilizados. Installfest captura a atmosfera festiva de pessoas auxiliando umas às outras através de instalações que algumas vezes podem ser difíceis. [fonte: wikipédia]

 

Onde ?

LCC2 – Laboratório de Ciência da Computação da UFCG

 

Quando ?

Quinta-feira 10/05/2012. A parti das 16:15

 

O que levar ?

  • Seu PC ou Notebook. A organização do evento disponibilizará monitores, cabos e etc.
  • CD da distribuição que deseja instalar. A organização do evento vai distribuir CD’s Debian e Ubuntu nas versões mais atuais.

 

 

 

 

10 Motivos para usar Linux

Apresentação para os alunos FERAS 12.1 do curso de Ciência da Computação da UFCG. Na ocasião foi também apresentado uma palestra sobre sistema Linux, desde uma abordagem teórica até a prática.

Horários de Atendimento

O Grupo Guardians anuncia mais uma forma para os usuários entrarem em contato e obterem ajuda: Horários de atendimento. No link de Horários estão marcados os horários em que há guardians nos laboratórios. Os eventos em marrom são os horários de aula em que o laboratório está reservado e em verde são os horários em que o referido guardian está no laboratório assinalado. Então se você precisa de ajuda presencial basta procurar um dos Integrantes num dos horários apresentados.

Mas você deve estar se perguntando: Quer dizer que os guardians não vão mais me ajudar fora dos horários de atendimento? A resposta é: Os guardians vão continuar tentando resolver seu problema se você encontrar com um deles randomicamente e pedir ajuda. Só lembramos que nem sempre é possível ter disponibilidade para atender o usuário ao se cruzar com ele num corredor. Esses horários são uma garantia e uma evolução no serviço prestado, usem com sapiência.

Também vale lembrar que temos como canal de comunicação para receber requisições o formulário de solicitações HelpDesk, os usuários também podem mandar e-mail para a lista dos guardians.

Linux Básico

Apresentação de ontem para os feras de Computação.

E só lembrando que apenas filtrei o conteúdo de outros slides que achei, a referência ao original esta no último slide.

Para os que querem conhecer mais, no Guia Foca tem material muito material explicativo em diversos níveis.
Dúvidas ou correções são bem vindas. =)

Uma introdução ao LDAP

Os Guardians fazem uso de LDAP no LCC… Tive um tempinho para investigar como o sistema funcionava e criei esse post para divulgar os resultados. Para entender o LDAP na autenticação, explorarei alguns conceitos chaves para então apresentar o LDAP. :)

Autenticação

O Linux opera por chamadas C para enteder como ele deve proceder durante um requisito de arquivos de autenticação. Quando o sistema precisa obter informações sobre o usuário (ex: uid), uma chamada C executa uma invocação ao arquivo /etc/nsswitch.conf e procura de onde ele deve obter essa informação.

Provavelmente, se forem ver o arquivo nsswitch de vocês, encontrarão algo como “compat”. Isso difere da opção “files” (que consulta apenas o passwd/shadow/groups) pq permite que o NIS opere usando os operadores + e -. Explicando: no NIS vc precisa adicionar uma linha do tipo +::::: no passwd – isso vai indicar que o sistema deve consultar o NIS para realizar uma consulta a qual o usuário local. Quando vc usa files, essa linha representa apenas um usuário.. no NIS, representa que vc deve consultar uma base externa de dados.

PAM

Mas nem sempre o sistema faz diretamente uma consulta aos arquivos… Às vezes ele faz uma consulta ao PAM. PAM significa “Pluggable Authentication Modules” a tradução dá uma idéia do que faz: permite que vc adicione diversos modulos ‘plugáveis’ para permitir autenticação no sistema.

Nos sistemas modernos, os arquivos no /etc/pam.d/ são responsáveis pelas diretrizes de autenticação do sistema. Em especial, são 4 categorias principais do módulo PAM: account, auth, password e session:

account

Verifica se a conta é válida para o serviço requisitado (password expirou, etc…)

auth

Verifica se o usuário é quem diz que é (conceito de autenticação). Em geral, pede uma senha.

password

Módulo responsável por controlar senhas (pedir por uma nova tentativa, verificar se a senha é forte, etc)

session

Responsável por monitorar uma sessão (i.e. – preparar o ambiente para iniciar uma sessão com o usuário/log quando o usuário sair…)

LDAP

Ok, o q é LDAP? LDAP significa “Lightweight Directory Access Protocol”. Por diretório, ele representa uma maneira hierárquica de
manter informações, como um “diretório”. Você pode, por exemplo, armazenar a informação que um usuário é “X” dado que no sistema, ele esta dentro do diretório ‘dc=net’ que está dentro do diretório ‘dc=example’ que está dentro do diretório ‘ou=People’ que por sua vez contém o arquivo ‘uid=matheusgr’.

Um item no LDAP não é bem um item.. é só uma folha de diretório. Cada diretório pode ter atributos (como: cn (comentário), uidNumber (número do ID), etc). e cada diretório pode ter subdiretórios.

O que faz do LDAP um protocolo? Ele define uma maneira clara de comunicação entre cliente-servidor através de mensagens que servem unicamente para consulta/inserção/atualização/remoção de atributos e diretórios.

LDAP e Autenticação

Todo sistema, em geral, faz uso de um protocolo de autenticação. Os mais simples utilizam um arquivo com usuário e senha. Entretanto, os sistemas mais avançados permitem que você faça uso de uma base de dados existente para permitir autenticação. É natural para um programa Linux fazer uso do sistema existente (passwd + shadow) como autenticação, entretanto, essa plataforma de autenticação só seria possível para um programa que, de fato, rodasse no Linux.

Para ir um passo adiante, os sistemas utilizam o sistema PAM que é compatível com boa parte da plataforma Unix (Linux, Solares, *BSD). Apesar de muito compatível com a maioria dos sistemas Unix, o PAM não oferece uma camada para o Windows, nem certas facilidades de outros sistemas.

Por fim, para ser compatível com mais sistemas, é preciso uma alternativa é usar um protocolo leve que te dê informações para autenticar usuários… Eis que entra em ação o LDAP: um protocolo fácil de ser implementado e que contém as informações para autenticação do sistema.

Um protocolo leve apresenta outras vantagens: o modelo de replicação, backup e acesso remoto à base de dados são bem definidos. Estas vantagens, juntamente com um protocolo que é acessível por diferentes S.O.’s faz com que o LDAP seja vantajoso.

Implementações LDAP

Por ser um protocolo, o LDAP permite que existam diversas implementações: cada implementação só precisa ‘cumprir’ o protocolo LDAP pra ser decretada como funcional. Talvez uma das implementações mais usadas no Linux seja o SLAPD. O Slapd implementa o protocolo LDAP e é uma aplicação OpenSource.

Ao instalar o Slapd ( apt-get install slapd ), o usuário se defronta com um pedido do dóminio da base de dados, conta privilegiada e senha. O domínio é apenas um caminho em árvore para diferenciar as diferentes sub-redes que podem ser alimentadas pela mesma base de dados. Por exemplo, digamos que o LSD e o LCC compartilhasse um servidor LDAP e que cada uma tivesse sua base própria de usuários. Nada mais natural que o LDAP do LSD usasse, como diretório, “dc=lsd,dc=ufcg,dc=edu,dc=br” e o LCC: “dc=lcc,dc=ufcg,dc=edu,dc=br”. O usuário principal é o responsável por acessar a base de dados local,
e a senha tem o mesmo objetivo.

O SLAPD dispõe da configuração do servidor, mas há ainda a parte cliente a ser considerada. O modo de consulta do cliente é definido pelo arquivo /etc/ldap/ldap.conf e precisa ter as seguintes linhas:

BASE dc=lcc,dc=ufcg,dc=edu,dc=br
URI ldapi:///

Onde, BASE é o diretório de consulta base e URI é a forma de consulta (pode ser: ldapi, q faz uso de socket local, ladp, q faz consulta por um TCP descriptografado e ladps que usa SASL para comunicação criptografada).

Diretórios de usuários no LDAP

Os usuários do Linux ficarão no grupo “People” e os grupos no diretório “groups”, para isso vc precisa criar estes diretórios:

ldap:/tmp# cat groups.ldif
dn: ou=groups,dc=lcc,dc=ufcg,dc=edu,dc=br
objectClass: organizationalUnit
ou: groups

ldap:/tmp# slapadd -l groups.ldif

ldap:/tmp# cat people.ldif
dn: ou=People,dc=lcc,dc=ufcg,dc=edu,dc=br
objectClass: organizationalUnit
ou: People

ldap:/tmp# slapadd -l people.ldif

LDAP e autenticação nativa

Como falei anteriormente, o Linux faz uso de um arquivo nativo para identificar de onde obter informações de autenticação. Esse arquivo, o nsswitch.conf é consultado toda vez que é preciso procurar algo na base de dados do passwd/groups/shadow/…

Para permitir que o nsswitch procure também no LDAP, é preciso instalar o pacote: libnss-ldap . Esse pacote permite que o nsswitch seja capaz de se comunicar com o LDAP para procurar usuários do sistema. Para permitir essa comunicação, considerando a correta instalação do pacote, que o nsswitch.conf seja alterado para fazer consultas ao LDAP. Onde tiver “compat” é preciso substituir por “files ldap”. Exemplo:

passwd compat

Por:

passwd files ldap

Convém substituir no arquivo “libnss-ldap.conf” o host para ser usado na autenticação (em geral, 127.0.0.1 no servidor).

Agora toda vez que for feita uma consulta ao nsswitch, ele irá também usar a conta de admin para se logar no LDAP e procurar pelas informações dos usuários. Para isto, ele faz uso do arquivo libnss-ldap.secret que contem a senha do admin do LDAP.

LDAP e PAM

Nem todas as aplicações fazem uso do sistema nativo. A maioria faz uso do PAM. E para preparar o sistema para isso, é preciso instalar o libpam-ldap . O libpam-ldap instala um módulo PAM que se comunica com LDAP para obter informações a respeito do usuário na base LDAP. Assim, todo usuário que fizer uso do PAM, irá procurar a base do LDAP para obter informações a respeito de sua conta.

Para instalar o módulo PAM:

apt-get install libpam-ldap

Da mesma forma que o Nsswitch, o PAM também faz uso de dois arquivos: pam_ldap.conf e pam_ldap.secret. Ele irá se conectar ao banco LDAP definido no conf usando a senha definida no secret.

Outro aspecto importante é a configuração dos arquivos /etc/pam.d/common-*. Eles precisam fazer uso do pam_ldap.so. Observe que o pam_ldap é necessário mesmo com o pam_unix. O módulo do pam_unix não faz uma consulta ao nsswitch, mas apenas aos arquivos em disco (passwd/shadow/groups). O módulo pam do ldap faz a adição desta linha automaticamente.

LDAP e SSL

O LDAP permite três formas básicas de comunicação: TCP, socket unix e TCP/SSL. Para permitir o uso de SSL, é preciso configurar no slapd.conf as diretrizes d conexão SSL:

TLSCipherSuite HIGH:MEDIUM:+SSLv2:+SSLv3:RSA
TLSCertificateFile /etc/ldap/certs/server.crt
TLSCertificateKeyFile /etc/ldap/certs/server.key
TLSCACertificateFile /etc/ldap/certs/cacert.crt
TLSVerifyClient allow

Basta adicionar nos clientes o uso do protocolo “ldaps://endereco_do_server”

LDAP e indexação

Por fim, o LDAP faz uso de um banco de dados. Como todo banco de dados, ele precisa ser indexado de forma adequada para obter acesso rápido aos campos relevantes. Se o syslog apontar erros do tipo:

fileserver slapd[11493]: <= bdb_equality_candidates: (uid) not indexed

Isso significa q vc precisa ativar a indexação nestes campos. Para tanto, no slapd.conf adicione no espaço de Index:

index uid eq,pres,sub

E reexecute o slapindex como o usuário do banco de dados (provavelmente openldap).

É só isso?

Não. O LDAP é extremamente poderoso. No slapd.conf vc encontra, na sessão de imports, uma descrição de quais bases de dados serão utilizadas pelo SLAPD. Para autenticação, o nis e as bases principais são suficientes, mas caso o sistema queira fazer uso do LDAP para armazenar informações de email/dns/etc.. novos esquemas precisam serem adicionados.

Ainda: o sistema faz uso de diversas configurações de acesso (access ...) Cada uma representa uma ACL de acesso ao sistema e é bastante flexível de acordo com as necessidades do administrador do sistema.

Por fim, diversos pacotes do debian adicionam novas funcionalidades que operan com o ldap. As mais importantes:

ldap-utils

Ferramentas de consulta/adição/modificação/etc...

finger-ldap

Uso do finger com consulta numa base LDAP

python-ldap

Módulo python para uso do LDAP

smbldap-tools

Ferramentas do samba para uso do LDAP

To the Infinity and Beyond

O que mais resta? O Slapd permite uso de um serviço slave/master através do slurpd.. Além de diversos módulos que se comunicam diretamente com o LDAP.. a exemplo do email e DNS, mas pode ir além com o apache e outras ferramentas.

Também é preciso saber tratar dos erros que podem acontecer. Por exemplo, como cliente, infelizmente, vc tem q manter sincronizado pelo menos 3 arquivos de configurações: o do PAM, o do nsswitch e o do próprio LDAP. Altere o domain da base de dados ou o usuário principal... e vc precisa alterar todos estes arquivos. E isso pode custar um tempo caso faça algo errado.

O LDAP dá erros esdrúxulos e indecifráveis. Não tem muito como escapar disto... Por sorte, a configuração padrão dos pacotes é adequada e suficiente para evitar esses erros bestas. Usar o strace, log, debug e internet podem dar uma luz na direção a ser tomada, mas é preciso entender também como cada parte do LDAP se integra no mecanismo de autenticação.

SSH – Administração de Sistemas

Material da apresentação feita a um bom tempo para a graduação. Simplesmente esqueci de mandar o material. O que importa é que lembrei desses slides pois os conhecimentos adquiridos nessa pesquisa me foram muito úteis hoje. =)

Ciclo de Seminários

Olá Pessoal,

Como já foi comunicado na lista de graduação, o Grupo Guardians deu início nessa semana ao seu ciclo de seminários técnicos sobre administração de Sistemas. A apresentação de seminários sempre fez parte das políticas internas dos Guardians, e como forma de aproximar o grupo dos demais graduandos, surgiu a idéia de abrir tais seminários para os alunos da graduação.

A primeira apresentação, ocorrida no dia 15/05/2009, no auditório do Reenge, teve como tema principal os conceitos de virtualização, com ênfase no software VirtualBox. Foram discutidas ainda algumas idéias a respeito do uso de virtualização no LCC e alguns membros do grupo já iniciaram atividades no que diz respeito a tal ponto. Os slides da apresentação, assim como dois papers interessantes para o entendimento do tema estão disponíveis aqui.

É importante ressaltar ainda que qualquer graduando pode sugerir novos temas para as apresentações, bastando para isso enviar um e-mail para guardians-l@lcc.ufcg.edu.br informando o assunto e alguns motivos para a realização de tal seminário.

Atenciosamente,
Grupo Guardians.

Horário de Aulas do LCC

Acabo de colocar nesse calendário ao lado direito aqui da página o horário de aulas do LCC, juntamente com o calendário do curso CCC.

Durante as aulas, não é permitido entrar para utilizar as máquinas, então antes de se programar para estudar no LCC, olhe se está em aula ou não.

Vocês podem adicionar o calendário ao seu Google Calendar, se preferir, nesse link. :)

Seleção de Novos Guardians!!!

Está iniciando mais um novo processo seletivo em busca de novos guardians… Quem não viu a chamada, está logo abaixo. Este ano mudaram algumas coisas da seleção. Desta vez o processo será aberto com uma palestra para tentar alinhar o interesse do povo com o do grupo… Espero que apareçam bons candidatos. :)
Seleção de Novos Guardians
O grupo Guardians, responsável pela administração do LCC, anuncia a
abertura de novas vagas voluntárias.

Sob a tutela da professora Raquel Lopes, cada Guardian é responsável
pelas atividades de administração de sistemas do laboratório, tendo
como foco:
- Instalar, desenvolver e atualizar software;
- Prover e manter serviços à graduação;
- Responder dúvidas e atender pedidos dos usuários do laboratório;
- Administrar as contas e a infra-estrutura básica necessária para o curso.

Lembramos que o trabalho não é remunerado e refere-se a administração
de sistemas (e não de redes). A atividade demanda tempo dos alunos,
entretanto, esta é uma ótima experiência extra-currícular a todos os
interessados em completar sua formação acadêmica.

Para participar do grupo o aluno deve:
- Ser aluno de computação devidamente matriculado;
- Dispor de 10h livres por semana;
- Ter conhecimentos básicos de computação;
- Apresentar iniciativa e ir atrás de conhecimento.

Pedimos que todos os interessados compareçam obrigatoriamente à
palestra a ser ministrada no dia 15/04 (quarta) às 13:00 no Reenge
sobre informações a respeito do grupo e sobre as demais etapas do
processo de seleção.

Atenciosamente,
Grupo Guardians

Bad bad wordpress no comments for you!

Removido a parte de comentários dos posts. Eram 40~60 comments de spam todo dia para moderação. =\

Mas quem quiser falar com os guardians, ou comentar algo, é só mandar um email! =)

Previous Entries