KrEdEnS | 2020-05-08 14:16:14 UTC | #1
Witajcie, chciałbym przedstawić wam krótki myk na robienie automatycznych tcpdumpów podczas ataku DDoS/DoS
https://forum.lvlup.pro/t/otrzymuje-atak-ddos-na-vps-co-robic-i-jak-zyc/9207?u=kredens
Nie panikuj, zachowaj zimną krew
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.
_KrEdEnS_
skończ gadać i mów co i jak 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
Zacznijmy od sprawdzenia nazwy interfejsu sieciowego. W tym celu wpisujemy komendę ifconfig
. Po jej wpisaniu ukazuje nam się taka litania . No chyba, że się nie pokaże :sweat_smile: w tedy należy wpisać
ip a
.
Do późniejszej konfiguracji wykorzystamy eth0 (jest to ~~nazwa interfejsu sieciowego~~ - po prostu karty sieciowej, którą definiujemy w późniejszym configu -> DEVICE=“itaknikttegonieprzeczyta”; gdzie itaknikttegonieprzeczyta to w naszym przypadku eth0)
root@vps6819:~# ifconfig
eth0: flags=4163mtu 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 0lo: 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 Debiana
sudo apt-get update
- potwierdzamy wpisując y i zatwierdzamy enterem
sudo apt-get upgrade
- potwierdzamy wpisując y i zatwierdzamy enterem
sudo 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”;
SENDTHRESHOLD=”50”;
RECVTHRESHOLD=”30”;
PPSTHRESHOLD=”10000”;
LOGPATH=”/var/log/dosmon”;
SAMPLESIZE=”100000”;
COOLDOWN=”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”;
SENDTHRESHOLD=”35”;
RECVTHRESHOLD=”15”;
PPSTHRESHOLD=”15000”;
LOGPATH=”/var/log/dosmon”;
SAMPLESIZE=”100000”;
COOLDOWN=”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 .
RECV_THRESHOLD
to otrzymana prędkość 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ąc dosmon.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 :tada: :clap:
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://forum.lvlup.pro/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/
Żeby szybko i bezboleśnie zahostować zebrane tcpdumpy posłużymy cURL-em ;)
1. Przechodzimy do katalogu /var/log/dosmon
2. Listujemy znajdujące się w nim pliki poleceniem ls
3. Wybieramy tak bardzo interesujący obsługę dump (gdzie 2020-04-1423-49eth0-11372pps.pcap to nasza przykładowa nazwa dumpa): 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/"
4. W odpowiedzi dostajemy (to co pięknie zakreśliłem to link do pobrania wysłanego pliku):
Do łatwego wyhostowania zebranych logów posłużymy się darmowym hostingiem plików https://mega.nz/
megatools-a
komendą:sudo apt-get install megatools
sudo nano /root/.megarc
[Login]
Username = Your_Mega_Username
Password = Your_Mega_Password
chmod 640 /root/.megarc
megals
;)root@vps6819: megals
/Contacts
/Inbox
/Root
/Trash
megaput --path=/Root "/var/log/dosmon/2020-04-14_23-49_eth0-11372pps.pcap"
artur9010 | 2020-04-14 23:47:12 UTC | #2
[quote=”KrEdEnS, post:1, topic:14326”]
sudo apt-get install tcpdump
sudo apt-get install perl
sudo apt-get install git
sudo apt-get install build-essential
[/quote]
Zastanawia mnie, dlaczego tu są cztery polecenia zamiast jednego. Mniej kopiowańska by było
KrEdEnS | 2020-04-15 00:00:50 UTC | #3
@artur9010 słuszna uwaga ;)
Jebanany | 2020-04-24 18:43:22 UTC | #4
Świetny poradnik! Bardzo dobra robota!
[quote=”KrEdEnS, post:1, topic:14326”]
* Do późniejszej konfiguracji wykorzystamy eth0**
[/quote]
Warto dopisać, gdzie później będzie to potrzebne lub się do tego odnieść w dalszej części poradnika (co dokładnie daje nam użycie komendy ifconfig, po co mamy ją wywołać, jakie dane mamy z niej wykorzystać), tj.:
[quote=”KrEdEnS, post:1, topic:14326”]
PS. Wartości dla SEND_THRESHOLD
; RECV_THRESHOLD
; PPS_THRESHOLD
warto dobrać pod obecny ruch na serwerze
[/quote]
Prawdopodobnie tutaj, warto to rozszerzyć.
KrEdEnS | 2020-04-26 23:03:17 UTC | #5
Ok, postaram, się rozwinąć wspomniane fragmenty :)
EDIT. Dodałem co nieco
Qmis | 2020-04-27 08:26:08 UTC | #6
polecam działa kredens umie dobrze wszystko ustawić
Jakub | 2020-04-27 09:42:27 UTC | #7
działa jak natura chciała
Axerr | 2020-05-08 01:19:14 UTC | #8
[quote=”KrEdEnS, post:1, topic:14326”]
[b]istniejący[/b] już poradnikiem:
[/quote]
literówka
Poradnik spoko :)
KrEdEnS | 2020-05-08 14:16:33 UTC | #9
Poprawione :slight_smile:
akuku597 | 2020-05-09 12:29:48 UTC | #10
nie wiem czy wam dziala ale mi nie działa a mialem atatki małe ze tylko ping skoczył +25
Jakub | 2020-05-09 12:40:42 UTC | #11
jesteś pewien, że był to atak - jeśli tak po czym to stwierdziłeś?
Skok pingu nie musi być spowodowany atakiem.
akuku597 | 2020-05-09 12:52:57 UTC | #12
w filtrowanie UDP mi pokazało
KrEdEnS | 2020-05-09 13:09:56 UTC | #13
Zależy od konfiguracji wtyczki :) Wejdź na proxmoxa ustaw sobie day (maximum) i pokaż wykres sieci.
EDIT: Co do lekkiego skoku -> Welcome to ovh tak działa vac (o ile w ogolę zadziała :rofl: )