iptables kezdőknek, kíváncsi, érdeklődő (2. rész)

Mikor DesdeLinux Még csak néhány hónapos voltam, és egy rendkívül egyszerűen érthető oktatóanyagot írtam az iptables-ról: iptables kezdőknek, kíváncsi, érdeklődő (1. rész) . Olyan metaforák segítségével, mint például a számítógépünk összehasonlítása a házunkkal, a tűzfal a ház ajtajával, valamint más példák, szórakoztató módon, annyi technikai és bonyolult koncepció nélkül elmagyaráztam, hogy mi a tűzfal, mi az iptables, és hogyan kell elkezdeni használni, és Beállítás. Ez a folytatás, az előző iptables oktatóanyag 2. része

Előfordul, hogy néhány nappal ezelőtt a Linksys AP (Access Point) használatával Wifi-t tettem a barátnőm házába, bár a helység nem a legismertebb a technológia szempontjából, vagyis nem az, hogy a repedéseknek sok veszélye van, hanem mindig Jó ötlet a Wifi és a számítógépek kiváló biztonsága.

Itt nem kommentálom a Wi-Fi biztonságát, mivel ez nem a bejegyzés célja, arra az iptables konfigurációra koncentrálok, amelyet jelenleg a laptopomon használok.

A következő parancsokat egy terminálban hajtják végre, rendszergazdai jogosultságokkal kell végrehajtani, minden parancshoz hozzáadom a sudo-t, ugyanezt megteheti, vagy elkerülheti a sudo használatát, ha a parancsokat közvetlenül root-ként hajtja végre.

Az előző bejegyzésben kifejtettem, hogy egy tűzfalban először meg kell tagadni az összes bejövő forgalmat, ehhez:

sudo iptables -P INPUT DROP

Ezután engedélyeznünk kell saját számítógépünk számára az adatok bevitelét:

sudo iptables -A INPUT -i lo -j ACCEPT

A számítógépünkről származó kérések csomagjainak elfogadása mellett:

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

E sorok jobb megértése érdekében javaslom elolvasni az előző cikk első felét: iptables kezdőknek, kíváncsi, érdeklődő (1. rész)

Eddig számítógépünk problémamentesen tud navigálni az interneten, de más környezetből (LAN, Internet, Wifi stb.) Senki sem férhet hozzá semmilyen módon. Megkezdjük az iptables konfigurálását az igényeinknek megfelelően.

Az ulogd használatával az iptables naplóit egy másik fájlba bocsátja ki:

Alapértelmezés szerint az iptables naplók a kernel naplóba, a rendszer naplóba, vagy valami hasonlóba mennek ... alapértelmezés szerint az Arch-ban, most már nem is emlékszem hova mennek, ezért használom ulogd hogy az iptables naplók egy másik fájlban legyenek.

sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ULOG

Hozzáférés biztosítása a privát szerverhez:

Nem a VirtualBox-ot vagy hasonlót használok a virtualizáláshoz, a privát szerveremet virtualizálom Qemu + KVM amelynek képesnek kell lennie a laptopomra, mint olyanra csatlakozni, az iptables-szabályokkal, amelyeket a fentiekben adtam meg, ez nem lesz képes, ezért engedélyt kell adnom a virtuális szerverem IP-jére, hogy az hozzáférhessen a laptopomhoz:

sudo iptables -A INPUT -i virbr0 -p tcp -s 192.168.122.88 -j ACCEPT

Részletezni fogjuk ezt a sort, fontos, hogy megértsd, mit jelentenek az egyes paraméterek, mert ezentúl sokat fognak ismételni:

-BEMENET : Azt mondom, hogy deklarálni fogok egy szabályt a bejövő forgalomra

-i virbr0 : Kijelentem, hogy az a felület, amelyen keresztül elfogadom a forgalmat, nem etho (LAN) vagy wlan0 (Wifi), kifejezetten azt mondom, hogy ez az én virbr0 interfészem, vagyis az a virtuális hálózati interfész (belső), amelyen keresztül a laptopom kommunikál a virtuális szerverem (és fordítva)

