DevSecOps

17 fev, 2012

Open Source na empresa: afinal, é possível?

Publicidade

Muito se apregoa sobre o uso de soluções open-source no mundo comercial como sendo algo economicamente viável e sem problemas de vírus, entre outras vantagens. Pouca gente tem condições para testar, avaliar e até mesmo defender o uso do open-source, seja por encarar como “perda de tempo”, seja por considerar que “soluções de mercado são mais fáceis de instalar e administrar”. Some a isso a falta de suporte “oficial” (a maioria recorre a fóruns e wikis), com o fato de o código-fonte estar disponível na Internet, e com o fato dos mais “nervosos” de plantão criarem uma celeuma, instalando o medo de usar aquela solução que parece (e muitas vezes é) tão boa.

Nem sempre soluções open-source baseadas em Linux são as mais indicadas, mas, hoje, muitas delas são oferecidas prontas, na forma de distros específicas para configuração de appliances.Permitindo, assim, a implantação muito rápida de praticamente qualquer coisa que se deseje. Vamos estudar alguns casos onde é possível implementar (e administrar) facilmente uma infraestrutura baseada em open-source para atender a qualquer necessidade de pequenas e médias empresas, com um investimento mínimo. Não entrarei em detalhes técnicos de configuração (howto’s), devido ao fato de que cada ambiente é único, e que a ideia é fomentar a experimentação dessas soluções – como eu fiz e tenho feito no dia-a-dia. Há bastante documentação nos fóruns dos desenvolvedores, basta procurar e adaptar.

Telefonia

O Asterisk é o líder inconteste das soluções VoIP open-source. A Digium, que criou o sistema para rodar em seu hardware, sustenta uma ampla comunidade de desenvolvimento e suporte e há cursos e treinamentos que, apesar de um pouco caros, oferecem as condições básicas para o profissional de TI mexer na plataforma. E até mesmo sem cursos formais! Quem se sentir confortável para aprender fuçando com os tutorias da Iternet e e-books sobre o assunto, pega o jeito. É fácil encontrar informação para setup e fóruns de discussão sobre todo tipo de problemas.

E o hardware? O Asterisk pode rodar na grande maioria dos hardwares x86 e x64 disponíveis no mercado (e até em máquinas mais velhinhas, desde que o número de ramais não seja elevado) e existem muitos fornecedores de placas FXO e FXS com preços relativamente baixos. Com um investimento inferior a R$5 mil, é possível montar um ótimo servidor Asterisk usando um bom processador com cache de pelo menos 4MB e um disco rígido SATA qualquer, uma placa E1 com DSP e cancelamento de eco, e um DDR E1, com 100 ramais e 30 canais – e isso é metade do valor de uma central de PABX comercial. E se a demanda não é massiva na telefonia, até uma plaquinha com processador embeeded, boot por flash drive e uma boa interface FXO para a linha telefônica convencional serve.

Mas quem precisa de hardware? Com o advento da Amazon no Brasil, ficou muito mais fácil ter um Asterisk – sem comprar hardware e sem esquentar os miolos para montar e instalar a coisa toda, pois existem AMIs específicas para subir seu Asterisk facilmente e em 90 segundos (existem AMIs da Voxilla prontinhas para subir um Asterisk, como o FreePBX e AsteriskNow). Após criar a instância, é necessário criar um Security Group com as portas para rodar o HTTP, SIP, SSH e os demais serviços necessários ao funcionamento do Asterisk. Um detalhe: já que é um PABX virtual e não tem o hardware DSP para o processamento de áudio e cancelamento de eco, o processamento de voz demanda muita CPU – pegue uma instância Small com 5 ECUs, se a demanda de telefonia for mais alta que um escritório comercial.

Tela de administração do FreePBX, disponível como AMI na Amazon Web Services.

Mas, se o Asterisk é virtualizado, como integrá-lo à rede telefônica pública? Existem provedores de serviços VoIP no Brasil que oferecem trunks SIP que já veem integrados à rede telefônica pública – com isso você não precisa de links mistos de voz e dados, placas FXO ou FXS, e pode integrar vários escritórios numa única plataforma convergente. Pode-se instalar ATAs, ou media gateways multicanais, nos escritórios e usar telefones comuns na infraestrutura VoIP – e o melhor, se houver a mudança de local a única coisa necessária é a internet funcionando no novo endereço. Pode-se, também, até oferecer o home-office aos colaboradores – eles podem atender os ramais onde estiverem porque estes se tornam portáteis.

