iptables til nybegyndere, nysgerrige, interesserede (2. del)

Hvornår DesdeLinux solo tenía pocos meses de vida escribí un tutorial extremadamente simple de entender sobre iptables: iptables til nybegyndere, nysgerrige, interesserede (1. del) . Ved at gøre brug af metaforer som at sammenligne vores computer med vores hus, vores firewall med døren til huset, samt andre eksempler, forklarede jeg på en behagelig måde, uden så mange teknikaliteter eller komplicerede begreber, hvad er en firewall, hvad er iptables, og hvordan man begynder at bruge og konfigurere den. Dette er fortsættelsen, 2. del af den tidligere iptables tutorial 🙂

Det sker, at jeg for et par dage siden ved hjælp af et Linksys AP (Access Point) satte en Wifi i min kærestes hus, selvom byen ikke er en af ​​de mest vidende med hensyn til teknologi, det vil sige, at det ikke er, at der er mange farer ved at revne, det er altid en god idé at have fremragende sikkerhed både i Wifi'en og i computerne.

Jeg vil ikke kommentere Wifi-sikkerhed her, da det ikke er formålet med indlægget, vil jeg fokusere på den iptables-konfiguration, som jeg i øjeblikket bruger på min bærbare computer.

Følgende kommandoer udføres i en terminal, de skal udføres med administratorrettigheder, jeg vil sætte sudo foran hver kommando, du kan gøre det samme eller undgå at bruge sudo ved at køre kommandoerne direkte som root

I det forrige indlæg havde jeg forklaret, at det er nødvendigt i en firewall først at nægte al indgående trafik, for dette:

sudo iptables -P INPUT DROP

Så skal vi give vores egen computer tilladelse til at indtaste data:

sudo iptables -A INPUT -i lo -j ACCEPT

Samt at acceptere anmodningspakker, der stammer fra vores computer:

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

For en bedre forståelse af disse linjer anbefaler jeg at læse første halvdel af den forrige artikel: iptables til nybegyndere, nysgerrige, interesserede (1. del)

Indtil videre kan vores computer navigere på internettet uden problemer, men ingen fra noget andet miljø (LAN, internet, Wifi osv.) vil på nogen måde kunne få adgang til vores computer. Vi vil begynde at konfigurere iptables efter vores behov.

Brug af ulogd til at udsende iptables-logfilerne til en anden fil:

Som standard går iptables-logfilerne i kerneloggen, systemloggen eller noget lignende ... i Arch som standard, lige nu kan jeg ikke engang huske, hvor de går, det er derfor, jeg bruger ulogd så iptables-logfilerne er i en anden fil.

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

Adgang til min private server:

Jeg bruger ikke VirtualBox eller noget lignende til at virtualisere, jeg har min private server virtualiseret med Qemu + KVM som burde være i stand til at oprette forbindelse til min bærbare computer som sådan, med de iptables-regler, som jeg lige har specificeret ovenfor, vil den ikke være i stand til det, det er derfor, jeg skal give tilladelse til IP'en på min virtuelle server, så den kan få adgang til min bærbare computer:

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

Vi vil detaljere denne linje, det er vigtigt, at du forstår, hvad hver parameter betyder, da det vil blive gentaget meget fra nu af:

-EN INDGANG : Jeg siger, at jeg har tænkt mig at erklære en regel for indgående trafik

-i virbr0 : Jeg erklærer, at grænsefladen, hvorigennem jeg vil acceptere trafikken, ikke er etho (LAN) eller wlan0 (Wifi), jeg siger specifikt, at det er min virbr0-grænseflade, det vil sige den (interne) virtuelle netværksgrænseflade, hvorigennem min bærbare computer kommunikerer med min virtuelle server (og omvendt)

-p tcp : Jeg angiver protokollen, de mest brugte er UDP og TCP, her var det faktisk nok ikke at sætte dette, men... det er sædvanligt at angive den type protokol, der skal accepteres

-s 192.168.122.88 : Kilden, kilden til pakkerne. Det vil sige, at reglen refererer til pakker, der kommer specifikt fra IP 192.168.122.88

