Segunda-feira, 13 de Julho de 2009

Alexandre Oliva afirma que o Linux não é livre!

Abaixo segue o texto de Alexandre Oliva, vale a pena ler...
;)

Linux-libre e o Dilema dos Prisioneiros

Apesar do dilema moral e dos riscos técnicos e jurídicos, diversas distribuições de GNU+Linux que valorizam a liberdade tendem a aceitar e distribuir o Software não-Livre integrado ao núcleo Linux, além de facilitar e encorajar seu uso. Por que decidem trair as liberdades de seus usuários e ajudar fabricantes de hardware a capturá-los?

Linux não é Software Livre

Quando foi lançado, em 1991, o núcleo Linux não era Software Livre. Tornou-se Livre no ano seguinte, através de relicenciamento, mas vem se tornando progressivamente não-Livre, ao aceitar "contribuições" de fabricantes de hardware que não têm interesse nem incentivo para respeitar seus consumidores.

Linux tem recebido Software não-Livre que roda em modo privilegiado (drivers) ou em dispositivos periféricos às CPUs principais (firmware), tendo acesso a todo o sistema: barramentos, memória, controladores de DMA e de interrupções, podendo assim causar toda sorte de interferência e problemas, desde acidentes como erros de travamento do sistema ou corrupção de informação, até problemas intencionais, como coleta e transmissão de informação do usuário.

Esses "contribuidores" ainda estabelecem armadilhas jurídicas. Alguns proíbem engenharia reversa, e fornecem documentação sob acordos de manter segredos (NDA). Alguns distribuem seus códigos, sob a GPL ou licenças compatíveis, mas sem fontes, induzindo à violação e portanto à revogação automática da licença do Linux.

Outros adotam licenças contraditórias: há um fabricante de cartões de rede que adicionou ao Linux um programa de 100Kb, na forma de código objeto, sob licença não-Livre e incompatível com a GPL (o que já é um problema), e depois adicionou outro driver, com mais 300Kb de código objeto não-Livre, que veda sua distribuição conjunta com software da mesma empresa que tenha sido disponibilizado sob licença diferente da GPL, como, por exemplo, o programa de 100Kb.

Não é irônico que Linux seja tomado por alguns como ícone maior do Software Livre, quando não o é? Por não ser Livre, todo mundo que distribui versões recentes do Linux está sujeito a ameaças jurídicas desses vilões, e, se já não perdeu, pode acabar perdendo o direito de distribuir, modificar e, no entendimento de alguns juristas brasileiros, até de executar o Linux!


Stux, bonitinho mas preso,
de Lewis Laë


Nasce o Linux-libre


Freedo, limpo e Livre, de
Burnaron e Rubén Rodríguez Pérez


Para tentar reverter essa tendência de poluição do Linux com Software não-Livre, e para propiciar a usuários e distribuições socialmente conscientes o núcleo Livre que necessitam, deu-se início ao projeto Linux-libre. Começou na distribuição gNewSense, passou a ser mantido pelo então mantenedor da distribuição BLAG, depois por mim, na FSFLA. Hoje é adotado por praticamente todas as demais distribuições com compromisso público de distribuir somente Software Livre: Musix GNU+Linux, Trisquel GNU/Linux e Dragora GNU/Linux, além de dyne:bolic e UTUTO XS que estão em processo de adoção.

Entre as distribuições mais populares, que até valorizam o respeito às liberdades dos usuários, mas não fazem disso um compromisso tão firme, a lógica que impera parece ser a do medo de perder usuários para as outras. Assim, quando uma adota um componente não-Livre, a fim de atrair uma determinada classe de usuários, as demais se vêem pressionadas para fazer o mesmo, sob o risco de perder potenciais colaboradores. Ao invés de perdê-los, perdem controle sobre o software que distribuem aos usuários, expondo a si mesmas e a seus usuários a riscos técnicos e jurídicos.

Curioso é que todos aqueles que possuem os dispositivos que precisariam daquele software para funcionar, sob controle do fabricante, já receberam uma cópia juntamente com o dispositivo, e poderiam facilmente obter outra diretamente do fabricante. Será que faz sentido esse comportamento das distribuições, de se poluírem e sujarem as mãos para ajudar a levar esse software a quem já o recebeu e já decidiu entre rejeitar esse software ou ceder ao fabricante o controle do computador?

