Milyen szolgáltatások figyelnek az Ön VPS-én, és mi érhető el kívülről?
Minden program, amely kapcsolatokat fogad, egy porton figyel: az SSH a 22-esen, a webszerver a 80-ason és a 443-ason, a MariaDB a 3306-oson. Minden kívülről elérhető port egy ajtó a szerverére. Egy weboldalnak kívülről általában csak a 22-es, a 80-as és a 443-as portra van szüksége. Ebben a cikkben megmutatjuk, hogyan nézheti meg, mi figyel és milyen címen, és hogyan ellenőrizheti, mit lát belőle az internet többi része.
Mi figyel a szerveren?
Futtassa a VPS-én:
sudo ss -tulpn
Az opciók jelentése: TCP (-t), UDP (-u), csak a figyelő kapcsolatok (-l), melyik program (-p), valamint számok nevek helyett (-n). Egy példa:
tcp LISTEN 0.0.0.0:22 users:(("sshd",...))
tcp LISTEN 0.0.0.0:443 users:(("nginx",...))
tcp LISTEN 127.0.0.1:3306 users:(("mariadbd",...))
tcp LISTEN 0.0.0.0:6379 users:(("redis-server",...))
tcp LISTEN [::]:22 users:(("sshd",...))
A lényeges oszlop a Local Address, vagyis az a cím, amelyen a program figyel:
| Cím | Jelentés |
|---|---|
0.0.0.0 | Az összes IPv4-cím, tehát a nyilvános címe is: kívülről elérhető, hacsak egy tűzfal meg nem akadályozza |
[::] | Az összes IPv6-cím: ugyanez IPv6 esetén |
127.0.0.1 vagy [::1] | Csak maga a szerver (loopback): kívülről soha nem érhető el |
127.0.0.53 vagy 127.0.0.54 | Szintén loopback: a systemd-resolved helyi DNS-segédje |
A példában a MariaDB rendben van: csak a szerveren futó programok érhetik el. A Redis viszont az összes címen figyel, és pontosan ez az a hiba, amelyről itt szó van.
Lezárás magában a szolgáltatásban
Egy adatbázisnak, gyorsítótárnak vagy kezelőfelületnek szinte soha nem kell kívülről elérhetőnek lennie. A legjobb első lépés, ha a szolgáltatás csak a loopback címen figyel. Debian és Ubuntu rendszeren:
| Program | Beállítás | Fájl |
|---|---|---|
| MariaDB vagy MySQL | bind-address = 127.0.0.1 | /etc/mysql/mariadb.conf.d/50-server.cnf |
| PostgreSQL | listen_addresses = 'localhost' | /etc/postgresql/<verzió>/main/postgresql.conf |
| Redis | bind 127.0.0.1 -::1 és protected-mode yes | /etc/redis/redis.conf |
Ezután indítsa újra a szolgáltatást (lásd: Szolgáltatások kezelése systemctl segítségével a VPS-en), és ellenőrizze újra a ss -tulpn paranccsal. Ha a laptopjáról szeretné elérni az adatbázist, nyitott port helyett használjon SSH-alagutat, lásd: SSH-konfiguráció: bejelentkezés rövid névvel.
A tűzfal mint második réteg
A tűzfal megállítja azt, ami véletlenül mégis az összes címen figyel. Az ufw beállítását a Tűzfal ufw (vagy nftables) segítségével című cikk ismerteti. Ne hagyatkozzon egyetlen rétegre: a tűzfal ki lehet kapcsolva, vagy egy szabály túl engedékeny lehet.
ports:) megkerülik az ufw-t. Egy "3306:3306" beállítású adatbázis így kívülről elérhető, még akkor is, ha az ufw szerint a port zárva van. Írja elé a 127.0.0.1: előtagot, vagy ne tegye közzé a portot. Lásd: Docker és a tűzfal: portok biztonságos közzététele.Ellenőrzés kívülről
A ss megmutatja, mi figyel a szerveren, azt viszont nem, hogy a tűzfal mit enged át. A valódi ellenőrzést egy másik számítógépről végezze, ne magáról a szerverről. Mac vagy Linux rendszeren az nc (netcat) segítségével:
nc -vz -w 3 203.0.113.10 6379 nc -6 -vz -w 3 2001:db8::10 6379
Windows rendszeren a PowerShell ugyanezt végzi el a Test-NetConnection 203.0.113.10 -Port 6379 paranccsal. Adja meg a saját IPv4- és IPv6-címét; ezeket a VPS-képernyőn találja. Az eredményt így értelmezheti:
- Nyitott (succeeded): valami figyel, és kívülről elérhető.
- Zárt (Connection refused): semmi sem figyel, vagy a tűzfal aktívan elutasítja a kapcsolatot.
- Szűrt (time-out): egy tűzfal csendben eldobja a forgalmat.
Adatbázis esetén a zárt és a szűrt állapot is megfelelő. Az IPv6-ot is tesztelje: gyakori hiba, hogy a tűzfal csak IPv4-szabályokat tartalmaz, miközben a szolgáltatás a [::] címen is figyel. Egy portszkenner, például az nmap, egyszerre több portot is megvizsgál; ilyen eszközt csak a saját szerverén használjon.
VPS-e teljes mértékben saját kezelésű: azt, hogy mely szolgáltatások figyelnek és hogyan van beállítva a tűzfal, Ön szabályozza. Mi a WebOké-részben segítünk, például a VPS-képernyővel, a hálózattal és a pillanatképekkel kapcsolatban.
Szeretne többet tanulni? Kövesse ingyenes, VPS és Linux-szerverkezelés című tanfolyamunkat: 5.1 Portok és figyelő szolgáltatások vagy 5.2 Tűzfal ufw és nftables segítségével lecke.
