Witajcie, chciałbym przedstawić wam krótki myk na robienie automatycznych tcpdumpów podczas ataku DDoS/DoS
1. Co to jest atak DDoS/DoS i jak się przed nim bronić?
https://lvlup.rok.ovh/t/otrzymuje-atak-ddos-na-vps-co-robic-i-jak-zyc/9207?u=kredens
2. Halooo serwer spadł z rowerka, co zrobić jak żyć?!
-
Nie panikuj, zachowaj zimną krew :kappa:
-
Nie pisz ticketów w stylu: Admin mam ddosa pomocy - to nic nie da. Tracisz czas swój i administracji https://www.lvlup.pro
-
Jedynym rozsądnym rozwiązaniem (po uprzednim zabezpieczeniu serwera) jest wykonanie tcpdumpa i wysłanie go do obsługi https://www.lvlup.pro w celu zabezpieczania nowej metody.
3. Dobra _KrEdEnS_
skończ gadać i mów co i jak :kappa:
Do automatycznego zbierania dumpów wykorzystamy darmowy skrypt (https://github.com/xnite/dosmon), który po przekroczeniu ustalonego w pliku konfiguracyjnym rate limitu zacznie wykonywać wspomnianego już wyżej tcpdumpa. Poniższy poradnik przedstawia instalację i konfigurację dosmon-a na Ubuntu 18.04 & Debian 10
✸ Ubuntu 18.04 & Debian 10
- Zacznijmy od sprawdzenia nazwy interfejsu sieciowego. W tym celu wpisujemy komendę
ifconfig
. Po jej wpisaniu ukazuje nam się taka litania :kappa:. No chyba, że się nie pokaże 😅 w tedy należy wpisaćip a
. Do późniejszej konfiguracji wykorzystamy eth0 (jest tonazwa interfejsu sieciowego- po prostu karty sieciowej, którą definiujemy w późniejszym configu -> DEVICE=“i_tak_nikt_tego_nie_przeczyta”; gdzie i_tak_nikt_tego_nie_przeczyta to w naszym przypadku eth0)
root@vps6819:~# ifconfig eth0: flags=4163 mtu 1500 inet 178.33.104.179 netmask 255.255.255.255 broadcast 0.0.0.0 inet6 fe80::ff:fedc:b60a prefixlen 64 scopeid 0x20 ether 02:00:00:dc:b6:0a txqueuelen 1000 (Ethernet) RX packets 91658 bytes 129695612 (129.6 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 54947 bytes 4255629 (4.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 130 bytes 10782 (10.7 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 130 bytes 10782 (10.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
Kolejnym krokiem, który wykonamy, będzie instalacja wymaganych pakietów, które umożliwią bezproblemowe działanie naszego skryptu.
apt-get install sudo
- UWAGA wpisz dla Debianasudo apt-get update
- potwierdzamy wpisując y i zatwierdzamy enteremsudo apt-get upgrade
- potwierdzamy wpisując y i zatwierdzamy enteremsudo apt-get install tcpdump perl git build-essential
cpan install Net::Server::Daemonize
- potwierdzamy wpisując yes i zatwierdzamy enterem -
Następnie używając
git clone
pobieramy nasz skrypt :)git clone https://github.com/xnite/dosmon.git
przechodzimy do katalogu dosmon wpisując:cd dosmon
nadajemy uprawnienia dla skryptu a następnie go włączamy i edytujemy plik konfiguracyjny:chmod +x INSTALL.sh
sudo ./INSTALL.sh
mv /etc/dosmon/sample_conf /etc/dosmon/dosmon.conf
nano /etc/dosmon/dosmon.conf
-
W pliku ustawiamy poniżej przedstawione wartości:
DEVICE="eth0"; SEND_THRESHOLD="50"; RECV_THRESHOLD="30"; PPS_THRESHOLD="10000"; LOG_PATH="/var/log/dosmon"; SAMPLE_SIZE="100000"; COOL_DOWN="60";
- Przykładowa konfiguracja (bardzo wyczulona na ataki). Testowana na serwerze, gdzie uruchomiony jest serwer Teamspeak3 (do 256 slotów), kilka botów muzycznych i mała strona internetowa.
DEVICE="eth0"; SEND_THRESHOLD="35"; RECV_THRESHOLD="15"; PPS_THRESHOLD="15000"; LOG_PATH="/var/log/dosmon"; SAMPLE_SIZE="100000"; COOL_DOWN="30";
PS. Wartości dla SEND_THRESHOLD
; RECV_THRESHOLD
; PPS_THRESHOLD
warto dobrać pod obecny ruch na serwerze (skorzystaj z wykresu sieci w proxmoxie). Gdzie SEND_THRESHOLD
to przędność wysyłania w Mbps w skrócie, masz duży serwer Minecraft/TeamSpeak3 ustaw większą wartość, dzięki temu również można logować atak, który ktoś wykona z naszego serwera :kappa: . RECV_THRESHOLD
to otrzymana prędkość :kappa: również w Mbps. Tutaj fajnie jest ustawić wartość od 50 w górę. Oczywiście wszystko zależy od tego jakie ataki chcemy rejestrować. Ostatnim parametrem jaki warto ustawić jest PPS_THRESHOLD
, czyli pakiety na sekundę. Przy serwerze TS3, gdzie w godzinach szczytu jest około 500 osób + bot query normalnym ruchem jest około 35k pakietów :O . Dodatkowo przyjrzyjmy się parametrowi COOL_DOWN
odpowiada on za czas pomiędzy wykonywaniem kolejnych tcpdumpów, out of the box jest on ustawiony na 120 sekund. Osobiście polecam zmniejszyć tą wartość do 60 lub 30 sekund, żeby zebrać więcej logów.
-
Stopujemy naszą aplikację wpisując
dosmon.pl stop
a następnie uruchamiamy ją wpisującdosmon.pl start
-
Ok, nasze cudeńko już bangla ale to jeszcze nie wszystko. Musimy dodać jego autostart do crontaba. W tym celu wpisujemy
crontab -e
, wybieramy dogodny dla nas edytor tekstu (polecam nano) i na samym końcu wklejamy@reboot /usr/sbin/dosmon.pl start
Zapisujemy plik no i włala 🎉 👏
Nasze tcpdumpy będą się tworzyć w katalogu/var/log/dosmon
-
Żeby dumpy nie zjadły nam dysku musimy stworzyć skrypt, który będzie nam je systematycznie usuwał. W tym celu posłużymy się istniejącym już poradnikiem:
https://lvlup.rok.ovh/t/usuwanie-plikow-starszych-niz-x-dni/8447?u=kredens
PS. Ścieżka do katalogu, gdzie będą gościć nasze dumpy /var/log/dosmon/
4. Łatwe wrzucanie zebranych dumpów na plik.root.gg za pomocą cURL-a
Żeby szybko i bezboleśnie zahostować zebrane tcpdumpy posłużymy cURL-em ;)
- Przechodzimy do katalogu
/var/log/dosmon
- Listujemy znajdujące się w nim pliki poleceniem
ls
- Wybieramy tak bardzo interesujący obsługę dump (gdzie 2020-04-14_23-49_eth0-11372pps.pcap to nasza przykładowa nazwa dumpa): :kappa: i wpisujemy komendę:
curl --form 'file=@/var/log/dosmon/2020-04-14_23-49_eth0-11372pps.pcap' https://plik.root.gg:443 | sed "s/http:\/\/127\.0\.0\.1:8080/https:\/\/plik.root.gg/"
- W odpowiedzi dostajemy (to co pięknie zakreśliłem :kappa: to link do pobrania wysłanego pliku):
5. Hostowanie zebranych dumpów na Mega.nz
Do łatwego wyhostowania zebranych logów posłużymy się darmowym hostingiem plików https://mega.nz/
- Zakładamy konto na https://mega.nz/
- Po Założeniu konta instalujemy na naszym serwerze
megatools-a
komendą:sudo apt-get install megatools
- Tworzymy plik konfiguracyjny:
sudo nano /root/.megarc
z zawartością:
[Login]
Username = Your_Mega_Username
Password = Your_Mega_Password
- Nadajemy odpowiednie uprawnienia:
chmod 640 /root/.megarc
- Sprawdźmy czy wszystko bangla wpisując
megals
;)
root@vps6819: megals
/Contacts
/Inbox
/Root
/Trash
- Żeby wysłać naszego dumpa wpisujemy komendę (gdzie 2020-04-14_23-49_eth0-11372pps.pcap to nasz dump):
megaput --path=/Root "/var/log/dosmon/2020-04-14_23-49_eth0-11372pps.pcap"
- Po przejściu do panelu https://mega.nz/ widzimy plik (u mnie działa :kappa:) i po kliknięciu na niego PPM możemy go udostępnić poprzez link :slight_smile: