sexta-feira, 15 de janeiro de 2010

quinta-feira, 11 de setembro de 2008

Buscando Documentação em um Sistema Linux

Quinta-feira, dia de um delicioso macarrão com frango. Isso me inspirou a escrever. Que tal um pouco sobre documentação? Documentação sobre ... ? Linux uai!! = ))
Hoje veremos como pesquisar sobre aplicativos e programas dentro do próprio sistema Linux!

Introdução
O Linux vem crescendo porque a comunidade que contribui para o sistema e sua documentação não tem medo ou receio de compartilhar isso e coloca o que foi desenvolvido no próprio sistema. Ou seja, antes de recorrermos a ajuda de outras pessoas, devemos lembrar que podemos as respostas que precisamos em nosso próprio sistema.
Toda essa documentação que possuímos no sistema, está disponivel aqui ( pergunta de LPI isso hein... ).
Bom, vamos ao que interessa!

Comando Help
O comando help fornece uma ajuda rápida e útil para saber que opções podem ser usadas com os comandos internos do shell.
Para mostrar todos os comandos disponíveis
#help

Para mostrar uma ajuda rápida de comandos internos
#help [comando]

Para comandos externos
#[comando] --help

O MAN
Man é o responsável por trazer a documentação mais completa sobre determinado comando ou arquivo de configuração. Os manuais são divididos em nivéis.
  • man 1 - Programas executáveis e comandos do shell.
  • man 2 - Chamadas de sistema (funções providas pelo Kernel).
  • man 3 - Chamadas bibliotecas (funções como bibliotecas do sistema).
  • man 4 - Arquivos de dispositivo (localizados normalmente em /dev).
  • man 5 - Arquivos de configuração e convenções.
  • man 6 - Jogos.
  • man 7 - Variados (incluindo pacotes de macros e convenções).
  • man 8 - Comandos de adminstração do sistema (normalmente usado somente pelo root).
  • man 9 - Rotinas de Kernel.
Para usar é fácil
#man [comando]

Podemos também especificar o nivel
#man [nivel] [comando]

Comando Info
As "info pages" são como as páginas de manuais, porém são utilizadas com navegação entre as páginas. Elas são acessadas pelo comando info.
O comando info é útil quando já sabemos o nome do comando e só queremos saber qual a respectiva função.
Para listar todos os manuais
#info

Para especificar um manual de um comando
#info [comando]

Para sair do comando info aperte "q" (sem aspas).

Comando Apropos
O apropos é utilizado quando não se sabe qual documentação acessar para um determinado assunto, mostrando as man pages que contém a palavra-chave que foi especificada.
#apropos [palavra-chave]

O apropos utiliza um banco de dados construído com o comando catman. Para contruir o banco de dados...
#catman

Comando Whatis
Tem basicamente a mesma função do apropos, porém com buscas mais específicas. O apropos busca as páginas de manuais e descrições de maneira mais genérica. Já o whatis busca somente o manual com o nome exato da palavra pesquisada.
#whatis [comando]

Comando Whereis
Usado para mostrar a localização do binário do comando, do arquivo de configuração e a localização das páginas de manuais do determinado comando ou arquivo.
#whereis [comando]
ou
#whereis [arquivo]

Comando Which
O comando witch é bem semelhante ao comando whereis, só que mostra apenas a localização do binário do comando.
#witch [comando]

Howto's
Os howto's são documentos que focam a necessidade específica, como montar um firewall, instalar uma webcam, configurar placas de som, configurar um servidor web entre outros. Normalmente esses documentos são instalados juntamente com a aplicação. Algumas vezes é necessário instalar um pacote específico para essa documentação.
O diretório dos howto's é /usr/share/doc.

Por exemplo, se queremos saber como configurar um servidor Samba, podemos consultar um exemplo prático...
#/usr/share/doc/samba

Espero que tenham gostado =)

Abraço

Wesley Volcov

