DDoS elleni védelem.

Indította orbancsabex, 2016-11-15, 15:43:19

2016-11-15, 15:43:19 Utolsó szerkesztés: 2016-11-15, 15:45:33 Szerző: orbancsabex
Sziasztok,manapság minden újfajta metin2 szervert "DDoS-olnak".
Mit is jelent a DDoS kifejezés?
A Distributed Denial of Service,vagyis sok úgymond csomag küldése a szervernek ameddig nem tudja feldolgozni az információt és leáll.
Bemutatok egy DDoS Firewall-t.
Első sorba:
~perl telepítése:
cd /usr/ports/lang/perl5.16 && make install clean utána perl -v
~Firewall elindítása:
Menj bele a /etc/rc.conf-ba.
A végére:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

Menj bele a /etc/pf.conf -ba
A végére:
block in all
pass in quick on lo0
pass out quick on lo0
table <block> persist file "/var/db/security"
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

Létrehozol egy fájl-t,amit "security"-nak mented el,
Miután létrehoztad,ezt írd be puttyba:
touch /var/db/security
chmod 644 /var/db/security

Létrehozol még egy fájl-t,amit "security.pl"-nak mented el (/var/db-be kell) beleilleszed a lenti szöveget és elmented.
#!/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";

Mented és putty-ba:
cd /var/db
chmod 751 security.pl

~Belemész a etc/syslog.conf fáljba és a végére ezt írod:
auth.info;authpriv.info

Ezek után restart és uáu,kész is van.
Ez a Firewall megvéd akár 50000 fogadott csomagtól ami 500mb/s és azalatt rendelkező internetsebességgel van elküldve.

[spoiler=DDoS elleni védelem][/spoiler]

Idézetet írta: orbancsabex Dátum 2016-11-15, 15:43:19
my @assholes = ();
                            push(@assholes, $1);
foreach my $asshole (@assholes) {
                            if ($asshole =~ /127\.0\.0\.1/) {
:-X
;D
  :-[

2016-11-15, 19:40:45 #3 Utolsó szerkesztés: 2016-11-15, 19:43:36 Szerző: Heaven™
Azé' kemény lenne, ha egy perl script csinálna.. khm.. bármit. Szívesen bebizonyítom, hogy hasztalan. ;D




//egyébként ezt a "megvéd akár 50000 fogadott csomagtól" dolgot te megszámoltad? Semmi ilyesmire utaló nincs a scriptben.

IdézEz a Firewall megvéd akár 50000 fogadott csomagtól ami 500mb/s és azalatt rendelkező internetsebességgel van elküldve.


Forrás:http://just4metin.ro/ghiduri-tutoriale/blocare-atacuri-tip-ddos-freebsd-t48492.html
Én csak lefordítottam nektek.
Ne engem marjatok.
Náluk valamiért működik.
Nem tudom mit mondjak.

Nyugi, értelmesnek tűnsz és végülis a jóindulat hajtott, dobok egy pluszt. ;) Egyébként minden savazás nélkül, szoftveres megoldásokkal sosem fogsz tudni igazán DDoS támadás ellen védekezni, kizárólag hardveres eszközökkel, a többi csak parasztvakítás. Az ehhez hasonló scriptek általában csak TCP flood ellen jók, mikor 1-2 hülyegyerek leül a gépe elé oszt' "lövik" az auth-ot, mer' az menő.

Nem hinném, hogy bárki is bántani akart de maga a script is egy vicc sajnos. :-X Tudjuk, hogy a jóindulat vezérelt de minden szurkálódást mellőzve mindenképpen több helyen is nézz utána annak amit publikálsz, hogy biztosan működőképes-e. Estem már párszor én is ebbe a hibába éppen azért kellett körülbelül 5 témámat "törölnöm" (persze nem én töröltem) még 2011-12 tájékáról. Így visszanézve kicsit röhejesek voltak.  ;D ;D Úgyhogy legközelebb ha publikálsz valamit amit nem te készítettél annyi helyen nézz utána ahány helyen csak tudsz, hogy jó-e mert különben ez lesz. Ja, és zárd a témát, hogy senki se tudjon hozzászólni.

Ha nem saját a leírás, akkor eleve illik belinkelni a forrást. Így egyrészt elkerüljük a tömegverekedést, másrészt minek akarja valaki okosnak beállítani magát, amikor csak a ctrl+c ctrl+v +/- magyarítás leírást csinált?

Ezt ne vedd támadásnak, csak egy konklúziót vonok le neked az esetről.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Idézetet írta: Heaven™ Dátum 2016-11-15, 21:05:28
Egyébként minden savazás nélkül, szoftveres megoldásokkal sosem fogsz tudni igazán DDoS támadás ellen védekezni, kizárólag hardveres eszközökkel, a többi csak parasztvakítás.

Idézetet írta: Ðarre™ Dátum 2016-11-15, 19:09:29
[spoiler][/spoiler]

UI: Hevön nekem semmi ilyesmi nincs, egy teszt? 8)

Mivel ez csak az auth.logból dolgozik,  jóval értelmesebb pl az sshguard használata.