E por falar em portabilidade de ramais, também é possível instalar o ramal do Asterisk na maioria dos smartphones modernos que rodam Android, Windows Phone ou iOS, e até tablets. Basta instalar soft-fones SIP clients nos mesmos. Não recomendo o uso em 3G, devido ao desempenho um tanto quanto insuficiente no Brasil, mas se houver Wi-Fi ao alcance, é certo que poderá utilizar seu ramal na lanchonete, num café, no aeroporto ou em qualquer lugar do mundo onde houver uma conexão wireless.

Armazenamento de dados

Quem não conhece o bom e velho Samba? Qualquer distro Linux pode incorporar um servidor de arquivos para usuários Windows com uns poucos cliques de mouse (ou toques de teclado, se usar o SSH). Mas e se você tivesse uma maneira de instalar rapidamente um servidor com tudo o que fosse necessário (e mais) para distribuir arquivos numa rede SoHo? Essa maneira existe, e se chama NAS (Network Acessible Storage).

Há fabricantes de NAS que incorporam em seu firmware um Linux embarcado em flash, e é bem fácil de instalá-los e administrá-los – basta acessar o IP do NAS via browser, como um roteador doméstico. Esses equipamentos permitem várias coisas além de simplesmente distribuir arquivos pela rede: teste dos HDs para verificar falhas, montagem de volumes em RAID ou strapped, integração com AD, servidor de impressão, backup em nuvem (MyCloudNAS, Amazon S3 e outros serviços do gênero).

É sempre prudente planejar uma estrutura mista de storage, com o NAS armazenando tudo localmente (alta disponibilidade) com backup failover em um serviço cloud como o S3 da Amazon (o que permite o restore em caso de perda do servidor por incêndio, roubo ou intempéries). Mas a um custo médio de R$5 mil nas versões mais simples de NAS comerciais, o risco compensa o investimento?

Faça o seguinte: compre um servidor barato, ou monte um com pelo menos uns 4GB de RAM e tudo onboard, mas com interface S-ATA RAID e instale o FreeNAS, que é uma distro baseada em FreeBSD para você configurar seu próprio NAS. Ele não deve quase nada aos equipamentos comerciais. Compre um pendrive de 4GB de boa marca e instale o FreeNAS nesse pendrive “bootável” (prática recomendada pelo desenvolvedor da distro, pois a instalação “mata” o disco inteiro para ser instalada e não permite gerenciamento das partições), e libere os discos para o armazenamento dos seus arquivos.

O gerenciamento do FreeNAS é via browser, através do seu IP (ou se tiver um DNS na sua rede pode acessar pelo nome), sendo possível criar os volumes, os RAIDs ou straps, usuários, compartilhamentos e permissões de acesso (ele permite AFS para Apple, SMB para Windows e também compartilhamentos específicos para UNIX). Também é possível agendar os testes de SMART dos discos e monitorar se é necessária manutenção ou troca dos mesmos. Também tem gráficos e estatísticas de tráfego de dados e uso de disco, e backup para iSCSI e outras modalidades de armazenamento externo e em nuvem.

O FreeNAS também tem servidor FTP, DNS dinâmico, SSH, LDAP, VLANs e outras features muito interessantes para flexibilidade dentro da maioria dos ambientes e também para ter seus dados seguros e de maneira onipresente.

Segurança na rede

Sabe aquele roteador que existe na maioria dos escritórios (e provavelmente na sua casa também)? Pois é, ele oferece uma segurança mínima, mas que não é o suficiente. É possível violar essa segurança e fazer uma boa bagunça no ambiente de rede – basta que uma máquina tenha uma vulnerabilidade, um worm, ou um malware, pois eles abrem uma brecha para ataques.

Os antivírus funcionam, mas não impedem que os usuários cliquem “naquele link do e-mail que o banco lhe enviou” (e que obviamente é fake, mas o coitado não sabe). O que fazer? Adotar um firewall mais robusto seria o ideal e a opção lógica, mas o custo de soluções comerciais baseadas em appliances é de cerca de US$2,5 mil ou mais. Se o dinheiro é problema para você (ou para o seu cliente) e você busca uma solução de segurança confiável, existem algumas opções de distros para appliances de firewall muito interessantes – e que não demandam um hardware muito robusto, dependendo da quantidade de usuários na rede.

Uma das soluções é o Endian, uma distro para configuração de appliances de firewall, que tem Iptables, OpenVPN, DHCP, antivírus, proxy e várias opções de configuração de uso, permitindo inclusive a configuração de DMZ em wireless. Com ele é possível prover um access point com uma SSID exclusiva para visitantes da empresa e totalmente isolada do ambiente de rede. A versão Community é gratuita e pode ser usada tranquilamente em um ambiente corporativo, desde que seja usada uma CPU com pelo menos 4GB de RAM e um disco rígido grande o suficiente para armazenar os logs desejados (configuráveis).

Tela de administração do Endian Firewall Community

O Endian oferece estatísticas de banda de rede (com QoS) e logs de todas as formas – a mais útil é a detecção de intrusão, que permite que máquinas que estejam rodando malwares (como no exemplo acima) sejam identificadas pelo IP e possam até mesmo ter seus MAC addresses banidos manualmente (você isola o Mac address na interface administrativa do Endian) até que o problema seja sanado pelo suporte local. E uma coisa bem interessante é poder fazer o backup das configurações e logs para que, em caso de desastre, o Endian possa ser reinstalado e as configurações sejam refeitas em menos de meia hora.

Assim como o Endian, há outras distros para appliances de firewall: IPCop e o SmoothWall – ambos têm features similares ao Endian, que aliás foi desenvolvido a partir delas.

Solução “tudo-em-um”

Se os recursos para compra de hardware são limitados (uma máquina para firewall, uma para o NAS e assim por diante), ainda assim é possível disponibilizar um appliance com todos os serviços de rede consolidados. Nem pense em colocar uma CPU velha rodando Windows e compartilhando pastinhas na rede – isso é ineficiente e uma “economia mal feita”, além de não ter segurança nenhuma e ser um pesadelo para o administrador. A maneira tradicional, via Linux, é instalar uma distro Desktop (por exemplo, o Ubuntu) com os serviços necessários (CUPS, Samba, IPTables, entre outros) e permissões de acesso. Mas e se houvesse uma maneira de fazer isso sem perda de tempo e de forma simples? Essa maneira existe e se chama Zentyal.

Ele é uma distro para appliances all-in-one baseada no Ubuntu. Com ela é possível configurar no mesmo servidor: um firewall com detecção de intrusão, um diretório (similar ao AD), um print server, um fileserver, um PABX (Asterisk), um firewall, groupware (plataforma ce colaboração on-line, backup, gerenciamento de domínios, publicação de intranets e muito mais. E o melhor: ele é totalmente flexível e expansível. Você só instala aquilo que vai usar, administra tudo via browser e pode, também, integrá-lo a uma floresta de servidores de diretório (AD) pré-existente.

Conclusão

Os puristas podem torcer o nariz para estas soluções prontas e preferirem configurar tudo sozinhos. Não tenho nada contra essa prática, mas isso gera custo, devido ao tempo gasto na configuração e manutenção (o famoso dilema “make or buy”), além de deixar o usuário “escravo” de alguns profissionais que instalam coisas que “só eles conhecem”. Penso que, eticamente, o que importa é a transparência para com o usuário, o custo (e isso envolve tempo gasto na configuração) e eficiência, que se revertem em satisfação do cliente – e indicações.

Open-source funciona e há cases de empresas grandes usando as soluções descritas aqui – basta olhar os sites dos desenvolvedores para ver que é possível usar muito bem essas soluções. Eu uso no meu dia-a-dia e recomendo-as conforme as necessidades dos meus clientes.

Já está na hora de “sair da caixa”, dar uma espiada em volta e conhecer coisa nova, porque aquelas soluções que já conhecemos bem – e custam caro – podem não oferecer aquilo que open-source já oferece hoje. Experimentar open-source é bom, é de graça e traz conhecimento!