-j ACCEPTERER : Nu siger jeg, hvad jeg vil gøre med de pakker, der matcher ovenstående, i dette tilfælde acceptere.

Med andre ord, som et resumé, vil jeg acceptere pakker, der kommer fra IP 192.168.122.88, men hvis du vil indtaste pakker, der kommer fra den IP MEN! De kommer ind fra en grænseflade, der ikke er virbr0, det vil sige, lad os sige, at de prøver at indtaste pakker fra IP 192.168.122.88, men de kommer fra en computer i vores Wifi-netværk, hvis det er tilfældet, afvises pakkerne. hvorfor? Fordi vi tydeligt angiver, at ja, accepterer vi pakker fra 192.168.122.88 ja, men og kun men, de skal også indtaste fra virbr0-grænsefladen (intern, virtuel netværksgrænseflade), hvis pakkerne kommer fra en anden grænseflade (LAN, RAS, Wifi osv.), Så accepteres de ikke. Ved at specificere grænsefladen, som du kan se, kan vi begrænse den endnu mere, vi kan have en bedre kontrol over, hvad der kommer ind (eller ikke kommer ind) på vores computer.

Accept af ping fra enhver IP i hjemmets Wifi:

Fra en anden computer, der opretter forbindelse til Wifi, hvis du prøver at pinge min bærbare computer, vil jeg tillade det. grund? Ideen er også, at i de næste par uger at linke pc'en i huset ved siden af ​​til netværket, så deling af oplysninger ville være mindre kompleks, mere flydende, når jeg begynder at lave tests for at linke skrivebordet til Wifi, vil jeg har brug for at pinge min bærbare computer for at kontrollere tilslutningsmuligheder, hvis min bærbare computer ikke pinger mig tilbage, kan jeg tro, at AP fejler, eller at der var en fejl ved adgang til Wifi, det er derfor, jeg vil tillade ping.

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

-EN INDGANG : Samme som før, jeg henviser til indgående trafik

-jeg vil1 : Svarende til før. I det forrige tilfælde specificerede jeg den virtuelle grænseflade, i dette tilfælde specificerede jeg en anden grænseflade, den for min wifi: wlo1

-p icmp : icmp protokol, icmp = ping. Det vil sige, jeg tillader ikke SSH eller noget lignende, jeg tillader kun ping (icmp)

-s 192.168.1.0/24 : Kilden til pakkerne, det vil sige, når pakkerne kommer fra en IP 192.168.1.? vil blive accepteret

-d 192.168.1.51 : Destination IP, det vil sige min IP.

-j ACCEPTERER : Jeg angiver, hvad jeg skal gøre med de pakker, der matcher ovenstående, accepterer.

Med andre ord, og for at forklare dette på en kontinuerlig måde, accepterer jeg, at de pinger mig (icmp-protokol), hvis destination specifikt er min IP, så længe de kommer fra en IP såsom 192.168.1.__ men også, de kan ikke komme fra nogen netværksgrænseflade, de skal indtaste specifikt fra min Wifi-netværksgrænseflade (wlo1)

Accepter kun SSH for en IP:

Nogle gange har jeg brug for at oprette forbindelse SSH fra min smartphone til at styre den bærbare computer, det er derfor, jeg skal tillade SSH-adgang til min bærbare computer fra mine Wifi-IP'er, for dette:

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

Det eneste, der er forskelligt fra denne linje, eller som fortjener at blive fremhævet, er: –Deport 22 (SSH-port, jeg bruger)

Med andre ord, jeg accepterer forbindelsesforsøg til min bærbare computer gennem port 22, så længe de kommer fra en IP på mit Wi-Fi, skal de også have min IP som en specifik destination og også komme gennem wlo1-grænsefladen, det vil sige den fra min Wi-Fi (ikke den fra LAN, osv.)

Tillader dem at se dit websted:

Det er ikke mit tilfælde, men hvis en af ​​jer har en hostet hjemmeside, og du ikke vil nægte nogen adgang, dvs. alle fra hvor som helst kan få adgang til den hjemmeside, er det meget enklere, end du måske tror:

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

