Nesta primeira parte, gostaria de apresentar o que compõe o sistema de modo geral:
Sistema operacional GNU/Linux CentOS 5.6 com kernel 2.6.28-9 customizado
Netfilter 2.22 com suporte à camada 7 - integrado ao kernel
Firewall iptables 1.4.10 - integrado ao kernel
Proxy Squid 2.6-Stable21 + squidGuard 1.3-2 + Lista negra versão 16/02/2015
DNS BIND 9.3.6
DHCP 3.0
Apache 2.2.3
PHP 5.1.6
MySQL 5.0.95
NTP 4.2.2p1
SNMP 5.3.2.2
Rsyslog 3.22.1
Sarg 2.3-9
Cacti 0.8.8c
SendEmail 1.56
Fail2ban 0.8.14
FWadmin: plataforma web utilizando linguagem de programação PHP com integrações via shell script com o sistema operacional, permitindo assim interagir com os diversos serviços nele disponibilizado.
[4] Comentário enviado por jwolff em 27/02/2015 - 17:09h
Parabéns! Cara, estou quase fechando a compra de um Appliance para gerenciar a rede da empresa na qual estou trabalhando, mas antes vou testar a sua compilação de soluções, na esperança de economizar muitos reais...
[5] Comentário enviado por wmarino em 27/02/2015 - 17:19h
Obrigado pessoal!
Jwolff, quantos computadores sua rede possui? Atualmente existem dois servidores nesses moldes rodando em ambiente de produção que atende certa de 400 clientes cada um, rodando perfeitamente. Caso precise de um apoio na implantação conte comigo. Com certeza o sistema irá atender suas necessidades.
[6] Comentário enviado por willian.firmino em 28/02/2015 - 09:36h
Vi que você utiliza um release antigo da versão 5 do Centos, "5.6", atualmente a versão esta no no 5.10 que corrige vários bugs e possui varias atualizações de segurança, utilizando esta versão 5.6 seu sistema não fica vulnerável ? qual a vantagem em utilizar seu sistema no lugar do pfsense por exemplo?
[7] Comentário enviado por wmarino em 28/02/2015 - 14:23h
Olá amigo. A versao de instalação é a 5.6. Depois da instalação é executa a atualização de todo o sistema através do yum update. O kernel nesse momento também é atualizado, entretanto posteriormente compilo o kernel com a versão 2.6.28, um pouco mais antiga da versão da atualização executada.
O motivo de utilizar esta versão do kernel é que ela é totalmente compativel com o protocolo Netfilter L7 (é possível filtrar pacotes na camada 7) e também é possivel incluir o iptables diretamente ao kernel, garantindo mais segurança ao sistema em geral, pois o iptables nao será simplesmente um modulo que pode ser removido do kernel, mas sim ele fará parte do kernel.
Outro motivo de customizar o kernel é que consigo, atraves dos modulos incluídos na customização, realizar controle de banda para os clientes, função importantissima na rede.
Utilizo o CentOS pois acredito que ele é um S.O. robusto e estável, por ser baseado em RedHat, além de ser o mais compatível com todas as funcoes que o FWadmin necessita.
[9] Comentário enviado por jwolff em 02/03/2015 - 08:48h
[5] Comentário enviado por wesleymarino em 27/02/2015 - 17:19h
Obrigado pessoal!
Jwolff, quantos computadores sua rede possui? Atualmente existem dois servidores nesses moldes rodando em ambiente de produção que atende certa de 400 clientes cada um, rodando perfeitamente. Caso precise de um apoio na implantação conte comigo. Com certeza o sistema irá atender suas necessidades.
Abraços
Rede pequena, menos de 50 usuários. Vou fazer os testes, qualquer coisa te do um toque. Valeu!
[10] Comentário enviado por willian.firmino em 02/03/2015 - 09:39h
Por acaso, você tem algum manual ou material dos erros mais comuns e possíveis soluções do sistema adquirido ao longo de sua utilização ? desculpe perguntar pois trabalho em uma prefeitura e nosso firewall BRMA caiu, estamos em busca de outra solução de preferencia free para substituição, estamos testando o pfsense mas ele é um pouco complexo, estou considerando testar a sua solução, porém com o pfsense conseguimos ajuda na comunidade, a quantidade de clientes gira em torno de 500.
[11] Comentário enviado por wmarino em 02/03/2015 - 10:58h
Willian, bom dia
Infelizmente não possuo documentação das atualizações realizadas.
Sobre os erros ou falhas que apresentavam, sempre que era possível eu corrigia, ou melhor dizendo, aprimorava o sistema de acordo com as necessidades. Na verdade, o sistema apenas gera os arquivos de configurações que serão utilizados pelo iptables, squid, SquidGuard e outros.
Vários outros sistemas no mercado tem a mesma função do FWadmin: ser uma interface amigável para configuração dos serviços providos pelo servidor de firewall, porém as empresas mascaram isso e dizem ser uma solução completa desenvolvida por elas, mas na verdade são apenas uma interface.
Conheci o pfsense na faculdade, não posso dizer se ele é melhor ou pior que o iptables. Levo sempre em consideração o que mais me agrada para a ocasião, que no meu caso sempre foi o iptables.
O FWadmin está rodando em ambiente de produção em dois servidores do meu antigo local de trabalho, também uma prefeitura, na qual eu era gestor de TI. Creio que nós já passamos por problemas similares e tenho certeza que esta ferramenta irá suprir todas as suas necessidades com tranquilidade.
Entre em contato comigo através do canal Contato, no meu site: www.wmarino.com.br. Vamos manter contato por lá, pode ser? Vamos colocar esse sistema pra rodar em seu ambiente.
[13] Comentário enviado por willian.firmino em 02/03/2015 - 15:44h
Ok, estou baixando o CentOS 5.6, pelo link que você passou, para começar os testes, porém DVD é apenas por torrent, e como esta versão é bem especifica a quantidade de seeds é ridícula, se alguém tiver um outro mirror, com o ISO direto para download dos DVD,s, posta ai por favor.
[14] Comentário enviado por wmarino em 02/03/2015 - 16:05h
Willian, sua observação foi importante. Na verdade nao lembro se testei com a iso da versão 5.10. Vou realizar em breve este teste e se fucionar vou solicitar a atualização do artigo
Mas por enquanto, por favor, faça testes com a versao 5.6 mesmo, para que não haja problemas.
[15] Comentário enviado por LeaoNarrdo em 04/03/2015 - 16:31h
Cara parabéns pelo Artigo, bem detalhado.
De 09 Empresas que tenho contrato em apenas uma tenho firewall, quero melhorar essa parte de segurança. Uso o PFSense porém ele vem apresentando alguns problemas, vou testar esta solução.
[18] Comentário enviado por wmarino em 09/03/2015 - 09:17h
Leonardo,
sim. Conectividade Social, por exemplo, já tive problemas passando pelo proxy. No FWadmin, menu sistema, Iptables, já existem algumas regras pré-definidas para acesso aos endereços da Conectividade Social.
SEFIP, SEFAZ, NFE e outros, geralmente utilizam portas que não são 80 e 443, portanto, o perfil de acesso deve atender estas portas.
Você também pode mapear os endereços e portas que são utilizados nessas aplicações e criar regras no Iptables. Assim você consegue manter um perfil de acesso mais baixo para o usuário e garantir que as conexões sejam estabelecidas sem causar transtornos para o usuário.
[19] Comentário enviado por renatogf em 10/03/2015 - 11:59h
Cara, simplesmente fantástico! Parabéns pelo ótimo trabalho e principalmente por compartilhar isso com a comunidade. Já vou instalar uma VM pra testar.
Não tive o problema do amigo acima pra baixar o torrent, no momento estou com 1666 seeds e quase 50% concluído em pouco mais de 20 minutos.
Uma pequena dúvida, posso desabilitar alguns serviços como por exemplo DNS e DHCP? Posso usar um squid usando autenticação do AD? Caso não seja possível a autenticação, posso usa-lo somente como router/firewall e monitoramento?
[20] Comentário enviado por wmarino em 10/03/2015 - 18:44h
Olá Renato,
Desabilitando esses serviços você poderá ter problemas sim. O principal seria o DHCP.
Na ferramenta, nas configurações do DHCP, você define qual a range que será utilizada. No controle de usuários, os ips que estão configurados no range DHCP terão um perfil padrão, com algumas restrições de acesso.
Você utilizando outro servidor de DHCP, o controle não seria eficaz, pois, por exemplo, o cliente A está configurado no FWadmin com o IP 192.168.0.10 e com o perfil de acesso específico para esse cliente. Caso o cliente A obtenha através de outro servidor DHCP um outro IP, consequentemente o perfil de acesso não funcionará.
Lembre-se que, mesmo tendo o serviço DHCP ativo no FWadmin, você consegue amarrar o cliente a um determinado IP. Sempre ele irá possuir aquele mesmo IP.
A função DHCP é extremamente importante neste servidor. Já ví outros sistemas de firewall rodando em empresas cujo o servidor DHCP e firewall era separado. O controle realmente não funcionada de forma satisfatória.
Sobre o servidor DNS, embora não seja de extrema importância, também recomendo que esteja ativo. Nem que seja como um servidor SLAVE de seu domínio AD, por exemplo.
Também é possível, porém ainda não testei, configurar o DHCP para "trabalhar" em conjunto com o DNS. Uma vez que uma maquina entra na rede, ela é cadastrada no DNS também.
Portanto, recomendo que possua, ao menos, o serviço DNS interno de sua rede no firewal também.
Sobre o Squid, ele trabalha de modo transparente, o que não permite autenticação, porém, incluí uma função que é possível realizar a autenticação através de um simples "captive portal", porém, utiliza usuários locais do FWadmin para se autenticar. No momento não tenho criado um módulo que utilize o AD para autenticação, ou algum outro servidor RADIUS. Também não sei se é possível, teria que testar mesmo.
Sobre o checklist, é possível utilizar somente esta função, mas teria que customizar toda a instalação pra que somente ela ficasse ativa.
Renato, obrigado pelos comentários.
Caso prefira, entre em contato comigo por e-mail e me passe as suas necessidades detalhadamente.
[21] Comentário enviado por renatogf em 11/03/2015 - 00:11h
Boa noite, Wesley.
Primeiramente queria te dar os parabéns novamente, o artigo ficou tão bom e tão completo que fiz a instalação toda muito rápido e sem NENHUM erro, realmente impressionante.
Sobre as ferramentas, dispensam qualquer comentário, não tenho nem palavras pra descrever o quão completo e eficiente é. Recomento a todos testarem. Passei duas horas dando uma olhada em tudo e nem vi o tempo passar, rodei num laboratório de 10 máquinas. Infelizmente não poderei implantar aqui na matriz da empresa por agora pela quantidade de usuários e topologia da rede (600 usuários, squid integrado ao ad e outras coisas que me impedem no momento, seria uma mudança muito grande, que precisa de mais estudos e demandaria um tempo que não temos no momento), mas já enviei uma pequena demonstração pra direção de TI da empresa pra tentar colocar a ferramenta nas filiais. Estarei te enviando um e-mail amanhã pra gente bater um papo sobre o desenvolvimento, custos e etc. Muito obrigado, muito obrigado mesmo, genial o seu trabalho.
[23] Comentário enviado por adailtonlp em 10/07/2015 - 23:53h
Wesley, boa noite.
parabéns pelo excelente artigo. Seu trabalho no desenvolvimento desta ferramenta é sensacional e uma iniciativa impar.
testarei a sua ferramenta. Obrigado por compartilhar seu conhecimento.
Att., Adailton Lima Pereira - Goiania - GO
[26] Comentário enviado por helton1234 em 23/08/2015 - 21:35h
Boa noite
muito bom W. marino o firewall ocorreu tudo bem na instalação
mais ocorreu um erro que falhou
como se não tiver -se um ip invalido no diretório abaixo
Status: configurando servicos
Iniciando httpd: Syntax error on line 10 of /etc/httpd/conf.d/cacti.conf:
The specified IP address is invalid.
[FALHOU]
Status: configurando o sistema
Procurando 127.0.0.1
Conectando com HTTP em 127.0.0.1.
Alerta!: Impossível conectar ao servidor remoto.
lynx: Não foi possível acessar o arquivo principal http://127.0.0.1/fwadmin/machine_install.php
Status: configurando servicos
Parando o sshd: [ OK ]
Iniciando sshd: [ OK ]
Parando named: [ OK ]
Locating /var/named/chroot//etc/named.conf failed:
[FALHOU]
Iniciando dhcpd: [FALHOU]
Desligando o servidor de registros do kernel: [ OK ]
Desligando o servidor de registros do sistema: [ OK ]
Iniciando o registrador do sistema: [ OK ]
Parando o squid: . [ OK ]
2015/08/23 20:55:17| Creating Swap Directories
Iniciando squid: . [ OK ]
Limpando arquivos temporarios
ATENCAO: Acesse o sistema atraves do endereco http://fw.matrix.com.br:8081/fwadmin (ou http://:8081/fwadmin) utilizando o usuario 'admin', senha 'wmarino'
creio que seja so esse erro aki
Iniciando httpd: Syntax error on line 10 of /etc/httpd/conf.d/cacti.conf:
The specified IP address is invalid.
[FALHOU]
no vi no diretório /etc/httpd/conf.d/cacti.conf o arquivo
Alias /cacti /etc/httpd/paginas/cactilias /cacti /etc/httpd/paginas/cacti