A tűzfal az egyik legfontosabb összetevője a rendszerek biztonságossá tételének. Feladata a hálózaton keresztüli bejövő és kimenő kapcsolatok kezelése. Ez a szerverek és adatok elsődleges védelmi vonala. Ezért rendkívül fontos egy jól konfigurált tűzfal megléte. Ebben az útmutatóban lépésről lépésre bemutatjuk, hogyan állíthat be tűzfalat az UFW segítségével Ubuntu 18.04-en.
UFW Ubuntun
A UFW kifejezés az „Uncomplicated Firewall” (egyszerűsített tűzfal) rövidítése. Ez egy alapértelmezett tűzfalprogram, amely előre telepítve érkezik az Ubuntuval. Az UFW valójában az iptables egy felülete. Az UFW célja, hogy megkönnyítse a tűzfal konfigurálását és kezelését. Bár az iptables önmagában is egy stabil és rugalmas megoldás, a kezdők számára nem túl barátságos. Az UFW mind a kezdők, mind a tapasztalt felhasználók számára megkönnyíti a dolgát.
Először is tekintse meg az átfogó útmutatónkat, amely segít megismerkedni az alapvető UFW funkciókkal. Követheti ezt az útmutatót is az Ubuntu szerver telepítéséhez. Most pedig lássunk hozzá!
Kezdésként, ha valamilyen okból az UFW nincs telepítve, telepítse azonnal:
|
1 |
$ sudo apt install ufw |
Az UFW konfigurálása
-
Az IPv6 használata
Jelenleg még az IPv4 a domináns. Ezt szem előtt tartva az útmutató nagy része az IPv4-re épül. Szerencsére az UFW támogatja az IPv6-ot is. Mindössze annyit kell tennie, hogy engedélyezi a funkciót az UFW konfigurációs fájljában.
Először nyissa meg az UFW konfigurációs fájlját egy szövegszerkesztőben. A módosítások mentéséhez a szövegszerkesztőt sudo jogosultsággal kell futtatni:
|
1 |
$ sudo vim /etc/default/ufw |
Keresse meg az „IPV6” bejegyzést, és győződjön meg róla, hogy az értéke „yes”.
-
Alapértelmezett házirend
Ha most először dolgozik tűzfallal, javasoljuk, hogy először az alapértelmezett házirendeket határozza meg. Ezek a szabályok határozzák meg, hogyan kezelje a rendszer az olyan forgalmat, amelyre nem vonatkozik semmilyen kifejezett szabály. Alapértelmezés szerint az UFW úgy van konfigurálva, hogy minden bejövő kapcsolatot elutasítson, de minden kimenő kapcsolatot engedélyezzen. Ez azt jelenti, hogy kívülről senki sem érheti el a szervert, miközben a szerveren futó alkalmazások elérhetik a külvilágot.
Az alábbi parancsok csupán újradefiniálják az UFW alapértelmezett működését. Vegye figyelembe, hogy ez megváltoztatja az UFW működését, ha azt korábban már módosították:
|
1 2 |
$ sudo ufw default deny incoming $ sudo ufw default allow outgoing |
Egy személyi számítógép esetében ezek a tűzfalszabályok önmagukban is elegendők lennének. A szerverek biztonságának megfelelő megerősítéséhez azonban többre van szükség.
SSH-kapcsolatok engedélyezése
Az UFW jelenlegi konfigurációja mellett minden bejövő kapcsolatot elutasít. Egy távoli szerver esetében ez nem járható út. A szerverhez való hozzáférés nélkül semmit sem lehet tenni. A probléma elkerülése érdekében az UFW beállítható úgy, hogy engedélyezze a bejövő SSH vagy HTTP kapcsolatokat.
Az SSH-kapcsolatok engedélyezéséhez a szerverhez futtassa az alábbi parancsot. Ez lényegében arra utasítja az UFW-t, hogy engedélyezzen minden kapcsolatot a(z) 22 porton. Alapértelmezés szerint ezen a porton figyel az SSH démon:
|
1 |
$ sudo ufw allow ssh |
E parancs helyett közvetlenül is beállítható a kapcsolatok engedélyezése a(z) 22 portra. Ez port a(z) /etc/services fájlban van meghatározva:
|
1 |
$ sudo ufw allow 22 |
Mivel a(z) 22 az SSH démon alapértelmezett portja, ez is ki lehet téve a támadásoknak. Mi van akkor, ha az SSH-szerver úgy van konfigurálva, hogy egy másik porton figyeljen? Ilyen helyzetben az UFW-nek engedélyeznie kell a kapcsolatot az adott portra. Feltételezve, hogy az SSH-szerver a(z) 1234 porton figyel, használja a következő parancsot:
|
1 |
$ sudo ufw allow 1234 |
Az UFW engedélyezése
Bár az UFW szabályok meg vannak határozva, semmit sem fognak tenni, amíg az UFW nincs aktiválva. Alapértelmezés szerint az UFW le van tiltva, ami azt jelenti, hogy a szabályok deklarálása ellenére nem fogja kényszeríteni azokat. Az UFW engedélyezéséhez futtassa a következő parancsot:
|
1 |
$ sudo ufw enable |
Az UFW figyelmeztető üzenetet jeleníthet meg a meglévő SSH-kapcsolatok megszakadásáról. Mivel az SSH-kapcsolatok engedélyezése be lett állítva, az UFW engedélyezése nem okoz semmilyen fennakadást. A beállított szabályok megtekintéséhez futtassa a következő parancsot:
|
1 |
$ sudo ufw status verbose |
Különböző kapcsolatok engedélyezése
Ezen a ponton az UFW-t fel kell szerelni más szabályokkal is a stabil működés érdekében. Az engedélyezendő kapcsolatok az Ön egyedi igényeitől függnek. Már bemutattuk, hogyan lehet utasítani az UFW-t a kapcsolatok engedélyezésére egy szolgáltatás neve vagy portszáma alapján.
Íme néhány egyéb port, amelyeket nagyon gyakran szoktak nyitva tartani:
- SSH (
22-es port): Ez az SSH-kapcsolatokhoz konfigurált alapértelmezett port. - HTTP (
80-as port): Ez az az alapértelmezett port, amelyet a nem titkosított webszerverek használnak. - HTTPS (
443-as port): Ez az az alapértelmezett port, amelyet a titkosított webszerverek használnak.
Az SSH-kapcsolatok engedélyezéséhez futtassa az alábbi parancsok egyikét:
|
1 2 |
$ sudo ufw allow ssh $ sudo ufw allow 22 |
Ezután a HTTP-kapcsolatok engedélyezéséhez futtassa az alábbi parancsok egyikét:
|
1 2 |
$ sudo ufw allow http $ sudo ufw allow 80 |
A HTTPS-kapcsolatok engedélyezéséhez futtassa az alábbi parancsok egyikét:
|
1 2 |
$ sudo ufw allow https $ sudo ufw allow 443 |
Porttartomány
Eddig bemutattuk, hogyan lehet engedélyezni egy bizonyos portot. Mi van akkor, ha portok egy tartományára van szükség? Minden egyes port megadása az UFW-nek meglehetősen rugalmatlan. Egyes alkalmazások több portot is használnak. Szerencsére az UFW lehetővé teszi egy porttartomány megadását. Ehhez használja a következő parancsszerkezetet:
|
1 |
$ sudo ufw allow <start>:<end>/<protocol> |
Az alábbi példa engedélyezi az X11 kapcsolatokat, amelyek a következő portokat használják: 6000 - 6007:
|
1 2 |
$ sudo ufw allow 6000:6007/tcp $ sudo ufw allow 6000:6007/udp |
Javasoljuk, hogy lehetőség szerint adja meg a protokollokat. A legtöbb esetben azonban ez nem szükséges, és a dolgok enélkül is jól működnek.
Konkrét IP-címek
Az UFW használatakor a kapcsolatok szűrése konkrét IP-címek alapján is lehetséges. Alapértelmezés szerint az UFW minden IP-címről blokkolja a kapcsolatokat. Lehetőség van bizonyos IP-címekről érkező kapcsolatok engedélyezésére. Egy IP-címről érkező kapcsolat engedélyezéséhez használja a következő parancsszerkezetet:
|
1 |
$ sudo ufw allow from <ip_address> |
Megadhatja azokat a konkrét portokat is, amelyekhez az IP-cím csatlakozhat. Ehhez adja hozzá a to any port részt, majd a portszámot a parancshoz:
|
1 |
$ sudo ufw allow from <ip_address> to any port <port> |
Alhálózatok
Ha egy IP-címekből álló alhálózatot kell engedélyeznie, ezt CIDR-jelöléssel teheti meg. Ebben a példában az UFW engedélyezi a kapcsolatot a következő tartományba eső IP-címekről: 203.0.113.1 - 203.0.113.254:
|
1 |
$ sudo ufw allow from 203.0.113.0/24 |
Az előző lépéshez hasonlóan megadható az a port is, amelyhez ezek az IP-címek csatlakozhatnak:
|
1 |
$ sudo ufw allow from 203.0.113.0/24 to any port <port> |
Csatlakozás egy adott hálózati interfészhez
Szerverkörnyezetben előfordulhat, hogy több hálózati interfész is csatlakozik a rendszerhez. Az UFW használatával megadható, hogy egy bizonyos szabály csak egy adott hálózati interfészre vonatkozzon. Először ellenőrizze a szerverhez csatlakozó összes hálózati interfészt. A cél hálózati interfész neve a legfontosabb:
|
1 |
$ ip addr |
A mi esetünkben csak egy hálózati interfész van, az ens3, amely a nyilvános internethez kapcsolódik. Az erről a hálózati interfészről érkező bejövő kapcsolatok engedélyezéséhez használja a következő parancsszerkezetet:
|
1 |
$ sudo ufw allow in on <network_interface> |
Az is meghatározható, hogy a hálózati interfészről érkező forgalom melyik portot érheti el:
|
1 |
$ sudo ufw allow in on <network_interface> to any port <port> |
Kapcsolat elutasítása
Az alapértelmezett konfiguráció szerint az UFW minden forrásból megtagadja a kapcsolatot (a bejelentett kivételek kivételével). Ez az UFW használatának javasolt módja. Előfordulhat azonban, hogy blokkolni kell bizonyos kapcsolatokat egy adott forrás IP-címről vagy alhálózatról. Lehet, hogy az UFW alapértelmezett viselkedése az összes kapcsolat engedélyezésére van beállítva (nem ajánlott).
Bizonyos IP-címekről érkező kapcsolatok megtagadásához az UFW-nek megtagadási szabályokra van szüksége. A megtagadási szabályok írása meglehetősen egyszerű. Vegyen bármilyen engedélyezési szabályt, cserélje ki az „allow” kifejezést „deny”-ra, és voilà! Megtagadási szabállyá válik.
Tekintse meg a következő példát. Bármely HTTP-kapcsolat megtagadásához használja a következő megtagadási szabályt:
|
1 2 |
$ sudo ufw deny http $ sudo ufw deny 80 |
A kapcsolat megtagadásához a következő helyről: 203.0.113.1, használja a következő megtagadási szabályt:
|
1 |
$ sudo ufw deny from 203.0.113.1 |
Szabályok törlése
Amit eddig tanultunk, az az, hogyan kell szabályokat létrehozni. Ahogy a szabályok létrejönnek, úgy törölhetők is. Az UFW esetében két konkrét módja van a szabályok törlésének.
-
Szabály törlése szabályszám alapján
Ez az UFW-szabály törlésének legegyszerűbb módja. Az UFW minden szabályának van egy szabályszáma. A következő parancs kiírja az összes UFW-szabályt a szabály számaival együtt:
|
1 |
$ sudo ufw status numbered |
A következő parancs törli a szabályszám által meghatározott szabályt:
|
1 |
$ sudo ufw delete <rule_number> |
-
Szabály törlése a tényleges szabály alapján
Ez a nehezebb módszer a szabályok törlésére. Ehhez manuálisan kell megadni a törölni kívánt tényleges szabályt. A következő példában az UFW törli a megadott szabályt: allow http:
|
1 |
$ sudo ufw delete allow http |
A szabályt meg lehetett volna adni a következővel is: allow 80. Ebben az esetben a következő parancs törli azt:
|
1 |
$ sudo ufw delete allow 80 |
Egy szabály törlése mind az IPv4, mind az IPv6 esetében törli azt.
Az UFW állapotának és szabályainak ellenőrzése
Alapvető fontosságú megbizonyosodni arról, hogy az UFW aktív-e vagy sem. Az UFW állapotának meghatározásához futtassa a következő parancsot:
|
1 |
$ sudo ufw status verbose |
Ha az állapot „inactive”, akkor aktiválja a fenti Enabling UFW lépést követve. Ha aktív, akkor az UFW „active” állapotot jelez, és felsorolja az összes aktív szabályt.
Az UFW letiltása
Ha valamilyen okból nem használja az UFW-t, tiltsa le a következő paranccsal:
|
1 |
$ sudo ufw disable |
Ha az UFW le van tiltva, a létrehozott szabályok már nem aktívak. A szabályok azonban nem törlődnek. Amikor az UFW-t újraaktiválják, az összes szabály újra aktívvá válik. Mi van, ha a jelenlegi UFW-konfiguráció egy zűrzavar? A szabályok egyenkénti törlése helyett lehetőség van az összes törlésére egyetlen paranccsal. Az UFW visszaállításához futtassa a következő parancsot:
|
1 |
$ sudo ufw reset |
Vegye figyelembe, hogy ez nem változtatja meg a kezdetben beállított alapértelmezett UFW-viselkedést.
Következtetés
A megfelelő tűzfal-konfiguráció szükséges a biztonság és a funkcionalitás biztosításához. Úgy kell beállítani, hogy csak a szükséges bejövő kapcsolatokat engedélyezze, miközben korlátozza a felesleges kapcsolatokat.
Ha szeretne megismerkedni további tűzfal-megoldásokkal, tekintse meg blogunkat további forrásokért:
- Tűzfal beállítása FirewallD segítségével CentOS 7 rendszeren
- Iptables tűzfalszabályok listázása és törlése
- Hogyan építsünk ki robusztus biztonsági intézkedéseket, hogy megvédjük a szervereinket
Kellemes számítógép-használatot!











Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.