Analisando o jogo

O dilema dos prisioneiros é uma observação curiosa da ciência econômico-matemática denominada Teoria de Jogos. Dois bandidos são presos por um crime grave, mas não há provas suficientes para condená-los à pena de 10 anos de prisão por esse crime, somente à penda de 1 ano, por porte ilegal de arma. Os investigadores gostariam de resolver o crime maior, por isso propõem a cada um dos bandidos, incomunicáveis entre si, um acordo: se testemunhar contra o outro na acusação mais grave, não será indiciado pelo porte ilegal.

A\BLealTraíra
Leal1\ 111\0
Traíra0\1110\10
Tabela de resultados entre prisioneiros A e B.


Se os dois se recusarem a trair seus parceiros, cada um vai preso por 1 ano. Quem trai o parceiro leal sai livre, enquanto o parceiro vai preso por 11 anos. Se os dois concordarem em trair um ao outro, cada um vai preso por 10 anos. Cada um, agindo de forma racional e egoísta, terá como estratégia dominante trair seu parceiro, pois, independente do que o outro faça, o resultado é melhor para si mesmo: 0<1

Cooperar para superar

Não havendo razão ou esperança de que as distribuições tomem essa iniciativa, resta a nós, usuários, alterar o equilíbrio do jogo. Se dermos preferência às distribuições comprometidamente Livres e ao hardware que funciona com elas, sinalizaremos tanto para as distribuições quanto para os fabricantes de hardware que o respeito ao usuário servirá aos próprios interesses deles.

Quanto mais gente fizer isso, maior será a preocupação dos fabricantes de hardware em respeitar seus clientes, pois isso aumentará suas vendas, e maior será a preocupação das distribuições em respeitar seus usuários, pois isso aumentará sua comunidade de colaboradores.

É óbvio que isso requer um baita esforço de educação e conscientização de todos. É também óbvio que, ao agirmos assim, de forma cooperativa, abriremos espaço para que alguns nos traiam e levem vantagem no processo, em detrimento de todos. Ainda assim, esse compromisso parece ser o que tem mais chances de levar a um resultado positivo: evitar a tragédia do bem comum.

Caso seus amigos traiam você e a comunidade, aceitando ou recomendando Software não-Livre, ou comprando hardware que o exija, não os traia de volta: explique por que é importante cooperarmos, não só para evitar a tragédia, mas para alcançar o respeito que merecemos enquanto humanos e usuários de software. Sugira aos amigos que adotem distribuições 100% Livres assim que possível e que, em sua próxima compra, procurem adquirir hardware que funcione adequadamente com elas. É através dessa cooperação que temos chance de alcançar o melhor resultado para todos.



G[e]nuíno pinguim religiosamente Livre,
de Guillaume Pasquet, baseado no tux original de Larry Ewing.


Referências

* Linux Libre
* Teoria dos Jogos
* Dilema do Prisioneiro
* Tragédia dos Comuns
* Free System Distribution Guidelines
* Free GNU/Linux Distributions

Copyright 2009 Alexandre Oliva

Cópia literal, distribuição e publicação da íntegra deste artigo são permitidas em qualquer meio, em todo o mundo, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permissão.

http://www.fsfla.org/svnwiki/blogs/lxo/pub/linux-libre


Publicado na edição #54, de maio de 2009, da [GNU/]Linux Magazine Brasil.

Texto retirado do site Dicas -l: http://www.dicas-l.com.br/dicas-l/20090705.php

Sábado, 4 de Julho de 2009

Jomar Silva fala sobre a banda larga brasileira ridícula (publicação Dicas-l)

Leiam e descubram que vocês também são enganados pela "operadora espanhola" de telefonia...

Banda Larga no Brasil: Uma piada de mal gosto

Colaboração: Jomar Silva

Data de Publicação: 03 de July de 2009

