Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
FWBUILDER - Gestão de Firewall
Colaboração: Niumar André Klein
Data de Publicação: 18 de abril de 2008
Para saber mais sobre esta e outras soluções, visite o estande da Solis no FISL (Forum Internacional do Software Livre), entre os dias 17 e 19 de abril de 2008.
O Firewall Builder, disponível em www.fwbuilder.org, é um gerenciador de
firewalls para múltiplos servidores. Isso quer dizer que, em uma única
interface, é possível gerenciar diversos firewalls espalhados por vários
locais do mundo, bastando para tal, ter uma simples conexão ssh entre
uma máquina com Firewall Builder e outros servidores. Note que não há a
necessidade de instalá-lo nas máquinas que terão firewall.
A dica abaixo, partirá de um problema proposto e seguirá com sua solução,
não sendo apresentadas questões de instalação e configuração de serviços
que são pré-requisitos. Presume-se que haja um conhecimento prévio sobre o
Firewall Builder 2.1.18.
Você é o administrador de uma rede que interliga diversos servidores,
espalhados por seu estado, a um servidor central. Sendo que neste, roda um
aplicativo em determinada porta na qual trafegam dados entre todos os membros
da rede. Você obviamente deve ter um firewall para cada servidor, restringindo
acessos a essa porta. Até aí tudo bem. Mas agora imagine que necessite tocar a
porta deste serviço, sendo que sua rede tem 200 servidores! Você vai alterar
o firewall de servidor em servidor manualmente? Aí está uma das vantagens de
utilizar Firewall Builder. Você poderá alterar somente o objeto que contém a
porta do aplicativo e essa alteração passa a valer para todos os firewalls que
são gerenciados na mesma interface. Maravilha não é mesmo? Bom pelo menos até
aqui. Falta agora, depois de compilado, enviar os scripts de firewall gerados
pelo Firewall Builder para todos os 200 servidores. Através de seu instalador
você enviará e inicializará os 200 firewalls um a um através de conexões ssh a
cada servidor. Nesse ponto você se depara com 3 possíveis situações/problemas:
- primeira: que usuário e senha utilizar para o processo de instalação via
ssh do firewall de cada servidor?
- segunda: é necessário abrir o ssh para root para ter permissão de iniciar
o firewall na máquina remota?
- terceira: vou ter que digitar 200 vezes meu usuário e senha?
Para solucionar essas questões, você precisará seguir alguns poucos passos,
que devem ser realizados somente nas máquinas que receberão firewalls via
Firewall Builder.
Como primeiro passo, sabe-se que por medida de segurança não permite-se
acesso ssh pelo usuário root, faz-se necessária então a criação ou o uso de
outro usuário qualquer:
# useradd -s /bin/bash niumar
# passwd niumar
Agora, caso você estiver usando a opção AllowUsers do ssh de seu servidor,
não esqueça de acrescentar o usuário criado e reiniciar o serviço.
Abra um conexão ssh com seu novo usuário. Se conseguir está tudo ok e
poderemos avançar para o próximo passo.
O Firewall Builder depois que autenticar via ssh na máquina, copiará o
script de firewall para o lugar informado na configuração desse firewall
(/tmp/rc.firewall). Você notará que continuará dando erro na instalação do
firewall, mas o arquivo foi enviado corretamente. O motivo desse erro é a falta
de permissões para execução desse script, composto por diversos comandos que
necessitam de permissões de administrador para funcionarem. Como não estamos
utilizando o usuário root, o Firewall Builder, por padrão, já utilizará o
comando sudo para executar o firewall na máquina remota. Certifique-se de
ter o sudo instalado. Antes ainda de configurá-lo, você deverá criar um
grupo no qual todos os membros poderão instalar, reiniciar e parar o firewall.
#groupadd firewall
#usermod -G firewall niumar
Agora, necessita-se atribuir o grupo firewall ao script que está no /tmp
e movê-lo para o /etc/rc.d. (Não esqueça de alterar o caminho e conferir o
nome do script na configuração do Firewall Builder).
#chgrp root:firewall /tmp/rc.firewall
#chmod 770 /etc/rc.d/rc.firewall
#mv /tmp/rc.firewall /etc/rc.d/rc.firewall
Seguindo, necessita-se ainda, atribuir as permissões de execução ao script
do firewall através do comando sudo utilizado pelo Firewall Builder.
#sudoedit /etc/sudoers
Acrescente a linha: %firewall ALL=/etc/rc.d/rc.firewall
Pronto. Teste a execução desse script logado com seu usuário através do
comando:
#sudo /etc/rc.d/rc.firewall
A senha de seu usuário será solicitada e o firewall executado (dependendo
da distro usada, pode ser solicitada a senha de root. Neste caso acrescente
também a linha Defaults !lecture,tty_tickets,!fqdn).
Caso prefiras que seja exigida a senha de root para autenticação do usuário
recém criado, torna-se necessário incluir o parâmetro rootpw na opção
Defaults do mesmo arquivo e criar um par de chaves pública/privada no ssh
para que, na autenticação ssh não seja solicitada senha. Isso é necessário
porque o Firewall Builder usa a mesma senha, tanto para logar via ssh como
para usar no comando sudo.
Esses passos já deverão lhe proporcionar o gerenciamento remoto do firewall,
com seu usuário específico.
Existe ainda o problema da necessidade de digitar o usuário e a senha para
cada servidor que desejamos instalar.
Faça o seguinte, repita todos os passos acima para todos os servidores
e cuide para sempre utilizar o mesmo usuário e senha. Ao instalar pelo
Firewall Builder, marque a opção Batch Install (Executar instalação em
lote), coloque uma vez o usuário e senha e espere o Firewall Builder fazer
o resto por você.
Concluindo, a dica acima teve como intuito, promover e mostrar o potencial
dessa excelente ferramenta, bem como, através da demonstração de uma situação,
mostrar que problemas aparentemente complexos podem ser solucionados com
ferramentas básicas.
Veja a relação completa dos artigos de Niumar André Klein
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
- Currently 3.02/5
- 1
- 2
- 3
- 4
- 5
Avaliação:
3.0 /5
(228 votos)