Hogyan állítsak be tűzfalat a VPS-emen?

VPS 2 perc olvasás

Egy VPS az első perctől az interneten van, és folyamatosan érik automatizált próbálkozások minden nyitott porton. A tűzfal az egyik első és legfontosabb biztonsági lépés: azt szabályozza, hogy mely portokon és honnan érkező forgalmat enged be a szerver.

Az alapelv

Csak azt engedélyezze, amit ténylegesen használ (például a 22-es portot az SSH-hoz, a 80-ast és a 443-ast a webszerverhez), minden más bejövő kapcsolatot tiltson. Az adatbázist (MySQL 3306, PostgreSQL 5432) és a belső szolgáltatásokat (például a Redist) soha ne nyissa meg az internet felé; ha távoli elérés kell, csak a saját IP-címéről engedélyezze.

Fontos: a tűzfal bekapcsolása előtt mindig engedélyezze az SSH-t, különben kizárhatja magát a szerverből.

firewalld (AlmaLinux, Rocky Linux)

A RHEL-alapú rendszereken a firewalld az alapértelmezett tűzfal:

sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Egy port csak egy IP-címről, például a MySQL a saját irodájából:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload

ufw (Ubuntu, Debian)

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

Csak egy IP-címről: sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp. Debianon előbb telepítse: sudo apt install ufw.

IPv6

KVM VPS-eink IPv6 címet is kapnak, ezért a szabályoknak az IPv6 forgalomra is érvényesnek kell lenniük. A firewalld és az ufw (alapértelmezett IPV6=yes beállítással) mindkét protokollra alkalmazza a szabályokat; ha közvetlenül iptables-t használ, az IPv6-hoz az ip6tables külön kell. Erről az IPv6 cím VPS-en való beállításáról szóló cikk szól.

Docker és a tűzfal

A Docker a konténerek közzétett portjait (-p 8080:80) saját iptables-szabályokkal nyitja meg, és ezek az ufw szabályait megkerülik. Ha egy konténer portját csak helyben szeretné elérni, kösse a helyi címre: -p 127.0.0.1:8080:80, és a forgalmat egy webszerveren (reverse proxy) keresztül engedje ki.

További védelem

  • Brute force elleni védelem: a fail2ban a sikertelen belépéseket ismétlő IP-címeket automatikusan letiltja; telepítését a fail2ban beállításáról szóló cikk mutatja be.
  • SSH: kulcsos belépés és a jelszavas belépés tiltása; lásd az SSH szerver biztonságos beállítása cikket.
  • Portváltás: az SSH áthelyezése egy másik portra a naplózajt csökkenti, de önmagában nem véd. AlmaLinuxon a SELinuxnak is engedélyezni kell az új portot (semanage port -a -t ssh_port_t -p tcp 2222).

Ha kizárta magát a szerverből, nyisson hibajegyet az Ügyfélportálon, és segítünk visszajutni.

Vissza: VPS leírások (12)