Amikor először nézel bele az /var/log/auth.log fájlba, hirtelen úgy érzed magad, mint a Nabukodonozor legénysége: az őrszemek ezrei kaparásszák a falaidat. A botok megállás nélkül próbálnak betörni a 22-es porton, pontosan úgy, ahogy a Mátrixban az őrszemek rajzottak Zion ostrománál. Ha nem akarsz áldozatul esni, ki kell építened a saját védelmi rendszeredet.
Ha nem akarod, hogy a szervered egy botnet része legyen, kövesd ezeket az alapvető lépéseket.
1. SSH kulcspár használata (A belépőjegyed)
A jelszavas belépés az első gyenge láncszem. Hozz létre egy 4096 bites RSA vagy egy modern Ed25519 kulcspárt a saját gépeden
ssh-keygen -t ed25519 -C "vps_kulcsod"
Másold fel a publikus kulcsot a szerverre:
ssh-copy-id -i ~/.ssh/id_ed25519.pub felhasznalonev@szerver_ip
2. SSH konfiguráció – A biztonság alapja
Szerkeszd az SSH konfigot:
sudo nano /etc/ssh/sshd_config.
Itt három kritikus módosítást kell elvégezned:
Port megváltoztatása: A botok 99%-a a 22-es portot támadja. Válts például a 2222-re, de nem felejtsd el feljegyezni valahova, mert ha bármilyen okból törlődne a bash history, gondban leszel ha nem jut eszedbe a portszám.
Port 2222
A jelszavas belépés tiltása, hogy csak a kulcsoddal lehessen belépni:
PasswordAuthentication no
Root belépés tiltása:
PermitRootLogin no
Ha ezekkel megvagy, jöhet az SSH-szolgáltatás újraindítása:
sudo systemctl restart ssh
Ha minden jól ment akkor be is léphetsz a szerveredre:
ssh -p 2222 root@szerver-ip
💡 Pro Tipp: Mielőtt újraindítod az SSH-szolgáltatást vagy kilépsz, tarts nyitva egy élő munkamenetet! Ha elrontottál valamit a konfigurációban, ezen keresztül még javíthatod; ha bezárod, marad a nehézkes VNC-konzol. (pl: nem lesz magyar billentyűzetkiosztás).
3. Tűzfal (UFW) beállítása – Ki ne zárd magad!
Mielőtt újraindítod az SSH-t, engedélyezd az új portot a tűzfalon, különben végleg kint maradsz:
sudo ufw allow 2222/tcp
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
4. Fail2Ban – A kapuőr
A Fail2Ban figyeli a naplófájlokat, és ha valaki túl sokszor hibázik, kitiltja az IP-címét.
Telepítés:
sudo apt update && sudo apt install fail2ban -y
Hozz létre egy helyi konfigurációt (sudo nano /etc/fail2ban/jail.local), és add hozzá az SSH védelmet:
Ini, TOML
[sshd]
enabled = true
port = 2222
logpath = %(sshd_log)s
maxretry = 3
bantime = 1h
5. Ellenőrzés és karbantartás
Indítsd újra a szolgáltatásokat:
sudo systemctl restart ssh
sudo systemctl restart fail2ban
Ellenőrizheted a kitiltott IP-ket:
root@xxxxxxxxxx:~# uptime
06:47:29 up 18 days, 20:11, 1 user, load average: 0.01, 0.00, 0.00
root@xxxxxxxxxx:~# sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 1170751
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 1
`- Banned IP list:
Szóval 18 nap alatt csaknem egymillió-kétszázezer próbálkozás egy noname, jelentéktelen szerverrel szemben.
Miért nem várhatsz a védelemmel? (A számok nem hazudnak)
Sokan gondolják: “Ki akarná az én kis szerveremet bántani?”. Nos, lefuttattam egy gyors parancsot (köszi Gemini), hogy megnézzem, hány sikertelen próbálkozás történt és itt a top versenyző:
Bash
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -n 1
624410 75.119.xxx.xxx
❗ Az eredmény brutális: Egyetlen IP-címről (ami történetesen egy francia adatközpontban van) több mint 624 000 alkalommal próbálták kitalálni a jelszót.
Sokan azt hiszik, ha egy neves szolgáltatónál van a gépük, a belső hálózat védett. De a logokból hamar kiderült: a támadó ugyanannál a szolgáltatónál bérelt gépet, ahol én (pl: tracepath IP és meg is lesz támadó szerver szolgáltatója).
A biztonságodért te felelsz, nem a szolgáltatód!
Összegzés és tapasztalatok
A szerver hardening nem atomfizika, de a fegyelmezettség hiánya, lazaság (például egy nyitva hagyott 22-es port vagy a jelszavas hitelesítés) azonnali kockázatot jelent. A logok alapján látható ~ 624 000 betörési kísérlet bizonyítja, hogy az automatizált botok nem válogatnak: minden IP-re lőnek, amit elérnek.
Ami nálam alapvető beállítás egy új VPS indításakor:
-
SSH kulcs alapú hitelesítés (jelszó tiltva).
-
Egyedi port (hogy a botok 99%-a lepattanjon).
-
UFW (szigorú szabályokkal).
-
Fail2Ban (hosszú kitiltási idővel a visszaesőknek).
A legfontosabb tanulság pedig: amíg a konfigurációt piszkálod, ne zárd be a terminált. Mindig legyen egy menekülőút, mert ha kizárod magad, a VNC konzol minden lesz, csak nem barátságos.