-p tcp : Megadom a protokollt, a leggyakrabban használt UDP és TCP, itt tényleg elég volt nem ezt feltenni, de ... szokás megadni az elfogadandó protokoll típusát

-s 192.168.122.88 : A csomagok forrása, forrása. Más szavakkal, a szabály olyan csomagokra vonatkozik, amelyek kifejezetten az IP 192.168.122.88 IP-címről származnak

-j ELFOGADÁS : Már itt mondom, hogy mit akarok kezdeni a fentieknek megfelelő csomagokkal, ebben az esetben elfogadom.

Más szóval, összefoglalásképpen elfogadom az IP 192.168.122.88 IP-címről érkező csomagokat, de abban az esetben, ha az IP-ből származó csomagokat akarja megadni, DE! Olyan felületről lépnek be, amely nem virbr0, azaz mondjuk megpróbálnak csomagokat megadni az IP 192.168.122.88 IP-címről, de a Wifi hálózatunk számítógépéről származnak, ha ez így van, akkor a csomagokat elutasítják. miért? Mivel egyértelműen meghatározzuk, hogy igen, elfogadjuk a 192.168.122.88 kezdetű csomagokat igen, de és csak, de nekik is be kell lépniük a virbr0 interfészről (belső, virtuális hálózati interfész), ha a csomagok másik interfészről származnak (LAN, RAS, Wifi, stb.), akkor nem fogadják el őket. A felület megadásával, amint láthatja, még jobban korlátozhatjuk, jobban ellenőrizhetjük, mi lép be (vagy nem lép be) a számítógépünkbe.

A ping elfogadása az otthoni Wifi bármely IP-jéről:

Valamilyen más számítógépről, amely csatlakozik a Wifihez, ha megpróbálja pingelni a laptopomat, engedélyezni akarom. ok? Az ötlet az is, hogy az elkövetkező néhány hétben a szomszédos házban lévő számítógép összekapcsolása a hálózattal, így az információk megosztása kevésbé bonyolultabb és folyékonyabb lenne, amikor teszteket kezdek végezni az asztal és a Wifi összekapcsolása érdekében, meg kell pingelnem laptop a kapcsolat ellenőrzéséhez, ha a laptopom nem pingel vissza, azt gondolhatom, hogy az AP nem működik, vagy hogy hiba történt a Wifi elérésekor, ezért szeretném engedélyezni a pinget.

sudo iptables -A INPUT -i wlo1 -p icmp -s 192.168.1.0/24 -d 192.168.1.51 -j ACCEPT

-BEMENET : Ugyanúgy, mint korábban, a bejövő forgalomra is utalok

-én wlo1 : Hasonló, mint korábban. Az előző esetben megadtam a virtuális interfészt, ebben az esetben egy másik interfészt, a wifimét: wlo1

-p icmp : Icmp protokoll, icmp = ping. Vagyis nem engedélyezem az SSH-t vagy hasonlót, csak a pinget (icmp) engedélyezem

-s 192.168.1.0/24 : A csomagok forrása, vagyis mindaddig, amíg a csomagok IP 192.168.1. elfogadják

-d 192.168.1.51 : Cél IP, vagyis az én IP.

-j ELFOGADÁS : Jelzem, mit kell kezdeni a fentieknek megfelelő csomagokkal, elfogadom.

Vagyis, hogy ezt futóan megmagyarázzam, elfogadom, hogy pingelnek (icmp protokoll), akiknek a célom kifejezetten az én IP, feltéve, hogy olyan IP-ről származnak, mint például a 192.168.1 .__, de nem érkezhetnek egyetlen hálózati csatolóról sem , kifejezetten a Wifi hálózati felületemről kell belépniük (wlo1)

Csak egy IP-n fogadja el az SSH-t:

Néha csatlakoznom kell SSH az okostelefonomról a laptop vezérléséhez, ezért engedélyeznem kell az SSH hozzáférését a laptopomhoz a Wifi-m IP-jéről, ehhez:

sudo iptables -A INPUT -i wlo1 -p tcp -s 192.168.1.0/24 -d 192.168.1.51 --dport 22 -j ACCEPT

Ebből a sorból az egyetlen, ami különbözik, vagy érdemes kiemelni: –Dport 22 (Az általam használt SSH port)

Más szavakkal, elfogadom azokat a kísérleteket, amelyek a 22-es porton keresztül csatlakoznak a laptopomhoz, amennyiben a wifim IP-jéről származnak, nekik is meg kell adniuk az IP-t, mint konkrét célpontot, és a wlo1 felületen, vagyis a wifi-n keresztül is. (nem a LAN stb.)

Lehetővé teszi számukra a webhely megtekintését:

Ez nem az én esetem, de ha bármelyikőtöknek van tárolt weboldala, és nem akarja senkinek megtagadni a hozzáférést, vagyis hogy bárhonnan bárki elérheti ezt a weboldalt, az sokkal egyszerűbb, mint gondolná:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Más szavakkal, itt engedélyezik az összes bejövő forgalmat (tcp) a 80-as porton keresztül. Mint látható, nem adom meg, hogy mely IP-kből vagy hálózatokból engedélyezem a hozzáférést, mivel nem adok meg egy IP-tartományt az engedélyezéshez, az iptables feltételezi, hogy engedélyezni szeretném a hozzáférést az összes létező IP tartomány, vagyis az egész világra 🙂

Egyéb kombinációk:

Sok más szabályom van, például elfogadom a pinget az otthoni LAN-ról érkező IP-k számára (ehhez alapvetően ugyanaz a sor, mint fent, megváltoztatva az IP-tartományokat), ami sokkal inkább ugyanaz, mint amit fentebb elmagyaráztam ... laptop, mint olyan, nem használok igazán összetett dolgokat, például a kapcsolatok korlátozását, az anti DDoS-t, ezt a szerverekre bízom, a laptopomon nincs rá szükségem 🙂

Egyébként eddig a cikk.

Amint láthatja, az iptables-szel való munkavégzés semmiképpen sem olyan bonyolult. Ha felépít egy szkriptet, amelybe a szabályokat írja, az nagyon egyszerű, majd módosítsa azt, adjon hozzá vagy távolítson el szabályokat a tűzfalhoz.

Nem tartom magam szakértőnek a témában messze, annak ellenére, hogy kétségei merülnének fel, itt kommentálják, megpróbálok segíteni, amennyire csak tudok.

Üdvözlet


31 hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   kockázatot dijo

    Nagyon jó, nagyon jól magyarázható, remek.
    Szeretem ezt a típusú bejegyzést.

    1.    KZKG ^ Gaara dijo

      Nagyon köszönöm a hozzászólást 🙂

      Ez a hozzászólás hosszú ideig adósságom volt, a végén kellemes és kellemes, hogy ki tudom fizetni ^ _ ^

      Üdvözlet

      1.    FIXOCONN dijo

        egy kérdés vagy Kubában?
        … Előfordul, hogy néhány nappal ezelőtt a Linksys AP (Access Point) használatával Wifi-t tettem a barátnőm házába

        1.    KZKG ^ Gaara dijo

          Igen, természetesen Kubában születtem és élek. miért a kérdés?

        2.    Sam burgos dijo

          @FIXOCONN: Helló barátom, és bocsásson meg a kérdés offtopikáját, de hogyan határozhatja meg, hogy a Cinnamon asztali környezetként jelenjen meg a felhasználói ügynökben? A Mint 13-at fahéjjal használom, de semmiképpen sem érhetem el, hogy a Cinnamon logó megjelenjen a felhasználói ügynökömben, valahányszor hozzászólok ezen az oldalon.

          Olyan kedves lenne, hogy átadja nekem a felhasználói ügynök adatait, ha nem okoz túl nagy gondot? Szeretném tudni ezeket az adatokat, hogy magam is elhelyezzem =)

          Hagyok neked egy oldalt, hogy átnézhesd és megadd nekem az információkat. Köszönöm és rendszergazdák, bocsássák meg a részemről a "trollkodást" (ha így hívhatjátok) -> http://user-agent-string.info/

          1.    KZKG ^ Gaara dijo

            Adja hozzá a "Cinnamon" -t (idézőjelek nélkül) a UserAgent bármely részéhez, ekkor a logónak meg kell jelennie a jövőbeni megjegyzésekben 🙂

  2.   Bruno cascio dijo

    Nagyon jó a bejegyzés! nagyon világos 😀

    1.    KZKG ^ Gaara dijo

      Köszönöm, hogy elolvastad, és köszönöm a megjegyzést 🙂

  3.   utalvány dijo

    Köszönöm! Ez nagyon sokat segít nekem!

  4.   Oscar Grenada dijo

    Helló, először is gratulálok a bloghoz, szerintem nagyon jó.
    Valami, amit jó megemlíteni, az az, hogy az ULOG alkalmazással történő bejelentkezés opciója nem működik az ulogd2 operációs rendszerekben, ebben az esetben a szabálynak a következőknek kell lennie:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG

    1.    KZKG ^ Gaara dijo

      Először is, nagyon köszönöm, amit a blogról mondasz 🙂

      Az ulogd v2.0.2-2 telepítve van az Arch-ba, és az általam elhelyezett sor problémamentesen működik (az /etc/ulogd.conf fájlba loglevel = 1 értéket kellett beírnom, de a naplókat gond nélkül átviszi egy másik fájlba.

      Ulogd v2 vagy újabb verziót használ, az Ön által hagyott vonal rosszul működik?

      Üdvözlettel és köszönöm a hozzászólásokat.

  5.   Város dijo

    Mindig vártam a második részt, emlékszem, amikor elolvastam az elsőt (ez volt a beavatásom a tűzfalakban). Köszönöm @ KZKG ^ Gaara, üdvözlettel 🙂

    1.    KZKG ^ Gaara dijo

      Köszönöm, hogy elolvastál 😀
      És hehe igen, amit mondtam ... ez a bejegyzés olyan adósság volt, amivel már régen rendelkeztem ^ _ ^

  6.   Jose Luis Gonzalez helyőrző kép dijo

    Üdvözlettel. Nagyon jó a bejegyzés. Az iptables szabályokat próbálom úgy konfigurálni, hogy átirányítsák a forgalmat a tintahalról a dansguardianra, és ez még mindig nem éri el a célt. Nagyra értékelném a segítséget ebben a tekintetben.

    1.    KZKG ^ Gaara dijo

      iptables erre? Ezt nem közvetlenül a Squid ACL-jeivel végzik?

  7.   névtelen dijo

    - Sok más szabályom van, például ..
    Ezt hívom paranoiának, fiú
    Még egy kicsit, és egy csomag Rotwailert tesz a modem / router minden nyitott portjába 🙂

    1.    KZKG ^ Gaara dijo

      HAHAHAHAHAHAHAHAHA nevetéstől halok a rottwailerekkel hahahaha

  8.   Ivan dijo

    Üdvözlet barátom, előfordul, hogy segítségre van szükségem az IPTable konfigurálásához oly módon, hogy az csak a 80-as porthoz utasítja el a hozzáférést, amikor beírom a címet az egyedi névszerverek böngészőjébe, vagyis amikor például beírom az ns1.mydomain.com és az ns2.mydomain parancsokat. com (amelyek a névszervereim) Az IPtáblák megtagadják a 80-as port elérését, így a böngésző megpróbálja betölteni az oldalt, de egy idő után lejár, és soha nem töltődik be, előfordul, hogy már megpróbáltam ilyen parancsokkal:

    iptables -A BEMENET -d ns1.midomini.com -p tcp –port 80 -j DROP
    iptables -A BEMENET -d ns2.midomini.com -p tcp –port 80 -j DROP

    De az egyetlen dolog, hogy megtagadja a belépést a 80-as portba az összes tartományomban (mivel ugyanazt az IP-t osztják meg, mint a virtuális hoszt), azt akarom, hogy csak a névszervereim URL-jében és az IP-ben legyen, amelyre a névszervereim mutatnak , vagyis az IP-táblák megtagadják a hozzáférést a 80-as porthoz:

    ns1.midomini.com (A pont) -> 102.887.23.33
    ns2.midomini.com (A pont) -> 102.887.23.34

    és az IP-k, amelyekre a névszerverek mutatnak

    102.887.23.33
    102.887.23.34

    Ilyen rendszerrel rendelkező vállalat példája: Dreamhost
    Névszervereik: ns1.dreamhost.com és ns2.dreamhost.com, valamint azok az IP-címek, amelyekre nem mutatnak választ, amikor beírják a böngésző címsorába

    Előre is nagyon szépen köszönöm a figyelmet, nagyon szeretném, ha ezzel kezet adna nekem, nagyon szükségem van rá és sürgősen !!

    Jó nap !!

    1.    KZKG ^ Gaara dijo

      Szia Ivan,

      Lépjen kapcsolatba velem e-mailben (kzkggaara[kukac]desdelinux[pont]net) hogy higgadtabban beszéljünk róla és jobban elmagyarázzuk, holnap minden bizonnyal válaszolok (ma elmegyek)

      Mit akarsz csinálni, nem tudom, miért nem működnek neked azok a sorok, amelyeket mondasz nekem, de ellenőrizned kell a naplókat és egyéb dolgokat, amelyek túl hosszúak lennének.

      Üdvözlet, és várom az e-mailt

  9.   neysonv dijo

    elméletileg az iptables segítségével megakadályozhatnám az olyan programok lekapcsolási kéréseit, mint az aircrack. Igazam van??? Nos, csinálok teszteket, de ha elmondja, hogy nagyon boldoggá tenne XDDD

    1.    KZKG ^ Gaara dijo

      Elméletileg azt hiszem, most, nem tudom, hogyan lehetne megtenni, soha nem tettem meg ... de megismétlem, elméletben azt hiszem, hogy megtehetné.

  10.   Alex dijo

    Az iptables szabályok alkalmazása után lehetetlen elérnem a megosztott Windows mappákat a helyi hálózaton. Milyen szabályt kell alkalmazni a javításhoz?
    Köszönöm.

    1.    KZKG ^ Gaara dijo

      Milyen iptables szabályokat alkalmazott?
      Ez az "iptables for newbies" 2. része, elolvasta az elsőt? Arra kérem ezt, hogy megtudja, alkalmazta-e az előző bejegyzésben szereplő szabályokat

      1.    Alex dijo

        Igen, elolvastam mindkét részt. A szkripthez egy másik hozzászólást alapozok, amelyet a systemd kezdési szabályairól tettél közzé.

        #! / bin / bash
        # - UTF 8 -

        # Iptable bináris
        iptables = »/ usr / bin / iptables»

        kidobta ""

        ## Táblázatok törlése ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- FLUS-ból készült iptable-be» && echo »»

        ## Naplók létrehozása az ULOGD használatával ##
        $ iptables -A BEMENET -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j ULOG

        ## Definiálja az alapértelmezett DROP-házirendet ##
        $ iptables -P INPUT DROP
        $ iptables -P ELŐRE DROP
        #echo »- alapértelmezés szerint a DROP házirend» && echo »»

        ## Engedjen meg mindent a localhostnak ##
        $ iptables -A BEMENET -i lo -j ELFOGADÁS
        $ iptables -A KIMENET -o lo -j ELFOGADÁS
        #echo »- Minden engedélyezett a localhost számára» && echo »»

        ## Engedélyezem az általam kezdeményezett kapcsolati csomagok megadását ##
        $ iptables -A BEMENET -m állapot –állapot LÉTREHOZOTT, KAPCSOLÓDÓ -j ELFOGADÁS
        #echo »- A» && echo »» által kezdeményezett engedélyezett csatlakozási csomagok

        kidobta "###################################"
        echo »## BEÁLLÍTOTT IPTÁBLÁK OK! ## »
        kidobta "###################################"

        Olvastam az interneten, hogy a szamba esetében a következő szabályokat kell tartalmaznia a szkriptben:

        $ iptables -A BEMENET -p tcp –port 139 -j ACCEPT
        $ iptables -A BEMENET -p tcp –port 445 -j ACCEPT
        $ iptables -A BEMENET -p udp –sport 137 -j ACCEPT
        $ iptables -A BEMENET -p udp –port 137 -j ACCEPT
        $ iptables -A BEMENET -p udp –port 138 -j ACCEPT

        Azonban még velük sem látok Windows munkacsoportokat. : S

      2.    Alex dijo

        Probléma megoldódott. Módosítsa a munkacsoport és a gazdagép engedélyezési paramétereit a samba konfigurációs fájlban.

  11.   otkmanz dijo

    Kiváló cikk, nagyon jó !!!!
    Most olvastam, és szeretem mindazt, ahogyan megmagyarázod, és az iptables igazán hasznos használatát, nagyon szeretném megtanulni, hogyan kell mélyebben használni.
    Üdvözlet és kiváló cikk, remélem, hogy többet közöl az Iptables-ről! ^^

  12.   LEO dijo

    Kedves;

    Van egy iptables-es proxy-m, és az egyik hálózatom nem tud pingelni http://www.google.cl emiatt blokkolom a portokat, és ezer módon próbálom megnyitni a portokat, és semmi sem történik. Ha nem tudok pingelni, nem tudom összekapcsolni az Outlook-ot

  13.   Borja dijo

    Gratulálok a hozzászóláshoz! Nagyon jó. De van egy kérdésem. Néha megváltozhat a hálózatban hozzárendelt IP-cím (ha igaz, hogy IP-t rendelhetnénk a MAC-címeinkhez), de van-e olyan lehetőség az Iptables szolgáltatással, amely lehetővé teszi a szerverünkhöz való hozzáférést SSH-n keresztül MAC-címen?

    Remélem, jól elmagyaráztam magam.

    Üdvözlettel, és köszönöm szépen!

  14.   Fernando MartinGan dijo

    Helló, tudod, hogy konfiguráltam egy linux szervert, és miután beléptem ezekbe a parancsokba, mindent blokkoltam és elvesztettem a hozzáférésemet, majdnem mindent helyre tudtam állítani, de 2 dolog hiányzik. * Már nem tudok hozzáférni webböngészőből a cname «server» keresztül, ha ip-vel, 10.10.10.5-ig, másrészt nem látom a megosztott erőforrásokat a Windows Explorer-ből a hálózaton, mielőtt betettem volna a \\ szervert és megnéztem az összeset megosztott források. Remélem tudsz segíteni nekem, tudom, hogy butaság, de nem tudom megoldani, köszönöm

  15.   tau dijo

    Szó szerint idézek:
    "
    Icmp protokoll, icmp = ping. Vagyis nem engedélyezem az SSH-t vagy hasonlót, csak a pinget (icmp) engedélyezem
    "

    Az ICMP és a PING nem ugyanaz. A pingelés az ICMP protokoll része, de nem minden. Az ICMP (Internet Control Message Protocol) protokollnak sokkal több felhasználása van, némelyikük bizonyos veszélyekkel jár. És elfogadja az összes ICMP forgalmat. Csak pingelésre kellene korlátozódnia.

    Saludos!

  16.   ozkr dijo

    Gyakornokot kell végeznem, de nem nagyon értek az iptables-hez, kérem, segítsen nekem ...
    köszönöm!!!!!!!