Getting Started with Linux Server - Starting a firewall script with systemd

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ย. 2024
  • Short ✔ Comment ✔ Share ✔ Sign up ✔
    In this lesson we will learn how to create and start a firewall script using systemd
    Access to the course: aulaead.thinkif...
    Blog: www.professorjo...
    Facebook: / professorjosedeassis
    Twitter: / joseassis
    Google+: plus.google.co...
    Linkedin: / professorjosedeassis
    SlideShare: en.slideshare.n...

ความคิดเห็น • 48

  • @bcktaba6699
    @bcktaba6699 11 หลายเดือนก่อน +1

    Parabéns pela belíssima didática sem enrolar e sem esconder nada. Gostava de saber se o que o senhor pensa sobre a firewal UFW ao invés do IPTABLES na qual não precisamos criar scripts de inicialização ou ele é mesmo muito simplório para uma empresa, por gentileza

  • @adrianohenrique6660
    @adrianohenrique6660 6 ปีที่แล้ว +1

    Muito bom manda maisss

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  6 ปีที่แล้ว

      Obrigado!
      Acompanha o meu blog: www.professorjosedeassis.com.br que sempre estou trazendo mais novidades.
      No Face também : facebook.com/professorjosedeassis
      Cursos Grátis no portal www.aulaead.com com Certificado, na prática e passo a passo !!! Linux Server, Linux Desktop, Windows Server, CISCO, GNS 3, VOIP, Programação, JAVA com Banco de Dados, Virtualização, REDES, Excel e muito mais !!!

  • @osmarsantos325
    @osmarsantos325 6 ปีที่แล้ว

    EXCELENTE!!!!

  • @Diego-lh8sz
    @Diego-lh8sz 5 ปีที่แล้ว +3

    Professor espero que goste do script, não coloquei cores, mas ficou funcional:
    # !/bin/bash
    # Funcao 1
    # Firewall
    firewall()
    {
    if [[ -f /usr/local/bin/firewall.sh ]]
    then
    echo "Arquivo ja existente"
    else
    echo "
    # !/bin/bash
    iptables -I INPUT -p ICMP -j DROP" > /usr/local/bin/firewall.sh
    chmod 777 /usr/local/bin/firewall.sh
    echo "Script 'firewall.sh' criado"
    fi
    }
    # Servico do Firewall
    firewall_service()
    {
    if [[ -f /etc/systemd/system/firewall.service ]]
    then
    echo "Arquivo ja existente"
    else
    echo "
    [Unit]
    Description=Firewall
    [Service]
    ExecStart=/usr/local/bin/firewall.sh start
    ExecStop=/usr/local/bin/firewall.sh stop
    ExecReload=/usr/local/bin/firewall.sh restart
    [Install]
    WantebBy=multi-user.target" > /etc/systemd/system/firewall.service
    echo "Servico 'firewall.service' criado"
    chmod 777 firewall.service
    fi
    }
    # Exclusao de Arquivos
    deletar_arquivo()
    {
    if [[ -f /etc/systemd/system/firewall.service && -f /usr/local/bin/firewall.sh ]]
    then
    rm -rf /usr/local/bin/firewall.sh
    rm -rf /etc/systemd/system/firewall.service
    echo "Arquivos excluidos"
    else
    echo "Arquivos nao existem"
    fi
    }
    # Execucao de Comandos
    executar()
    {
    /usr/local/bin/firewall.sh
    systemctl daemon-reload
    systemctl enable firewall
    systemctl start firewall
    systemctl status firewall
    }
    ############
    # Programa #
    ############
    clear
    i=1
    while(( $i == 1 ))
    do
    echo "Programa Firewall"
    echo ""
    echo "Tarefas Agendadas"
    echo "[1] Criar arquivos de regras de Firewall"
    echo "[2] Executar junto ao sistema"
    echo "[3] Deletar Arquivo de Regras de Firewall [ICMP]"
    echo "[4] Sair"
    echo ""
    echo -n "Resp: "
    read resp
    if (( $resp == 1 ))
    then
    firewall
    firewall_service
    elif (( $resp == 2))
    then
    executar
    elif (( $resp == 3 ))
    then
    deletar_arquivo
    else
    i=2
    clear
    fi
    done

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  5 ปีที่แล้ว +1

      parabéns pelo script, a linguagem shell script é muito usada e cai na certificação LPI

    • @Diego-lh8sz
      @Diego-lh8sz 5 ปีที่แล้ว

      @@ProfessorJosedeAssis Valeu professor. Até dei uma melhorada, vou postar aqui.

    • @Diego-lh8sz
      @Diego-lh8sz 5 ปีที่แล้ว +2

      @@ProfessorJosedeAssis #!/bin/bash
      # Funcao 1
      # Firewall
      firewall()
      {
      if [[ -f /usr/local/bin/firewall.sh ]]
      then
      echo "Arquivo ja existente"
      else
      echo "#!/bin/bash" > /usr/local/bin/firewall.sh
      echo "# Limpar todas as regras pré existentes" >> /usr/local/bin/firewall.sh
      echo "iptables -F" >> /usr/local/bin/firewall.sh
      echo "iptables -t nat -F" >> /usr/local/bin/firewall.sh
      echo "iptables -t mangle -F" >> /usr/local/bin/firewall.sh
      echo "# A linha abaixo ativa o módulo do netfilter que evita ataques DoS" >> /usr/local/bin/firewall.sh
      echo "echo 1 > /proc/sys/net/ipv4/tcp_syncookies" >> /usr/local/bin/firewall.sh
      echo "# Liberar portas dos serviços necessários" >> /usr/local/bin/firewall.sh
      echo "iptables -A INPUT -p tcp --dport 22 -j ACCEPT" >> /usr/local/bin/firewall.sh
      echo "iptables -A INPUT -p tcp --dport 80 -j ACCEPT" >> /usr/local/bin/firewall.sh
      echo "iptables -A INPUT -p tcp --dport 443 -j ACCEPT" >> /usr/local/bin/firewall.sh
      echo "iptables -A INPUT -p tcp --dport 3306 -j ACCEPT" >> /usr/local/bin/firewall.sh
      echo "# Bloqueio de PING" >> /usr/local/bin/firewall.sh
      echo "iptables -I INPUT -p ICMP -j DROP" >> /usr/local/bin/firewall.sh
      echo "# A linha abaixo faz o bloqueio de conexões nas demais portas" >> /usr/local/bin/firewall.sh
      echo "iptables -A INPUT -p tcp --syn -j DROP" >> /usr/local/bin/firewall.sh
      chmod +x /usr/local/bin/firewall.sh
      echo "Script 'firewall.sh' criado"
      fi
      }
      # Servico do Firewall
      firewall_service()
      {
      if [[ -f /etc/systemd/system/firewall.service ]]
      then
      echo "Arquivo ja existente"
      else
      echo "[Unit]" >> /etc/systemd/system/firewall.service
      echo "Description=Firewall" >> /etc/systemd/system/firewall.service
      echo "[Service]" >> /etc/systemd/system/firewall.service
      echo "ExecStart=/usr/local/bin/firewall.sh start" >> /etc/systemd/system/firewall.service
      echo "ExecStop=/usr/local/bin/firewall.sh stop" >> /etc/systemd/system/firewall.service
      echo "ExecReload=/usr/local/bin/firewall.sh restart" >> /etc/systemd/system/firewall.service
      echo "[Install]" >> /etc/systemd/system/firewall.service
      echo "WantebBy=multi-user.target" >> /etc/systemd/system/firewall.service
      echo "Servico 'firewall.service' criado"
      fi
      }
      # Exclusao de Arquivos
      deletar_arquivo()
      {
      if [[ -f /etc/systemd/system/firewall.service || -f /usr/local/bin/firewall.sh ]]
      then
      rm -rf /usr/local/bin/firewall.sh
      rm -rf /etc/systemd/system/firewall.service
      echo "Arquivos excluidos"
      else
      echo "Arquivos nao existem"
      fi
      }
      # Execucao de Comandos
      executar()
      {
      /usr/local/bin/firewall.sh
      systemctl daemon-reload
      systemctl enable firewall
      systemctl start firewall
      systemctl status firewall
      }
      ############
      # Programa #
      ############
      i=1
      while(( $i == 1 ))
      do
      clear
      echo "Programa Firewall"
      echo ""
      echo "Tarefas Agendadas"
      echo "[1] Criar arquivos de regras de Firewall"
      echo "[2] Executar junto ao sistema"
      echo "[3] Deletar Arquivo de Regras de Firewall [ICMP]"
      echo "[4] Sair"
      echo ""
      echo -n "Resp: "
      read resp
      if (( $resp == 1 ))
      then
      firewall
      firewall_service
      echo ""
      echo "--- Pressione qualquer tecla ---"
      read
      elif (( $resp == 2))
      then
      executar
      echo ""
      echo "Pressione qualquer tecla"
      read
      elif (( $resp == 3 ))
      then
      deletar_arquivo
      echo ""
      echo "--- Pressione qualquer tecla ---"
      read
      else
      i=2
      clear
      fi
      done

  • @renatoracin
    @renatoracin 6 ปีที่แล้ว +2

    parabéns pelo conteúdo. Gostaria de acrescentar uma coisa:
    em alguns casos o serviço pode retornar um erro de execução "process exited, code=exited, status=203/EXEC"
    para contornar o problema é preciso indicar /bin/bash antes do caminho do script, ficando assim:
    ExecStart=/bin/bash /usr/local/bin/firewall.sh start
    ExecStop=/bin/bash /usr/local/bin/firewall.sh stop
    ExecReload=/bin/bash /usr/local/bin/firewall.sh restart
    Fonte: stackoverflow.com/questions/45776003/fixing-a-systemd-service-203-exec-failure-no-such-file-or-directory?

  • @juniorribeiro280
    @juniorribeiro280 6 ปีที่แล้ว

    o meu é debian 9, e ao chegar a linha 1 nao digita mais nada, oque devo fazer?

  • @professorramos
    @professorramos 6 ปีที่แล้ว +2

    Mais uma aula sensacional !!!

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  6 ปีที่แล้ว

      Obrigado mestre !!!Acompanha o www.professorjosedeassis.com.br/ que sempre estou trazendo as novidades de TI !!! no Face também : facebook.com/professorjosedeassis Cursos Grátis no portal aulaead.com com Certificado, na prática e passo a passo !!! Linux Server, Linux Desktop, Windows Server, CISCO, GNS 3, VOIP, Programação, JAVA com Banco de Dados, Virtualização, REDES, Excel e muito mais !!!

  • @brunomarinho3540
    @brunomarinho3540 6 ปีที่แล้ว +3

    Professor José de Assis, porque foi criado duas instâncias DROP na chain INPUT quando reinicia o servidor?

    • @Anderson_Rafaell77
      @Anderson_Rafaell77 4 ปีที่แล้ว

      Vc deve ter executado o comando duas vezes, eu fiz isso.
      Mas é só apagar tudo e refazer .

  • @allyssonarthur5482
    @allyssonarthur5482 3 ปีที่แล้ว

    Tenho uma dúvida, pode me explicar por favor. O arquivo firewall.sh foi criado com uma regra input, no systemd foi configurado para esse arquivo iniciar como um serviço, pelo que entendi. No momento que o servidor é reiniciado e verificado o iptables, em 14:47 há duas regras criadas, porque ? Agradeço antecipadamente.

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  3 ปีที่แล้ว +1

      Allyson, isto acontece pois neste script de exemplo eu não limpei regras pré-existentes antes de iniciar. Esta playlist está em produção, em breve darei continuidade e mostrarei como resolver esta questão.

  • @Anderson_Rafaell77
    @Anderson_Rafaell77 4 ปีที่แล้ว

    professor, o certificado no curso ead, como faz pra poder responder as questões dobre os outros módulos?
    Depois que respondi as 11 do módulo um, não aprece pra poder continuar o questionário .

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  4 ปีที่แล้ว +1

      O questionário é único para todos os módulos. É só responder e acertar pelo menos 60% que você obtém o certificado.

  • @fransualdolopes5492
    @fransualdolopes5492 3 ปีที่แล้ว

    Professor José de Assis, Não encotro o video da aula 4 desta serie em seus videos

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  3 ปีที่แล้ว

      Esta playlist está em produção, em breve voltarei a publicar vídeos aproveitando o lançamento do Debian 11

  • @alexandersantos7575
    @alexandersantos7575 5 ปีที่แล้ว

    Não consegui iniciar o serviço do firewall de jeito nenhum. O serviço fica habilitado, mas não fica ativo. Alguém com o mesmo problema?

  • @Bufalo616
    @Bufalo616 6 ปีที่แล้ว +1

    Prof José, dizer que adorei a sua aula. Estou trabalhando agora em ambiente Linux e as suas aulas estão ajudando bastante. Gostei bastante e já me subscrevi no canal. Escrevi de Luanda/Angola. Muito obrigado

  • @antoniocaetano3707
    @antoniocaetano3707 2 ปีที่แล้ว +1

    Aula incrível e de altíssima qualidade, obrigado professor.

  • @sergiodantas1173
    @sergiodantas1173 2 ปีที่แล้ว +1

    Massa.

  • @renatolopes3301
    @renatolopes3301 6 ปีที่แล้ว

    Professor boa noite. Estou fazendo esse curso na plataforma aulaEAD e estou nessa aula. Já tentei seguindo o passo a passo configurar o firewall mas da vários erros aos quais não consigo corrigir(visto que fiz tudo conforme sua aula). Poderia me orientar ou passar um email de contato? Agradeço pela atenção e aguardo uma resposta.

  • @vaniltonfsantos
    @vaniltonfsantos 5 ปีที่แล้ว

    Gostei demais, aprendi algo que procurava já fazia tempo: criar meus próprios serviços no sistemd. Valeu!

  • @YPauli
    @YPauli 2 ปีที่แล้ว +1

    Único que deu certo, obrigado mestre

  • @edilsonbarbosa6472
    @edilsonbarbosa6472 6 ปีที่แล้ว +1

    Excelente Professor, mais uma excelente aula!

  • @Naldotecnologia
    @Naldotecnologia 6 ปีที่แล้ว +1

    Muito Bom professor, muito obrigado.

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  6 ปีที่แล้ว

      Obrigado pelo apoio !
      Acompanha o meu blog: www.professorjosedeassis.com.br que sempre estou trazendo mais novidades.
      No Face também : facebook.com/professorjosedeassis
      Cursos Grátis no portal www.aulaead.com com Certificado, na prática e passo a passo !!! Linux Server, Linux Desktop, Windows Server, CISCO, GNS 3, VOIP, Programação, JAVA com Banco de Dados, Virtualização, REDES, Excel e muito mais !!!

  • @jesustecprosperityyy
    @jesustecprosperityyy 6 ปีที่แล้ว

    muito boa as aulas nota 10, uma sugestão que vai bombar no seu canal , servidores com Slackware 14.2 ou superior ( todo os tipos de serviço que puder realizar )

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  6 ปีที่แล้ว

      Obrigado pelo apoio. Sugestão anotada !
      Acompanha o meu blog: www.professorjosedeassis.com.br que sempre estou trazendo mais novidades.
      No Face também : facebook.com/professorjosedeassis
      Cursos Grátis no portal www.aulaead.com com Certificado, na prática e passo a passo !!! Linux Server, Linux Desktop, Windows Server, CISCO, GNS 3, VOIP, Programação, JAVA com Banco de Dados, Virtualização, REDES, Excel e muito mais !!!

  • @solomonjua
    @solomonjua 5 ปีที่แล้ว

    Excelente.Grato.

  • @Anderson_Rafaell77
    @Anderson_Rafaell77 4 ปีที่แล้ว

    Professor, indica um livro pra fixação desse curso!

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  4 ปีที่แล้ว

      Indico este curso:
      www.aulaead.com/courses/curso-linux-security-iptables-squid-endian-firewall

  • @leonardosilva-fy1uh
    @leonardosilva-fy1uh 4 ปีที่แล้ว

    Lamento muito o fim do projeto :( você ajudou bastante gente

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  4 ปีที่แล้ว

      Novos projetos em produção. Inscreva-se para não perder nenhuma novidade!

  • @RamonBezerril
    @RamonBezerril 6 ปีที่แล้ว

    Ate este passo as máquinas cliente já deveriam ter acesso a internet ?

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  6 ปีที่แล้ว

      Não, para as máquinas clientes acessarem a internet você precisa configurar o NAT no iptables. O curso abaixo ensina a fazer isso:
      aulaead.thinkific.com/courses/curso-linux-security-iptables-squid-endian-firewall

    • @RamonBezerril
      @RamonBezerril 6 ปีที่แล้ว

      Lá está atualizado para o Debian 9 Stretch ?

    • @ProfessorJosedeAssis
      @ProfessorJosedeAssis  6 ปีที่แล้ว

      Estou atualizando(previsão para finalizar em abril). Vou manter o curso com as duas versões do debian (8 e 9)