[Metin2] [TuT] [Security] FreeBSD DDoS sau Firewall

Avatar utilizator
Lucian Hritcu
Mister Just4Metin

Mister Just4Metin
Mesaje: 370
Membru din: 11 Dec 2013, 07:52
Server: ► #Sexolog
Regat: Jinno
Aprecieri: 32  
Mulţumiri: 61  
 Contact:
Medalii

In primul rand trebuie sa intelegem ce inseamna DDOS, cuvantul "DDoS" sunt defapt initialele de la (A Distributed Denial of Service) mai exact trimiterea unor pachete catre server pana serverul nu mai poate procesa informatiile primite si pica!

Pentru cine nu are perl instalat, este foarte simplu de instalat

Cod: Selectaţi tot

cd /usr/ports/lang/perl5.16 && make install clean
si folositi comanda:

Cod: Selectaţi tot

perl -v
Primul pas ca sa evitam aceasta situatie este sa activam firewalul din freebsd pentru asta trebuie sa intrati in /etc/rc.conf
si sa adaugati urmatoarele linii

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 urmator este sa intram in /etc/pf.conf si sa adaugam urmatoarea linie

Cod: Selectaţi tot

block in all
pass in quick on lo0
pass out quick on lo0
table <block> persist file "/var/db/[i]security[/i]"
block quick from <bloqueo>
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
Numele fisierului se poate schimba dupa preferinta voastra, eu am ales sa pun numele "Security".

Acum trebuie sa creem fisierul "security" si sa setam permisiunile 644, asa ca ne ajutam de urmatoarele comenzi.

Cod: Selectaţi tot

touch /var/db/security
chmod 644 /var/db/security
Mai apoi creem un fisier numit 'security.pl' in '/var/db' in care adaugam urmatoarea linie de cod si il salvam cu permisiunea 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 bloqueo -T add $list";
pentru setarea permisiunii folositi comanda

Cod: Selectaţi tot

chmod 751 security.pl
Mai apoi intrati in /etc/syslog.conf si inserati urmatoarea linie

Cod: Selectaţi tot

auth.info;authpriv.infoo
Dupa toate astea trebuie sa restartati serverul, si totul va fi configurat si gata de utilizare. Protectia aceasta asigura o rezistenta de pana la 50.000 pachete trimise de la 500mb /s in jos ! Success !
Pentru acest mesaj, Lucian Hritcu for the post:
Nin0Nin0
Imagine
Afișează semnătura
Avatar utilizator
sury1210
Nivel 3

Nivel 3
Mesaje: 369
Membru din: 08 Ian 2015, 20:43
Regat: Jinno
Aprecieri: 209  
Mulţumiri: 42  
  Rezolvări prob.: 1
Discord: Copiază ID
 Contact:
Medalii

acolo unde zice security.-cenzurat- ce cuvant este? nu pot sa vad ce e in loc de cenzurat
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 2 vizitatori