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 Firehol, 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 🙂

Até agora, alguma dúvida? 😀

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 realmente seguro, só precisamos permitir o que queremos. Veja o seu computador como se fosse a sua casa, na sua casa você por padrão NÃO deixa ninguém entrar, só certas pessoas específicas que você aprovou antes podem entrar, certo? Com os firewalls acontece o mesmo, por padrão ninguém pode entrar no nosso computador, só quem quiser entrar 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á o suficiente para que ninguém, absolutamente ninguém possa entrar no seu computador ... e esse "ninguém" inclui vocês 😀

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, ou seja, comparando o computador com a casa 🙂 Por exemplo, suponha que vivamos com mais pessoas em nossa casa (mãe, pai, irmãos, namorada, etc). Se alguma dessas pessoas sair de casa, é óbvio / lógico que vamos deixá-la entrar assim que voltar, não?

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, porque a 2ª parte deste tutorial vai explicar e cobrir 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

Lá eu explico em detalhes 😀

E aqui termina o 1º tutorial em iptables para iniciantes, curiosos e interessados 😉 ... não se preocupe, não será a última hehe, a próxima vai tratar do mesmo, mas com regras mais específicas, detalhando tudo um pouco mais e aumentando a segurança. Não quero estender isso 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)


O conteúdo do artigo segue nossos princípios de ética editorial. Para relatar um erro, clique Clique aqui.

