terça-feira, 22 de abril de 2014

Uma interface gráfica para o iptables

Um dos grandes obstáculos para quem está começando a usar o iptables é entender a sua interface de linha de comando. Veja o exemplo abaixo.

# iptables -t nat -A PREROUTING -s 172.16.1.12 -d 8.8.8.8 -p udp --dport 53 -j DNAT --to-destination 172.20.1.1

Temos que admitir que pegar um firewall com 200 linhas parecidas com essa aí para administrar é um pouco sinistro até para quem já conhece o iptables, quanto mais para quem está começando.

O Fwbuider é uma ferramenta gráfica que torna a administração do iptables semelhante a do Checkpoint.


A idéia é criar as regras baseadas em objetos. Há vários objetos que podem ser criados, como sites, IPs, redes, portas, protocolos, etc. Os objetos podem ser arrastados para dentro das regras. Além de facilitar a administração ocultando a linha de comandos do Iptables com o Fwbuilder você pode checar se as regras estão corretas e se há regras conflitantes ou duplicadas. Somente depois de você se certificar de que tudo está correto é que as regras poderão ser aplicadas nos equipamentos. Também é possível administrar vários equipentos usando uma única interface.

Vamos começar instalando um Fwbuilder.

# apt-get install fwbuilder

Agora basta chamá-lo pela linha de comando para que a tela acima seja exibida.

$ fwbuilder

Clique no botão Create new firewall. Digite o nome do equipamento. É necessário também dizer que tipo de firewall você tem. O Fwbuilder tem suporte ao ASA, Iptables, IPFW, entre outros conforme podemos ver nas figuras abaixo.




É possível deixar o Fwbuilder encontrar as interfaces de rede sozinho, ou especificar manualmente. Eu escolhi manual.


Essa é atela de configuração do meu novo firewall. Do lado esquerdo estão os objetos.  Na parte da direita temos a regras de firewall, NAT e rotas da nossa política. Ainda não temos nehuma regra. Clicando em um objeto qualquer será mostrada, na parte de baixo, os dados deste objeto.


Vamos criar nosso primeiro objeto. No lado esquerdo, abra a pasta Objects e clique com o botão direito na Address e escolha New address. Na parte de baixo digitamos o nome do objeto (Administrador) e o seu IP (172.20.120.4).


Podemos também criar objetos de portas TCP/UDP, mas no campo Library localizado logo abaixo nos ícones, já há uma lista com as portas mais conhecidas.


Vamos clicar no nosso objeto firewall e dar um duplo clique em Routing para podermos criar os roteamentos. Agora, no lado direito, clique com o botão direito e escolha Insert New Rule.



Podemos arrastar os objetos para criar as regras. Crie os objetos necessários, como gateways de rede, portas TCP e UDP e redes. Também é possível agrupar objetos. 

Agora vamos criar as regras de firewall. Dê um duplo clique em Policy. Agora, no lado direito, clique com o botão direito e escolha Insert New Rule. Agora arraste os objetos necessários para criar as regras de firewall. Você pode colocar um comentário em cada regra para facilitar a administração.

Para quem está acostumado com as regras do Iptables, é possível verificar como ela será traduzida pelo Fwbuilder quando for aplicada no servidor. Para isso, clique com o botão direito na regra e escolha Compile Rule X. Na parte de baixo serão mostrados os comandos necessários para que a regra seja aplicada. 


É possível agrupar as regras. Por exemplo, podemos agrupar todas as regras da equipe de TI, outro grupo para regras de um sistema específico, etc. Para fazer isso, selecione as regras e clique com o botão direito. Agora escolha New Group.


Após digitar o nome, as regras ficarão agrupadas conforme a imagem abaixo.


Antes de aplicar as regras ao teu firewall é necessário salvar a política. Clique no ícone do Save.


Escolha o nome do arquivo e clique em Gravar. Agora vamos compilar a política clicando no ícone Compile. Esse processo verifica se tudo está ok, se não há regras conflitantes ou duplicadas.


Certifique-se de que o campo Compile esteja selecionado. Clique em Next.


Cheque as mensagens de erro. No nosso caso a política está correta. Clique em Finish. Agora vamos aplicar a política ao firewall. Clique no ícone Install.


Certifique-se de que o campo Install esteja selecionado e clique em Next. Antes de aplicar a política, é necessário criar a pasta /etc/fw no firewall.



Agora você precisa colocar os dados para conectar no firewall. Digite o usuário (geralmente o root) e a senha e clique em Install. 


Repare se na tela apareceu Sucess. Pronto! As regras de firewall e de NAT e os roteamentos foram configurados. É interessantes criar um link simbólico no firewall da seguinte forma:

# ln -s /etc/fw/Gateway_ipv6.fw /etc/init.d/firewall

Agora habilite o script firewall para iniciar no boot do firewall.

# chkconfig firewall on

Pode pode alterar a política simplesmente arrastando os objetos para a minha lista de regras, como no print abaixo.


Você pode montar um cluster de firewall. Para isso, adicione o segundo firewall. Clique com o botão direito na aba Cluster e clique em New Cluster.


Digite o nome do cluster e selecione os equipamentos que farão parte do cluster, bem como quem será o master. 

Clique em Next.


Aqui precisamos associae as interfaces de rede dos equipamentos. Clique em Next.


Escolha o protocolo usando no cluster, bem como os IPs virtuais que cada interface terá. Depois clique em Next.


Se os equipamentos já possuírem políticas você pode escolher de qual deles você vai importar para o cluster. Ou, no nosso caso, escolhemos a primeira opção que nos permitirá criar uma nova política. Clique em Next.


Aqui um resumo do nosso cluster. Clique em Fisich. Crie as regras de firewall, NAT e roteamentos. Quando for aplicar a política no cluster a seguinte tela irá aparecer.


Neste caso a política será aplicada em ambos os equipamentos. Você pode aplicar em apenas um deles se quiser.

O Fwbuilder é muito útil na administração de vários firewall, ou em ambientes onde o administrador do equipamento não conhece o Iptables. É possível administrar totalmente um firewall sem ter conhecimento algum em Iptables.