Buscar

firewall no linux

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tutorial Firewall em Linux 
Acadêmicos: Felipe Zottis e Cleber Pivetta 
 
Firewall 
Firewall é um quesito de segurança com cada vez mais importância no 
mundo da computação. À medida que o uso de informações e sistemas é cada 
vez maior, a proteção destes requer a aplicação de ferramentas e conceitos de 
segurança eficientes. O firewall é uma opção praticamente imprescindível. 
Firewall é o nome dado ao mecanismo de uma rede de computadores 
que tem por objetivo aplicar uma política de segurança a um determinado ponto 
de controle da rede. Seu objetivo é permitir somente a transmissão e a 
recepção de dados autorizados. 
Este mecanismo atua como uma defesa de um computador ou de uma 
rede, controlando o acesso ao sistema por meio de regras e a filtragem de 
dados. A vantagem do uso de firewalls em redes, é que somente um 
computador pode atuar como firewall, não sendo necessário instalá-lo em cada 
máquina conectada. A figura abaixo ilustra a idéia de Firewall. 
 
►Funcionamento do Firewall 
Há varias formas de funcionamento de um firewall. Estas formas variam 
de acordo com o sistema, aplicação ou do desenvolvedor do programa. 
Entretanto, existem dois conceitos básicos de utilização de firewall: 
- Firewall em nível de Pacotes 
- Firewall em nível de Aplicação 
Neste tutorial o enfoque será dado ao conceito de Firewall em nível de 
pacotes com a utilização da Ferramenta Iptables em sistemas Linux. 
Iptables 
O Iptables é uma ferramenta de edição da tabela de filtragem de 
pacotes, ou seja, com ele você é capaz de analisar o cabeçalho e tomar 
decisões sobre os destinos destes pacotes. 
O iptables é um firewall com estado, ou seja, um firewall stateful. Os 
anteriores eram stateless. O modo de filtragem 'Stateless' tende a tratar cada 
pacote roteado pelo firewall como pacotes individuais, sendo mais simples de 
implementar e por terem uma resolução mais rápida que um do tipo stateful, 
podem ser usados para obterem um desempenho melhor em determinadas 
situações onde existem regras de nível de rede bem simples. 
Através destas regras poderemos fazer com que os pacotes possam ser 
ou não recebidos a rede toda, a determinada máquina, interface ou mesmo 
porta de conexão. O Iptables trabalha através de Tabelas, Chains e Regras: 
►Instalação Iptables 
Os requerimentos básicos para o funcionamento do Iptables são um 
computador sobre a arquitetura 386 com, no mínimo, 4MB de RAM e um kernel 
da série 2.4 ou superior. 
Para a realização deste tutorial, fora utilizado a sistema operacional 
Linux, sendo a distribuição Debian. 
Como este experimento fora realizado na rede interna da Universidade 
Estadual do Oeste do Paraná, é necessário realizar a exportação do proxy 
utilizado pela faculdade, para que assim seja possível realizar o download do 
pacote de instalação do Iptables, lembrando que a maioria dos releases atuais 
do Linux já possui o Iptables no seu Kernel. 
→ export http_proxy=htpp://proxy.unioeste.br:8080 
Para realizar a instalação de determinados programas, o Linux permite 
que o pacote de instalação destes sejam obtidos por download através do 
comando: 
→ apt-get install iptables 
Regras no Iptables 
As regras são como comandos passados ao iptables para que ele 
realize uma determinada ação (como bloquear ou deixar passar um pacote) de 
acordo com o endereço/porta de origem/destino, interface de origem/destino, 
etc. As regras são armazenadas dentro dos Chains e processadas na ordem 
que são inseridas. 
Exemplo de Regra: bloqueia qualquer acesso indo ao endereço 127.0.0.1 
→ iptables -t filter -A INPUT -d 127.0.0.1 -j DROP 
 