Há algumas semanas, tive acesso a um relatório sobre a situação atual dos acessos de banda larga no mundo todo, e não me surpreendi em ver o Brasil classificado como um dos acessos mais caros e de pior qualidade.

O que chamamos de banda larga no Brasil, na verdade é uma grande piada, contada pelas falaciosas empresas de telecomunicações, que são reguladas por uma entidade que simplesmente não cumpre com suas obrigações e ninguém faz nada sobre isso. Quer ver como eles mentem e te enganam descaradamente?

Vocês sabiam que a velocidade da banda larga que contrataram é apenas "ilustrativa", e que o valor real garantido em contrato é, em média, 10% disso? Sabia que esta velocidade "ilustrativa" não é bidirecional?

Trocando por miúdos, quando você fica todo feliz em ter 2MB de banda larga, na verdade seu contrato diz que você tem direito a 200kbps de banda, extensível (quando possível) a 2Mbps. Claro que esta "tremenda velocidade" é apenas no sentido chamado de downstream (da Internet para seu computador), pois no sentido contrário (upstream ou do seu computador para a Internet), a velocidade raramente passa dos 256 kbps (sendo 128kpbs o valor comumente utilizado). Esta última explicação pode agora te ajudar a entender o motivo pelo qual você consegue baixar muito rápido um e-mail com um anexo grande, mas demora muito para, por exemplo, re-enviar este e-mail para outras pessoas.

O que me deixa mais indignado ainda com as operadoras, é a constância com que cometem "erros de configuração" nas conexões dos usuários (já vi este "problema acidental" em inúmeras conexões ADSL, Cabo e 3G). Este "problema acidental" ocorre com frequência pois a maioria dos usuários não sabe como verificar a largura de banda que lhe está verdadeiramente sendo entregue. Por isso, gosto sempre de ensinar a todos como faze-lo: www.speedtest.net (basta acessar o site e seguir as instruções que ele vai te fornecer... em poucos segundos você vai descobrir quão honesta é sua operadora, ops... ato falho... quer dizer, quão bem configurada está sua conexão).

O caso mais grave que já vi foi de um parente que havia comprado um computador novo dual core, com 4Gb de RAM (um baita maquinão mesmo) e vivia se queixando que seu computador estava "lento na internet". Detalhe adicional: ele era assinante de banda larga ADSL de uma certa operadora espanhola em São Paulo (que prefiro não citar o nome para não infectar e poluir este blog) e é um mero usuário (não tem conhecimento técnico algum, com a imensa maioria dos usuários de Banda Larga no Brasil).

Depois de tanta reclamação (mais de um mês), resolvi dar uma passada na casa dele para ver o que estava acontecendo. Quando usei o SpeedTest lá, descobri que os 2Mbps que ele estava pagando eram na verdade 128kps. Ele ligou para o suporte técnico da tal operadora e o atendente insistia com ele que estava tudo certo e que o computador dele estava com o problema (a mesma ladainha que ele já havia ouvido algumas dezenas de vezes). Fui obrigado a pegar o telefone e conversar com o tal "técnico". Quando avisei a ele que eu sabia o que estava fazendo e falando (já trabalhei em centros de Pesquisa e Desenvolvimento de telecomunicações, banda larga e multimídia), e que a tal empresa espanhola estava cometendo uma fraude gravíssima, a voz do atendente tremulou... ele então se desculpou e passou a seu supervisor, que gentilmente se desculpou pois havia detectado um "erro de configuração" no modem ADSL e me pediu "por gentileza" para resetar o modem... Reset feito e modem navegando a 2M
bps... Já vi "erros de configuração" idênticos a esse em operadoras de cabo e 3G, mas confesso que a tal operadora espanhola é recordista nestes erros (testem suas conexões e veremos os resultados).

Falando em 3G, mais uma vez, uma falácia gigantesca. Já vi até operadora vendendo largura de banda que nem em laboratório se conseguiu colocar para funcionar direito ainda (tudo bem.. eles devem pensar que os usuários brasileiros são mesmo um bando de ignorantes fáceis de enganar, não é mesmo?).