domingo, 10 de agosto de 2008

OpenSER

Uoba galera !!
Hoje, começaremos a ver um pouco sobre o OpenSER.
Cada dia que passa a tecnologia é mais desenvolvida, coisas novas surgem e vão ficando de mais fácil acesso. No mundo de telecomunicações o VOIP ( voz sobre IP ) tem crescido notavelmente nos últimos anos. Grandes empresas começam a investir nesse tipo de serviço, logo as plataformas "open source" como OpenSER, SER, Asterisk, Softswitch, e diversos softphones acompanham esse crescimento.

Comecemos com um pouco sobre o SIP
O Session Initiation Protocol ( Protocolo de Inicio de Sessão ) é um um protocolo utilizado para criar, modificar e terminar sessões ou chamadas de multimedia. Estas sessões podem ser conferências, e-learning, através da telefonia pela Internet e aplicações semelhantes. É bem semelhante ao HTTP e destina-se a iniciar, manter, e terminar sessões de comunicação interativas entre os usuários. Hoje em dia SIP é um dos mais utilizados protocolos para VoIP e está presente em quase todos os telefones IP no mercado.

A história do OpenSER

O começo de tudo... SIP Express Router (SER)
Um projeto open source sob licença GPL que teve sua primeira linha de código escrita em setembro de 2001, por Andrei Pelinescu-Onciul. Até então, o seu roteamento era implementado utilizando uma tabela baseada em "first-match-first-found". Hoje o trabalho do grupo e os resultados são apresentados em um novo site, http://iptel.org.

O OpenSER
Em junho de 2005, dois dos principais desenvolvedores do SER juntamente com um de seus principais contribuintes, começaram o projeto OpenSER. Pouco tempo depois outros contribuintes do SER aderiram ao OpenSER, após um ano e meio o projeto contava com cerca de 20 desenvolvedores e 80 pessoas que contribuiam com correções ou documentações para o código. Em 14 de julho de 2005 foi liberada a primeira versão do Openser.

Mas o que é o OpenSER ?
O OpenSER tem diversas funcionalidades, entre elas podemos destacar o Servidor Proxy e o Registrar. Abaixo veremos um pequeno resumo sobre cada uma delas.

Servidor Proxy
Toda sinalização SIP passa através de um proxy. Este recebe os pacotes, verifica a integridade e encaminha para o destino. Este processo é feito por um script, onde determinamos regras como: tamanho maximo dos pacotes e destinos. O fato de toda a sinalização SIP passar através do proxy, ajuda também na hora de contabilizar a chamada.
O servidor proxy pode operar com dois tipos de comunicação, stateful (como um circuito) ou stateless (como o TCP). Com o stateful, podemos ter várias "sessões SIP", ou seja, podemos fazer com que vários telefones como: celulares SIP, desktops SIP, e outras aplicações SIP estejam a tocar simultaneamente quando receber uma chamada. Ao atender um dos dispositivos é iniciada a conversação, e os restantes param de tocar.
O servidor proxy SIP pode utilizar múltiplos métodos para tentar resolver o pedido de endereço de host, incluindo busca de DNS, busca em base de dados ou retransmitir o pedido para o “próximo” servidor proxy.

Registrar
O Registrador SIP fornece um serviço de informação de localidades; ele recebe as informações do user agent e armazena essa informação de registro. Assim, quando um usuário inicia uma sessão SIP com outro usuário, o protocolo SIP tem que descobrir em qual host esse usuário está logado. Esse processo é feito por um servidor que recebe o pedido e verifica para onde deve envia-lo. Essa consulta é feita em um banco de dados mantido pelo dominino.

Concluindo...
Temos várias outras funcionalidades para o Openser, tais como integração com o Asterisk, PSTN Gateway, Media Server, Radius Accounting, CDRTool Rating e Monitoring Tools. Mas para termos uma visão do que é, e o que faz, Servidor SIP e Registrar estão de bom tamanho!
Atualmente o projeto OpenSER está sendo dividido em dois projetos, Kamailio e OpenSIPS. Ambos derivam do OpenSER, mas darão continuidade as atualizações e desenvolvimento de seus respectivos projetos.

