Segurança em Redes de Comunicação
1. FIREWALLS
1.5. Exemplos de Firewall
Um dos exemplos mais comuns de firewalls é o disponível nas distribuições Linux, chamado por IPTables. Esta firewall, tal como a maioria das firewalls de filtragem de pacotes, baseia-se em regras e listas de controlo de acesso (ACL) que são utilizadas para representar e aplicar a política de segurança da rede que estão dispostos a proteger, monitorizar e controlar.
Em IPTables, estas ACLs têm características especiais, porque utilizam elementos e parâmetros sofisticados, construindo uma regra baseada no contexto e na necessidade de segurança. Isto significa que o administrador é capaz de construir qualquer tipo de ACL, de acordo com as suas necessidades e em linha com a privacidade e segurança da política concebida. Numa abordagem mais profunda, esta firewall é baseada numa concepção formada por três estruturas diferentes:
· Regras
As regras são basicamente os comandos passados à firewall para que esta possa executar uma acção específica (permitir ou bloquear). Devem ser construídas de acordo com a linguagem configurada no software da firewall, de modo a que possa compreendê-las e a que necessite de seguir padrões específicos para ser devidamente interpretadas (Figura 8). Em geral, as regras são semelhantes entre muitos programas e aparelhos de firewall, onde o conceito principal de regra é seguido por todos. Não é difícil exportar regras que formam uma firewall para outra, desde que a linguagem das regras seja semelhante. Em tabelas IPTables, as regras são armazenadas em cadeias e processadas por ordem. A primeira regra é a primeira a ser verificada, a segunda regra é a segunda a ser verificada, e assim sucessivamente até ao fim de todas as regras. Aqui, é importante planear a sequência de regras a utilizar, porque se por ordem errada, algum conteúdo pode ser bloqueado por uma regra anterior, quando deveria, de facto, ser permitido. O planeamento de regras de firewall é um factor importante na administração da rede, no entanto, muitos programas de firewall permitem ao administrador reorganizar as regras depois de estas serem configuradas e guardadas. Centrando-se no caso específico das tabelas IPTables, novas regras são principalmente armazenadas no kernel do sistema operativo, o que significa que se a máquina for reiniciada, todo o conteúdo das regras será apagado e perdido. Devido a este factor, todas as regras devem ser guardadas num ficheiro a ser carregado em cada arranque da máquina. É verdade que na maioria das vezes, é utilizada uma máquina dedicada para funcionar apenas como firewall, onde o acto de a reiniciar não é tão comum como um computador pessoal normal, no entanto, é também comum ser utilizado um grande conjunto de regras, onde ter de configurar todas elas cada vez que a máquina reinicia, resulta numa tarefa muito pesada e demorada.
Figura 8 - Exemplo de regras Iptables
· Cadeias
Armazenando regras de firewall, as cadeias permitem ao administrador especificar os diferentes tipos de tratamentos a aplicar aos pacotes, independentemente da tabela em que se está a concentrar. É possível encontrar dois tipos diferentes de cadeias em tabelas IPTables, onde a primeira, denominada correntes padrão, inclui as cadeias que já estão disponíveis no software e que podem ser aplicadas ao tráfego geral da rede. O segundo tipo são cadeias criadas pelo próprio administrador e são concebidas para satisfazer necessidades específicas.
No caso de cadeias padrão, é possível identificar o "Prerouting", que consiste no tráfego de entrada da máquina local (máquina de firewall) e inclui também o tráfego gerado localmente e destinado à máquina local. Outra cadeia padrão é a "Input", que visa todo o tráfego cujo destino é, mais uma vez, a própria máquina. Além disso, a cadeia "Forward" está relacionada com o tráfego da rede que passa pela máquina e "Output" consiste no tráfego que é gerado localmente, ambos com um destino local ou remoto. Este é basicamente todo o tráfego que a máquina de firewall está a produzir e que está a ser enviado para a rede ou para a própria máquina. A última cadeia é a "Postrounting" e concentra o tráfego que sai da máquina, incluindo o tráfego de rede gerado localmente e que tem também um destino local).
· Tabelas
As regras são armazenadas em cadeias e, consequentemente, as cadeias são armazenadas em tabelas, onde cada tabela armazena cadeias e regras com a mesma característica específica. Aqui, existem também três tipos diferentes de tabelas: Filtro; NAT e Mangle.
O "filtro" é a tabela responsável pela filtragem de todos os pacotes que passam pela firewall, independentemente do seu destino. Esta tabela é utilizada para analisar o tráfego da rede, permitindo, ou bloqueando-o, de acordo com as regras da tabela armazenada. Quando se concentra numa firewall, a principal acção identificada é a filtragem de pacotes, mesmo que estes permitam outras acções. Neste caso, é a tabela "Filtrar" a principal responsável por tal filtragem de pacotes.
A tabela "NAT" controla os pacotes que passam pela firewall, mas com origens e destinos diferentes. NAT, ou Network Address Translation, é um mecanismo que permite a tradução de endereços privados para endereços públicos e vice-versa. Esta tabela é normalmente utilizada para comunicações entre as redes privadas e públicas, permitindo aos computadores dentro da rede privada acederem à rede pública, através de um ou mais endereços IP públicos.
O último tipo de tabela chama-se "Mangle" e permite a manipulação das características da embalagem, tais como o tipo de serviço. Isto permite a implementação de um serviço de qualidade, também conhecido como QoS.
Em suma, IPTables é uma firewall de filtragem de pacotes disponível com distribuições Linux e permite o controlo e monitorização da rede e do próprio computador. Forneceu diferentes acções, incluindo "aceitar", "largar", "rejeitar" e "registar" configurados em regras e cadeias personalizadas. Como foi mencionado anteriormente, as regras devem seguir uma ordem específica e devem ser planeadas antes da sua implementação, para que todas as acções sejam respeitadas e funcionem de acordo com a política de segurança da organização.