Um exemplo interessante das maravilhas do mundo 3G é a minha magnífica conexão 3G do BlackBerry Bold da Claro (já fiz um review bem legal do BB Bold aqui no blog, e confesso que não vivo mais sem meu BlackBerry). Quando comprei, assinei o serviço de dados todo empolgado, pois teria uma conexão 3G (que no Brasil virou erroneamente sinônimo de Banda Larga Móvel), e não atentei ao detalhe que 3G é a tecnologia de transmissão, e isso em nada se relaciona com a banda. Meu BlackBerry Bold 3G da Claro não passa dos humilhantes 128kpbs, e nem adianta ligar lá para reclamar, pois nos contratos que assinei (como todo bom brasileiro, sem ler com a devida atenção), não existe nada sobre a largura de banda... sou um trouxa mesmo, não é? (no momento em que escrevo fiz um teste e minha super conexão 3G atingiu um pico de 31 Kbps... me deu saudades do meu modem U. S. Robotics Courier 33.600).

Em uma coisa, todas as operadoras se nivelam: atendimento ridículo quando ocorrem problemas.

Estou a 3 dias sem a minha conexão de banda larga (via cabo), e já fiquei plantado feito um imbecil por uma manhã inteira aguardando o "técnico" que nunca chegou... quem sabe amanhã.

Interessante é notar que ontem, o segundo dia do meu "apagão", acabei dando uma passada no consultório da minha irmã e ela estava aflita pois sua conexão 3G da Claro não funcionava. Ligamos para o suporte técnico e após alguns minutos de conversa (e eu explicar para o "especialista" deles) que na área onde ela estava o 3G estava fora do ar, pois meu BlackBerry também da Claro só se conectava via EDGE por lá, ele insistia que "a rede não possui problema algum"... antes que me esqueça, as luzes do modem 3G indicavam isso mesmo: sinal fraco e intermitente.

A ligação terminou quando ele me pediu para fazer qualquer coisa no "menu iniciar" do computador, e eu avisei que o computador da minha irmã roda Linux (sim, uma Nutricionista que usa Linux... e diga-se de passagem o adora, após ter perdido algumas semanas de trabalho com um tal Vista que simplesmente não funcionava). Voltando ao assunto, já viram a reação de um vampiro quando vê a cruz? A do "especialista" da Claro foi idêntica: "sr, nossos modems não funcionam em Linux e não damos suporte". Quando fui explicar a ele que o "modem deles" estava funcionando em Linux há singelos 12 meses, recebi como resposta "estou encerrando a ligação, pois o Sr não usa um sistema suportado"... resultado: SE VOCÊ USA LINUX, NÃO CONTRATE 3G COM A CLARO !!! (minha irmã está indo hoje contratar uma nova conexão com outra operadora).

Contei esta história, pois passei pelo consultório dela para bater um papo e ver se ela estava mesmo contente com o 3G, pois depois de dois dias (agora três) sem minha Banda Lerda via cabo, eu estava pensando mesmo em cancela-la e contratar um 3G... acho que ainda não dá para fazer isso.