Referências:
Livro: Building Telephony Server with OpenSER.
Sites: http://pt.wikipedia.org/wiki, http://www.kamailio.org/
Pessoas: André Pantalião e Fernando Fontes.


Espero que tenham gostado : )
Em proximos posts, vamos ver mais detalhadamente sobre cada funcionalidade do OpenSER!!
Abraço
Wesley Volcov

terça-feira, 1 de julho de 2008

Tux - O pingüim do Linux

Curiosidade: um pouco da história do pingüim mais famoso!


A história do Tux

Em 1996, muitos integrantes da lista de discussão Linux-Kernel estavam discutindo sobre a criação de um logotipo ou de um mascote que representasse o Linux. Muitas das sugestões eram paródias ao logotipo de um sistema operacional concorrente e muito conhecido. Outros eram monstros ou animais agressivos (pelo menos lendariamente), como tubarões e águias. Linus Torvalds acabou entrando nesse debate ao afirmar em uma mensagem que gostava muito de pingüins. Isso foi o suficiente para dar fim à discussão.

Depois disso, várias tentativas foram feitas numa espécie de concurso para que a imagem de um pingüim servisse aos propósitos do Linux, até que alguém sugeriu a figura de um "pingüim sustentando o mundo". Em resposta, Linus Torvalds declarou que achava interessante que esse pingüim tivesse uma imagem simples: um pingüim "gordinho" e com expressão de satisfeito, como se tivesse acabado de comer uma porção de peixes. Torvalds também não achava atraente a idéia de algo agressivo, mas sim a idéia de um pingüim simpático, do tipo em que as crianças perguntam "mamãe, posso ter um desses também?". Ainda, Torvalds também frisou que trabalhando dessa forma, as pessoas poderiam criar várias modificações desse pingüim. Isso realmente acontece. Existem várias versões do Tux na internet.

Quando questionado sobre o porquê de pingüins, Linus Torvalds respondeu que não havia uma razão em especial, mas os achava engraçados e até citou que foi mordido por um "pingüim assassino" na Austrália. Além disso, a possibilidade de criação de versões desse pingüim são enormes. Como comparação, Torvalds citou que o logotipo do sistema operacional Windows não era ruim, mas pouco é possível fazer com ele.

Diante dessa situação, um concurso foi proposto para a escolha de uma imagem ideal de pingüim e o desenho criado por Larry Ewing acabou sendo o escolhido. Ele o havia criado usando o programas GIMP.

O nome Tux

Essa é uma questão que ainda gera controvérsias, mas a versão aceitável é a de que o nome Tux veio de "tuxedo", palavra em inglês para um tipo de roupa que no Brasil é conhecido como "smoking" ou "fraque". Isso porque as cores dos pingüins lembram um ser usando esse tipo de vestimenta. No entanto, há quem afirme que o nome Tux também é usado como referência ao nome de Linus Torvalds com Unix: Torvalds UniX.

Na escolha de nomes, houve outras sugestões, como Homer, em referência ao personagem Homer Simpsons da série de desenho animado The Simpsons. Essa sugestão foi dada pelo fato do Tux ser semelhante ao personagem em questão.

O Tux real

Alan Cox, outra personalidade por trás do Linux, juntamente com a revista Linux World, decidiu dar o nome de Tux a um pingüim do zoológico de Bristol, na Inglaterra, como forma de homenagear Linus Torvalds por seu aniversário. No entanto, esse pingüim em nada se parece com o Tux em forma de desenho.

Finalizando

O uso de uma figura de um pingüim como logotipo do Linux certamente foi uma escolha feliz, pois é uma imagem convidativa, que desperta a curiosidade e que talvez transmite a sensação de algo feito em comunidade, pois "pingüins vivem em bandos". O Tux ganhou tanta importância que hoje existem até produtos que usam sua imagem, como adesivos, enfeites de mesa, roupas, bonecos de pelúcia, entre outros. Não podia ser diferente, afinal o Tux representa não somente o Linux, mas também toda a sua comunidade.

sábado, 7 de junho de 2008

Instalando Samba !

Samba é um serviço de compartilhamento de diretórios, arquivos e autenticação de usuários em redes heterogêneas.

Instalando...
#aptitude install samba samba-doc smbclient smbfs
#dpkg-reconfigure samba

Escolha iniciar como deamon e selecione NÃO para não gerar a base de dados para senha em /var/lib/samba/passdb.tdb

Configurando...

Crie um diretório para o compartilhamento:
#mkdir -p /srv/samba/publico

Vou colocar as principais linhas que devem ser editadas para o funcionamento no samba, mas aqui... fica a critério de vocês:

#vim /etc/samba/smb.conf

[global]
#Grupo de trabalho
workgroup = nome_do_grupo

#Comentário para o servidor
server string = Servidor de Arquivos

#Para configurar compartilhamentos sem a necessidade de controle de usuários e senhas
security = share

#O samba se torna um servidor WINS ( resolve nomes windows )
wins support = Yes

#Compartilhamento

#Publico
#Opção para adicionar comentário ao compartilhamento
comment = Pasta Pública

#Define qual o diretório será utilizado como compartilhamento
path = /srv/samba/publico

#Se tem ou não permissão de escrita no compartilhamento
writable = No

#Define um usuário padrão que será usado por todos que acessarem este compartilhamento
force user = smbuser

#Define um grupo padrão que será usado por todos que acessarem este compartilhamento
force group = users

#Define com quais permissões os arquivos serão criados
force create mode = 0774

#Define com quais permissões os diretórios serão criados
force directory mode = 0775

#Define se usuários "convidados" terão acesso ao compartilhamento
guest ok = Yes

Agora fora do arquivo.. Adicione o usuário e grupo:
#adduser smbuser
#gpasswd -a smbuser users

Definir permissões...
#chown smbuser:users /srv/samba/publico

Iniciando o serviço...
#/etc/init.d/samba start

Verifique se o serviço está disponivel na rede:
#netstat -nltup | egrep '(smbd|nmbd)'

Verifique os compartilhamentos disponiveis:
#smbclient -L 127.0.0.1

Testando o serviço e a resolução de nomes:
#smbclient -d 3 -L localhost

Abra o arquivo a seguir e insira os nomes e IP's para resolver nomes...
#vim /etc/samba/lmhosts
IP NOME
IP NOME

Agora observe se os serviços estão ativos:
#sbmclient -L IP -N

Montando o compartilhamento...
#smbmount //IP/local_do_compatilhamentos /onde_vai_montar

Para monitorar as conexões...
#sbmstatus

Localizar servidores e compartilhamentos...
#smbtree

Dica: instale um pacote chamado swat
#aptitude install swat

Abra o browser e digite
http://localhost:901/
Coloque o usurário e a senha de root!

Agora você pode adminstrar se samba via brower! Gostaram ?

Abraço!

Acessando o OpenLdap via Browser

Bom galera, aqui vai um pequeno complemento da outra postagem sobre o OpenLdap. ( é necessario ter apache2 para isso)

Instale os pacotes:
#aptitude install php-pear php5-ldap

Verifique se seu servidor apache está com suporte ao PHP:
#ls -l /etc/apache2/mods-enable

Instale outro pacote:
#aptitude install phpldapadmin

Agora, abra seu browser e digite e digite no campo do URL:
127.0.0.1/phpldapadmin/index.html

Agora vamos autenticar com o Squid:
#vim /etc/squid/squid.conf