Chains 
Os Chains são locais onde as regras do firewall são definidas pelo 
usuário e armazenadas para operação do firewall. Existem dois tipos de 
Chains: os embutidos (como os Chains INPUT, OUTPUT e FORWARD) e os 
criados pelo usuário. Os nomes dos Chains embutidos devem ser 
especificados sempre em maiúsculas (note que os nomes dos Chains são 
case-sensitive, ou seja, o Chain input é completamente diferente de INPUT). 
Tabelas 
 As Tabelas armazenam os Chains e o conjunto de regras com uma 
determinada característica em comum. Existem 3 tabelas disponíveis no 
Iptables: 
►Tabela Filter 
É a tabela padrão do Iptables, composto por 3 Chains: 
• INPUT - Consultado para dados que chegam à máquina. 
• OUTPUT - Consultado para dados que saem da máquina. 
• FORWARD - Consultado para dados que são redirecionados para outra 
interface de rede ou outra máquina. 
►Tabela Nat 
 Utilizada para dados que geram outra conexão (masquerading, source 
nat, destination nat, port forwarding, proxy transparente são alguns exemplos). 
Ela é composta por 3 Chains: 
• PREROUTING - Consultado quando os pacotes precisam ser 
modificados logo que chegam. É o Chain ideal para realização de DNAT 
e redirecionamento de portas. 
• OUTPUT - Consultado quando os pacotes gerados localmente precisam 
ser modificados antes de serem roteados. Este Chain somente é 
consultado para conexões que se originam de IPs de interfaces locais. 
• POSTROUTING - Consultado quando os pacotes precisam ser 
modificados após o tratamento de roteamento. É o Chain ideal para 
realização de SNAT e IP Masquerading. 
 
 
►Tabela Mangle 
A tabela MANGLE implementa alterações especiais em pacotes em um 
nível mais complexo. A tabela mangle é capaz, por exemplo, de alterar a 
prioridade de entrada e saída de um pacote baseado no tipo de serviço (TOS) 
o qual o pacote se destinava. Ela Possui 2 Chains padrões: 
• OUTPUT - Altera pacotes de forma especial gerados localmente antes 
que os mesmo sejam roteados. 
• PREROUTING – Modifica pacotes dando-lhes um tratamento especial 
antes que os mesmos sejam roteados. 
* Neste tutorial o enfoque será dado à tabela padrão do Iptables, ou seja, a 
tabela Filter. 
Fazendo o IP Masquerading 
Antes de manipular as regras é necessário que o kernel tenha suporte 
ao iptables e ip_forward. Com os dois comandos abaixo é habilitado o 
masquerading para todas as máquinas da rede 192.168.1.*: 
→ iptables -t nat -A POSTROUTING -s 192.168.1.0/24 –j 
MASQUERADE 
 
→ echo "1" >/proc/sys/net/ipv4/ip_forward 
 
 A configuração do servidor Linux está completa, agora os clientes da 
rede precisarão ser configurados para usar o endereço IP do servidor Linux 
como gateway 
 
Manipulação de Chains 
 
 Nesta sessão serão mostrados alguns dos comandos mais utilizados 
para a manipulação de regras. 
 
► Listar Regras – L 
Utilizando a sintaxe abaixo é possível exibir todas as regras já criadas. 
→ iptables [-t tabela] -L [Chain] [opções] 
No exemplo abaixo o comando lista as regras do Chain INPUT 
 →iptables -t filter -L INPUT 
Podem-se utilizar também algumas opções para pra listar o conteúdo dos 
Chains: 
• -v - Exibe mais detalhes sobre as regras criadas nos Chains 
• -n - Exibe endereços de máquinas/portas como números ao invés de 
tentar a resolução DNS e consulta ao /etc/services. A resolução de 
nomes pode tomar muito tempo dependendo da quantidade de regras 
que suas tabelas possuem e velocidade de sua conexão. 
• -x - Exibe números exatos ao invés de números redondos. Também 
mostra a faixa de portas de uma regra de firewall. 
• --line-numbers - Exibe o número da posição da regra na primeira coluna 
da listagem. 
 
► Adicionando regras – A 
Adiciona uma regra na Tabela e Chain determinados. 
Como exemplo será acrescentado uma regra no Chain INPUT (-A 
INPUT) que bloqueie (-j DROP) qualquer acesso indo ao endereço 127.0.0.1 (-
d 127.0.0.1): 
→ iptables -t filter -A INPUT -d 127.0.0.1 -j DROP 
 
