Szint: Kezdő–Középhaladó | Szükséges idő: 30–45 perc | Tesztelve: Ubuntu 24.04, Debian 12, Fedora 41
Ha van egy Linux szervered nyilvános IP-címmel, most azonnal nyisd meg ezt a parancsot:
grep "Failed password" /var/log/auth.log | tail -20
Amit látsz, az valószínűleg megdöbbentő: százak, néha ezrek sikertelen bejelentkezési kísérlet — ismeretlen IP-címekről, folyamatosan, éjjel-nappal. Automatizált botok pásztázzák az egész internetet, és minden elérhető SSH portot próbálgatnak alapértelmezett felhasználónév–jelszó kombinációkkal.
Ez nem rémisztgetés — ez az alapállapot. Egy frissen felállított VPS az első négy percen belül megkapja az első brute-force kísérletet.
Ez az útmutató lépésről lépésre megmutatja, hogyan zárhatod be ezeket a kapukat. Nem elméleti — minden lépés után teszteled, hogy működik-e, és soha nem zárod ki magadat a saját szerveredről.
Mielőtt elkezdenéd: biztonsági alapszabályok
Soha ne zárd be az aktuális SSH munkameneted, amíg egy új munkamenetben nem ellenőrizted, hogy a változtatás működik. Ez az egyetlen szabály, amelynek megszegése komoly bajt okozhat.
Minden lépésnél tehát: nyiss egy második terminált, és abban ellenőrizz — az első terminálban marad a régi munkamenet mentőövként.
Kezdjük egy biztonsági mentéssel:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Ha valami félremegy, visszaállíthatod:
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo systemctl restart sshd
1. lépés: SSH kulcsok generálása – jelszó helyett kriptográfia
A jelszavas bejelentkezés a legnagyobb kockázat. Egy erős SSH kulcspár ezernél is jobb jelszót helyettesít, és brute-force-szal gyakorlatilag feltörhetetlen.
Kulcspár generálása (a saját gépeden, nem a szerveren)
ssh-keygen -t ed25519 -C "sajat-szerverem-2026"
Az ed25519 a modern választás: gyorsabb, biztonságosabb, és rövidebb kulcsot generál, mint az RSA. 2026-ban nincs értelme RSA-t használni új kulcspárokhoz.
A parancs két fájlt hoz létre:
~/.ssh/id_ed25519— a privát kulcs (soha ne add ki, soha ne töltsd fel sehova)~/.ssh/id_ed25519.pub— a nyilvános kulcs (ezt másolod a szerverre)
Amikor jelszót kér a kulcshoz (passphrase), adj meg egyet — ez egy extra védelem arra az esetre, ha a privát kulcsfájl illetéktelen kézbe kerülne.
A nyilvános kulcs másolása a szerverre
ssh-copy-id -i ~/.ssh/id_ed25519.pub felhasznalo@szerver-ip
Ha az ssh-copy-id nem elérhető, kézzel is megteheted:
cat ~/.ssh/id_ed25519.pub | ssh felhasznalo@szerver-ip \
"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Ellenőrzés
Nyiss egy új terminált, és próbálj meg kulccsal bejelentkezni:
ssh -i ~/.ssh/id_ed25519 felhasznalo@szerver-ip
Ha jelszó kérése nélkül (vagy csak a kulcs jelszavát kérve) beenged — sikeres. Csak ezután lépj tovább.
2. lépés: Az sshd_config fő beállításai
Most szerkesztjük a szerver SSH konfigurációját. Nyisd meg:
sudo nano /etc/ssh/sshd_config
Root bejelentkezés tiltása
A root fiókba való közvetlen bejelentkezés tiltása az egyik legfontosabb lépés — ha a root nem jelentkezhet be SSH-n, a támadóknak először egy normál felhasználói fiókot kell kompromittálniuk, majd onnan kell jogosultságot szerezniük.
PermitRootLogin no
Jelszavas bejelentkezés kikapcsolása
Csak akkor tedd meg, ha az SSH kulcs már működik (az előző lépés sikeres volt)!
PasswordAuthentication no
PubkeyAuthentication yes
Próbálkozások számának korlátozása
MaxAuthTries 3
Három sikertelen kísérlet után a kapcsolat megszakad. Ez lassítja a kézi próbálkozásokat, de a Fail2Ban (5. lépés) az igazán hatásos védelem.
Inaktív kapcsolatok időtúllépése
ClientAliveInterval 300
ClientAliveCountMax 2
Ha 300 másodpercig (5 percig) nincs aktivitás, a szerver küld egy ellenőrző csomagot. Ha 2 ilyen csomag is válasz nélkül marad, a kapcsolat lezárul. Ez megakadályozza a „zombie" kapcsolatok felhalmozódását.
Hozzáférés korlátozása konkrét felhasználókra
AllowUsers sajatfelhasznalo
Ha több felhasználónak kell hozzáférés:
AllowUsers sajatfelhasznalo masikfelhasznalo
Ez azt jelenti, hogy még ha egy támadó ismer is egy érvényes felhasználónevet, amelyik nincs felsorolva, nem tud bejelentkezni.
X11 forwarding kikapcsolása (ha nem kell)
X11Forwarding no
A teljes ajánlott konfiguráció egy helyen
# Hitelesítés
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
MaxAuthTries 3
PermitEmptyPasswords no
# Kapcsolat
ClientAliveInterval 300
ClientAliveCountMax 2
LoginGraceTime 30
# Hozzáférés
AllowUsers sajatfelhasznalo
# Egyéb
X11Forwarding no
PrintMotd no
Szintaxis ellenőrzése és újraindítás
Mielőtt újraindítod az SSH szervert, ellenőrizd a konfiguráció szintaxisát:
sudo sshd -t
Ha nincs hibaüzenet, indítsd újra:
sudo systemctl restart sshd
Ellenőrzés új munkamenetben
Nyiss egy új terminált, és próbálj meg bejelentkezni. Az előző terminált tartsd nyitva, amíg az új munkamenet nem sikerül.
3. lépés: Az SSH port megváltoztatása (opcionális, de hasznos)
Az alapértelmezett 22-es port az, amelyet a botok automatikusan pásztáznak. A port megváltoztatása nem biztonsági intézkedés önmagában — de drasztikusan csökkenti a naplókban megjelenő zaj mennyiségét, és kiszűri az összes automatizált, 22-es portot célzó szkennert.
Port 2222
(Vagy bármely más, 1024 feletti szabad port.)
Fontos: Ha tűzfalat használsz (UFW, firewalld), az új portot is engedélyezni kell, mielőtt az SSH újraindul — különben kizárod magadat.
# UFW esetén
sudo ufw allow 2222/tcp
# Firewalld esetén (Fedora/RHEL)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
Ezután indítsd újra az SSH-t, és az új terminálban csatlakozz az új porttal:
ssh -p 2222 felhasznalo@szerver-ip
4. lépés: UFW tűzfal beállítása
Az UFW (Uncomplicated Firewall) az iptables egyszerűsített felülete — Ubuntu és Debian rendszereken alapból elérhető.
# UFW telepítése (ha még nincs)
sudo apt install ufw
# Alapértelmezett szabályok: minden bejövő tiltva, minden kimenő engedélyezve
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH engedélyezése (az új port, ha megváltoztattad)
sudo ufw allow 2222/tcp
# Ha webszervert is futtatsz
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# UFW bekapcsolása
sudo ufw enable
# Állapot ellenőrzése
sudo ufw status verbose
Fontos: Az
ufw enableparancs előtt bizonyosodj meg arról, hogy az SSH portod engedélyezve van — különben kizárod magadat.
5. lépés: Fail2Ban – automatikus IP-blokkolás
A Fail2Ban figyeli a hitelesítési naplókat, és automatikusan blokkolja azokat az IP-címeket, amelyek meghatározott időn belül túl sokszor hibáznak. Ez az egyik legjobb védelem a brute-force támadások ellen.
Telepítés
# Ubuntu/Debian
sudo apt install fail2ban
# Fedora/RHEL
sudo dnf install fail2ban
# Arch
sudo pacman -S fail2ban
Konfiguráció
A Fail2Ban az /etc/fail2ban/jail.conf fájlt használja alapként — de ezt ne szerkeszd közvetlenül, mert egy frissítés felülírhatja. Hozz létre egy helyi felülbírálást:
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
# Mennyi időre tiltsa az IP-t (másodpercben): 1 óra
bantime = 3600
# Mennyi időn belül számoljon: 10 perc
findtime = 600
# Hány hibás kísérlet után tiltson
maxretry = 5
# A saját IP-d soha ne tiltsa (opcionális, de hasznos)
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
port = 2222
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Ha az alapértelmezett 22-es portot hagyod, a port = 2222 sort töröld vagy módosítsd.
Indítás és engedélyezés
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Tiltott IP-k megtekintése
sudo fail2ban-client status sshd
Egy IP feloldása (ha véletlenül kitiltottad magadat)
sudo fail2ban-client set sshd unbanip 1.2.3.4
6. lépés: Kétfaktoros hitelesítés (2FA) – opcionális, de erős
Ha extra védelmi réteget szeretnél, a Google Authenticator PAM modul hozzáad egy időalapú egyszeri jelszót (TOTP) az SSH bejelentkezéshez — még akkor is, ha valaki megszerezte a privát kulcsodat, a második faktor nélkül nem tud belépni.
Telepítés
# Ubuntu/Debian
sudo apt install libpam-google-authenticator
# Fedora
sudo dnf install google-authenticator
Beállítás (minden felhasználónak külön kell futtatni)
google-authenticator
A parancs QR-kódot jelenít meg — olvasd be a Google Authenticator vagy az Aegis alkalmazással. Ments el a vészmentési kódokat biztonságos helyre.
PAM konfiguráció
sudo nano /etc/pam.d/sshd
Add hozzá a fájl elejéhez:
auth required pam_google_authenticator.so
sshd_config módosítás
sudo nano /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
Ez azt jelenti, hogy a belépéshez mind a kulcs, mind a TOTP kód szükséges.
sudo systemctl restart sshd
Végső ellenőrzőlista
Miután minden lépést elvégezted, ellenőrizd a beállításokat egy másik gépről vagy mobilról:
# Próbálj jelszóval bejelentkezni (ezt el kell utasítania)
ssh -o PasswordAuthentication=yes felhasznalo@szerver-ip
# Eredmény: "Permission denied (publickey)"
# Ellenőrizd, hogy root bejelentkezés tiltva van
ssh root@szerver-ip
# Eredmény: "Permission denied"
# Nézd meg a Fail2Ban státuszát
sudo fail2ban-client status sshd
# Nézd meg a tűzfal szabályait
sudo ufw status verbose
Gyors összefoglaló: mit csináltunk?
| Lépés | Intézkedés | Mit véd? |
|---|---|---|
| 1. | Ed25519 kulcspár | Jelszavas brute-force ellen |
| 2. | sshd_config szigorítás | Root belépés, próbálkozások, hozzáférés korlátozása |
| 3. | Port megváltoztatása | Automatikus szkennelés zajának csökkentése |
| 4. | UFW tűzfal | Felesleges portok blokkolása |
| 5. | Fail2Ban | Brute-force IP-k automatikus blokkolása |
| 6. | 2FA (TOTP) | Kompromittált kulcs elleni védelem |
Ez a hat lépés lefedi az SSH támadási felület több mint 95%-át. Egyetlen lépés sem bonyolult, de a kombinációjuk komoly akadályt jelent még a célzott támadók számára is — nem csak az automatizált botoknak.


Hozzászólások(0)