Det vil sige, her tillader de al indgående trafik (tcp) gennem port 80. Som du kan se, specificerer jeg ikke fra hvilke IP'er eller netværk jeg tillader adgang, ved ikke at angive et IP-område, der skal tillades, antager iptables, at jeg vil tillade adgang til alle eksisterende IP-områder, altså til alle 🙂

Andre kombinationer:

Jeg har mange andre regler som for eksempel at acceptere ping til IP'er fra mit hjem-LAN (for dette er det grundlæggende den samme linje som ovenfor, ændring af IP-intervaller), hvilket er mere af det samme som jeg lige har forklaret ovenfor .. på min bærbare computer som sådan bruger jeg ikke rigtig komplekse ting, det at begrænse forbindelser, anti DDoS, jeg overlader det til serverne, på min bærbare computer har jeg ikke brug for det 🙂

Anyway, indtil videre artiklen.

Som du kan se, er det ikke så komplekst at arbejde med iptables på nogen måde, når du først har oprettet et script, hvor du skriver dine regler, er det meget enkelt, og derefter ændre det, tilføje eller fjerne regler fra din firewall.

Jeg betragter ikke mig selv som en ekspert på emnet, langt fra, men hvis du har spørgsmål, kommenterer jeg her, jeg vil forsøge at hjælpe dig så meget jeg kan.

hilsen