Me sobrou o bom e velho ADSL... quer dizer, tinha sobrado, pois alguns minutos depois do bate boca com o "especialista" da Claro, recebi um telefonema do meu pai, nervoso pois precisava enviar um e-mail com urgência e sua conexão ADSL (da tal operadora espanhola) não estava funcionando (me doeu, mas tive que orienta-lo a ligar para o suporte técnico da operadora, apesar de saber que ele sofre de pressão alta :) )... alguns minutos depois li num portal da Internet que a tal operadora estava sofrendo mais um apagão (o segundo do mês), desta vez nos ADSL de algumas regiões de São Paulo (e claro, eles negavam o apagão e assumiam alguns "problemas isolados" (se esse pessoal fosse da OMS a gripe do porco seria classificada como "alguns meros resfriados localizados").

Sendo assim, num mesmo dia, todas as possibilidades de conexão "banda larga" que conheço estavam fora do ar, e todos os usuários tendo que aguentar os "especialistas e técnicos" das operadoras (aliás, se você que está lendo ainda não é formado e queria se especializar com rapidez, não vai para a escola não bobo: Arrume um emprego em um call center... você vira "especialista" e "técnico" em algumas horas... é sério).

Jomar Silva é engenheiro eletrônico, pós graduado em gestão de projetos e desenvolvimento de sistemas e Diretor Geral da ODF Alliance Chapter Brasil. Atua no mercado de TI desde 1996, com ênfase no desenvolvimento de software em projetos de Pesquisa e Desenvolvimento para empresas do setor de Telecomunicações e Tecnologia da Informação. Atua ainda como "advisor" em padrões abertos junto a indústria de software. É coordenador do Grupo e Trabalho na ABNT que tratou da adoção do ODF como norma brasileira e membro do OASIS ODF TC (comitê internacional que desenvolve o padrão ODF).

Fonte da postagem em: http://www.dicas-l.com.br/dicas-l/20090703.php

Quarta-feira, 24 de Junho de 2009

Usando HTTP autenticado no Apache

Fala galera! Depois de tanto tempo!! Eis que surge uma nova dica pra vocês (espero não demorar tanto na próxima vez hehehe)....

Este tutorial requer que já se tenha em mãos um WebServer Apache configurado e funcionando!


Você já teve momentos em que desejou que algum usuário não autorizado fuçasse determinada pasta em seu servidor web?
Eis aqui a solução para seus problemas!!

Vamos imaginar um cenário real onde tenho um diretório chamado admin dentro do meu Web Space (local do meu servidor web onde ficam os arquivos acessíveis ao público) do Apache já instalado, no Debian Lenny o diretório do Web Space do Apache fica em:

/var/www/

No caso do nosso cenário do exemplo, teria uma pasta admin dentro deste diretório, ficando assim:

/var/www/admin

Imaginem que esta pasta armazena coisas muito importantes e você não quer que nenhum abelhudo vá lá xeretar sem autorização, aí aplicamos autenticação neste diretório. Pra quem não sabe autenticação nada mais é do que um serviço que pedirá usuário mais senha para liberar seu conteúdo ou seja, logar! Portando somente um ou alguns usuários estarão liberados para ler os arquivos deste diretório (admin no caso do exemplo).

Um pouco de teoria do protocolo HTTP

No HTTP a autenticação funciona da seguinte forma (vamos exemplificar isso usando o programa para sniffar as mensagens trocadas entre um servidor e um cliente):

O cliente faz uma requisição de determinada página via mensagens, a mensagem de requisição inicial do nosso exemplo será:

GET /admin HTTP/1.1
Host: 172.16.213.128

Esta mensagem do cliente significa que estou requisitando os objetos do diretório /admin do servidor web de ip 172.16.231.128, quando o diretório exige autenticação, o servidor responderá da seguinte forma:

HTTP/1.1 401 Authorization Required
Date: Wed, 03 Jun 2009 11:54:31 GMT
Server: Apache
WWW-Authenticate: Basic realm="Digite seu usuário e senha"

Esta mensagem informa ao cliente que ele precisa de autenticação, isto é informado na linha de cabeçalho WWW-Authenticate, e o Basic Realm é apenas um comentário que aparecerá ao usuário pedindo a senha.

Daí novamente o cliente fará uma requisição para o servidor, mas desta vez acrescentará a senha em formato criptografado (*Base64) dentro de uma linha de cabeçalho chamada Authorization como mostrado abaixo:

GET /admin HTTP/1.1
Host: 172.16.213.128
Authorization: Basic cm9vdDoxMjM0

Se o usuário casar com a senha, o servidor apresentará o conteúdo do diretório na tela do browser do cliente, caso não, a resposta do servidor será novamente uma requisição de senha (enquanto o usuário não clicar em cancelar e digitar a senha errada o servidor pedirá uma nova senha, quando ele clicar em cancelar a resposta do servidor será HTTP UNAUTHORIZED).

Mão na massa

Bom expliquei um pouco de como funciona o HTTP Autenticado, agora é hora de mostrar como implementar um e discutir quando usar e quando não usar o HTTP Autenticado.

O arquivo .htaccess

Este aquivo é inserido dentro de um diretório ao qual desejamos restringir acesso, em nosso exemplo o colocaríamos dentro da pasta /var/www/admin.

A vantagem de se usar o arquivo .htaccess é que em um servidor (aqueles de hospedagem normalmente) ao qual você não tem acesso a configuração do Web Server e tem acesso (FTP normalmente) somente a alguma pasta no servidor.

Agora de acordo com a página de documentação do próprio Apache, o .htaccess não é recomendado caso você tenha acesso ao arquivo de configuração do servidor. (veja mais detalhes em “Quando (não) usar arquivos .htaccess” em http://httpd.apache.org/docs/2.2/pt-br/howto/htaccess.html)

Tudo que especificamos dentro de .htaccess pode ser escrito em um bloco de diretiva < Directory > (quando temos acesso aos arquivos de configuração do servidor), na configuração de um site no Apache (como fazer isso será explicado mais pra frente neste mesmo tutorial).

Quando queremos usar arquivos .htaccess tem que existir uma linha especificando seu nome no arquivo de configuração do Apache, como estou usando Debian Lenny o arquivo de configuração é /etc/apache2/apache2.conf, mas independente disso a linha que define o nome do “arquivo de acesso” é:

AccessFileName < arquivo >

Onde normalmente em < arquivo > especificamos o nome .htaccess, agora mais uma coisa que temos que ter em mente são as permissões de acesso por usuário em cada diretório (diretiva < Directory >), dentro de uma diretiva Directory temos que especificar a linha:

AllowOverride < permissões >

Onde no nosso exemplo usaremos a permissão All, ou seja, depois que eu autenticar no diretório especificado tenho permissão de fazer tudo!

Agora vamos por em prática o que foi aprendido até aqui (depois de tanta teoria hehehe)....

Suponha que vou usar primeiramente o arquivo .htaccess para realizar a autenticação.

Autenticando via .htaccess

* Você terá de usar o root para realizar essas configurações

1.Abra o arquivo /etc/apache2/apache2.conf com o editor de texto da sua preferência, ou use meu exemplo:

# vim /etc/apache2/apache2.conf

2.Verifique se a linha AccessFileName está desta forma:

AccessFileName .htaccess

3.Agora vamos criar o arquivo .htaccess e jogá-lo dentro do diretório

Criar o diretório admin

# mkdir /var/www/admin

Criar arquivo .htaccess e acrescentar as linhas descritas (não digite o número das linhas, somente o conteúdo)

# vim /var/www/admin/.htaccess

1 AuthType Basic
2 AuthName "Digite usuário e senha"
3 AuthUserFile /etc/apache2/.htpasswd
4 Require valid-user
5 Satisfy Any

Explicando:

linha 1: Isso significa que vou usar o tipo Base64 de transferência (que não é criptografado e sim codificado e é facilmente decodificado, explicarei aspectos relacionados a segurança logo mais neste tutorial)

linha 2: Lembram da mensagem de resposta HTTP?

WWW-Authenticate: Basic realm="Digite seu usuário e senha"

Esta linha adiciona o rótulo da mensagem do Realm

linha 3: Digo que ele buscará a senha do arquivo de senhas
/etc/apache2/.htpasswd

linha 4: Requer que exista um usuário válido a ser autenticado

linha 5: Satisfy pode ter dois valores All ou Any,

o All diz que o usuário tem que passar na restrição de acesso (Required ou Allow, no nosso caso required) E entrar com um usuário e senha válidos para realizar a autenticação

o Any diz que o usuário tem que passar na restrição de acesso OU entrar com um usuário e senha válidos para realizar a autenticação

4.Agora como foi visto acima o arquivo de senhas /etc/apache2/.htpasswd tem que ser criado! Crio este arquivo facilmente com o comando htpasswd da seguinte forma:

# htpasswd -c /etc/apache2/.htpasswd root

onde:
-c = create new archive

Este comando pedirá senha para o usuário especificado, em nosso caso, root

5.Reinicie o Apache:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

ou

/etc/init.d/apache2 restart

6.Agora a autenticação já tem de estar funcionando! Tente entrar pelo browser no seu servidor apache no diretório admin, em uma máquina “normal”, a url ficaria assim no browser:

http://localhost/admin

Se ele pedir usuário e senha quando esta url for especificada, parabéns! Senão reveja novamente os passos deste tutorial, ou email-me :D

Agora vocês vão me perguntar “Mas meu você não falou que quando eu tenho acesso aos arquivos de configuração do Apache eu não devo criar arquivos .htaccess devido ao desempenho e mais a um monte de coisas?”, eis que lhe responderei “SIM”, agora explicarei como você faria se tivesse acesso aos arquivos de configuração do Apache.
Autenticando via arquivo de configuração do Apache

1.Abra o arquivo (em um editor de texto) de configuração do SITE que você usará, no meu caso
seria:

# vim /etc/apache2/sites-enabled/000-default

2.Agora adicione um container com uma diretiva Directory desta forma (sem adicionar os números das linhas):

1 < Directory /var/www/admin >
2 Deny from all
3 AuthType Basic
4 AuthName "Digite usuário e senha"
5 AuthUserFile /etc/apache2/.htpasswd
6 Require valid-user
7 Satisfy Any
8 < /Directory >

Explicando:

linha 1: Nesta linha abro o container da diretiva Directory e aponto o diretório /var/www/admin (o qual quero modificar permissões de acesso)

linha 2: Nesta linha nego privilégio a todo mundo para liberar nas linhas de baixo, porém nas linhas de baixo libero com as restrições de acesso igualmente as restrições que usei quando utilizei o arquivo .htaccess (lembrando que se eu adicionar as restrições no arquivo de configuração do site não preciso criar o arquivo .htaccess no diretório, por favor não confunda :D)

linhas 3,4,5,6,7: Já explicadas quando falei sobre o arquivo .htaccess

linha 8: Fecho o container da diretiva Directory

3.Agora salvo e saio do arquivo, daí o Apache tem um comando bem interessante que faz carregar o arquivo do site, que é a2ensite (Apache 2 enable site), use-o desta forma:

# a2ensite

Daí aparecerão os arquivos de site disponíveis a ser(em) carregado(s), daí você digita um dos nomes que aparece e tecla enter ele carregará o arquivo

4.Aí para terminar digite:

/etc/init.d/apache2 reload

Com isso você fará com que o Daemon do Apache releia as configurações, do arquivo de configuração do site que você acaba de modificar.
Ou se quiser ter mais certeza reinicie o Daemon usando:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

ou

/etc/init.d/apache2 restart

5.Agora a autenticação já deve estar funcionando corretamente, mas agora baseada em arquivo de configuração do Apache e não mais no .htaccess, faça os testes como no ítem 6 da explicação do .htaccess

Aspectos de segurança

Voltando a seção “Um pouco de teoria sobre o protocolo HTTP” vimos que quando uma requisição é enviada a um diretório que esteja funcionando autenticação o cliente têm que fazer uma nova requisição enviando seu usuário e senha, que no nosso exemplo é Basic, o que significa que não tem criptografia portanto quando temos um espião na rede esta senha e usuário podem ser facilmente descodificados (pois o Base64 não é criptografia mas sim um formato de codificação de mensagens)... veja o exemplo abaixo:

Suponha que eu estivesse farejando na rede (com um sniffer) e consegui pegar esta mensagem (a mesma do nosso exemplo):

GET /admin HTTP/1.1
Host: 172.16.213.128
Authorization: Basic cm9vdDoxMjM0

Agora suponha que eu use Linux (clarooooo !!! :D) e conheço um pouco sobre o openssl.... observem o que eu poderia fazer com a mensagem codificada (cm9vdDoxMjM0):

# echo "cm9vdDoxMjM0" | openssl enc -base64 -d
root:1234

Ou seja acabei de conseguir o usename e a senha válida para um usuário que tem permissão de se logar no diretório admin!

Conclusão: Se você quiser mais segurança não use o tipo de autenticação Basic, e além do mais configure seu Apache2 para usar HTTPS e não HTTP!

Terminando

Bom gente é isso ai! Acabou! Dúvidas por favor me enviem um e-mail um post um grito, um sms, ou qualquer outra coisa, porém não fiquem com elas :D!!

Espero que tenham gostado! Abraço a todos!

Referências

Apache

http://httpd.apache.org/docs/2.2/pt-br/howto/htaccess.html
http://httpd.apache.org/docs/2.2/pt-br/mod/core.html#allowoverride
http://httpd.apache.org/docs/1.3/misc/FAQ.html#user-authentication
http://httpd.apache.org/docs/1.3/mod/core.html#require
http://httpd.apache.org/docs/1.3/mod/mod_access.html#allow

Autenticação/Codificação

http://www.acunetix.com/websitesecurity/authentication.htm
http://en.wikipedia.org/wiki/Basic_access_authentication
http://pt.wikipedia.org/wiki/Base64
http://en.wikipedia.org/wiki/Digest_access_authentication
http://apache.active-venture.com/auth-digest.html

OpenSSL How-to

http://www.madboa.com/geek/openssl/

HTTPS

http://en.wikipedia.org/wiki/HTTP_Secure

Quinta-feira, 19 de Março de 2009

O tio vendedor de poemas

Faz um bom tempo que eu não posto gente... mas estou preparando algo quente pra vocês... vai demorar pra terminar, mas logo logo Rafael volta ao Dicas-l, ao Viva o Linux e ao seu próprio blog :D...

Bom deixando isso de lado, gostaria de contar uma história a vocês:

Estava eu esperando o ônibus para uma cidade que eu nunca havia ido antes, eis que surge um tio vendedor de poemas, que me fez despertar de muitas lembranças sobre o Software Livre e sobre a primeira programadora conhecida da história, Ada Lovelace filha de Lord Byron (o tal poeta lá)...

O que achei legal foi a observação do tio... "Pode ver, pra ver não paga, se gostar e quiser levar pra frente ai você me dá algum trocado"

Achei isso um máximo! Não sei se vocês estão achando esta história idiota, mas ele ganha o dinheiro dele assim! Ou seja o cara tem que ser um excelente poeta pra conseguir ganhar a vida assim!

Por isso lembrei do Software Livre, pois muita gente diz assim "Como vou ganhar dinheiro com isso?" ou coisas tolas assim .."Não posso mostrar meu código senão vão copiar e ganhar dinheiro em cima do que eu fizer", todos sabemos que a GPL protege seu nome! Ou seja se você fez o Software você tem que ter seu nome nas versões que "nascerem" do seu Software, falando que o Software Novo foi baseado no seu Software!

Além do mais muitos não conseguem ver mercado em mostrar seu código antes de vendê-lo, sendo que eu acho pra mim o que parece ser estranho é fechar o código e vendê-lo, pois quem compra não sabe o que está comprando!

Esse é o caso do poeta! Alguém que vende o que faz pois é apaixonado pelo que faz, e sente vontade de mostrar o quanto ele é bom mostrando seu poema antes de simplesmente vendê-lo, fechado!

Acredito que um dia o mercado será dominado pelas pessoas que gostam de desenvolver software de verdade.. e espero que esta profissão morra um dia.. desculpem-me programadores e desenvolvedores comerciais.. mas as aplicações OpenSource e Free crescem cada vez mais! O mercado muda! Tudo muda!


Pensem nisso! Pensem livre!

Sexta-feira, 6 de Fevereiro de 2009

O Teatro Mágico


Bom hoje vou criar post completamente LIVRE para divulgar uma banda que deve ser respeitada por nós do mundo OpenSource e por todo mundoo!! :D

Teatro Mágico é uma banda LIVRE que conheci na Campus Party, eles tocam um som meio diferente de todos os outros que eu conhecia... bom mas ai você vai me perguntar "por que a banda é LIVRE?"... vou lhes contar...

A banda disponibiliza TODAS as suas músicas para download gratuito... isso mesmo gratuito... você não paga nada e ouve músicas legais, legal principalmente pela iniciativa que eles tiveram de liberar suas músicas, uma estratégia de sucesso totalmente diferente diria :D

Bom é isso aí!! Desfrutem (começando pela biografia :D):

http://www.oteatromagico.mus.br/novo/paginas/

Abraço!