Abuse vanaf een VPS komt in vele vormen. De oorzaak en oplossing kan dan ook sterk verschillen per OS, gebruikte software / CMS en type abuse. In alle gevallen is het belangrijk om software op je VPS up-to-date te houden. Mocht er sprake zijn van abuse vanaf jouw VPS, dan is het na een update van je VPS aan te raden om je wachtwoorden te veranderen en je SSH-poort te beveiligen.
In dit artikel geven we tips voor het oplossen van de meest voorkomende soorten abuse vanaf je VPS:
- Je VPS stuurt Spam
- Je VPS voert bruteforce-aanvallen uit
- Phishing
- Malware-verspreiding
- Poortscans
- Copyright Infringement
- Uitgaande (D)DoS (bijv. UDP / SYN floods)
- Crypto miners
- WordPress-websites beveiligen
In ons artikel 'VPS-beveiliging' vind je een groeiend overzicht van artikelen om de beveiliging van je VPS te optimaliseren.
Je VPS verstuurt spam
Oorzaak
In de meeste gevallen wordt bij spam vanaf je VPS misbruik gemaakt van een contactformulier op een gehoste website zonder captcha-beveiliging (vaak in een populair CMS zoals WordPress, Joomla, Drupal, etc.). In dat geval kunnen automatische bots via jouw contactformulier spam versturen naar derden.
Een andere mogelijke (maar zeldzamere) oorzaak zijn spamscripts op een geïnfecteerde server. Mocht je VPS na het doorlopen van de stappen hieronder nog spam versturen dan raden wij aan ook de stappen voor 'Uitgaande bruteforce-aanvallen' te doorlopen.
Oplossing
In het overgrote deel van de gevallen is het voldoende een Captcha op je website te plaatsen op de pagina's waar mensen een contactformulier kunnen invullen. Je kunt hiervoor bijvoorbeeld de Recaptcha van Google voor gebruiken. Voor WordPress vind je hier een handleiding voor de installatie van Recaptcha.
Aanvullende tips:
- Houd je VPS en alles dat je er op host up-to-date. Met name oude versies van CMS-systemen zoals WordPress bevatten vaak bekende kwetsbaarheden.
- Download CMS thema's en plug-ins alleen van vertrouwde sites. Vaak zijn de 'gratis' downloads van normaliter betaalde add-ons geïnfecteerd met dergelijke malware.
- Gebruik voor WordPress een plugin zoals WordFence om de veiligheid van jouw website te verhogen, voor Joomla kun je bijvoorbeeld Securitycheck gebruiken.
- Voer regelmatig een scan op je VPS uit met een virusscanner zoals ClamAV. Zie bijvoorbeeld onze handleidingen voor ClamAV in CentOS, Ubuntu en Debian.
- Maak gebruik van onze VPS Mailservice zodat uitgaande spam al door ons geblokkeerd wordt.
Uitgaande bruteforce-aanvallen
Oorzaak
In de meeste gevallen worden bruteforce-aanvallen uitgevoerd vanaf servers waarvan via bruteforce-aanvallen de SSH-inloggegevens achterhaald zijn. Vervolgens wordt er een script geïnstalleerd die op zijn beurt bruteforce-, of DDoS-aanvallen uitvoert.
Oplossing
Bij bruteforce-aanvallen vanaf je VPS moet je zowel de huidige infectie van je VPS tackelen, als voorkomen dat die opnieuw kwetsbaar wordt. Dit doe je door de volgende stappen te doorlopen:
Stap 1
Je kunt op je VPS in de meeste gevallen zien of er een bruteforce-script actief is: zo ja, dan zal het CPU-gebruik van je VPS op het moment dat die een aanval uitvoert rond de 100% zitten (let wel dat dat 100% per core is. Heeft je VPS 2 cores, dan zal in je controlepaneel dit terug te zien zijn als 200%).
Stel dat je op moment dat je dit controleert niet je CPU volledig belast maar in het TransIP-controlepaneel bij je VPS dit wel regelmatig terugziet, dan zou je een cronjob kunnen instellen om jezelf een e-mail te laten sturen wanneer je CPU 100% belast wordt. Geef de cronjob bijvoorbeeld de volgende inhoud (let op de scroll balk):
*/5 * * * * /usr/bin/cat /proc/loadavg | awk '{print $1}' | awk '{ if($1 > 90) printf("Current CPU Utilization is: %.2f%\n"), $0;}' | mail -s "High CPU Alert" transip@example.com
Test wel van tevoren of je op je VPS het mail-commando kunt gebruiken. Zo niet, installeer dan eerst een MTA.
Stap 2
Gebruik je het maximum van je CPU? Vraag dan een lijst van alle actieve processen op via het commando:
ps aux | less
Indien je daar een onbekend proces terugziet zoals 'bash' of 'kwsapd0', kun je via het volgende commando het process sluiten: welke bestanden dit process open heeft:
lsof -p $processid
In dit commando vervang je '$processid' door de process ID uit de 'ps aux'.
Stap 3
Sluit het process met het commando:
kill 9 $processid
Vervang ook hier '$processid' door de process ID uit de 'ps aux'.
Je kunt nu de bestanden die je in stap 2 gevonden hebt verwijderen.
Het huidige probleem is hiermee opgelost, maar het is ook belangrijk om te voorkomen dat het zich nogmaals voordoet. We raden aan minimaal je SSH-poort te veranderen en/of SSH-keys te gebruiken. Daarnaast raden we ook de volgende maatregelen aan:
- Update je VPS en alles dat je daarop host regelmatig
- Gebruik bruteforce beveiliging zoals Fail2ban. Een handleiding voor de installatie en configuratie vind je hier.
- Voer regelmatig een scan op je VPS uit met een virusscanner zoals ClamAV. Zie bijvoorbeeld onze handleidingen voor ClamAV in CentOS, Ubuntu en Debian.
- Schakel poorten die je niet gebruikt uit in je firewall, zowel voor inkomend als uitgaand verkeer. Wanneer een poort gesloten is en de achterliggende service uitgeschakeld is, kan deze ook niet misbruikt worden door kwaadwillenden.
- Gebruik sterke wachtwoorden en schakel root-toegang via SSH uit.
- Gebruik voor WordPress een plugin zoals WordFence om de veiligheid van jouw website te verhogen, voor Joomla kun je bijvoorbeeld Securitycheck gebruiken.
Phishing
Oorzaak
Bij phishingpagina's op jouw server ligt de oorzaak vaak bij een kwetsbare installatie van WordPress of Joomla. Hierbij wordt vrijwel altijd gebruik gemaakt van een kwetsbaarheid waardoor kwaadwillenden deze content op jouw server kunnen plaatsen.
Oplossing
In eerste plaats is het belangrijk de phishing pagina's te verwijderen. Dit kun je bijvoorbeeld via FTP doen. In de Phishingmelding die je ontvangen hebt, staat om welke pagina het gaat. Stel dat dit voorbeeld.nl/foto's/bank.php is, dan zou je in je FTP client voor het domein voorbeeld.nl naar de map foto's gaan en daar het bestand bank.php verwijderen.
Hiernaast is het belangrijk ervoor te zorgen dat het probleem niet terug komt. Dit kun je bereiken via een aantal maatregelen:
- Zorg er voor dat je website altijd geüpdatet is naar de laatste versie van de daarvoor gebruikte software (e.g. WordPress, PHP). In oudere versies zijn vrijwel altijd kwetsbaarheden bekend.
- Gebruik alleen thema's en plug-ins van bekende websites. Voor WordPress bijvoorbeeld rechtstreeks via je eigen admin omgeving (voorbeeld.nl/wp-admin) > plugins en weergave > thema's.
- Gebruik voor WordPress een plugin zoals WordFence om de veiligheid van jouw website te verhogen (zie ook onze documentatie over het beveiligen van WordPress-websites). Voor Joomla kun je bijvoorbeeld Securitycheck gebruiken.
- Voer regelmatig een scan op je VPS uit met een virusscanner zoals ClamAV. Zie bijvoorbeeld onze handleidingen voor ClamAV in CentOS, Ubuntu en Debian.
Malware
Oorzaak
Bij malware klachten gaat het meestal om malware die vanaf pagina's op jouw server wordt verspreid. De oorzaak is meestal een kwetsbaarheid in een outdated plugin of thema van WordPress of Joomla. Hierbij wordt vrijwel altijd gebruik gemaakt van een kwetsbaarheid waardoor kwaadwillenden deze content op jouw server kunnen plaatsen.
Host je geen websites maar verspreid je VPS wel malware? Doorloop dan de stappen zoals aangegeven onder 'Uitgaande bruteforce-aanvallen'.
Oplossing
In eerste plaats is het belangrijk de malware te verwijderen, bijvoorbeeld via FTP. In de malwaremelding die je ontvangen hebt, staat om welk bestand op je VPS het gaat. Stel dat dit voorbeeld.nl/foto's/malware.php is, dan zou je in je FTP client voor het domein voorbeeld.nl naar de map foto's gaan en daar het bestand malware.php verwijderen.
Hiernaast is het belangrijk ervoor te zorgen dat het probleem niet terug komt. Dit kun je bereiken via een aantal maatregelen:
- Zorg er voor dat je website altijd geüpdatet is naar de laatste versie van de daarvoor gebruikte software (e.g. WordPress, PHP). In oudere versies zijn vrijwel altijd kwetsbaarheden bekend.
- Gebruik alleen thema's en plug-ins van bekende websites. Voor WordPress bijvoorbeeld rechtstreeks via je eigen admin omgeving (voorbeeld.nl/wp-admin) > plugins en weergave > thema's.
- Gebruik voor WordPress een plugin zoals WordFence om de veiligheid van jouw website te verhogen (zie ook onze documentatie over het beveiligen van WordPress-websites). Voor Joomla kun je bijvoorbeeld Securitycheck gebruiken.
- Voer regelmatig een scan op je VPS uit met een virusscanner zoals ClamAV. Zie bijvoorbeeld onze handleidingen voor ClamAV in CentOS, Ubuntu en Debian.
Poortscans
Oorzaak
Bij een poortscan scant je VPS alle mogelijke poorten van een andere server om te zoeken naar eventuele open poorten. Op deze 'open' poorten kan er dan vervolgens door kwaadwillenden weer geprobeerd worden binnen te dringen.
Poortscans vanaf jouw VPS worden vaak veroorzaakt door malware die op jouw VPS via een kwetsbaarheid terecht is gekomen. Meestal gaat het om automatische bots die je SSH-gegevens via bruteforce-aanvallen weten te achterhalen en vervolgens automatisch malware installeren.
Oplossing
Stap 1
Eerst is het belangrijk te achterhalen welk proces de malware verspreid. Gebruik bijvoorbeeld het commando:
ps aux | less
of
netstat -a
Indien je daar een onbekend proces terugziet, kun je via het volgende commando het process sluiten: welke bestanden dit process open heeft:
lsof -p $processid
In dit commando vervang je '$processid' door de process ID uit de 'ps aux'.
Stap 3
Sluit het process met het commando:
kill 9 $processid
Vervang ook hier '$processid' door de process ID uit de 'ps aux'.
Je kunt nu de bestanden die je in stap 2 gevonden hebt verwijderen.
Het huidige probleem is hiermee opgelost, maar het is ook belangrijk om te voorkomen dat het zich nogmaals voordoet. We raden aan minimaal je SSH-poort te veranderen en/of SSH-keys te gebruiken. Daarnaast raden we ook de volgende maatregelen aan:
- Update je VPS en alles dat je daarop host regelmatig
- Gebruik bruteforce beveiliging zoals Fail2ban. Een handleiding voor de installatie en configuratie vind je hier.
- Voer regelmatig een scan op je VPS uit met een virusscanner zoals ClamAV. Zie bijvoorbeeld onze handleidingen voor ClamAV in CentOS, Ubuntu en Debian.
- Schakel poorten die je niet gebruikt uit in je firewall, zowel voor inkomend als uitgaand verkeer. Wanneer een poort gesloten is en de achterliggende service uitgeschakeld is, kan deze ook niet misbruikt worden door kwaadwillenden.
- Gebruik sterke wachtwoorden en schakel root-toegang via SSH uit.
- Gebruik voor WordPress een plugin zoals WordFence om de veiligheid van jouw website te verhogen, voor Joomla kun je bijvoorbeeld Securitycheck gebruiken.
Copyright Infringement
Oorzaak
Bij 'copyright infringement' of 'trademark infringement' ( / merkrecht inbreuk) is het zo dat wij een melding krijgen dat er onrechtmatig content gedeeld wordt vanaf jouw VPS. Dit kan bijvoorbeeld een torrent zijn die al dan niet via een VPN is verbonden of afbeeldingen van een bepaald merk product dat in jouw webshop getoond wordt.
Oplossing
De eenvoudigste oplossing hiervan is het verwijderen van de inbreukmakende content op jouw VPS. Om herhaling te voorkomen raden we afhankelijk van de oorzaak de volgende maatregelen aan:
- Zorg er voor dat je geen torrent-programma draait op jouw VPS.
- Stel ventuele media die je zelf hebt geüpload naar je VPS niet publiekelijk beschikbaar.
- Wanneer je ook een VPN-server draait op je VPS, zorg er voor dat verbonden gebruikers geen gebruik kunnen maken van torrent-verkeer.
- Wanneer je producten verkoopt van bepaald merk en je gebruikt hiervan afbeeldingen (zoals logo's), zorg er dan voor dat je hier een licentieovereenkomst over sluit met de rechthebbende.
- Registreer en host geen domeinen van bekende merken; in vrijwel alle gevallen zal je gedwongen worden deze content vrij snel te moeten verwijderen en het domein over te dragen aan de rechthebbende van dat merk.
Uitgaande (D)DoS-aanvallen
Oorzaak
In de meeste gevallen worden DDoS-aanvallen uitgevoerd vanaf servers waarvan via bruteforce-aanvallen de SSH-inloggegevens achterhaald zijn. Vervolgens wordt er een script geïnstalleerd die (D)DoS-aanvallen kan uitvoeren.
Oplossing
Bij DDoS-aanvallen vanaf je VPS moet je zowel de huidige infectie van je VPS tackelen, als voorkomen dat die opnieuw kwetsbaar wordt. Dit doe je door de volgende stappen te doorlopen:
Stap 1
Je kunt op je VPS in de meeste gevallen zien of er een bruteforce-script actief is: zo ja, dan zal het CPU-gebruik van je VPS op het moment dat die een aanval uitvoert rond de 100% zitten (let wel dat dat 100% per core is. Heeft je VPS 2 cores, dan zal in je controlepaneel dit terug te zien zijn als 200%).
Stel dat je op moment dat je dit controleert niet je CPU volledig belast maar in het TransIP-controlepaneel bij je VPS dit wel regelmatig terugziet, dan zou je een cronjob kunnen instellen om jezelf een e-mail te laten sturen wanneer je CPU 100% belast wordt. Geef de cronjob bijvoorbeeld de volgende inhoud (let op de scroll balk):
*/5 * * * * /usr/bin/cat /proc/loadavg | awk '{print $1}' | awk '{ if($1 > 90) printf("Current CPU Utilization is: %.2f%\n"), $0;}' | mail -s "High CPU Alert" transip@example.com
Test wel van tevoren of je op je VPS het mail-commando kunt gebruiken. Zo niet, installeer dan eerst een MTA.
Stap 2
Gebruik je het maximum van je CPU? Vraag dan een lijst van alle actieve processen op via het commando:
ps aux | less
Indien je daar een onbekend proces terugziet zoals 'bash' of 'kwsapd0', kun je via het volgende commando het process sluiten: welke bestanden dit process open heeft:
lsof -p $processid
In dit commando vervang je '$processid' door de process ID uit de 'ps aux'.
Stap 3
Sluit het process met het commando:
kill 9 $processid
Vervang ook hier '$processid' door de process ID uit de 'ps aux'.
Je kunt nu de bestanden die je in stap 2 gevonden hebt verwijderen.
Het huidige probleem is hiermee opgelost, maar het is ook belangrijk om te voorkomen dat het zich nogmaals voordoet. We raden aan minimaal je SSH-poort te veranderen en/of SSH-keys te gebruiken. Daarnaast raden we ook de volgende maatregelen aan:
- Update je VPS en alles dat je daarop host regelmatig
- Gebruik bruteforce beveiliging zoals Fail2ban. Een handleiding voor de installatie en configuratie vind je hier.
- Voer regelmatig een scan op je VPS uit met een virusscanner zoals ClamAV. Zie bijvoorbeeld onze handleidingen voor ClamAV in CentOS, Ubuntu en Debian.
- Schakel poorten die je niet gebruikt uit in je firewall, zowel voor inkomend als uitgaand verkeer. Wanneer een poort gesloten is en de achterliggende service uitgeschakeld is, kan deze ook niet misbruikt worden door kwaadwillenden.
- Gebruik sterke wachtwoorden en schakel root-toegang via SSH uit.
- Gebruik voor WordPress een plugin zoals WordFence om de veiligheid van jouw website te verhogen, voor Joomla kun je bijvoorbeeld Securitycheck gebruiken.
Crypto miners
Oorzaak
Crypto miners kunnen op je VPS terecht komen wanneer er een kwetsbaarheid is op je VPS die misbruikt wordt om een programma te installeren, of wanneer een kwaadwillende op andere manier SSH-toegang tot je VPS verkrijgt en de miner installeert.
Oplossing
Wanneer een crypto miner op je VPS actief is, is dat meestal te herkennen aan buitensporig CPU-gebruik (terug te zien in je controlepaneel, of met het TOP-commando)
Stap 1
Eerst is het belangrijk te achterhalen welk proces aan het minen is. Gebruik hiervoor het commando:
top
Gebruik shift + p om te sorteren op CPU-gebruik en noteer de PID van het miner proces.
Stap 2
Indien je in de vorige stap een onbekend proces terugziet (waarschijnlijk met hoog CPU-gebruik), kun je via een van de volgende commando's het proces afsluiten:
kill 9 $processid
lsof -p $processid
In dit commando vervang je '$processid' door de PID uit de vorige stap.
Je kunt nu de miner verwijderen. Als dit om een programma gaat en niet een los script, dan gebruik je afhankelijk van je besturingssysteem het commando:
CentOS 7:
yum -y remove minernaam
CentOS Stream, AlmaLinux, Rocky Linux:
dnf -y remove minernaam
Ubuntu/Debian
apt -y remove minernaam
Gaat het om een script? Zoek dan waar het bestand zich bevindt en verwijder het als volgt:
find /dir/ -name minernaam
rm -f /dir/minernaam
Vervang /dir/ door de directorie die je wilt doorzoeken. Enkele goede voorbeelden zijn: /var/ /etc/ /home/. Vervang 'minernaam' door de naam van het minerprogramma dat je eerder hebt gevonden.
WordPress beveiligen
Geïnfecteerde WordPress websites kunnen meerdere gevolgen hebben, zoals het versturen van spam, of een phishing website tonen. Voor het beveiligen van WordPress-websites hebben wij een apart artikel: WordPress beveiligen.