31 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   risikerer at sagde han

    Meget god, meget godt forklaret, fantastisk.
    Jeg elsker denne type indlæg.

    1.    KZKG ^ Gaara sagde han

      Mange tak for din kommentar 🙂

      Dette indlæg var en gæld som jeg havde længe, ​​det er hyggeligt og rart endelig at kunne afvikle det ^_^

      hilsen

      1.    FIXOCONN sagde han

        et spørgsmål er du på cuba?
        ... det sker, at jeg for et par dage siden ved hjælp af et Linksys AP (Access Point) satte en Wifi hjemme hos min kæreste

        1.    KZKG ^ Gaara sagde han

          Ja selvfølgelig, jeg er født og bor i Cuba. hvorfor spørgsmålet?

        2.    Sam burgos sagde han

          @FIXOCONN: Hej ven og tilgiv spørgsmålet uden for emnet, men hvordan definerer du, at Cinnamon optræder som et skrivebordsmiljø i brugeragenten? Jeg bruger Mint 13 med Cinnamon, men jeg kan ikke få Cinnamon-logoet til at blive vist i min user-agent, hver gang jeg kommenterer på denne side.

          Vil du være så venlig at give mig dine brugeragentoplysninger, hvis det ikke er for meget besvær? Jeg vil gerne vide den information for at placere den selv =)

          Jeg efterlader dig en side, så du kan gennemgå den og give mig oplysningerne. Tak og administratorer, undskyld for "trollingen" (hvis man kan kalde det sådan) fra min side med denne information -> http://user-agent-string.info/

          1.    KZKG ^ Gaara sagde han

            Tilføj "Cinnamon" (uden anførselstegn) til enhver del af UserAgent, så skal du få logoet i de næste kommentarer 🙂

  2.   Bruno cascio sagde han

    Meget godt indlægget! meget klar 😀

    1.    KZKG ^ Gaara sagde han

      Tak for læsningen og tak for din kommentar 🙂

  3.   vale sagde han

    Tak! Det hjælper mig virkelig meget!

  4.   Oscar Grenada sagde han

    Hej først og fremmest stort tillykke med bloggen, jeg synes den er fantastisk.
    Noget der kan være værd at nævne er at logningsmuligheden med ULOG ikke virker på operativsystemer der har ulogd2, i dette tilfælde bør reglen være:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-flag FIN,SYN,RST,ACK SYN -j NFLOG

    1.    KZKG ^ Gaara sagde han

      Først og fremmest mange tak for det du siger om bloggen 🙂

      I Arch har jeg ulogd v2.0.2-2 installeret, og linjen jeg satte virker uden problemer (jeg var nødt til at sætte en loglevel=1 i /etc/ulogd.conf, men den fører logfilerne til en anden fil uden problemer.

      Bruger du ulogd v2 eller højere, virker den linje, jeg forlod, ikke for dig?

      Hilsen og tak for kommentaren.

  5.   By sagde han

    Jeg ventede altid på den anden del, jeg kan huske, da jeg læste den første (det var min initiering i firewalls). Tak @KZKG^Gaara, hilsen 🙂

    1.    KZKG ^ Gaara sagde han

      Tak fordi du læste mig 😀
      Og hehe ja, hvad jeg sagde... dette indlæg var en gæld jeg havde længe ^_^

  6.   Billede af Jose Luis Gonzalez sagde han

    Vær hilset. Meget godt indlæg. Jeg forsøger at konfigurere iptables-reglerne til at omdirigere trafik fra blæksprutte til dansguardian, og jeg har stadig ikke nået målet. Jeg ville sætte pris på lidt hjælp til dette.

    1.    KZKG ^ Gaara sagde han

      iptables til det? Er det ikke gjort direkte med ACL'er i Squid?

  7.   navnløs sagde han

    "Jeg har mange andre regler som .."
    Dette er hvad jeg kalder paranoia, dreng
    Lidt mere, og du sætter en pakke Rotwailers på hver åben port på dit modem/router 🙂

    1.    KZKG ^ Gaara sagde han

      HAHAHAHAHAHAHAHAHA jeg er ved at dø af grin med Rottwailers hahahaha

  8.   Ivan sagde han

    Hilsen ven, det sker, at jeg har brug for hjælp til at konfigurere IPTables på en sådan måde, at det kun nægter adgang til port 80, når jeg skriver adressen i browseren på mine brugerdefinerede navneservere, det er når jeg f.eks. Skriver ns1.mydomain.com og ns2.mydomain. com (som er mine navneservere) IPtables nægter adgang til port 80, så browseren forsøger at indlæse siden, men efter et stykke tid udløber den og indlæses aldrig, det sker, at jeg allerede har prøvet med kommandoer som denne:

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

    Men det eneste, det gør, er at nægte adgang til port 80 i alle mine domæner (da de deler den samme IP, da de er Virtual Host), vil jeg have, at den kun skal være i url'en på mine navneservere og den IP, som mine navneservere peger på, det vil sige, IP-tabeller nægter adgang til port 80 i:

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

    og IP'erne, som navneserverne peger på

    102.887.23.33
    102.887.23.34

    Et eksempel på en virksomhed, der har dette system, er: Dreamhost
    Deres navneservere: ns1.dreamhost.com og ns2.dreamhost.com og de IP'er, de peger på, reagerer ikke på at blive indtastet i browserens adresselinje

    På forhånd mange tak for opmærksomheden, jeg vil rigtig gerne have at du giver mig en hånd med det her, jeg har virkelig brug for det og akut!!

    God dag !!

    1.    KZKG ^ Gaara sagde han

      Hej Ivan,

      Contáctame por email (kzkggaara[at]desdelinux[dot]net) para hablarlo con más calma y explicarte mejor, mañana sin falta te respondo (hoy estoy de pasada)

      Det, du vil gøre, er enkelt, jeg ved ikke, hvorfor de linjer, du fortæller mig, ikke virker for dig, det burde de, men du skal gennemgå logfiler og andre ting, der ville være for omfattende her.

      Hilsen og jeg venter på din e-mail

  9.   neysonv sagde han

    Teoretisk set kunne jeg med iptables forhindre afbrydelsesanmodninger fra programmer som aircrack i at sende mig. Jeg har ret??? Nå, jeg vil lave nogle tests, men hvis du fortæller mig, at det ville gøre mig meget glad XDDD

    1.    KZKG ^ Gaara sagde han

      I teorien forekommer det mig sådan, nu ved jeg ikke hvordan det kunne gøres, jeg har aldrig gjort det... men jeg gentager, i teorien tror jeg det kunne.

  10.   Alex sagde han

    Efter at have anvendt iptables-reglerne er det umuligt for mig at få adgang til Windows-delte mapper på det lokale netværk. Hvilken regel skal jeg anvende for at rette det?
    Tak.

    1.    KZKG ^ Gaara sagde han

      Hvilke iptables-regler anvendte du?
      Dette er 2. del af "iptables for newbies", læste du den første? Jeg beder dette for at vide, om du anvendte reglerne, der var i det forrige indlæg

      1.    Alex sagde han

        Ja, jeg har læst begge dele. Til scriptet har jeg baseret på et andet indlæg du postede om startregler med systemd.

        #! / Bin / bash
        # - UTF 8 -

        # Iptables binært
        iptables = »/ usr / bin / iptables»

        smed ud ""

        ## Rengør tabeller ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- Lavet FLUS til iptables» && echo »»

        ## Oprettelse af logfiler med ULOGD ##
        $iptables -A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j ULOG

        ## Definer standard DROP-politik ##
        $ iptables -P INPUT DROP
        $ iptables -P VIDERE DROP
        #echo » – Defineret standard DROP-politik» && echo»»

        ## Tillad alt til localhost ##
        $ iptables -A INPUT -i lo -j ACCEPT
        $ iptables -A OUTPUT -o lo -j ACCEPT
        #echo »- Alt tilladt for localhost» && echo »»

        ## Tillad pakker fra forbindelser, som jeg starter ##
        $iptables -A INPUT -m tilstand -state ETABLISHED,RELATED -j ACCEPT
        #echo » – Tillad pakker fra forbindelser initieret af mig» && echo»»

        smed ud " ##############################"
        ekko »## IPTABLES CONFIGURED OK! ## »
        smed ud " ##############################"

        Jeg har læst på internettet, at for samba skal du have følgende regler i scriptet:

        $ 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

        Men ikke engang med dem kan jeg se Windows-arbejdsgrupper. :S

      2.    Alex sagde han

        Problem løst. Rediger arbejdsgruppen, og værterne tillader parametre i samba-konfigurationsfilen.

  11.   otkmanz sagde han

    Fremragende artikel, bare fantastisk !!!!
    Jeg har lige læst det, og jeg elsker både den måde, du forklarer det på, og den virkelig nyttige brug af iptables, jeg vil rigtig gerne lære at bruge det mere i dybden.
    Hilsen og fremragende artikel, jeg håber, du udgiver mere om Iptables! ^^

  12.   LEO sagde han

    Kære;

    Jeg har en proxy med iptables, og et af mine netværk kan ikke pinge http://www.google.cl Af denne grund har jeg portene blokeret, og jeg prøver tusindvis af måder at åbne portene på, og der sker ikke noget. Hvis jeg ikke kan pinge, kan jeg ikke forbinde outlook

  13.   Borja sagde han

    Tillykke med posten! Meget godt. Men jeg er i tvivl. Nogle gange kan den IP-adresse, der er tildelt dig på netværket, ændre sig (hvis det er rigtigt, at vi kunne tildele en IP til vores MAC-adresse), men er der en mulighed med Iptables for at tillade adgang til vores server via SSH via MAC-adresse?

    Jeg håber, jeg har forklaret mig godt.

    Hilsen, og mange tak!

  14.   Fernando MartinGan sagde han

    Hej, du ved, jeg havde konfigureret en Linux-server, og efter at have sat disse kommandoer blokerede jeg alt og mistede adgang, jeg kunne gendanne næsten alt, men jeg mangler 2 ting. * Jeg kan ikke længere få adgang fra en webbrowser via cname «server», hvis jeg ved ip, 10.10.10.5 og på den anden side ikke kan se de delte ressourcer fra windows explorer på netværket, før jeg sætter \\ server og Jeg så alle delte ressourcer. Jeg håber du kan hjælpe mig, jeg ved, at det er fjollet, men jeg er ikke i stand til at løse det, tak

  15.   tau sagde han

    Jeg citerer ordret:
    '
    icmp protokol, icmp = ping. Det vil sige, jeg tillader ikke SSH eller noget lignende, jeg tillader kun ping (icmp)
    '

    ICMP og PING er ikke det samme. Ping er en del af ICMP-protokollen, men det er ikke alt. ICMP-protokollen (Internet Control Message Protocol) har mange flere anvendelser, nogle af dem med visse farer. Og du accepterer al ICMP-trafik. Du skal kun begrænse til ping.

    Saludos!

  16.   ozkr sagde han

    Jeg er nødt til at øve mig, men jeg forstår ikke meget om iptables, kan du hjælpe mig...
    tak!!!!!!!