Como iniciar regras de iptables automaticamente no systemd (ArchLinux)

Sou considerado paranóico por alguns no que diz respeito à segurança, por isso o uso de um firewall é essencial para mim. No meu laptop, tenho informações confidenciais, de grande importância para mim; e porque o firewall é para o PC como uma fechadura ou cofre para nós, lembrando também que no computador guardamos senhas de acesso ao e-mail, dados bancários (de quem os possui), informações do servidor, e outras informações virtuais que influenciam diretamente a nossa vida física ... enfim, sem dúvida percorrer a rede sem um firewall configurado, sem a devida segurança em nosso computador, não é algo recomendado.

Algum tempo atrás eu mostrei como iniciar regras de iptables automaticamente em distros como o Debian, Ubuntu ou outros que contenham o arquivo /etc/rc.local, porém no ArchLinux como ele usa o systemd este arquivo não existe.

Então, a maneira que eu encontrei para que meu iptables seja configurado como eu desejo é criar um script bash que configura iptables, e então modificar o arquivo /usr/lib/systemd/system/iptables.service ... mas, vamos em partes 🙂

1. devemos criar um script bash contendo nossas regras de iptables, mais ou menos assim: Exemplo de script Bash + iptables

2. Depois de criar o script, escrever nossas regras nele e dar a ele permissões de execução, passamos a editar o serviço iptables do systemd:

O seguinte comando deve ser executado com permissões administrativas, usando sudo like me ou diretamente com o usuário root

sudo nano /usr/lib/systemd/system/iptables.service

Encontraremos algo assim:

[Unidade] Descrição = Estrutura de filtragem de pacotes [Serviço] Tipo = oneshot ExecStart = / usr / bin / iptables-restore /etc/iptables/iptables.rules ExecReload = / usr / bin / iptables-restore /etc/iptables/iptables.rules ExecStop = / usr / lib / systemd / scripts / iptables-flush RemainAfterExit = sim [Instalar] WantedBy = multi-user.target

3. Supondo que o script que criamos anteriormente esteja localizado em /home/myuser/script-iptables.sh, deixaremos o arquivo iptables.service que abrimos da seguinte forma:

[Unit] Description = Packet Filtering Framework [Service] Type = oneshot ExecStart = / home / myuser / script-iptables.sh ExecReload = / home / myuser / script-iptables.sh ExecStop = / usr / lib / systemd / scripts / iptables -flush RemainAfterExit = sim [Instalar] WantedBy = multi-user.target

4. Então, precisamos ter certeza de que o iptables inicia automaticamente:

sudo systemctl enable iptables

5. Nós começamos:

sudo systemctl start iptables

6. E podemos verificar as regras:

sudo iptables -nL

Esta é apenas a maneira mais simples que encontrei de (1) ter meu próprio script bash que configura iptables para mim, também (2) que as regras começam automaticamente e finalmente (3) que o próprio script era algo independente, isto é, se amanhã eu quero usar em um Debian que eu instalo (por exemplo) não terei que reconfigurar muito.

De qualquer forma, espero que seja útil 🙂

lembranças


8 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.   eliotime3000 dito

    Interessante….

  2.   Saul dito

    Não teria sido mais fácil editar o arquivo iptables.rules, se você já tem acesso root com sudo valeria a pena modificá-lo, certo?

  3.   xphnx dito

    Eu faço isso de uma maneira um pouco diferente, embora também aproveite o script que você carregou para iniciar as regras.

    1- Lançamos o serviço (se ainda não o fizemos):
    # systemctl enable iptables.service
    # systemctl start iptables.service

    2- Nós vemos quais regras temos ativas (assumimos que tudo está aberto se não tocamos em nada) sudo iptables -nvL

    3- Mudamos as regras que desejamos, iniciando o script de configuração:
    # sh /home/miusuario/script-iptables.sh

    4- Vamos ver como as regras ativas mudaram:
    # iptables -nvL

    5- Salvamos a nova configuração do iptables para reinicializações futuras:
    # iptables-save > /etc/iptables/iptables.rules

    5b- Se editarmos o arquivo /etc/iptables/iptables.rules manualmente para alterar as regras, devemos recarregar a configuração:
    # systemctl reload iptables

    Pelo menos para mim é mais fácil assim. Estou tentando aprender um pouco de bash e kdialog para gerenciar as configurações de uma forma mais gráfica. Depois vou tentar fazer algo mais completo com qtcreator por exemplo, para poder ter vários scripts de configuração dependendo do equipamento que estamos configurando (roteador, PC, etc ...) para ver se sai.

  4.   caçador dito

    Este captcha para comentários é um filtro de bug, por favor, mude para outro ou atualize este porque se torna irritante após várias tentativas.

    1.    elav. dito

      É o mesmo usado por humanOS, Firefoxmanía .. talvez seja algo com o cache.

      1.    caçador dito

        Bem, eu nem comento mais esses dois.

  5.   mj dito

    Atenciosamente,
    Este é um tópico extremamente útil.
    Sem dúvida para aqueles que se interessam pela segurança das informações armazenadas em nosso PC; "Iptables" é uma das ferramentas que devem ser aprendidas para usar; embora, por sua própria importância, seja um pouco complicado de aprender.
    Encontrei este vídeo sobre o assunto, e espero que você me permita compartilhar seu endereço de e-mail "http://www.youtube.com/watch?v=Z6a-K_8FT_Y"; minha surpresa foi que é algo diferente do que se trata aqui. Mas de qualquer maneira, suponho que será devido à diversidade de distribuições que o GNU / Linux possui (ARCH, DEBIAN, SUSE, etc), teremos que aprender de qualquer maneira.