Neste tutorial, falaremos sobre o iptables, o firewall ou firewall que temos no Linux . Essa ferramenta nos permitirá filtrar pacotes (sobre o que será o tutorial), gerar um log de log, executar traduções NAT.
Graças ao iptables, podemos gerar regras para filtrar os pacotes de maneira bastante simples, embora a primeira vez que você o use possa parecer um pouco confuso, você verá que, quando o usa por alguns dias, não apresenta complicações.
O uso dessa ferramenta requer altos privilégios, ou seja, precisaremos ser superusuários para executá-la. Temos muitos recursos no iptables, o objetivo do tutorial é ver uma aproximação de seu uso através de exemplos. É importante que, depois de concluir o tutorial, continue aprofundando, pois é muito útil.
Em seguida, deixamos o site oficial, caso seja de seu interesse:
netfilter / iptables
Nota
Para IPv6, temos ip6tables .
Se quisermos ver informações sobre o iptables, executaremos o seguinte em um terminal:
homem iptablesVeremos as seguintes informações:
Na imagem, você pode ver parte das informações fornecidas pelo comando, para ver tudo, role para baixo no terminal. Como vimos no início do tutorial, uma das tarefas que o iptables nos permitirá é criar regras ou filtros para saber o que fazer com os pacotes que têm nossa máquina como origem / destino. Para esta tarefa, estaremos interessados em saber, para que possamos usar os seguintes conceitos:
Tabelas
O Iptables possui várias tabelas, mas para o nosso tutorial, focamos apenas na tabela de filtros, responsável pela filtragem, que é usada por padrão no iptables.
Correntes
As correntes que vou colocar aqui são as que pertencem à tabela comentada anteriormente.
- Entrada : Pacotes direcionados à nossa máquina.
- Saída : Os pacotes que se originam do nosso sistema.
- Encaminhar : pacotes que passam por nossa máquina para serem roteados para outra.
Regras
Vamos indicar os 2 que serão usados no tutorial, mas há mais.
- Aceitar : Pacotes são aceitos.
- Drop : Os pacotes são descartados.
Parâmetros
Alguns dos parâmetros que podemos usar são os próximos.
- -Uma regra : para adicionar uma regra
- -D regra : Para excluir a regra que indicamos.
- -L : Permite listar as regras.
- -F : exclua todas as regras existentes.
- Objetivo -j : define o tipo de regra (Accept, Drop).
- -t table : Indica a tabela que é usada (por tabela de filtro padrão).
- -p protocol : É usado para indicar o protocolo.
- -i interface : Estabelecemos a interface para a regra.
- -s : para indicar a origem.
- -d : para indicar o destino.
- -h : mostra ajuda.
Existem muitos outros, como - porta de destino ou - porta de origem . Para ver todos eles, você pode executar o comando que mencionamos acima:
homem iptablesOu você também pode executar:
iptables -h
Nota
Você precisa examinar atentamente as opções oferecidas pela ferramenta, pois ela distingue entre minúsculas e maiúsculas e podemos estar errados (não será o mesmo que colocar -p que -P ).
Vamos começar com os exemplos, um total de 10 será inserido, para que seja melhor compreendido e podemos ver como o iptables funciona no modo firewall. Nos exemplos que você não verá sudo, não será necessário se você for root, se não precisar adicionar a palavra sudo no início de cada exemplo.
$config[ads_text5] not found1. Proibir a partida para qualquer destino
Para começar, daremos um exemplo fácil, não deixando a saída em lugar nenhum.
iptables -A OUTPUT -j DROPIsso é muito fácil, como você pode ver, o seguinte é ainda mais.
2. Limpar todas as regras
Continuamos com um exemplo muito simples, deixamos nossas iptables sem regras, para isso vamos executar:
iptables -FBem, vamos complicar um pouco mais a seguir.
3. Proibir a partida pela porta 80
Agora somos responsáveis por fechar a saída através de uma porta específica, neste caso é 80, portanto, não teremos navegação na web pelo protocolo http (se navegarmos para uma página https, podemos navegar, embora possamos fazer o mesmo que 80) .
iptables -A OUTPUT -p tcp --destination-port 80 -j DROP$config[ads_text6] not found$config[ads_text5] not found
Nota
Ao usar uma porta de destino ou de origem, precisaremos definir o parâmetro -p para indicar o protocolo.
Passamos ao quarto exemplo.
4. Proibir a navegação para uma página
Desta vez, estamos interessados em proibir o acesso à página X do nosso sistema, imagine que esta página seja solvetic.com, por isso descobrimos o seu IP, é muito fácil executar um ping e o obteremos.
E agora vamos executar:
iptables -A OUTPUT -d 178.33.118.246 -j DROPComo vemos apenas indicar seu IP após o parâmetro -d .
5. Liste as regras que existem
Este exemplo tentará listar as regras de filtragem que definimos atualmente:
iptables -LVemos uma imagem, temos apenas duas regras definidas, como podemos ver abaixo:$config[ads_text6] not found$config[ads_text5] not found
Vamos para o sexto exemplo, no qual usaremos a lista de regras novamente.
6. Exclua uma regra específica
Aqui, com base nas regras que tínhamos no exemplo anterior, excluiremos uma das regras de saída; nesse caso, a primeira que aparecer, executamos o seguinte:
iptables -D OUTPUT 1E para verificar se ele foi efetivamente excluído, usamos o exemplo 5:
Vamos continuar com mais.
7. Impedir ping
Não queremos poder nos enviar ping, pois isso bloqueará a entrada do protocolo ICMP.
iptables -A INPUT -p ICMP -j DROPDeixo então uma imagem do ping antes de executar o comando anterior e depois:$config[ads_text6] not found
Podemos ver que nossa máquina não responde porque rejeita pacotes do tipo ICMP. Se bloquearmos a saída em vez da entrada, executaremos:
iptables -A OUTPUT -p ICMP -j DROPO mesmo aconteceria novamente como na imagem anterior. Para testar eu fiz ping 3 vezes, se executarmos, podemos ver o número de pacotes:
iptables -L -v
Vemos que ele efetivamente coloca 3 na imagem anterior.
8. Impedir que um IP nos envie dados
Vamos aplicar uma entrada, não queremos que um determinado IP se conecte a nós, portanto, executaremos:
iptables -A INPUT -s 192.168.66.1 -j DROPVejamos um exemplo um pouco mais longo. $config[ads_text5] not found
9. Permitir saídas para um intervalo de IPs
Imagine que você deseja aceitar apenas saídas para um intervalo de endereços IP, mas rejeitar as outras saídas, devemos executar:
Iptables -A OUTPUT -d 192.168.0.0/24 -j ACEITAR Iptables -A OUTPUT -j DROP
Nota
A ordem de execução das regras é importante, tente este exemplo com a rede que você deseja permitir e faça uma conexão, você verá que funciona, exclua todas as regras e execute as 2 frases ao contrário, agora eu rejeitaria as conexões.
Vamos ver o décimo e último exemplo.
10. Porta aberta 143 (imap)
Abriremos uma porta para a entrada de todos os pacotes tcp, neste caso 143 (seria o mesmo para o resto).
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACEITARNeste exemplo, queríamos usar --dport, para que você possa ver que podemos usar essa ou --destination-port, também poderíamos usar --sport em vez de --source-port . $config[ads_text6] not found$config[ads_text5] not found
Até agora é o tutorial, agora tente aplicar outras regras, quanto mais você praticar, mais rápido terá ao aplicar regras e menos isso lhe custará. Para finalizar, deixamos um tutorial que pode ser do seu interesse, abra e feche portas no Windows 10.
Artigo