iptables para iniciantes, curiosos, interessados

Sempre pensei que a segurança nunca machuca e nunca é o suficiente (é por isso elav. Ele me rotula como um maníaco por segurança obsessivo e psicótico ...), então, mesmo quando uso GNU / Linux, não negligencio a segurança do meu sistema, minhas senhas (gerado aleatoriamente com pwgen), etc.

Além disso, mesmo quando os sistemas digitam Unix são, sem dúvida, muito seguros, é sem dúvida recomendável usar um firewall, configure-o corretamente, para ficar o mais protegido possível 

Aqui vou explicar para você, sem muito aborrecimento, emaranhados ou detalhes complexos, como saber o básico de iptables.

Mas … O que diabos é o iptables?

iptables É a parte do kernel do Linux (um módulo) que lida com a filtragem de pacotes. Dito de outra forma, significa que iptables É a parte do kernel cujo trabalho é saber quais informações / dados / pacote você deseja inserir em seu computador, e quais não (e faz mais coisas, mas vamos nos concentrar nisso por enquanto hehe).

Vou explicar isso de outra maneira 

Muitos em suas distros usam firewalls, Firestarter o fogueira, mas esses firewalls, na verdade, 'por trás' (no fundo) usar iptables, então ... por que não usar diretamente iptables?

E é isso que vou explicar brevemente aqui 

Ainda resta alguma dúvida até aqui? 

Trabalhar com iptables é necessário ter permissões administrativas, então aqui vou usar sudo (mas se você entrar como raiz, não há necessidade).

Para que nosso computador seja verdadeiramente seguro, precisamos permitir apenas o que queremos. Veja o seu computador como se fosse a sua própria casa, na sua casa por padrão você NÃO permite a entrada de ninguém, só podem entrar certas pessoas específicas que você já aprovou antes, certo? O mesmo acontece com os firewalls, por padrão ninguém pode entrar no nosso computador, só quem quisermos pode entrar 

Para conseguir isso, eu explico, aqui estão as etapas:

1. Abra um terminal, nele coloque o seguinte e pressione [Entrar]:

sudo iptables -P INPUT DROP

Isso será suficiente para que ninguém, absolutamente ninguém possa acessar o seu computador... e esse “ninguém” inclui vocês mesmos 

Explicação da linha anterior: Com ela indicamos ao iptables, que a política default (-P) para tudo que queira entrar em nosso computador (INPUT) é ignorar, ignorar (DROP)

Ninguém é muito geral, absoluto aliás, nem você mesmo vai poder navegar na internet nem nada, por isso devemos naquele terminal colocar o seguinte e pressionar [Entrar]:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

... não entendo merda nenhuma, O que essas duas linhas estranhas estão fazendo agora? ...

Simples 

A primeira linha que diz é que o próprio computador (-i lo ... a propósito, lo = localhost) pode fazer o que quiser. Algo óbvio, que pode até parecer absurdo ... mas acredite, é tão importante quanto o ar haha.

Vou explicar a segunda linha usando o exemplo/comparação/metáfora que usei antes, quero dizer, comparar o computador com a casa  Por exemplo, suponhamos que moramos com mais pessoas em nossa casa (mãe, pai, irmãos, namorada, etc. ). Se alguma dessas pessoas sair de casa, é óbvio/lógico que a deixaremos entrar assim que retornar, certo?

Isso é precisamente o que a segunda linha faz. Todas as conexões que iniciamos (que vêm do nosso computador), quando através dessa conexão você deseja inserir alguns dados, iptables permitirá que esses dados entrem. Dando mais um exemplo para explicar, se usando nosso navegador tentarmos navegar na internet, sem essas 2 regras não conseguiremos, bem sim ... o navegador vai se conectar a internet, mas quando tenta baixar os dados ( .html, .gif, etc) ao nosso computador para nos mostrar, você não será capaz de iptables Ele negará a entrada de pacotes (dados), enquanto com essas regras, à medida que iniciamos a conexão de dentro (do nosso computador) e essa mesma conexão é a que tenta inserir os dados, ele permitirá o acesso.

Com isto pronto, já declaramos que ninguém pode acessar nenhum serviço em nosso computador, ninguém exceto o próprio computador (127.0.0.1) e também, exceto conexões que são iniciadas no próprio computador.

Agora, vou explicar mais um detalhe rapidamente, já que a 2ª parte desse tutorial vai explicar e abordar mais sobre isso hehe, não quero avançar muito 

Acontece que, por exemplo, eles têm um site publicado em seu computador e querem que esse site seja visto por todos, já que declaramos anteriormente que tudo por padrão NÃO é permitido, a menos que indicado de outra forma, ninguém poderá ver nosso local na rede Internet. Agora vamos fazer com que qualquer pessoa possa ver o site ou sites que temos no nosso computador, para isso colocamos:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Isso é muito simples de explicar 

Com essa linha, estamos declarando que você aceita ou permite (-j ACEITAR) todo o tráfego para a porta 80 (–Dport 80) torná-lo TCP (-p tcp), e que também é tráfego de entrada (-A ENTRADA) Coloquei a porta 80, porque essa é a porta do host, ou seja ... quando um navegador tenta abrir um site no computador X, ele sempre procura por padrão nessa porta.

Agora ... o que fazer quando você sabe quais regras definir, mas quando reiniciamos o computador vemos que as alterações não foram salvas? ... bem, para isso eu já fiz outro tutorial hoje:

Como iniciar regras de iptables automaticamente

Eu explico isso em detalhes lá 

E aqui termina o 1º tutorial em iptables para iniciantes, curiosos e interessados  …não se preocupe, não será o último hehe, o próximo será sobre esse mesmo assunto, mas com regras mais específicas, detalhando um pouco mais tudo e aumentando a segurança. Não quero me estender muito mais, porque na realidade é necessário que as bases (o que você leu aqui no início) entendam perfeitamente 

Saudações e ... vamos lá, esclareço as dúvidas, desde que vocês saibam a resposta rsrs !! (Eu não sou um especialista nisso de longe hahaha)