GUFW (Tűzfal) útmutató / bemutató – kicsit mélyebben...

Ez itt a GUFW bemutató 2. része, az első rész itt található:
https://linuxmint.hu/blog/2021/12/kis-gufw-tuzfal-utmutato-bemutato

Mint azt ígértem, az aktuális részben belemegyünk egy torrent klienssel kapcsolatban a beállítási tudnivalókba. Ehhez a BiglyBt klienst vettem alapul, aminek több oka is van:
    • Ez a program Java nyelven íródott, azaz Java alapú, és ennek apropója van a tűzfallal kapcsolatban is.
    • Ennek a programnak több szolgáltatása is van, azaz több porton is képes kommunikálni egy időben, ezért több beállítási mintát lehet szemléltetni.
    • Magam részéről kedvenc programról van szó, de ezt most nem vesézem ki mélyebben.

A BiglyBt által használt portokról:
Mint már említettem, a programnak több szolgáltatása is van, ezekhez meg külön egyedi portokat használ. Ugyanakkor a program képes ezeket a portokat dinamikusan változtatni, abból a célból, hogy megnehezítse az ISP oldali megfigyelést, és korlátozást. Mivel az EU-ban a netsemlegesség direktíva él, azaz, az efféle megkülönböztetett ISP oldali kezelés tiltott, ennek sok értelme itt nincs, továbbá a random port használata lehetetlenné teszi a tűzfal / és esetleg router / beállításokat, ezért ezt az opciót érdemes a programban kikapcsolni. (Alapból nincs is bekapcsolva)

A BiglyBt telepítéskor beállítja az alapértelmezett portokat. Ám, hogy ezek melyek lesznek, az attól is függ, hogy talál-e a helyi hálózaton futó másik BiglyBt -t. Fel tudja deríteni amaz program által használt portokat, és a helyi gépen olyan portokat állít be, amik nem ütköznek a többi porttal, amiket a másik gép használ.

Ez utóbbi azért fontos, mert ha a leírást követve valaki telepíti a programot, és megpróbálja jelen leírásban használt portokat beállítani, az bizony hibás lehet, mert nála minden bizonnyal más portszámok lesznek az alapértelmezettek. Másképpen, a jelen leírásban használt portszámok csak mintául szolgálnak!

Jelenlegi leírás során ezeket a portokat használja a program:
-Bejövő TCP port: 52457
-Bejövő UDP port: 52457
-HTTP Seed port: 8080
-IP helper plugin TCP port: 33813
-IP helper plugin UDP port: 33813
-TCP Tracker Port: 6969
-UDP Tracker Port: 6969
-TCP SSL Tracker Port: 7000
-mlDHT UDP port: 49001
-Helyi UPnP lekérdezés (API) port: 5000 
-Helyi UPnP /SSDP : 44657
-Helyi média szerver portja: 51873

Megjegyzések: 
-a három utolsó port nem programspecifikus, hanem a helyi hálózatra jellemző.
-A felsorolt portok egy alaphelyzetre vonatkoznak. A programot ugyanis lehet úgy is konfigurálni, hogy együttműködjön a hálózaton a többivel, kb. ezt úgy kell érteni, hogy egy nagy fájl egyik részét az egyik, a másik részét a másik program tölti le, majd a két részt a helyi hálón fűzik össze. Továbbá, a program képes az interneten keresztül is együttműködni mások programjával, elosztott adatbázist kezelni, TOR hálózatot, VPN-t használni, és ezek mind mind újabb portokat igényelnek, a fenti listában ezek nincsenek felsorolva. Ha a program hálózat tesztelő funkcióit futtatjuk, akkor ezeket a portokat is végigteszteli, így megjelenik a tűzfal Report felületén, láthatjuk a használt portokat, én is így készítettem a képeket (azaz, a képeken több port is látszik az előbbi felsoroláshoz képest).

Most indítsuk el a tűzfalat, és az aktuális profil alatt nyomjuk meg a Rules gombot, majd alul, a + gombot. Ezzel a gombbal tudunk egy új szabályt felvinni. Alapértelmezetten az „Előre beállított” fül lesz az aktív, azaz itt a tűzfal kész beállításokat tud felajánlani. Ezekből a legalsó, Alkalmazás legördülővel tudunk választani. Ha lenyitjuk, feljön egy igencsak terjedelmes lista, amiben naná, hogy nem szerepel a program, amit be akarunk állítani :-)


 

Most akkor, mivel nincs a BiglyBt a listában, járjunk el így: Indítsuk el a BiglyBt-t, és a tűzfal felületén válasszuk a Report fület. Kb. ilyesmi látszik ott (a listát lehet rendezni, pl. Alkalmazás-ra):


 

Hoppá! Mi a jószagú hétszentség folyik itt? Mi a BiglyBt-t futtatjuk, mégis mi a túró van, hogy nem ez látszik a képen? Hanem az, hogy a java használja azokat a portokat, amik a BiglyBt felületén be vannak állítva!
Nos,  mint azt még az írás elején állítottam, ez az egyik dolog, amiért ezt a programot választottam. Ez ugyanis jellemző a Java alapú programokra. A Java az egy keretrendszer, azon belül fut a Java alkalmazás, kifele, a rendszer felé meg az látszik, hogy a Java fut. Bármilyen Java alapú kommunikációs programot is futtatunk, ami akár más, mint a BiglyBt, (pl. Azure) a tűzfal felületén akkor is csak annyi látszik, hogy Java!
Tehát, amikor idejövünk (a tűzfal eme felületére), akkor tudnunk kell, hogy a Java alatt mit kell érteni. Mondjuk abból, hogy éppen mit futtatunk, és annak a beállításai közt milyen portok vannak beállítva…

A másik, ami szembetűnik, a Protokoll oszlopban levő értékek. Némelyik 6-ra végződik, némelyik nem. 
Egy kis háttér infó:
A Linuxnak van egy kernelszintű alap tűzfala, aminek a neve iptables. Mármint ez annak a táblázatos listának a neve, amin keresztül ezt konfigurálni lehet. Meglehetősen hatalmas és bonyolult listáról van szó, ember legyen a talpán, aki ezt átlátja. Ráadásul ebből mindjárt kettő is van a jelenlegi rendszerekben, egyik az IPv4-hez, a másik meg az IPv6-hoz. Ezen táblák lekérdezésére, módosítására szolgál az UFW (parancssoros) program. Az UFW-t meg a GUFW vezérli. Másképpen mondva, a GUFW az UFW-t használja az iptables listák módosítására. És mivel két tábla van, külön  kell kezelni az IPv4-et, meg az IPv6-ot.

Tudjuk, hogy a BiglyBt alap TCP/UDP portja a 52457, ezen megy a torrent kommunikáció.
Tehát a tűzfal Report felületén jelöljük ki az 52457 port sorát (l. fenti kép), és nyomjunk lent a + gombbra.

Egy ilyen ablak lesz előttünk:


Még mielőtt a Hozzáadás gombra nyomnánk, nézzük át a felületet. Szeretnénk tudni, hogy ez a szabály melyik programhoz kapcsolódik. Ezért az első mezőbe a java helyett írjuk be: BiglyBt.
Mivel a program mind a TCP, mind az UDP esetében használja ezt a portot, a Protokoll legördülőben válasszuk a Mindkettő elemet. Tehát így:

Ezután nyomjunk a Hozzáadás gombra…

Ha most visszamegyünk a Rules felületre, akkor ezt látjuk:


Mint az látható, két szabály van. Egyik az IPv4-hez, egy meg az IPv6-hoz. Utóbbi egy (v6) jelölést kapott a port száma után.
A másik, amit láthatunk, az alkalmazás oszlopban a BiglyBt név. És itt álljunk meg egy szóra.
Először is, a tűzfalnak fogalma sincs, hogy ezt a portot mi használhatja. (Pontosabban, a Report oldalon azt tudja mutatni, hogy mi használja a portot, jelen esetben hogy a java, de az, hogy adtunk ennek egy nevet, azzal nem korlátoztuk azt, hogy ezt a portot csak az általunk megadott program használhatja.)  A szabály annyiról szól, hogy ez a port a bejövő forgalom számára engedélyezett TCP és UDP protokollok esetén. Attól, hogy az alkalmazás oszlopban az szerepel, hogy BiglyBt, attól bizony még akármi is használhatja a portot.
Maradjunk annyiban, ez a port a BiglyBt jelölést használja, mert jellemzően ez használja ezt a portot.

Másképpen mondva, az UWF / GUFW nem alkalmazás szintű tűzfal. Eddig nem is nagyon volt szükség ilyesmire Linux alatt, de már érik egy ígéretes projekt: https://github.com/evilsocket/opensnitch/releases