40 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Ezitoc dito

    Muito bom! Só uma pergunta? Você tem alguma ideia de quais são as configurações padrão? A questão é paranóica de que eu sou apenas: D.

    Muito obrigado.

    1.    KZKG ^ Gaara dito

      Por padrão, por padrão ele aceita tudo. Ou seja, serviço que você colocou no seu computador ... serviço que será público para o resto 😀
      Você entende?

      Então ... quando você não quer que o site do X veja E seu amigo, ou um determinado IP, vem o firewall, htaccess, ou algum método para negar acesso.

  2.   Faustod dito

    Atenciosamente,

    Irmão, Excelente !!!! Agora vou ler o primeiro ...

    Obrigado pela ajuda…
    Disla

  3.   rockandroleo dito

    Obrigado pelo tutorial, ele é útil.
    A única coisa que gostaria de saber ou ter certeza é se com essas instruções não terei problemas para fazer transferências ponto-a-ponto, baixar arquivos ou fazer chamadas de vídeo, por exemplo. Pelo que li não, não deve haver problemas, mas prefiro ter certeza antes de inserir as linhas.
    Agradecemos antecipadamente.
    Saudações.

    1.    KZKG ^ Gaara dito

      Você não deve ter problemas, porém esta é uma configuração bastante básica, no próximo tutorial explicarei mais detalhadamente como adicionar suas próprias regras, dependendo da necessidade de cada uma, etc etc

      Mas repito, você não deve ter problemas, se os tiver é só reiniciar o computador e voila, como se nunca tivesse configurado o iptables 😀

      1.    seu dito

        Reiniciar ? Parece muito exagerado. Na pior das hipóteses, você apenas tem que limpar as regras do iptables e definir as políticas padrão para ACEITAR e o problema será corrigido, portanto, rockandroleo, você não terá problemas.

        Saludos!

  4.   rockandroleo dito

    E, desculpe por fazer outra solicitação, mas como estamos no tópico de firewall, é possível que você explique como aplicar esses mesmos comandos em interfaces gráficas de firewall como gufw ou firestarter.
    Agradeço antecipadamente.
    Saudações.

    1.    KZKG ^ Gaara dito

      Vou explicar Firestarter, gufw eu só vi e não usei como tal, talvez explique brevemente ou talvez elav faça eu mesmo 🙂

  5.   Asuarto dito

    Então, quando eu quiser me sentir um hacker, vou ler, sempre quis aprender sobre segurança

  6.   Daniel dito

    Excelente tutorial, acho que está bem explicado e enquanto for passo a passo melhor, como diriam lá, para manequins.

    Saudações.

    1.    KZKG ^ Gaara dito

      hahahaha obrigado 😀

  7.   Lithos523 dito

    Grande.
    Explicado claramente.
    Será necessário lê-lo e relê-lo até que o conhecimento esteja estabelecido e então continuar com os tutoriais seguintes.
    Obrigado pelo artigo.

    1.    KZKG ^ Gaara dito

      obrigado
      Eu tentei explicar como gostaria que tivesse sido explicado pela primeira vez, LOL !!

      Saudações 🙂

  8.   Oscar dito

    Muito bom, estou testando e funciona corretamente, o que corresponde a iniciar as regras automaticamente no começo vou deixar para quando publicar a segunda parte, até lá terei um pouco mais de trabalho digitando os comandos toda vez que reiniciar o PC, obrigado amigo pelo tuto e pela rapidez com que publicou.

  9.   Xosé M. dito

    obrigado pela recomendação e as explicações.

    Você pode ver o que se aplica ao iptables com:

    sudo iptables -L

    1.    KZKG ^ Gaara dito

      Exato 😉
      Eu adiciono o n na realidade:
      iptables -nL

  10.   Alex dito

    Obrigado pelo tutorial, estou ansioso para a segunda parte, saudações.

  11.   projeto de lei dito

    quando vai sair a segunda parte

  12.   Jonisar dito

    Eu tenho um proxy com squid na Máquina1, ele vai dar navegação de internet para outras máquinas naquela lan 192.168.137.0/24, e está escutando em 192.168.137.22:3128 (abro a porta 3128 para qualquer um com firestarter), da Máquina1 se Eu coloquei o Firefox para usar o proxy 192.168.137.22:3128 ele funciona. Se for de outro pc com ip 192.168.137.10 por exemplo, Maquina2, configurei para usar o proxy 192.168.137.22:3128 não funciona, exceto se na Maquina1 coloquei no firestarter para compartilhar internet com a lan, aí se o proxy funciona, o fluxo de dados é através do proxy, mas se na Máquina2 removerem o uso do proxy e apontar o gateway corretamente, eles poderão navegar livremente.
    Do que se trata?
    Com iptables quais seriam as regras?

  13.   geronimo dito

    "Tento ficar do lado negro da força, porque é aí que está a diversão da vida." e com delírio de jedi hahahahaha

  14.   Carlos dito

    Muito bom! Estou um pouco atrasado certo? haha o post tem uns 2 anos mas fui mais do que útil .. Agradeço por explicar tão simples que pude entender haha ​​continuo com as outras partes ..

    1.    KZKG ^ Gaara dito

      Obrigado por ler 🙂

      Sim, o post não é totalmente novo, mas ainda é muito útil, não mudou quase nada sobre o funcionamento dos firewalls na última década, eu acho 😀

      Saudações e obrigado por comentar

  15.   leão dito

    Que explicação com flores e tudo. Eu sou um usuário "novato" mas com muita vontade de aprender Linux, recentemente eu estava lendo um post sobre um script nmap para ver quem se conectou à minha rede e não te demorou, em um comentário naquele post um usuário disse que vamos aplicar a famosa primeira linha que você colocou do iptables e isso foi o suficiente, e como eu sou um tremendo novato, apliquei, mas como você escreveu aqui, ela não entrou na Internet 🙁
    Obrigado por este post explicando o uso do iptables, espero que você o estenda e me explique completamente seu funcionamento. Felicidades!

    1.    KZKG ^ Gaara dito

      Obrigado por ler e comentar 🙂
      iptables é fenomenal, faz o seu trabalho de desligar tão, tão bem que ... nem conseguimos sair por conta própria, isso é certo, a menos que saibamos como configurá-lo. É por isso que tentei explicar o iptables da forma mais simples possível, porque às vezes nem todo mundo consegue entender algo na primeira vez.

      Obrigado pelo comentário, cumprimentos ^ _ ^

      PS: Sobre estender a postagem, aqui está a 2ª parte: https://blog.desdelinux.net/iptables-para-novatos-curiosos-interesados-2da-parte/

      1.    leão dito

        Bem, muito obrigado, se eu li a segunda parte e imediatamente comecei a jogar no console com seu tremendo guia. Muito obrigado, a propósito, espero que você possa me ajudar já que estou um pouco duvidosa e como você bem sabe sou um novato tentando aprender sobre este maravilhoso software livre, direto ao ponto, recentemente tive uma distro diferente instalada para o qual modifiquei uma linha do arquivo dhcp.config e deixei assim:
        #send host-name ""; Bom, funcionou para mim naquela distro e deu tudo certo, o nome do meu pc não aparece no servidor dhcp do meu roteador, apenas o ícone do pc, mas nessa nova distro eu modifiquei a mesma linha deixando-a igual mas não funcionou. Você poderia me orientar um pouco? 🙁 Por favor ...

        1.    KZKG ^ Gaara dito

          Agora isso pode ser algo mais complexo ou extenso, crie um tópico em nosso fórum (forum.desdelinux.net) e lá todos nós o ajudaremos 🙂

          Obrigada por ler e comentar

          1.    leão dito

            Pronto, obrigado pela resposta. Amanhã de manhã farei o tópico e espero que possam me ajudar, saudações e claro um abraço.

  16.   Diego dito

    Excelente artigo.
    Você acha que com isso posso implementar um firewall usando iptables na minha casa ou preciso saber mais alguma coisa? Você tem algum tutorial de configuração ou com esses artigos ele permanece?
    lembranças

    1.    KZKG ^ Gaara dito

      Na verdade, este tem sido o básico e os meios, se você quiser algo mais avançado (como limite de conexão, etc) você pode verificar todos os posts que falam sobre iptables aqui - » https://blog.desdelinux.net/tag/iptables

      Porém, com isso eu tenho quase todo o meu firewall local 🙂

  17.   Corvo dito

    Eles não parecem ruins para começar.
    Mas isso modificaria algo.

    Eu descartaria uma entrada e encaminharia e aceitaria uma saída
    -P INPUT -m state –state ESTABELECIDO, RELACIONADO -j ACEITAR
    Isso seria o suficiente para um newbi em iptables ser "razoavelmente seguro"
    Em seguida, abra as portas de que precisamos.
    Gosto muito da página, tem coisas muito boas. Obrigado por compartilhar!
    Saudações!

  18.   FGZ dito

    Buenas noches a todos los que han comentado pero a ver si me aclaran porque estoy mas perdido que un lobo en alcantarilla, soy cubano y creo que siempre vamos mas alla en todo tema posible y bueno: Disculpen de ante manos si no tiene que ver con o tema!!!

    Eu tenho um servidor UBUNTU Server 15 e acontece que tenho um serviço hospedado dentro que é fornecido por outro programa que é stream de TV mas tento controlá-lo através do endereço MAC para que o controle da porta por exemplo 6500 que o seleciona aleatoriamente Ninguém pode entrar por essa porta a menos que seja com o endereço MAC indicado no iptables. Fiz as configurações deste artigo número um e funciona muitoyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy bem, melhor do que queria, mas procurei informações em todooooooooooooo e não encontrei a configuração feliz para permitir que um endereço MAC use uma determinada porta apenas e nada mais.

    Agradeço antecipadamente!

  19.   Nicolas Gonzalez dito

    Olá, tudo bem, li o artigo iptables para iniciantes, é muito bom, parabéns, não sei muito sobre linux, por isso quero te fazer uma pergunta, estou com um problema, se você puder me ajudem eu agradeço, tenho um servidor com vários IPs e a cada poucos dias, quando o servidor está enviando e-mails através dos IPs que estão no servidor, ele para de enviar e-mails, então para ele enviar e-mails novamente tenho que colocar:

    /etc/init.d/iptables stop

    Quando eu coloco isso, ele começa a enviar e-mails novamente, mas depois de alguns dias bloqueia novamente, você pode me dizer quais comandos eu tenho que colocar para que o servidor não bloqueie o ip? Eu estava lendo e pelo que você falou no a página, com Estas 2 linhas teriam que ser resolvidas:

    sudo iptables -A INPUT -i lo -j ACEITAR
    sudo iptables -A INPUT -m state –state ESTABELECIDO, RELACIONADO -j ACEITAR

    Mas como não sei se é isso, antes de colocar esses comandos queria verificar se com isso os IPs do servidor não ficarão mais bloqueados, aguardo sua pronta resposta. Saudações. Nicholas.

  20.   Tux MH dito

    Olá bom dia, li seu pequeno tutorial e me pareceu muito bom e por isso gostaria de fazer uma pergunta:

    Como posso redirecionar as requisições que entram pela interface lo (localhost) para outro computador (outro IP) com a mesma porta, estou usando algo assim

    iptables -t nat -A PREROUTING -p tcp –dport 3306 -j DNAT –to 148.204.38.105:3306

    mas não me redireciona, estou monitorando a porta 3306 com tcpdump e se ele recebe pacotes mas não os envia para o novo IP, mas se eu faço requisições de outro computador ele redireciona. Resumindo, ele redireciona o que chega por meio de -i eth0, mas não o que chega por meio de -i lo.

    Desde já agradeço a muita ou pouca ajuda que você pode me dar. salu2.

  21.   Nicolas dito

    Olá, tudo bem, a página é muito boa, tem informações suficientes.

    Estou com um problema e queria ver se pode me ajudar, tenho o PowerMta instalado no Centos 6 com Cpanel, o problema é que depois de alguns dias o PowerMta para de enviar e-mails para fora, é como se os ip's estivessem bloqueados, e a cada dia tenho que ficar colocando o comando /etc/init.d/iptables stop, com que o PowerMta comece a enviar emails novamente para o exterior, com isso o problema fica resolvido por alguns dias, mas depois acontece novamente .

    Você sabe como posso fazer para resolver o problema? Existe algo que eu possa configurar no servidor ou no firewall para que isso não aconteça novamente? Como não sei por que isso está acontecendo, se você puder me ajudar eu obrigado, espero sua resposta em breve.

    Saudações.

    Nicolas.

  22.   Luis Delgado dito

    Explicação excelente e muito clara, tenho procurado livros mas são muito extensos e o meu inglês não é muito bom.
    Você conhece algum livro que recomenda em espanhol?

  23.   fbec dito

    Que tal bom dia, muito bem explicado, mas ainda não tenho entrada da internet, vou explicar, tenho um servidor com Ubuntu, que tem duas placas de rede, uma com esta configuração Link encap: Ethernet HWaddr a0 : f3: c1: 10: 05: 93 inet addr: 192.168.3.64 Bcast: 192.168.3.255 Máscara: 255.255.255.0 e o segundo com este outro link encap: Ethernet HWaddr a0: f3: c1: 03: 73: 7b inet addr : 192.168.1.64 Bcast: 192.168.1.255 Máscara: 255.255.255.0, onde o segundo é o que meu gateway tem, que é 192.168.1.64, mas o primeiro cartão é o que controla minhas câmeras e eu quero vê-los a internet do meu ip fixo ,,, posso ver da lan mas não da internet, pode me ajudar com isso? , ou se meu roteador for o que está configurado incorretamente, é um arqueiro tp-link c2 ,,, obrigado

  24.   Luis castro dito

    Olá, acabei de fazer isso no meu servidor e sabe, como poderia recuperá-lo?
    iptables -P INPUT DROP
    Deixo-te o meu email ing.lcr.21@gmail.com

  25.   instalações elétricas dito

    Eu tenho procurado um pouco por posts de alta qualidade ou posts de blog sobre este conteúdo. Googling eu finalmente encontrei este site. Ao ler este artigo, estou convencido de que encontrei o que procurava ou pelo menos tenho aquela sensação estranha, descobri exatamente o que precisava. Claro que vou fazer você não esquecer este site e recomendá-lo, pretendo visitá-lo regularmente.

    lembranças

  26.   na dito

    Eu realmente te parabenizo! Eu li muitas páginas de iptables, mas nenhuma tão explicada como a sua; excelente explicação !!
    Obrigado por facilitar minha vida com essas explicações!

  27.   Anonimo dito

    Por um momento me sinto árabe xD