► Apagando Regras – D 
A exclusão de regras pode ser feita de duas formas, Quando sabemos 
qual é o número da regra no Chain (listado com a opção -L) podemos 
referenciar o númerodiretamente, como no exemplo abaixo: 
→ iptables -t filter -D INPUT 1 
Porem, às vezes o conjunto de regras pode ser muito extenso, o que 
dificulta saber o numero da regra. Neste caso usamos a mesma sintaxe para 
criar a regra no Chain, mas trocamos -A por -D: 
→ iptables -t filter -D INPUT -d 127.0.0.1 -j DROP 
 
► Inserindo Regra em uma Linha Especifica – I 
Este comando é útil no caso do usuário necessitar inserir uma regra em 
uma determinada posição, pois quando é adicionada uma nova regra, ele 
sempre vai ter prioridade menor em relação às regras anteriores. 
→ iptables -t filter -I INPUT 1 -s 192.168.1.15 -d 127.0.0.1 -j ACCEPT 
No exemplo acima o trafego vindo de 192.168.1.15 não será rejeitado 
porque está definido na primeira linha do Chain Input, e por isso tem prioridade 
em relação às outras regras. 
 
► Substituir Regras –R 
Existem duas alternativas: apagar a regra e inserir uma nova no lugar ou 
modificar diretamente a regra já criada sem afetar outras regras existentes e 
mantendo a sua ordem no Chain .Use o seguinte comando: 
→ iptables -R INPUT 2 -d 127.0.0.1 -p icmp -j DROP 
O número 2 é o número da regra que será substituída no Chain INPUT. 
 
► Criando Novos Chains - N 
É importante ressaltar que em firewalls organizados com um grande 
número de regras, a criação de Chains individuais é primordial para organizar 
regras de um mesmo tipo ou que tenha por objetivo analisar um tráfego de uma 
mesma categoria (interface, endereço de origem, destino, protocolo, etc), pois 
podem consumir muitas linhas e tornar o gerenciamento do firewall confuso.A 
definição de novos Chains utiliza a seguinte sintaxe: 
→iptables [-t tabela] [-N novoChain] 
Como exemplo pode-se criar um Chain denominado Unioeste (que pode ser 
usado para agrupar as regras de internet da Universidade): 
 →iptables -t filter -N Unioeste 
Para inserir regras no Chain Unioeste basta especifica-lo após a opção -A: 
 →iptables -t filter -A Unioeste -s 200.152.161.132 -j DROP 
Logo, é necessário fazer uma ligação (-j) do Chain INPUT para o Chain 
Unioeste: 
 →iptables -t filter -A INPUT -j internet 
Esta ligação é necessária indicar que outro Chain foi criado 
possibilitando a leitura das novas regras do Chain Unioeste. 
 
 
 
► Especificando o Policiamento Padrão de um Chain – P 
Quando um pacote chega ao fim das regras contidas em um Chain, o 
policiamento padrão determina se ele é ACCEPT ou DROP, ou seja, se o 
pacote é aceito ou rejeitado. Isto deve ser feito utilizando a seguinte sintaxe. 
→iptables [-t tabela] [-P Chain] [ACCEPT/DROP] 
No exemplo abaixo, o pacote não será rejeitado após passar pelas 
regras. Obviamente se a regras anteriormente definidas não bloquearem ele. 
 →iptables -t filter -P INPUT ACCEPT 
 
Salvando e Restaurando regras 
As regras que estão sendo criadas pelo usuário enquanto manipula o 
iptables podem ser salvas usando as ferramentas iptables-save e iptables-
restore baseada na idéia do ipchains-save e ipchains-restore. O iptables-save 
deve ser usado sempre que modificar regras no firewall iptables da seguinte 
forma: 
 →iptables-save >/dir/iptables-regras 
Para restaurar as regras salvas, utilize o comando: 
 →iptables-restore </dir/iptables-regras

Outros materiais