Persze, azért valami eddig is volt, de azok rendszerint fizetősek, pl. elvileg a Comodo-nak van Linuxra ajánlata, de részletes infót nem tudok róla, nem fizettem elő, hogy milyen megoldásuk van, így számomra nem derült ki: https://personalfirewall.comodo.com/linux-firewall.php
(a FREE FIREWAL letöltő link a Windowsos telepítőre mutat)

Ugyanakkor azzal, hogy egy JAVA alkalmazás kívülről csak JAVA-nak látszik, még egy alkalmazás szintű tűzfal sem tud mit kezdeni.

Kanyarodjunk vissza a GUFW-hoz, foglalkozzunk azzal, hogy egy teljesen új szabályt kell felvinni, amit mondjuk nem a Report oldalról indulva tesszük meg (mondjuk nem fut a program, és ahhoz, hogy elinduljon, kell neki egy nyitott port //ilyen nincs, ez merő kitaláció, csak azért tételezzük fel ezt, hogy legyen valamilyen indok arra, hogy miért így visszük fel a szabályt).

Van a BiglyBt-nek egy IP helper pluginja, ami a 33813 számú portot használja TCP és UDP protokollokkal. Menjünk a tűzfal Rules felületére, és nyomjunk egy + gombot:
-Az „Előre beállított” lapon csak annyit tudunk csinálni, hogy kiválasztunk a listából egy elemet, ami jelenleg nem játszik, tehát menjünk az „Egyszerű” fülre, és töltsük ezt ki így:


Ha most megnyomjuk a Hozzáadás gombot, akkor felkerül a szabály listára, ugyanúgy, ahogy az előző is (két szabályunk lesz). Ez a felület annyiban tér el a Haladó felülettől, hogy itt nincs sorszám, naplózás beállítás, meg cím tól-ig, port tól-ig beállítási lehetőség. Viszont az esetek többségében csak ennyi beállítás kell, nagyon spéci esetekben kell további korlátozásokat megadni.

Ha most visszamegyünk a Report oldalra, akkor ott láthatjuk, amiről az előbb beszéltem:


Az látszik, hogy a java használja a 33813 portot, és ez szabály szerint történik (pirosak a sorok), mindazonáltal a Rules lapon az alkalmazás oszlopban az látszik, hogy BiglyBt, mert ezt adtuk meg.

 

Kanyarodjunk újra a Report lapra, van itt nekünk 3 sorunk, ami a 44657 portot használja. (A harmadik sorban látható IP cím, az a helyi IPv6-os címe):


Az első soron állva, + gomb nyomása, szabály felvitele:

Most a Report lapon ez látszik:


Mindhárom sor piros, azaz szabály szerint engedélyezett, holott a szabálynál nem adtunk meg IP címet (nem korlátoztuk IP címre), ezért az, hogy konkrét IP címmel történik a kommunikáció, az is belefér a szabályba. Ezzel csak a logikáját próbálom szemléltetni. Érthető, ugye?

Ám van a dologban egy bukfenc. Ami azt illeti, mind a három sor a helyi géppel kommunikál, csak az egyiknél specifikálva is van a konkrét cím. Azaz, ezzel a helyi címmel nem lehet korlátozni a porttal való kommunikálást.

Mutatom inkább:
Van itt a Report oldalon 2 sorunk, ami UDP protokollal használja az 52372 portot. 

Az egyiknek van konkrét IPv6 -os címe, (a helyi gép címe) válasszuk ki ezt, és vigyünk fel egy szabályt:


Mit látni a Report oldalon?:


Mindkét sor piros lett, hiába korlátoztuk le IP címre a szabályt, tekintve, hogy ez a helyi gép címe, a másik sor is ezzel kommunikál, így az is belefér a szabályba.

 

Az is feltűnhet, hogy eddig mindig bejövő irányú szabályokat vittünk fel. Ez teljesen logikus, mert kifele alapból minden engedélyezett. Szabályokat a bejövő irányokra kell felvenni, amikor is azt engedélyezzük, hogy kívülről kezdeményezett kommunikáció bejöhessen. Pl. ha Skypon hívnak, vagy torrentet akarnak tőlünk letölteni, akkor azt ugye, kívülről kezdeményezik, az meg nem fog működni, ha a tűzfal ezt nem engedi be. (Ha meg NAT router mögött vagyunk, akkor még abban is fel kell venni szabályokat, de erre már nem terjed ki ez az írás)

//Az nem igaz, hogy Skype hívás kívülről nem lehetséges bejövő tűzfalszabály hiányában, amióta ez nem P2P alapú, de szemlétesség miatt írtam, mert ezzel könnyebb megérteni, hogy miért van szükség tűzfal szabályokra.//

Összegezve, ebben a részben megismerhettük a szabályok felvitelét, a szabályok elméletét (konkrétan bejövő, konkrétan portokkal történik a kommunikáció), és megtudhattuk azt, hogy a GUFW / UFW nem olyan alkalmazás szintű tűzfal, mint Windows esetén a tűzfal kliensek többsége  (Comodo, Kerio, vagy a Windows sajátja), ahol amúgy erre nagy szükség van. 

(Az alkalmazás szintű tűzfal kifele is szabályozza, hogy melyik program melyik porttal kommunikálhat, ahogy bejövő irányban is, hogy melyik program melyik porton fogadhat adatot.)

Mielőtt azon bánkódnánk, hogy Linux alá nincs elterjedt alkalmazás szintű tűzfal, bezzeg Windowsra van több is, jó, ha tudjuk, hogy ezek beállításait simán módosítani tudják az erre felkészített programok, hogy mást ne mondjak, pl. a uTorrent kliens Windows alatt telepítéskor megkérdezi, hogy adja hozzá a megfelelő szabályokat a tűzfalhoz? És igen, meg tudja tenni! Ahogy a legtöbb rosszindulatú program is, úgy, hogy rá sem kérdez. Ez a széles körű ismertség hozadéka. Magyarul, Windows alatt már az alkalmazás szintű tűzfal sem jelent nagy fokú védelmet, főleg a sajátja.

Ezzel most egy időre zárom a témát, bár még nagyon sokat tudnék a témában sóderolni, a továbbiakhoz sok előkészületre van szükség….

Hozzászólások

kimarite képe

Például Port 7000

És van magyarázat a portok használatának miértjére az alkalmazás honlapján?

Például a 7000-es portot a szintén Java alapú Vuze P2P kliens erre használja:

Default for Vuze's built in HTTPS Bittorrent Tracker. (*)

Értékelés: 

0
Még nincs értékelve

Például Port 7000

#1 gondolom a TCP SSL Tracker Port ugyanezt jelenti, csak másképp hívja. Sajnos a BiglyBt-nek nincs kész emészthető Wiki oldal, csak terv fázisban. A githubon lehet infókat szerezni, meg vannak amolyan eseti oldalak, pl. https://vote.biglybt.com/

(Gondolom nincs marketinges szervező a csapatban...)

Értékelés: 

0
Még nincs értékelve
kimarite képe

Például Port 7000

#1.1 Érdekelt volna..., no, mindegy.

Értékelés: 

0
Még nincs értékelve

Ez nem automatikus,

 "pl. a uTorrent kliens Windows alatt telepítéskor megkérdezi, hogy adja hozzá a megfelelő szabályokat a tűzfalhoz? És igen, meg tudja tenni"

Nem tudja, legalábbis én ilyet még nem láttam. Egy ablakot feldob de az nem a program ablaka hanem a tűzfalé amiben megkérdi hogy engedélyezem-e. 

Nem a utorrent ker engedélyt hanem a tűzfal lérdezi meg hogy engedheti a utorrentet. Ez a kettő nagyon nem ugyanaz.

Értékelés: 

0
Még nincs értékelve

Ez nem automatikus,

#2 https://www.youtube.com/watch?v=L-JtHhlctyI

2:53-tól figyuzz, ott a legfelső opció. W7 alatt a tűzfal oldalról még kérdés sincs. W10 alatt lehet, hogy már kérdez a rendszer, azt nem próbáltam, mert már régóta hanyagolom.

Értékelés: 

0
Még nincs értékelve

Ez nem automatikus,

#2.1 végignéztem a videót, nem kérdezett a rendszer. De utorrentől függetlenül megoldható az UAC kikapcsolása "csendben".

Értékelés: 

0
Még nincs értékelve

Ez nem automatikus,

#2.1 Igen de 2,13-nál amikor indítja a telepítést, akkor a felugró UAC párbeszédablakba az Igen válasz a továbbiakban rendszergazdai jogokat jelent. A telepítés összes sallangja ebben a módban fut le.

Nekem van több portable programom ami ugye nem rendszergazda módba települt hanem egy vadidegen szoftver és kimenne a netre. A legeslegelső indításnál kivétel nélkül mindnél kérdezett a tűzfal.
Ha átvinném pendriven a szomszéd laptopjába és pl. indítanám nála a StrongDC-t ott is rögtön kérdezne. Ha leokézom megjegyzi és többet sose kérdez az adott gépen.
 

Értékelés: 

0
Még nincs értékelve