Modifique a seguinte linha:
auth_param basic program /usr/lib/squid/ldap_auth -b dc=[seunome],dc=com,dc=br -f
uid=%s SEU_IP

Prontinho, estamos com o OpenLdap instalado, configurado, podemos acessar via browser e está autenticando com o squid. Você merece até um aumento de salário *-* !

Abraço!

Instalando e configurando o OpenLdap

Instale os pacotes do OpenLdap
#aptitude install libldap2 ldap-utils slapd

Depois de instalado, use o dpkg para confirurar.:
#dpkg-reconfigure slapd

Serão feitas algumas perguntas:
-Omitir configuração de servidor OpenLdap: NÃO
-Informe o nome de domínio DNS para construir a base dn: seu_dominio.com.br
-Informe nome da organização: EMPRESA
-Digite a senha: ******
-Escolha base de dados: BDB
-Remoção da base de dados quando o pacote slapd for expurgado: NÃO
-Mover base antiga de dados em /var/lib/ldap: SIM
-Permitir protocolo LDAPv2: SIM (Requirido para integrar com o Squid com o OpenLdap)

Inicie o serviço do OpenLdap:
#/etc/init.d/slapd start (em algumas distribuições fica em /usr/local/libexec/slapd

Verifique se o serviço está disponivel na rede:
#netstat -lp | grep ldap

Faça um teste da configuração do OpenLdap:
#slaptest

Instale os seguintes pacotes:
#aptitude install perl
#aptitude install migrationtools

Agora acesse o diretório:
#cd /usr/share/migrationtools
#cp -av migrate_common.ph migrate_common.ph.original ( estamos criando um backup do arquivo)

Agora edite as seguintes linhas do arquivo migrate_common.ph
#vim migrate_common.ph

$DEFAULT_MAIL_DOMAIN="[dominio].com.br";
$DEFAULT_BASE=dc="[seu nome],dc=com,dc=br";

Agora vamos migrar a base de usuários do sistema paa uma base padrão LDIF:
#cd /usr/share/migrationtools
#./migrate_passwd.pl /etc/passwd /etc/ldap/users.ldif

Se quiser dar uma olhada no arquivo criado:
#less etc/ldap/users.ldif

Agora vamos migrar a base de grupos do sistema:
#./migrate_passwd.pl /etc/group /etc/ldap/groups.ldif

Crie uma base ldif:
#./migrate_base.pl > /etc/ldap/base.ldif

Abra o arquivo que acabamos de criar e delete as linhas de 1 a9, por default a migração criou as linhas, podendo gerar erro durante a importação:
#vim /etc/ldap/base.ldif

Adicione a base ldif a base do OpenLdap
#ldapadd -x -D cn=admin,dc=seunome,dc=com,dc=br -f /ect/ldap/base.ldif -W
#ldapsearch -x | more

Adicione o groups.ldif:
#ldapadd -x -D cn=admin,dc=[seunome],dc=com,dc=br -f /ect/ldap/groups.ldif -W

Adicione o user.ldif
#ldapadd -x -D cn=admin,dc=[seunome],dc=com,dc=br -f /ect/ldap/users.ldif -W

Podemos transferir as informações em formato ldif através do slapadd passando a informação direto para o servidor:
#/etc/init/d/slapd stop
#slapadd -l meuarquivo.ldif -f slapd.conf

Realizando buscas específicas:
#ldapsearch -x -b ´dc=seunnome,dc=com,dc=br´ ´(cn=cdrom)´

Consultando a base OpenLdap:
#slapcat | more


Configurando o Cliente OpenLdap:
#vim /etc/ldap/ldap.conf

Adicione as linhas:
hostname 127.0.0.1
base dc=seunome,dc=com,dc=br
pam_password md5
pam_filter objectclass=account
pam_groupdn cn=users,ou=Group,dc=seunome,dc=com,dc=br

Na proxima postagem vamos ver como usar configurar o OpenLdap para acessar via Browser!
Espero que tenham gostado!
Abraço