Posts Tagged ‘ Software Livre

SME Server–Servidor Linux All-In-One para Pequenas e Médias Empresas

Existem empresas de pequeno e médio porte onde a área de TI por questões culturais é completamente esquecida. São empresas com poucos funcionários que utilizam computadores ou em que uma possível parada na rede não irá parar toda a empresa (difícil imaginar um ambiente corporativo assim nos dias atuais não é?).

No mundo das fábricas de pequeno porte (que existem aos montes no Brasil todo, por exemplo) é bem comum encontrar computadores velhos, com Windows Jack Sparrow Edition e ninguém para cuidar da área de TI.

tux

Com alvo esse tipo de empresa, foi criada a distribuição SME Server que também é conhecida como “e-smith”. Totalmente baseado no CentOS o SME Server está chegando em sua oitava versão que ainda está em fase beta e é baseada já na versão 5 do CentOS, o que traz além de estabilidade, uma chuva de atualizações em seus pacotes, ficando mais perto das versões atuais.

Eu conheci o SME Server há um ano em uma empresa que estava trabalhando em sua customização para implantação em diversos clientes, foi uma boa experiência mas no final descobrimos que para o objetivo do projeto e com a equipe envolvida, o SME não era a melhor solução.

Deixando essa apresentação para trás, o SME ficou guardado como uma solução mais simples, que deve ser usada como vem e com o mínimo de alterações possíveis, afim de evitar problemas com atualizações (a distribuição tem também repositórios específicos, além de poder contar com os repositórios tradicionais do CentOS) e até mesmo com configurações automáticas (o que é um dos fortes do SME Server).

Um dos detalhes que mais me chamaram a atenção no SME Server é o painel de gerenciamento, totalmente configurável via WEB Browser e com uma interface simples e intuitiva (na maioria dos casos).

image

Entre as diversas ferramentas presentes, já com configurações básicas prontas e scripts que tornam sua instalação plug & play, temos um pacote básico que pode atender à qualquer empresa que necessite de uma rede com serviços básicos. A lista abaixo mostra alguns dos principais aplicativos disponíveis:

  • SAMBA – Servidor de domínio, compartilhamento de pastas e impressoras. Aqui vale lembrar que há uma integração do Open LDAP, mas esta fica totalmente transparente para quem usa apenas a interface WEB, pois essa roda scripts que fazem tudo o que é necessário em ambos os serviços desde a criação de um novo usuário, até a adição de permissões detalhadas em pastas e arquivos.
  • Apache 2, PHP5 e MySQL 4 – Com cada vez mais mini-aplicativos desenvolvidos em PHP e que podem ajudar pequenas empresas, nada melhor do que um LAMP completamente integrado já desde a instalação do S.O. e com também todo o gerenciamento através de sua interface WEB. Além de PHP o servidor já conta com bibliotecas Phyton e Perl.
  • PPTPD e OpenVPN – Servidores de VPN que são fáceis de configurar e oferecem bastante segurança para esse nível de empresa.
  • Qmail e Horde – Serviço interno de email que conta com toda a qualidade e robustez do Qmail, junto ao Horde, uma das mais famosas e utilizadas interfaces de webmail que existem.

Um detalhe que merece destaque é o software de Backup do SME Server, que pode ser utilizado em conjunto com o excelente BackupPC, como sempre, tudo via web.

O instalador do SME Server é o Anaconda, que também é utilizado no CentOS, Fedora e RedHat, com a interface traduzida para nossa linguagem, fica mais fácil de se trabalhar (ainda mais quando estamos falando de pessoas com pouca familiaridade com Linux).

image

As perguntas feitas pelo instalador não são das mais amigáveis, mas com um bom tutorial em mãos muitos conseguem montar um pequeno server com o SME. Provavelmente no futuro eu crie uma nova postagem explicando passo-a-passo como instalar essa distribuição.

As configurações iniciais do SME Server são feitas através de um Wizard que é aberto logo no final da instalação, nele você já escolhe opões como DHCP, DNS, ativa ou desativa Proxy e etc. É possível também definir um serviço de DNS Dinâmico.

