Introdução ao Iptables - GNU/Linux and UNIX-like - Mente Binária
By billlcosta, August 13, 2017 in GNU/Linux and UNIX-like
billlcosta 0
O Firewall é um mecanismo de segurança utilizado no processo de segurança de barreiras, atuando entre duas redes (geralmente entre a rede LAN e a rede WAN), com o objetivo de minimizar ataques e acesso indevidos aos ativos da rede. O Firewall iptables é um Netfilter que veio em substituição da ferramenta Ipchains. O Iptables é um Firewall em nível de pacotes cujo funcionamento baseia na análise das informações de marcações e Datagramas do pacote (endereço/porta de origem/destino do pacote, prioridade, etc.) Ele funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar. Em Firewalls mais restritivos, o pacote é bloqueado e registrado para que o administrador do sistema tenha conhecimento sobre o que está acontecendo em seu sistema.
O Netfilter é um conjunto de mecanismos para manipulação de pacotes implementados diretamente no kernel do linux. Os mecanismos do Netfilter são selecionados através de três tabelas:
FILTER.: utilizada para filtrar pacotes
MANGLE.: utilizada para ações de marcação e manipulação de pacotes
NAT.: utilizada para as ações de tradução de endereços (NAT e NAPT)
O iptables corresponde aos mecanismos utilizados para organizar as regras utilizadas pelo Netfilter, utiliza o conceito de Chains para indicar para quais pacotes uma determinada regra deve ser aplicada. As Chains utilizadas pelo mecanismo de filtragem de pacotes são:
INPUT.: a regras se referem aos pacotes que entram por uma interface
OUTPUT.: as regras se referem ao que sai por uma interface
FORWARD.: as regras se aplicam aos pacotes que serão roteados, isto é, aos pacotes que não são destinados ao próprio computador.
Sintaxe.: iptables <tabela> <chain> <opções> <regra/ação>
Inserção/remoção de regras
-A → utilizada para adicionar uma regra ao fim da chain.
-I → utilizada para inserir uma regra na posição N da tabela.
-D → utilizada para apagar a regra na posição N.
-R → utilizada para remover / alterar uma regra disposta na posição indicada na chain.
-F [-t tabela] → Apaga as regras contidas em uma ou mais Chains de uma determinada tabela.
-P [política] → Define a política padrão da chain, podendo ser ACCEPT ou DROP.
-Z [chain] → Zera os contadores de pacotes da Chain.
-t table → define a tabela de referência da regra a ser manipulada, há de se saber que existem 3 tabelas disponíveis: filter, nat, mangle. Há de saber-se que na tabela filtro encontramos três regras nativas: INPUT, OUTPUT e FORWARD.
Nota.: Caso a opção -t seja omitida o iptables ira utilizar a tabela padrão FILTER.
-L [-t chain] [subopções] → Listas as regras de uma ou mais Chain
-v → Exibe mais detalhes sobre as regras criadas nos Chains.
-n → Exibe endereços de máquinas/portas como números em vez 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 em vez 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.
-s ou --src define o endereço de orginam
-d ou --dst define o endereço de destino
-i ou --in-interface definie a interface de entrada do pacote
-o ou --out-interface define a interface de saída do pacote
-p ou --protocol define o protocolo (tcp,udp,icmp...)
--sport ou --source-port define a porta de oriem
--dport ou --destination-port define a porta de destino
Protocolo - Opções
--limit defineqlimita a média de matchs dos pacotes. Pode ser utilizadas em segundos/minutos/horas/dias
--limit-burst define o número máximo de match inicial.
--maskt realiza a marcação de um pacote
--state especifica o estado da conexão (NEW,ESTABLISHED,RELATED,INVALID)
--tcp-flags examina as flags (SYN,ACK,FIN,RSTURG,PSH0 de um pacote
--tos define o tipo de serviço
--ttl especifica o ttl (tempo de via) do pacote
Opção -j (Ação)
ACCEPT Aceita um pacote
DROP Descarta um pacote "silenciosamente"
REJECT Rejeita um pacote
REJECT --reject-with type Rejeita um pacote e envia um pacote ICMP type
LOG Armazena logs do pacote (origem/destino, etc)
LOG --log-prefix permite identificar (colocar um prefixo) no log armazenado
Bill, ótimo conteúdo. Não seria mais interessante publicá-los como artigos/dicas?
Mithrandir, obrigado.
Então, pode ser uma ideia. Precisaria apenas fazer alguns ajustes. Mas estou com algo quase pronto para usá-lo como artigo. Para dicas seria uma boa mesmo.