Bár néha még mindig egyedül érintem meg a Windows-t, és sok másban kényszerítenek (marditoh rodoreh), amikor a számítógépemtől távol kell intéznem a dolgokat, számomra a Windowsról beszélni olyan, mintha valami messze elmaradna az időben. Amikor ezt használtam fő rendszerként (nem volt más), megpróbáltam levédeni olyan szoftverekkel, mint a Kaspersky vírusirtója és az alkalmi tűzfal, sok más biztonsági eszköz mellett. Linuxban soha nem voltunk annyira kiszolgáltatva, mint a Windowsban, de vannak olyan szoftverek is, amelyek segítenek nyugodtabbnak lenni, mint pl. IPtables, tűzfal vagy tűzfal.
A tűzfal egy biztonsági rendszer, amely az operációs rendszerbe belépő és onnan kilépő hálózati forgalom szabályozásáért felelős. A Linuxban az egyik legelterjedtebb a fent említett IPtables, olyannyira, hogy valószínűleg és anélkül, hogy tudnád, a kiadása óta már telepítve van az operációs rendszeredben. Amit ebben a cikkben megpróbálunk tenni, az az, hogy elmagyarázzuk hogyan kell beállítani a tűzfalat linuxban IPtables-szal.
IPtables Linuxon, amit tudnia kell
Tűzfal konfigurálása bonyolult lehet, és több olyan operációs rendszerben, mint a Linux, ahol a legjobbat egy terminál érintésével érik el. Mielőtt elkezdené, tanácsos tájékozódni egy kicsit a hálózati és biztonsági kérdésekről, vagy legalább megérteni, hogy amikor csatlakozunk, akkor más berendezésekkel kommunikálunk, és ezeknek az eszközöknek vagy tulajdonosaiknak lehet jó vagy rossz szándéka. Emiatt a PC-nk használatától függően érdemes mindent kontrollálni, ami kialszik és ami bekerül.
Illetve, hogy mi történhetne, ha van egy másik tűzfalunk a Linux rendszerünkön, és elkezdjük az IPtables-ban lévő dolgokat módosítani, akkor érdemes biztonsági másolatot készíteni a jelenlegi tűzfal konfigurációnkról. Ha mindez világos, elkezdünk beszélni az IPtables konfigurációjáról.
- Az első dolog, amit tennünk kell, a csomag telepítése. A legtöbb Linux disztribúció alapértelmezés szerint telepítve van, de ez nem mindig van így. Ahhoz, hogy megtudjuk, telepítve van-e az IP-tábla az operációs rendszerünkben, megnyitunk egy terminált, és írunk
iptables -v
. Az én esetemben és a cikk írásakor a terminálom visszaküld iptable v1.8.8. Ha nincs telepítve, a következőkkel telepíthető:
Ubuntu/Debian vagy származékai:
sudo apt install iptables
Fedora/Redhat vagy származékai:
sudo yum install iptables
Arch Linux és származékai
sudo pacman -Siptables
A telepítés után a következőkkel engedélyezhető:
sudo systemctl iptables engedélyezése sudo systemctl iptables indítása
Az állapotát pedig megtekintheti:
sudo systemctl status iptables
- Ha a tűzfal már telepítve van, akkor be kell állítani a szabályait. Az IPtables szabályok táblákra vannak osztva (amelyekről a cikk későbbi részében részletesebben fogunk beszélni): filter, nat és mangle, amelyekhez hozzá kell adnunk a raw-t és a biztonságot. A szűrőtábla a bejövő és kimenő forgalom vezérlésére szolgál, a nat tábla a NAT (Network Address Translation), a mangle tábla pedig az IP-csomag módosítására szolgál. A szűrőtábla szabályainak konfigurálásához a következő parancsokat kell használni:
- iptables -A BEMENET -j ELFOGADÁS (minden bejövő forgalom engedélyezése).
- iptables -A OUTPUT -j ELFOGADÁS (minden kimenő forgalom engedélyezése).
- iptables -A FORWARD -j ELFOGADÁS (minden útválasztási forgalom engedélyezése). Ez a konfiguráció azonban engedélyezi az összes forgalmat, és nem ajánlott éles rendszereknél. Fontos a tűzfalszabályok meghatározása a rendszer sajátos igényei alapján. Például, ha blokkolni szeretné a bejövő forgalmat a 22-es porton (SSH), használhatja a következő parancsot:
iptables -A BEMENET -p tcp --port 22 -j DROP
- Egy másik fontos dolog a beállítások mentése, hogy ne veszítse el őket a rendszer újraindításakor. Ubuntu és Debian rendszeren az "iptables-save" parancs az aktuális konfigurációk fájlba mentésére szolgál. Red Hat és Fedora rendszeren a "service iptables save" parancsot használják a konfigurációk mentésére. Ha kétségei vannak abban, hogy melyiket használja, az Ubuntu/Debian parancsok általában több disztribúción működnek.
A konfigurációk betöltése újraindítás után
hogy töltse be a mentett beállításokat, ugyanazok a parancsok használatosak, mint a mentésükkor, de a "mentés" helyett a "visszaállítás" művelettel. Ubuntu és Debian rendszeren az "iptables-restore" parancs a mentett konfigurációk fájlból való betöltésére szolgál. Red Hat és Fedora rendszeren a "service iptables restore" parancsot használják a mentett konfigurációk betöltésére. Ismétlem, ha kétségei vannak azzal kapcsolatban, hogy melyik parancsot használja, általában az Ubuntu/Debian parancsok működnek a legjobban.
Fontos megjegyezni, hogy ha módosításokat hajt végre a tűzfal beállításain, azokat el kell menteni, és újra be kell tölteni, hogy a módosítások érvénybe lépjenek. Ez egy módja annak, hogy a konfigurációs fájlt felülírjuk az új adatokkal, és ha ez nem így történik, a változtatások nem kerülnek mentésre.
Táblázatok az IPtables-ban
Vannak 5 típusok rajzol az IPTables-ban, és mindegyikre különböző szabályok vonatkoznak:
- szűrő : Ez a fő és alapértelmezett tábla az IPTables használatakor. Ez azt jelenti, hogy ha a szabályok alkalmazásakor nem említenek konkrét táblát, akkor a szabályok a szűrőtáblára vonatkoznak. Ahogy a neve is sugallja, a szűrőtábla szerepe annak eldöntése, hogy engedélyezi-e a csomagok cél elérését, vagy elutasítja a kérést.
- nat (Network Address Translation): Ahogy a neve is sugallja, ez a táblázat lehetővé teszi a felhasználók számára, hogy meghatározzák a hálózati címek fordítását. Ennek a táblázatnak az a szerepe, hogy meghatározza, módosítani kell-e és hogyan kell a forrás- és célcsomagcímet.
- mángorló: Ez a táblázat lehetővé teszi a csomagok IP-fejléceinek módosítását. Például a TTL beállítható a csomag által támogatott hálózati ugrások meghosszabbítására vagy lerövidítésére. Hasonló módon más IP-fejlécek is módosíthatók az Ön igényei szerint.
- nyers: Ennek a táblázatnak a fő célja a kapcsolatok nyomon követése, mivel mechanizmust biztosít a csomagok megjelölésére, hogy megtekinthesse a csomagokat egy folyamatban lévő munkamenet részeként.
- biztonság: A biztonsági táblázat segítségével a felhasználók belső SELinux biztonsági környezetjelzőket alkalmazhatnak a hálózati csomagokra.
Az utolsó két táblázatot alig használják, egészen addig a pontig, hogy a legtöbb dokumentáció csak a filterről, a nat-ról és a mangle-ről beszél.
A súgófájlban példákat találunk az IPtables kezelésére. Ennek megtekintéséhez megnyitunk egy terminált és gépelünk iptables -h
.
Bár az iptables az egyik legjobb lehetőség a Linux számára, ha valami egyszerűbbet szeretne a grafikus felülettel, akkor nézze meg Tűzfal.