Bom, resumindo podemos dizer que o SME Server cumpre bem o papel de pequeno servidor para pequenos negócios onde não existe uma pessoa ou poucas pessoas para gerenciar recursos de rede.

Em breve devo colocar maiores informações sobre como instalar e configurar algumas funções no SME.

Para saber mais sobre o projeto e fazer o download da ISO de instalação, visite aqui.

[]’s

Creative Commons License

Print

SQL Injection? Aqui não!

Bom, aqui não é bem “aqui”. Aqui é logo ali numa outra aplicação nesse mesmo servidor mas fora do Word Press. Não entendeu? Não tem problema, isso não tem importância mesmo :)

cadeado

SQL Injection para quem não sabe (ou Injeção de SQL em português) é uma técnica onde um usuário mal intencionado ou um invasor pode se aproveitar de falhas na programação de um sistema para ter elevação de permissões ou até mesmo acesso à dados confidenciais e direito de exclusão de informações.

Como funciona

Um exemplo clássico de SQL Injection é conseguir burlar uma página de login ou de verificação de nível de acesso acrescentando uma condição sempre válida na execução de querys, por exemplo, eu tenho um sistema que para validar o login do usuário executa uma query no banco de dados da seguinte forma:

SELECT login, senha FROM users WHERE login = ‘login’ AND senha = MD5(‘senha’);

O código acima não ilustra uma linguagem especifica, apenas SQL ANSI e uma chamada à função MD5 para verificação da senha fica criptografada no banco de dados com o mesmo algoritmo. Com isso eu faço um “if” que verifica se a consulta trouxe um resultado fazendo com que uma flag se transforme em “true” e libere acesso.

Hora da Maldade

Agora que já sabemos como funciona o sistema normalmente, imaginamos se onde está posicionada a variável “login” vem o seguinte código:

‘ OR 1=1; –

Já sacou a jogada? Ainda não? Vamos montar a string completa:

SELECT login, senha FROM users WHERE login = ‘’ OR 1=1; –’ AND senha = MD5(‘senha’);

Deu pra entender agora? Com aquele código no login conseguimos fechar o espaço de igualdade do login e colocar um OR 1=1 que sempre irá retornar true, ou seja, acesso liberado ao sistema. Para evitar erro na execução da consulta colocamos os “–” que simbolizam um comentário.

Efeitos

Talvez apenas o exemplo citado acima não seja o suficiente para invadir um sistema que não tem proteção, mas em geral é! E o pior, isso abre precedentes para a execução de mais código, por exemplo:

‘ DELETE FROM users; –

Valem também consultas para obter dados de outros usuários ou até mesmo inserir informações, já que se você tiver nomes de tabelas (que geralmente não são muito criativos) você pode fazer um DELETE, nada te impede de fazer um INSERT :)

Como Evitar

Evitar uma injeção de SQL não é tarefa complicada nem que exige avançados conhecimentos de linguagens de programação. O simples trecho de código em PHP abaixo já serve para evitar dois dos caracteres mais perigosos, igualdade e aspa simples:

$usuario = str_replace("’", "", $_POST['username']);
$usuario = str_replace("="", "", $usuario);

Simples assim! Localize todas as aspas simples da String e remova e depois sinais de igualdade e remova! Pronto, seus dados estão prontos para serem usados e direcionados para a query.

Bom, era uma dica rápida, espero que possa ajudar quem está começando e ainda não tem muita noção de segurança em sistemas.

[]’s

Creative Commons License

Print

Vai da índole de cada um.

Na era atual o conhecimento está disseminado, a informação está disponível para todos de graça, em qualquer lugar e a qualquer momento. Esta com uma dúvida sobre um trecho de código em Java? Pesquise no Google, as 13:00 de hoje vejam o que consegui:

googleJava

É isso mesmo. São três milhões, quinhentos e cinquenta mil resultados sobre como fazer um hello world em Java. Agora vamos a absurda pergunta “Como construir uma bomba”, claro que agora surgiram resultados que variam de piadas até documentos técnicos bem interessantes (e assustadores em certo ponto). Pra que alguém procuraria como construir uma bomba? Não precisa de nenhum motivo pragmático do tipo “destruir a civilização judaico-cristã ocidental”, basta a professorinha pedir e lá vai um bando de 30 ou 40 alunos cheios de curiosidade consultar o tio Google. O conhecimento é o mesmo, oferece a esses alunos a oportunidade de construir algo maléfico mas o conhecimento é geral, a índole é que varia.hacker1

Estou desenvolvendo um script em Bash para Linux onde alguns arquivos são lidos e seus dados são enviados para um servidor MySQL instalado num super. datacenter, conhecido como meu quarto. Para enviar o texto pensei em diversas maneiras que variaram (e muito) mas a opção mais segura que encontrei é simples e funcional, preencher um formulário HTML com os dados e enviar via POST para o Apache onde um simples script em PHP faz a inserção dos dados no banco, agora surge o problema: Como montar um cabeçalho POST e dispara-lo utilizando o shell do Linux?

Desistir da idéia não é uma opção em tempos googléicos, recorri ao velho novo buscador e encontrei diversos exemplos em PHP, Phyton, Ruby, Perl e nada do bendito Bash, em um resultado ao qual o titulo me chamou a atenção encontrei a solução: Utilizar o NetCat (descrito como “Canivete Suíço do TCP” nesse artigo que é uma boa referência pra quem não sabe o que estou falando).

esquema_33 Agora que já obtive a solução para o meu problema vamos ao titulo do artigo que me abriu a cabeça para essa solução: HTML Form Brute Force. Interessante não é? Um tutorial sobre como utilizar um script em shell para ficar testando senhas aleatórias em um site qualquer que utiliza o método POST em algum formulário de autenticação. O pior, o negócio funciona! Eu montei um laboratório aqui para testar o script, ele consome banda excessiva e um processamento elevado além de ser demorado, mas como disse, funciona! Há ainda dicas de como otimizar seu script para que ele faça até 500 tentativas por segundo.

O que podemos concluir com isso? No mundo atual temos muitos “espertos” que sabem que um dia “a casa cai véi” mas insistem em tentar utilizar tais ferramentas para fins ilegais. Além do NetCat que estou me familiarizando melhor agora, eu gosto bastante do “nmap” que pode ser utilizado para exibir uma lista de portas abertas em um determinado host. Já usei o Nmap para monitorar serviços e verificar se alguns scripts que criei que deveria alterar algumas portas de serviços em determinados horários estava funcionando.

No fim todos tem direito à esse conhecimento, acho que isso deve reduzir a ignorância e talvez nos leve a um mundo mais civilizado mas enquanto as pessoas “espertas” tentarem coisas do tipo roubar senha de MSN/Hotmail ou até hackers de verdade que tentam invadir bancos e empresas vamos apenas garantir o emprego e bom salário dos profissionais de segurança (seja em TI ou nas ruas).

OBS.: Pelo amor do seu Windows, não baixe programas que prometam descobrir senhas do MSN alheio, não coloque seu usuário e sua senha em nenhum formulário ou em e-mail para contas do tipo pass.recovery2009@hotmail.com.

[]’s

Creative Commons License

Print

Depois do Windows 7 – Ubuntu 9.10

Já estou baixando! Por incrível que pareça à velocidade ridícula de 39KBps (acho que o pessoal da UFPR está com o link sobrecarregado).

UbunTuxAngel.jpg É isso ai galera do software livre, quem não aguentava mais ficar ouvindo falando de Windows 7 pra cima e pra baixo a Canonical também faz seus anúncios, sem direito à toda festa do mundo Microsoft mas faz. Hoje foi lançada a versão 9.10 do revolucionário sistema para desktops batizado de Ubuntu.

A lista de “features” da nova versão está disponível nesse link. Dentre as melhorias houveram implementações nos clientes de e-mail e mensagens instantâneas, multimídia (imagens, vídeos e músicas) e também nos aplicativos de escritório. Além disso, a equipe de desenvolvimento aprimorou os itens ligados à acessibilidade que é o foco dessa distribuição.

O download da imagem do sistema para Desktop, Netbooks e Servidores pode ser feito aqui. Em versões de 32Bits e 64Bits.

UbuntuStrapLogo

[]’s

Creative Commons License

Print