Protecţie Atacuri DDoS

Avatar utilizator
Analistyc
Nivel 1

Nivel 1
Mesaje: 105
Membru din: 26 Iul 2013, 15:02
Server: Metin2Ro
Regat: Jinno
Aprecieri: 0
Mulţumiri: 25  
Medalii

Salutare Just4Metin, astazi o să vă arat o protecţie pentru serverul vostru de Metin2.

Deci să începem.
    • Pasul 1 > Deschidem Firewall-ul prin urmatoarea comandă rc.conf se găseste în urmatorul folder:
    /etc/.

    Cod: Selectaţi tot

    pf_enable="YES"
    pf_rules="/etc/pf.conf"
    pf_flags=""
    pflog_enable="YES"
    pflog_logfile="/var/log/pflog"
    pflog_flags=""
      • Pasul 2 > Acuma vom configura Firewall-ul pentru asta trebuie să scriem urmatoarea comandă /etc/pf.conf/ şi introducem următoarele linii.

      Cod: Selectaţi tot

      block in all
      pass in quick on lo0
      pass out quick on lo0
      table <blocaj> persist file "/var/db/lista(Sau îl numim cum dorim)"
      block quick from <Blocaj>
      pass in quick on sis0 proto tcp from any to any port 22 keep state
      pass in quick on sis0 proto tcp from any to any port 80 keep state
      pass in quick on sis0 proto tcp from any to any port 3690 keep state
      pass out all keep state
      Perfect Am blocat toate intrările.
      • Pasul 3 > Acum o să facem o lista iar pentru asta o să ii dăm următorul permis.

      Cod: Selectaţi tot

      touch /var/db/lista
      chmod 644 /var/db/lista
      • Pasul 4 > Acum o să facem scriptul ''Blocaj'' şi o să ii dăm permisiunile chmod 751.

      Cod: Selectaţi tot

      #!/usr/bin/perl
      
      use strict;
      
      my @assholes = ();
      
      open (IN, "/var/log/auth.log");
      while (<IN>) {
              if ($_ =~ /Invalid user.*from ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/) {
                      push(@assholes, $1);
              }
              if ($_ =~ /Did not receive identification string from ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/) {
                      push(@assholes, $1);
              }
      }
      close (IN);
      
      @assholes = sort {lc($a) cmp lc($b)} @assholes;
      
      my @allowedIPs = ();
      open (IN, "/var/db/allowed-ips");
      while (<IN>) {
              if ($_ =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {
                      push(@allowedIPs, $_);
              }
      }
      close (IN);
      
      chop(@allowedIPs);
      
      my $tmp = "";
      foreach my $asshole (@assholes) {
              if ($asshole eq $tmp) {
                      $asshole = "";
              } else {
                      if ($asshole =~ /127\.0\.0\.1/) {
                              $asshole = "";
                      }
                      if ($asshole =~ /192\.168\.[0-9]+\.[0-9]+/) {
                              $asshole = "";
                      }
                      foreach my $allowedIP (@allowedIPs) {
                              if ($asshole =~ /$allowedIP/) {
                                      $asshole = "";
                              }
                      }
                      $tmp = $asshole;
              }
      }
      
      @assholes = sort {lc($b) cmp lc($a)} @assholes;
      
      my $popCount = 0;
      foreach my $asshole (reverse @assholes) {
              if ($asshole eq "") {
                      $popCount++;
              }
      }
      
      for (my $i = 0; $i < $popCount; $i++) {
              pop (@assholes);
      }
      
      my $list = "";
      foreach my $asshole (@assholes) {
              $list = $list . $asshole . " ";
      }
      
      exec "/sbin/pfctl -t Blocaj -T add $list";
      • Pasul 5 > Acuma mergem în /etc/syslog.conf şi îi adăugăm urmatoarea linie.

      Cod: Selectaţi tot

      auth.info;authpriv.info                         | exec /usr/bin/perl /sbin/Blocaj.pl
      Acest script va executa blocajul pentru IP-uri externe. Sper ca va fost de folos.

      Această protecţie vă este oferită de Just4Metin.ro
      Pentru acest mesaj, Analistyc for the post:
      Sibaba
      Imagine
      Afișează semnătura
      Răspunde

      Înapoi la “Securitate și protecție hackuri”

      • Informaţie
      • Cine este conectat

        Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator