iptables por novuloj, scivolemaj, interesataj (dua parto)

Kiam SinceLinux havis nur kelkajn monatojn, mi verkis ege simplan kompreneblan lernilon pri iptables: iptables por novuloj, scivolemaj, interesataj (1-a parto) . Uzante metaforojn kiel kompari nian komputilon kun nia domo, nian fajromuron kun la pordo de la domo, kaj ankaŭ aliajn ekzemplojn, mi klarigis amuze, sen tiom da teknikaj aŭ komplikaj konceptoj, kio estas fajroŝirmilo, kio estas iptables kaj kiel ekuzi ĝin kaj agordi. Jen la daŭrigo, la dua parto de la antaŭa lernilo de iptables 🙂

Okazas, ke antaŭ kelkaj tagoj per Linksys AP (Alirpunkto) mi metis Wifi ĉe la domo de mia koramikino, kvankam la loko ne estas la plej sperta pri te technologyniko, do ne estas ke ekzistas multaj danĝeroj de krakado , ĉiam estas Bona ideo havi bonegan sekurecon kaj en la Wifi kaj en la komputiloj.

Mi ne komentos pri la sekureco de la Wifi ĉi tie, ĉar ĝi ne estas la celo de la afiŝo, mi fokusiĝos pri la agordo de iptables, kiun mi nuntempe uzas en mia portebla komputilo.

La jenaj komandoj estas plenumitaj en terminalo, ili devas esti plenumitaj kun administrantaj privilegioj, mi antaŭos sudon al ĉiu komando, vi povas fari la samon aŭ eviti uzi sudon ekzekutante la komandojn rekte kiel radikon

En la antaŭa afiŝo mi klarigis, ke necesas en fajroŝirmilo unue nei ĉiun alvenantan trafikon, por tio:

sudo iptables -P INPUT DROP

Tiam ni devas permesi al nia propra komputilo havi permeson enigi datumojn:

sudo iptables -A INPUT -i lo -j ACCEPT

Krom akcepti pakojn de petoj devenantaj de nia komputilo:

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

Por pli bona kompreno de ĉi tiuj linioj, mi rekomendas legi la unuan duonon de la antaŭa artikolo: iptables por novuloj, scivolemaj, interesataj (1-a parto)

Ĝis nun nia komputilo povas navigi interrete senprobleme, sed neniu el iu ajn alia medio (LAN, interreto, Wifi, ktp) iel povos aliri nian komputilon. Ni komencos agordi iptables laŭ niaj bezonoj.

Uzante ulogd por eligi la iptables-registrojn al alia dosiero:

Defaŭlte la iptables-protokoloj iras en la kerna protokolo, la sistema protokolo aŭ io simila ... en Arch defaŭlte, nun mi eĉ ne memoras kien ili iras, tial mi uzas ulogd tiel ke la registraĵoj de iptables estas en alia dosiero.

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

Donante aliron al mia privata servilo:

Mi ne uzas VirtualBox aŭ ion similan por virtualigi, mi havas mian privatan servilon virtualigita per Qemu + KVM kiu devas povi konekti al mia tekkomputilo kiel tia, kun la iptables-reguloj, kiujn mi ĵus precizigis supre, ĝi ne povos, tial mi devas doni permeson al la IP de mia virtuala servilo, por ke ĝi povu aliri mian tekkomputilon. :

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

Ni detaligos ĉi tiun linion, gravas, ke vi komprenu, kion signifas ĉiu parametro, ĉar ili multe ripetiĝos de nun:

-A ENIGO : Mi diras, ke mi deklaros regulon pri envenanta trafiko

-i virbr0 : Mi deklaras, ke la interfaco, per kiu mi akceptos la trafikon, ne estas etho (LAN) aŭ wlan0 (Wifi), mi specife diras, ke ĝi estas mia virbr0-interfaco, do la virtuala retinterfaco (interna), per kiu komunikas mia tekkomputilo. kun mia virtuala servilo (kaj inverse)

-p tcp : Mi specifas la protokolon, la plej uzataj estas UDP kaj TCP, ĉi tie vere sufiĉis ne meti ĉi tion sed ... estas kutime specifi la tipon de protokolo akceptebla

-s 192.168.122.88 : La fonto, fonto de la pakaĵoj. Tio estas, la regulo rilatas al pakoj, kiuj devenas specife de la IP 192.168.122.88

-j AKCEPTI : Jam ĉi tie mi diras, kion mi volas fari kun la pakoj, kiuj kongruas kun la supre, ĉi-kaze akceptu.

Alivorte, kiel resumo, mi akceptos pakojn, kiuj venas de la IP 192.168.122.88, sed se vi volas enigi paketojn, kiuj venas de tiu IP SED! Ili eniras de interfaco ne virbr0, do ni diru, ke ili provas enigi pakaĵojn de la IP 192.168.122.88 sed ili estas de komputilo en nia reto Wifi, se tiel estas, la pakaĵoj estos malakceptitaj. kial? Ĉar ni klare specifas, ke jes, ni akceptas pakojn de 192.168.122.88 jes, sed kaj nur sed, ili ankaŭ devas eniri de la interfaco virbr0 (interna, virtuala retinterfaco), se la pakoj venas de alia interfaco (LAN, RAS, Wifi, ktp) tiam ili ne estos akceptitaj. Specifante la interfacon kiel vi povas vidi, ni povas restrikti ĝin eĉ pli, ni povas pli bone kontroli tion, kio eniras (aŭ ne eniras) nian komputilon.

Akceptante ping de iu IP de la hejma Wifi:

De iu alia komputilo konektanta al la Wifi, se vi provas pingi mian tekkomputilon, mi volas permesi ĝin. kialo? La ideo estas ankaŭ, ke en la venontaj semajnoj ligi la komputilon de la najbara domo al la reto, do dividi informojn estus malpli kompleksa, pli fluida, kiam mi komencos fari provojn por ligi la labortablon al la Wifi, mi faros bezonas pingi mian tekkomputilon por kontroli konekteblecon, se mia tekkomputilo ne pingas min, mi povas pensi, ke la AP malsukcesas aŭ ke estis eraro dum aliro al la Wifi, tial mi volas permesi la ping.

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

-A ENIGO : Samkiel antaŭe, mi rilatas al alvenanta trafiko

-i wlo1 : Simile al antaŭe. En la antaŭa kazo mi specifis la virtualan interfacon, ĉi-kaze mi specifas alian interfacon, tiun de mia wifi: wlo1

-p icmp : Protokolo Icmp, icmp = ping. Tio estas, mi ne permesas SSH aŭ ion similan, mi nur permesas ping (icmp)

-s 192.168.1.0/24 : La fonto de la pakoj, tio estas, kondiĉe ke la pakoj devenas de IP 192.168.1.? estos akceptita

-d 192.168.1.51 : Helpa IP, tio estas mia IP.

-j AKCEPTI : Mi indikas kion fari kun la pakoj kiuj kongruas kun la supre, akceptu.

Tio estas, kaj por klarigi ĉi tion laŭ kuranta maniero, mi akceptas, ke ili pingas al mi (icmp-protokolo) kies celo estas specife mia IP, kondiĉe ke ili devenas de IP kiel 192.168.1 .__ sed ankaŭ ili ne povas veni de iu retinterfaco, ili devas eniri specife de mia reto-interfaco Wifi (wlo1)

Akceptu SSH nur por unu IP:

Foje mi bezonas konekti SSH de mia inteligenta telefono por regi la tekkomputilon, tial mi devas permesi SSH-aliron al mia tekkomputilo de la IP-oj de mia Wifi, por tio:

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

De ĉi tiu linio la sola afero malsama aŭ inda esti reliefigita estas: –Porto 22 (SSH-haveno, kiun mi uzas)

Tio estas, mi akceptas provojn konekti al mia tekkomputilo per la haveno 22, kondiĉe ke ili devenas de iu IP de mia wifi, ili ankaŭ devas havi mian IP kiel specifan cellokon kaj ankaŭ veni per la interfaco wlo1, tio estas mia wifi (ne la lan, ktp)

Permesante al ili vidi vian retejon:

Ĝi ne estas mia kazo, sed se iu el vi havas gastigitan retejon kaj ne volas nei aliron al iu ajn, tio estas, ke ĉiuj de ie ajn povas aliri tiun retejon, ĝi estas multe pli simpla ol vi eble pensas:

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

Alivorte, ĉi tie ili permesas ĉiun alvenantan trafikon (tcp) tra la haveno 80. Kiel vi povas vidi, mi ne specifas de kiuj IPoj aŭ reto mi permesas aliron, ne specifante IP-intervalon por permesi, iptables supozas, ke mi volas permesi aliron al ĉiuj ekzistantaj IP-gamoj, do al la tuta mondo 🙂

Aliaj kombinaĵoj:

Mi havas multajn aliajn regulojn kiel ekzemple akcepti ping-on por IP-oj de mia hejma LAN (por tio ĝi estas esence la sama linio kiel supre, ŝanĝante la IP-gamojn), kio estas pli ol la sama, kiun mi ĵus klarigis supre . en mia tekkomputilo kiel tia mi ne uzas vere kompleksajn aferojn, tiu de limigado de konektoj, anti DDoS, mi lasas tion por la serviloj, en mia tekkomputilo mi ne bezonas ĝin 🙂

Ĉiuokaze, ĝis nun la artikolo.

Kiel vi vidas, labori kun iptables ne estas tiel kompleksa aŭ multe malpli, post kiam vi konstruas skripton, en kiu vi skribas viajn regulojn, ĝi estas tre simpla, tiam modifu ĝin, aldonu aŭ forigu regulojn al via fajroŝirmilo.

Mi ne konsideras min spertulo pri la temo malproksima de ĝi, malgraŭ iuj duboj, kiujn ili povas havi, ili komentas ĉi tie, mi provos helpi vin laŭeble.

salutoj


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

31 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   risketo diris

    Tre bone, tre bone klarigita, bonege.
    Mi amas ĉi tiun tipon de afiŝoj.

    1.    KZKG ^ Gaara diris

      Koran dankon pro via komento 🙂

      Ĉi tiu afiŝo estis ŝuldo, kiun mi havis delonge, estas agrable kaj agrable finfine povi pagi ĝin ^ _ ^

      salutoj

      1.    FIXOCONN diris

        demando ĉu vi estas en kubo?
        ... Okazas, ke antaŭ kelkaj tagoj per Linksys AP (Alirpunkto) mi metis retkonekton ĉe la domo de mia koramikino.

        1.    KZKG ^ Gaara diris

          Jes kompreneble, mi naskiĝis kaj loĝas en Kubo. kial la demando?

        2.    Sam burgos diris

          @FIXOCONN: Saluton amiko kaj pardonu la ekstertemon de la demando, sed kiel vi difinas Cinamon por aperi kiel labortabla medio en la uzanto-agento? Mi uzas Mint 13 kun Cinamo, sed neniel mi ricevas la logotipon de Cinamo aperi en mia uzanto-agento ĉiufoje kiam mi komentas ĉi tiun retejon

          Ĉu vi bonvolus transdoni al mi viajn uzantajn detalajn detalojn, se ĝi ne estas tro da problemo? Mi ŝatus scii tiujn datumojn por meti ĝin mem =)

          Mi lasas al vi paĝon, por ke vi povu revizii ĝin kaj doni al mi la informojn. Dankon kaj administrantoj, pardonu la "troladon" (se vi povas nomi ĝin tiel) miaflanke per ĉi tiu informo -> http://user-agent-string.info/

          1.    KZKG ^ Gaara diris

            Aldonu "Cinamon" (sen citiloj) al iu ajn parto de la Uzanto-Agento, tiam la logoo devas aperi en estontaj komentoj 🙂

  2.   Bruno cascio diris

    Tre Bona la afiŝo! tre klara 😀

    1.    KZKG ^ Gaara diris

      Dankon pro legado kaj dankon pro via komento 🙂

  3.   valo diris

    Dankon! Ĝi vere helpas min!

  4.   Oscar Granado diris

    Saluton, antaŭ ĉio multaj gratuloj por la blogo, mi pensas, ke ĝi bonegas.
    Iu bona mencio estas, ke la eblo ensaluti kun ULOG ne funkcias en operaciumoj, kiuj havas ulogd2, por ĉi tiu kazo la regulo devas esti:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG

    1.    KZKG ^ Gaara diris

      Unue mi tre dankas pro tio, kion vi diras pri la blogo 🙂

      En Arch mi havas ulogd v2.0.2-2 instalitan, kaj la linio, kiun mi metis, funkcias senprobleme (mi devis meti loglevel = 1 en /etc/ulogd.conf, sed ĝi prenas la protokolojn al alia dosiero senprobleme.

      Uzante ulogd v2 aŭ pli altan, ĉu la linio, kiun mi lasis, funkcias malĝuste por vi?

      Saluton kaj dankon pro komento.

  5.   Citux diris

    Mi ĉiam atendis la duan parton, mi memoras, kiam mi legis la unuan (ĝi estis mia iniciato en la fajromuroj). Dankon @ KZKG ^ Gaara, salutas 🙂

    1.    KZKG ^ Gaara diris

      Dankon pro legi min 😀
      Kaj hehe jes, mi diris ... ĉi tiu afiŝo estis ŝuldo, kiun mi havis antaŭ longe ^ _ ^

  6.   Jose Luis Gonzalez lokokupila bildo diris

    Salutojn. Tre bona la afiŝo. Mi provas agordi regulojn de iptables por redirekti trafikon de kalmaro al dansguardian kaj ĝi ankoraŭ ne atingas la celon. Mi dankus iom da helpo tiurilate.

    1.    KZKG ^ Gaara diris

      iptables por tio? Ĉu tio ne estas farita rekte kun ACL-oj en Kalmaro?

  7.   sennomaj diris

    "Mi havas multajn aliajn regulojn kiel .."
    Jen kion mi nomas paranojo, knabo
    Iom pli kaj vi metas pakon da Rotwailer en ĉiu malferma haveno de via modemo / enkursigilo 🙂

    1.    KZKG ^ Gaara diris

      HAHAHAHAHAHAHAHAHAHA Mi ridas pro la rottŭailers hahahaha

  8.   Ivan diris

    Saluton amiko, okazas, ke mi bezonas helpon por agordi IPTables tiel, ke ĝi rifuzas aliron nur por haveno 80, kiam mi tajpas la adreson en la retumilo de miaj personaj nomserviloj, tio estas, kiam mi ekzemple tajpas ns1.mydomain.com kaj ns2.mydomain .com (kiuj estas miaj nomserviloj) IPtabloj rifuzas aliron al haveno 80 tiel ke la retumilo provas ŝarĝi la paĝon sed post iom da tempo ĝi eksvalidiĝas kaj neniam ŝarĝas, okazas ke mi jam provis per tiaj ordonoj:

    iptables -A INPUT -d ns1.midomini.com -p tcp –dport 80 -j GUTO
    iptables -A INPUT -d ns2.midomini.com -p tcp –dport 80 -j GUTO

    Sed la sola afero, kiun ĝi faras, estas rifuzi eniron al haveno 80 en ĉiuj miaj domajnoj (ĉar ili dividas la saman IP kiel Virtuala Gastiganto), mi volas, ke ĝi estu nur en la url de miaj nomserviloj kaj la IP, al kiu miaj nomserviloj montras, tio estas, IP-tabloj rifuzas aliron al haveno 80 en:

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

    kaj la IP-ojn, al kiuj la nomserviloj montras

    102.887.23.33
    102.887.23.34

    Ekzemplo de kompanio, kiu havas ĉi tiun sistemon, estas: Dreamhost
    Iliaj nomserviloj: ns1.dreamhost.com kaj ns2.dreamhost.com kaj la IP-oj, kiujn ili montras, ne respondas kiam tajpitaj en la adresobreto de la retumilo.

    Mi antaŭdankas vin pro via atento, mi tre ŝatus, ke vi donu al mi manon kun ĉi tio, ke mi vere bezonas ĝin kaj urĝe !!

    Bonan tagon !!

    1.    KZKG ^ Gaara diris

      Saluton Ivan,

      Kontaktu min per retpoŝto (kzkggaara [ĉe] desdelinux [punkto] net) por paroli ĝin pli trankvile kaj pli bone klarigi vin, morgaŭ sen manko mi respondos al vi (hodiaŭ mi estas preterpase)

      Kion vi volas fari estas simpla, mi ne scias kial la linioj, kiujn vi diras al mi, ne funkcias por vi, ili devus, sed vi devas kontroli protokolojn kaj aliajn aferojn, kiuj estus tro longaj ĉi tie.

      Salutojn kaj mi atendas vian retpoŝton

  9.   neysonv diris

    teorie per iptables mi povus malhelpi malkonektajn petojn de programoj kiel aerfendo. Mi pravas ??? Nu mi faros testojn, sed se vi diros al mi, ke vi tre feliĉigus min XDDD

    1.    KZKG ^ Gaara diris

      Teorie mi pensas ke jes, nun mi ne scias kiel ĝi povus esti farita, mi neniam faris ĝin ... sed mi ripetas, teorie, mi pensas ke ĝi povus.

  10.   alex diris

    Post apliki la regulojn de iptables, ne eblas al mi aliri komunajn fenestrojn-dosierujojn en la loka reto. Kiun regulon mi devas apliki por ripari ĝin?
    Dankon.

    1.    KZKG ^ Gaara diris

      Kiujn iptables-regulojn vi aplikis?
      Jen la 2a parto de "iptables por novuloj", ĉu vi legis la unuan? Mi petas ĉi tion scii ĉu vi aplikis la regulojn en la antaŭa afiŝo

      1.    alex diris

        Jes, mi legis ambaŭ partojn. Por la skripto mi baziĝas sur alia afiŝo, kiun vi afiŝis pri komencaj reguloj kun systemd.

        #! / bin / bash
        # - UTF 8 -

        # Iptables duuma
        iptables = »/ usr / bin / iptables»

        forĵetis ""

        ## Puraj tabloj ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- Farita FLUS al iptables» && echo »»

        ## Establado de protokoloj kun ULOGD ##
        $ iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j ULOG

        ## Difini defaŭltan DROP-politikon ##
        $ iptables -P ENIGA GUTO
        $ iptables -P AVANTA GUTO
        #echo »- DROP-politiko difinita defaŭlte» && echo »»

        ## Permesu ĉion al loka gastiganto ##
        $ iptables -A ENPUT -i lo -j ACCEPT
        $ iptables -A ELITO -o lo -j ACCEPT
        #echo »- Ĉio permesita por loka gastiganto» && echo »»

        ## Permesu enigi paketojn de ligoj, kiujn mi komencas ##
        $ iptables -A INPUT -m ŝtato-ŝtato STABELITA, RILATA -j AKCEPTO
        #echo »- Permesitaj konektaj pakoj iniciatitaj de mi» && echo »»

        forĵetis "###############################"
        eoo »## IPTABLES CONFIGURED OK! ## »
        forĵetis "###############################"

        Mi legis interrete, ke por sambo vi devas havi la jenajn regulojn en la skripto:

        $ iptables -A INPUT -p tcp –dport 139 -j ACCEPT
        $ iptables -A INPUT -p tcp –dport 445 -j ACCEPT
        $ iptables -A INPUT -p udp –sport 137 -j ACCEPT
        $ iptables -A INPUT -p udp –dport 137 -j ACCEPT
        $ iptables -A INPUT -p udp –dport 138 -j ACCEPT

        Tamen eĉ kun ili mi ne povas vidi Vindozajn laborgrupojn. : S

      2.    alex diris

        Problemo solvita. Modifi la laborgrupon kaj gastigantoj permesas parametrojn en la samba agorda dosiero.

  11.   otkmanz diris

    Bonega artikolo, bonega !!!!
    Mi ĵus legis ĝin kaj mi amas kaj vian manieron kiel vi klarigas ĝin kaj la vere utilan uzon de iptables, mi tre ŝatus lerni kiel uzi ĝin pli profunde.
    Salutojn kaj bonegan artikolon, mi esperas, ke vi publikigos pli pri Iptables! ^^

  12.   Leo diris

    Kara;

    Mi havas prokurilon kun iptables kaj unu el miaj retoj ne povas pingi http://www.google.cl tial mi havas la havenojn blokitaj kaj provas mil manierojn malfermi la havenojn kaj nenio okazas. Se mi ne povas pingi, mi ne povas ligi la perspektivon

  13.   Borja diris

    Gratulon pro la afiŝo! Tre bona. Sed mi havas demandon. Foje la IP-adreso atribuita al vi en la reto povas ŝanĝiĝi (se estas vere, ke ni povus atribui IP al nia MAC-Adreso), sed ĉu kun Iptables eblas permesi aliron al nia servilo per SSH per MAC-Adreso?

    Mi esperas, ke mi bone klarigis min.

    Salutojn, kaj mi tre dankas vin!

  14.   Fernando Martin Gan diris

    Saluton, vi scias, ke mi havis linux-servilon agorditan kaj post meti ĉi tiujn komandojn mi blokis ĉion kaj perdis aliron, mi povus reakiri preskaŭ ĉion, sed mankas al mi 2 aferoj. * Mi ne plu povas aliri de TTT-legilo per la cname «servilo» se per ip, 10.10.10.5 kaj aliflanke mi ne vidas la komunajn rimedojn de la fenestra esplorilo en la reto, antaŭ ol mi metis \\ servilon kaj vidis ĉiujn komunajn rimedojn. Mi esperas, ke vi povas helpi min, mi scias, ke ĝi estas stulta, sed mi ne kapablas solvi ĝin, dankon

  15.   tau diris

    Mi citas laŭvorte:
    '
    Protokolo Icmp, icmp = ping. Tio estas, mi ne permesas SSH aŭ ion similan, mi nur permesas ping (icmp)
    '

    ICMP kaj PING ne samas. Ping estas parto de la protokolo ICMP, sed ĝi ne estas ĉio. La protokolo ICMP (Interreta Kontrola Mesaĝo-Protokolo) havas multajn pli da uzoj, iuj el ili kun iuj danĝeroj. Kaj vi akceptas ĉian ICMP-trafikon. Vi devus limigi nur al ping.

    Saluton!

  16.   ozkr diris

    Mi devas fari staĝon, sed mi ne komprenas multon pri iptables, ĉu vi bonvolus helpi min ...
    Dankon!!!!!!!