Bevezetés
Előfeltételek
1. lépés: Knockd telepítés
2. lépés: iptables szabályok
3. lépés: Knockd konfiguráció
4. lépés: Tesztelés
Következtetés
Bevezetés
Az SSH alapértelmezett portjának megváltoztatása és a hitelesítéshez kulcspár használata mellett a portkopogtatás is használható az SSH-kiszolgáló további biztonságosabbá tételére (pontosabban eltakarására). Úgy működik, hogy megtagadja a csatlakozást az SSH hálózati portjához. Ez lényegében elrejti azt a tényt, hogy Ön SSH-kiszolgálót futtat mindaddig, amíg egy sor csatlakozási kísérlet meg nem történik előre meghatározott portokhoz. Nagyon biztonságos és egyszerűen megvalósítható, a portkopogtatás az egyik legjobb módja annak, hogy megvédje szerverét a rosszindulatú SSH-csatlakozási kísérletektől.
Előfeltételek
- Ubuntu 18.04-et futtató Vultr szerver.
- Sudo hozzáférés.
Az alábbi lépések végrehajtása előtt, ha nem root felhasználóként jelentkezett be, szerezzen be egy ideiglenes root shellt úgy, hogy futtassa sudo -iés írja be jelszavát. Alternatív megoldásként beírhatja sudoa cikkben bemutatott parancsokat.
1. lépés: Knockd telepítés
A Knockd az a csomag, amelyet az iptables-szal együtt használnak a port kopogtatás megvalósítására a szerveren. A " iptables-persistent" csomag is kötelező.
apt update
apt install -y knockd iptables-persistent
2. lépés: iptables szabályok
Futtassa a következő parancsokat sorrendben:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
iptables-save > /etc/iptables/rules.v4
Ezek a parancsok a következőket hajtják végre:
- Utasítsa az iptables-t a meglévő kapcsolatok életben tartására.
- Utasítsa az iptables-t, hogy szakítsa meg a kapcsolatot a tcp/22-es porttal (ha az SSH-démon nem 22-es porton figyel, akkor ennek megfelelően módosítsa a fenti parancsot.)
- Mentse el ezt a két szabályt, hogy újraindítás után is érvényben maradjanak.
3. lépés: Knockd konfiguráció
Nyissa meg a fájlt egy választott szövegszerkesztővel /etc/knockd.conf.
A következőket fogja látni:
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
Módosítsa a portok sorrendjét (válassza ki a fenti 1024és más szolgáltatások által nem használt portszámokat ), és tárolja biztonságosan. Ezt a kombinációt jelszóként kell kezelni. Ha elfelejti, elveszíti az SSH-hoz való hozzáférést. Erre az új sorozatra úgy fogunk hivatkozni, mint x,y,z.
a seq-timeoutsor a másodpercek száma, ameddig a Knockd vár, amíg a kliens befejezi a port-kopogtatási szekvenciát. Célszerű lenne ezt nagyobbra cserélni, főleg, ha a port-kopogtatás manuálisan történik. A kisebb időtúllépési érték azonban biztonságosabb. Változó, hogy 15ajánlott, mivel fogunk kopogás kézzel a bemutató.
Módosítsa a nyitási sorrendet a kiválasztott portokra:
[openSSH]
sequence = x,y,z
Módosítsa a parancs értékét a következőre:
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Most ennek megfelelően változtassa meg a záró sorrendet:
[closeSSH]
sequence = z,y,x
Mentse el a változtatásokat, lépjen ki, és nyissa meg a fájlt /etc/default/knockd:
- Cserélje
START_KNOCKD=0ki START_KNOCKD=1.
- Adja hozzá a következő sort a fájl végéhez:
KNOCKD_OPTS="-i ens3"(cserélje ens3ki a nyilvános hálózati interfész nevére, ha az eltér.)
- Mentés és kilépés.
Most indítsa el a Knockdot:
systemctl start knockd
Ha most le a szerverről, akkor meg kell ütni a port x, yés zújra csatlakozni.
4. lépés: Tesztelés
Most nem fog tudni csatlakozni az SSH-kiszolgálóhoz.
Telnet kliens segítségével tesztelheti a port kopogtatását.
A Windows-felhasználók a parancssorból elindíthatják a telnetet. Ha a telnet nincs telepítve, nyissa meg a Vezérlőpult "Programok" részét, majd keresse meg a "Windows-szolgáltatások be- és kikapcsolása" lehetőséget. A funkciók panelen keresse meg a „Telnet Client” elemet, és engedélyezze.
A terminálba/parancssorba írja be a következőket:
telnet youripaddress x
telnet youripaddress y
telnet youripaddress z
Tedd meg mindezt tizenöt másodperc alatt, mivel ez a konfigurációban meghatározott korlát. Most próbáljon meg csatlakozni a szerverhez SSH-n keresztül. Hozzáférhető lesz.
Az SSH-kiszolgáló elérésének bezárásához futtassa a parancsokat fordított sorrendben.
telnet youripaddress z
telnet youripaddress y
telnet youripaddress z
Következtetés
A portkopogtatás használatának legjobb része az, hogy ha a privát kulcs hitelesítésével együtt van beállítva, akkor gyakorlatilag nincs esély arra, hogy valaki más bejuthasson, hacsak valaki nem ismeri a port kopogtatási sorrendjét, és nem rendelkezik a privát kulcsával.