Kai DesdeLinux solo tenía pocos meses de vida escribí un tutorial extremadamente simple de entender sobre iptables: „iptables“ naujokams, smalsūs, susidomėję (1 dalis) . Naudodamas metaforas, tokias kaip kompiuterio palyginimas su namais, užkarda su namo durimis, taip pat kiti pavyzdžiai, linksmai, be tiek daug techninių ar sudėtingų sąvokų, paaiškinau, kas yra užkarda, kas yra „iptables“ ir kaip pradėti ja naudotis. sukonfigūruoti. Tai yra ankstesnės „iptables“ mokymo programos tęsinys, 2 dalis
Būna, kad prieš kelias dienas naudodamas „Linksys AP“ (prieigos tašką) savo draugės namuose padėjau „Wifi“, nors vietovė nėra labiausiai išmananti technologijos požiūriu, tai yra ne tai, kad yra daug pavojų įtrūkimams, bet visada Gera mintis turėti puikų tiek „Wifi“, tiek kompiuterių saugumą.
Čia nekomentuosiu „Wifi“ saugumo, nes tai nėra įrašo tikslas, daugiausia dėmesio skirsiu „iptables“ konfigūracijai, kurią šiuo metu naudoju nešiojamajame kompiuteryje.
Ankstesniame įraše aš paaiškinau, kad užkardoje būtina iš pradžių uždrausti visą gaunamą srautą:
sudo iptables -P INPUT DROP
Tada mes turime leisti savo kompiuteriui turėti leidimą įvesti duomenis:
sudo iptables -A INPUT -i lo -j ACCEPT
Taip pat priimdami užklausų paketus, gautus iš mūsų kompiuterio:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Kol kas mūsų kompiuteris gali naršyti internete be problemų, tačiau niekas iš jokios kitos aplinkos (LAN, interneto, Wifi ir kt.) Niekaip negalės pasiekti mūsų kompiuterio. Mes pradėsime konfigūruoti „iptables“ pagal savo poreikius.
„Ulogd“ naudojimas iptables žurnalų išvedimui į kitą failą:
Pagal numatytuosius nustatymus „iptables“ žurnalai eina į branduolio, sistemos žurnalą ar panašiai ... „Arch“ pagal nutylėjimą, dabar net nepamenu, kur jie eina, todėl aš naudoju ulogd kad „iptables“ žurnalai būtų kitame faile.
sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ULOG
Prieigos prie privataus serverio suteikimas:
Virtualizacijai nenaudoju „VirtualBox“ ar panašių dalykų, turiu savo privatų serverį virtualizuoti Qemu + KVM kuris turi sugebėti prisijungti prie savo nešiojamojo kompiuterio, naudodamasis „iptables“ taisyklėmis, kurias ką tik nurodžiau aukščiau, negalėsite, todėl turiu duoti leidimą virtualaus serverio IP, kad jis galėtų pasiekti mano nešiojamąjį kompiuterį:
sudo iptables -A INPUT -i virbr0 -p tcp -s 192.168.122.88 -j ACCEPT
Mes išsamiai apibūdinsime šią eilutę, svarbu, kad suprastumėte, ką reiškia kiekvienas parametras, nes nuo šiol jie bus daug kartojami:
-ĮVADAS : Aš sakau, kad aš paskelbsiu taisyklę atvykstančiam srautui
-i virbr0 : Aš pareiškiu, kad sąsaja, per kurią priimsiu srautą, nėra „etho“ (LAN) ar „wlan0“ („Wifi“), aš konkrečiai sakau, kad tai yra mano „virbr0“ sąsaja, tai yra, virtualiojo tinklo sąsaja (vidinė), per kurią mano nešiojamas kompiuteris bendrauja mano virtualus serveris (ir atvirkščiai)
-p tcp : Nurodau protokolą, dažniausiai naudojami UDP ir TCP, čia tikrai pakako to nedėti, bet ... įprasta nurodyti priimtino protokolo tipą
– 192.168.122.88 : Pakuočių šaltinis, šaltinis. Kitaip tariant, taisyklė nurodo paketus, kurie gaunami būtent iš IP 192.168.122.88
-J PRIIMTI : Jau čia sakau, ką noriu daryti su paketais, kurie atitinka aukščiau išvardintus, šiuo atveju sutinku.
Kitaip tariant, apibendrindamas, aš priimsiu paketus, gautus iš IP 192.168.122.88, tačiau tuo atveju, jei norite įvesti paketus, gautus iš to IP, BET! Jie įeina iš sąsajos, kuri nėra „virbr0“, tai yra, tarkime, kad bando įvesti paketus iš IP 192.168.122.88, bet jie yra iš mūsų „Wifi“ tinklo kompiuterio, jei taip yra, paketai bus atmesti. kodėl? Kadangi mes aiškiai nurodome, kad taip, mes priimame paketus nuo 192.168.122.88 taip, bet ir tik, bet jie taip pat turi įvesti iš „virbr0“ sąsajos (vidinės, virtualaus tinklo sąsajos), jei paketai yra iš kitos sąsajos (LAN, RAS, Wifi, ir tt), tada jie nebus priimami. Nurodę sąsają, kaip matote, galime ją dar labiau apriboti, galime geriau kontroliuoti, kas įeina (ar neįeina) į mūsų kompiuterį.
Priimamas pingas iš bet kurio namų „Wi-Fi“ IP:
Iš kažkokio kito kompiuterio, kuris jungiasi prie „Wifi“, jei bandysi pinguoti nešiojamąjį kompiuterį, noriu jį leisti. priežastis? Idėja taip pat yra ta, kad per ateinančias kelias savaites gretimame name esantį kompiuterį susieti su tinklu, taigi dalytis informacija būtų ne taip sudėtinga ir sklandžiau, kai pradėsiu atlikti bandymus susieti darbalaukį su „Wifi“, turėsiu sujungti savo nešiojamas kompiuteris, norėdamas patikrinti ryšį. Jei nešiojamas kompiuteris manęs neatstumia, galiu manyti, kad AP neveikia arba kad prisijungiant prie „Wi-Fi“ įvyko klaida, todėl noriu leisti „ping“.
sudo iptables -A INPUT -i wlo1 -p icmp -s 192.168.1.0/24 -d 192.168.1.51 -j ACCEPT
-ĮVADAS : Kaip ir anksčiau, turiu omenyje gaunamą srautą
-aš wlo1 : Panašus į anksčiau. Ankstesniu atveju nurodiau virtualią sąsają, šiuo atveju nurodau kitą sąsają, savo „wifi“ sąsają: wlo1
-p icmp : Icmp protokolas, icmp = ping. Tai yra, aš neleidžiu SSH ar nieko panašaus, aš leidžiu tik ping (icmp)
-s 192.168.1.0/24 : Paketų šaltinis, tai yra, jei paketai yra iš IP 192.168.1.? bus priimtas
-d 192.168.1.51 : Paskirties IP, tai yra mano IP.
-J PRIIMTI : Aš nurodau, ką daryti su paketais, kurie atitinka aukščiau nurodytus dalykus, priimkite.
Tai yra, ir norėdamas tai paaiškinti bėgdamas, sutinku, kad jie mane ping (ICMP protokolas), kurio paskirtis yra būtent mano IP, jei jie yra iš IP, pvz., 192.168.1 .__, bet jie taip pat negali būti iš bet kurios tinklo sąsajos , jie turi įvesti specialiai iš mano „Wifi“ tinklo sąsajos (wlo1)
Priimkite SSH tik vienam IP:
Kartais man reikia prisijungti SSH iš savo išmaniojo telefono, kad galėčiau valdyti nešiojamąjį kompiuterį, todėl turiu leisti SSH prieigą prie savo nešiojamojo kompiuterio iš „Wi-Fi“ IP:
sudo iptables -A INPUT -i wlo1 -p tcp -s 192.168.1.0/24 -d 192.168.1.51 --dport 22 -j ACCEPT
Iš šios linijos vienintelis dalykas, kuris skiriasi arba kurį verta pabrėžti, yra: – 22 portas (SSH prievadas, kurį naudoju)
Tai yra, aš sutinku su bandymais prisijungti prie savo nešiojamojo kompiuterio per 22 prievadą, jei jie yra iš bet kurio mano „Wi-Fi“ IP, jie taip pat turi turėti mano IP kaip konkrečią paskirties vietą, taip pat per „wlo1“ sąsają, tai yra, mano „wifi“ (ne LAN ir pan.)
Leidimas jiems peržiūrėti jūsų svetainę:
Tai nėra mano atvejis, bet jei kas nors iš jūsų turi priglobtą svetainę ir nenorite niekam uždrausti prieigos, tai yra, kad visi iš bet kurios vietos gali pasiekti tą svetainę, tai yra daug paprasčiau, nei jūs manote:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Kitaip tariant, čia jie leidžia visą įeinantį srautą (tcp) per 80 prievadą. Kaip matote, nenurodau, iš kurių IP ar tinklo aš leidžiu prieigą, nenurodydamas leisti IP diapazono, „iptables“ daro prielaidą, kad noriu leisti prieigą prie visų esamų IP diapazonų, tai yra visam pasauliui 🙂
Kiti deriniai:
Aš turiu daug kitų taisyklių, tokių kaip, pavyzdžiui, priimu IP iš savo namų LAN (tam iš esmės yra ta pati eilutė, kaip nurodyta aukščiau, keičiant IP diapazonus), o tai yra tas pats, ką aš ką tik paaiškinau aukščiau ... mano kaip nešiojamas kompiuteris aš nenaudoju tikrai sudėtingų dalykų, tokių kaip jungčių ribojimas, anti DDoS, palieku tai serveriams, nešiojamam kompiuteriui man jo nereikia 🙂
Šiaip ar taip, kol kas straipsnis.
Kaip matote, darbas su „iptables“ jokiu būdu nėra toks sudėtingas. Kai sukursite scenarijų, kuriame parašysite taisykles, tai labai paprasta, tada modifikuokite, pridėkite arba pašalinkite taisykles į savo užkardą.
Aš nelaikau savęs šios temos ekspertu toli gražu, nepaisant galimų abejonių, jie čia komentuoja, aš stengsiuosi jums padėti, kiek galiu.
saludos
Labai gerai, labai gerai paaiškinta, puiku.
Man patinka tokio tipo įrašai.
Labai ačiū už komentarus 🙂
Šis įrašas buvo skola, kurią turėjau ilgą laiką. Galų gale malonu ir malonu, kad galėsiu ją sumokėti ^ _ ^
saludos
klausimas ar tu esi Kuboje?
... Pasitaiko, kad prieš kelias dienas naudodamas „Linksys AP“ (prieigos tašką) savo draugės namuose įdėjau „Wifi“
Taip, žinoma, aš gimiau ir gyvenu Kuboje. kodėl klausimas?
@FIXOCONN: Sveiki, drauge ir atleisk klausimo temą, bet kaip apibrėžti „Cinnamon“, kad jis būtų rodomas kaip darbastalio aplinka vartotojo agente? Aš naudoju „Mint 13“ su „Cinamonu“, bet jokiu būdu nesulaukiu, kad „Cinnamon“ logotipas pasirodytų mano vartotojo agente kiekvieną kartą, kai komentuosiu šią svetainę
Ar būtum toks malonus, jei man perduotum savo vartotojo agento duomenis, jei tai nėra per daug rūpesčių? Norėčiau sužinoti tuos duomenis, kad pats juos įdėčiau =)
Aš palieku jums puslapį, kad galėtumėte jį peržiūrėti ir pateikti man informaciją. Ačiū ir administratoriai, atleiskite „trolinimui“ (jei taip galite pavadinti) iš mano pusės su šia informacija -> http://user-agent-string.info/
Įtraukite „Cinamonas“ (be kabučių) į bet kurią „UserAgent“ dalį, tada logotipas turėtų būti rodomas būsimuose komentaruose 🙂
Labai geras pranešimas! labai aišku 😀
Ačiū, kad perskaitėte, ir ačiū už jūsų komentarą 🙂
Ačiū! Tai man tikrai padeda!
Sveiki, pirmiausia sveikinu su tinklaraščiu, manau, kad tai puiku.
Galėtų būti gerai paminėti tai, kad parinktis prisijungti prie ULOG neveikia operacinėse sistemose, kuriose yra ulogd2, šiuo atveju taisyklė turėtų būti:
sudo iptables -A ĮVADAS -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG
Visų pirma, labai ačiū už tai, ką sakote apie tinklaraštį 🙂
„Arch“ turiu įdiegtą „ulogd v2.0.2-2“, o eilutė, kurią įdėjau, veikia be problemų (turėjau įdėti loglevel = 1 į /etc/ulogd.conf, tačiau jis be problemų perkelia žurnalus į kitą failą.
Jūs naudojate „ulogd v2“ ar naujesnę versiją, mano palikta eilutė jums netinkama?
Pagarbiai ir ačiū už komentarus.
Visada laukiau antros dalies, atsimenu, kai perskaičiau pirmąją (tai buvo mano iniciacija ugniasienėse). Ačiū @ KZKG ^ Gaara, linkėjimai 🙂
Ačiū, kad perskaitei mane 😀
Ir hehe taip, ką aš pasakiau ... šis įrašas buvo skola, kurią turėjau jau seniai ^ _ ^
Pagarbiai. Labai geras įrašas. Bandau sukonfigūruoti „iptables“ taisykles, kad srautas būtų nukreiptas iš kalmarų į dansguardian, ir tai vis tiek nepasiekia tikslo. Būčiau dėkinga už tam tikrą pagalbą.
„iptables“ tam? Ar tai nėra daroma tiesiogiai su „Squid“ ACL?
"Aš turiu daug kitų taisyklių, tokių kaip .."
Tai aš vadinu paranoja, berniuku
Dar šiek tiek ir jūs įdėsite „Rotwailer“ pakuotę į kiekvieną atidarytą modemo / maršrutizatoriaus prievadą 🙂
HAHAHAHAHAHAHAHAHA Aš mirštu iš juoko su rottwaileriais hahahaha
Sveiki, drauge, būna, kad man reikia pagalbos sukonfigūruoti „IPTables“ taip, kad ji neleidžia pasiekti tik 80 prievado, kai įvedu adresą savo pasirinktų vardų serverių naršyklėje, tai yra, kai, pavyzdžiui, įvedu „ns1.mydomain.com“ ir „ns2.mydomain“. „com“ (kurie yra mano vardų serveriai) „IPtables“ neleidžia pasiekti 80 prievado, todėl naršyklė bando įkelti puslapį, bet po kurio laiko jis pasibaigia ir niekada neįkraunamas, nutinka, kad aš jau bandžiau tokiomis komandomis:
„iptables“ -A INPUT -d ns1.midomini.com -p tcp –port 80 - j DROP
„iptables“ -A INPUT -d ns2.midomini.com -p tcp –port 80 - j DROP
Bet vienintelis dalykas, kurį jis daro, yra neleisti patekti į 80 prievadą visuose mano domenuose (nes jie turi tą patį IP, kaip ir „Virtual Host“), noriu, kad jis būtų tik mano vardų serverių ir IP, į kuriuos nurodo mano vardų serveriai, URL. , tai yra, IP lentelės neleidžia pasiekti 80 prievado:
ns1.midomini.com (A taškas) -> 102.887.23.33
ns2.midomini.com (A taškas) -> 102.887.23.34
ir IP, į kuriuos nurodo vardų serveriai
102.887.23.33
102.887.23.34
Įmonės, turinčios šią sistemą, pavyzdys: „Dreamhost“
Jų vardų serveriai: ns1.dreamhost.com ir ns2.dreamhost.com bei IP, į kuriuos jie nereaguoja, kai įvesite naršyklės adreso juostoje
Iš anksto labai ačiū už dėmesį, labai norėčiau, kad padėtumėte man tai padėti, man to labai reikia ir skubiai!
Gera diena !!
Sveiki, Ivanai
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)
Tai, ką norite padaryti, yra paprasta, aš nežinau, kodėl eilutės, kurias man sakote, jums netinka, bet turėtų, bet jūs turite patikrinti žurnalus ir kitus dalykus, kurie čia būtų per ilgi.
Sveikinimai ir laukiu jūsų el. Laiško
teoriškai naudodamas „iptables“ negalėčiau siųsti atsijungimo užklausų iš tokių programų kaip „aircrack“. Aš teisus??? Na aš padarysiu testus, bet jei man pasakysi, kad tu mane labai pradžiuginsiu XDDD
Teoriškai aš manau taip, dabar, aš nežinau, kaip tai būtų galima padaryti, aš niekada to nedariau ... bet aš kartoju, teoriškai, aš manau, kad galėtų.
Pritaikius „iptables“ taisykles, man neįmanoma pasiekti vietinio tinklo bendrinamų „Windows“ aplankų. Kokią taisyklę turėčiau taikyti, kad ją ištaisyčiau?
Ačiū.
Kokias „iptables“ taisykles taikėte?
Tai 2-oji „iptables for newbies“ dalis, ar skaitėte pirmąją? Prašau tai žinoti, ar pritaikėte taisykles, buvusias ankstesniame įraše
Taip, aš perskaičiau abi dalis. Skriptui remiuosi kitu pranešimu, kurį paskelbėte apie pradžios taisykles su „systemd“.
#! / bin / bash
# - UTF 8 -
# Dvejetainis „Iptables“
iptables = »/ usr / bin / iptables»
išmetė ""
## Švarios lentelės ##
$ iptables -F
$ iptables -X
$ iptables -Z
#echo »- Pagaminta„ FLUS to iptables “» && aidas »»
## Žurnalų nustatymas naudojant ULOGD ##
$ iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j ULOG
## Apibrėžkite numatytąją DROP politiką ##
$ iptables -P INPUT DROP
$ iptables -P FORWARD DROP
#echo »- pagal numatytuosius nustatymus DROP politika» && echo »»
## Leiskite viską vietiniam šeimininkui ##
$ iptables -A ĮVADAS -i lo -j PRIIMTI
$ iptables -A IŠĖJIMAS -o lo -j PRIIMTI
#echo »- Visi leidžiami vietiniams šeimininkams» && echo »»
## Leiskite įvesti inicijuojamų ryšių paketus ##
$ iptables -A INPUT -m būsena –STATYTI, SUSIJED -j PRIIMTI
#echo »- mano» && echo »» inicijuoti leidžiami ryšio paketai
išmetė " ##############################"
echo »## KONFIGURUOTI„ IPTABLES “GERAI! ## »
išmetė " ##############################"
Perskaičiau internete, kad sambos scenarijuje turėtumėte turėti šias taisykles:
$ iptables -A ĮVADAS -p tcp –portas 139 -j PRIIMTI
$ iptables -A ĮVADAS -p tcp –portas 445 -j PRIIMTI
$ iptables -A INPUT -p udp –sportas 137 -j PRIIMTI
$ iptables -A INPUT -p udp –port 137 -j PRIIMTI
$ iptables -A INPUT -p udp –port 138 -j PRIIMTI
Tačiau net su jais nematau „Windows“ darbo grupių. : S
Problema išspręsta. Modifikuoti darbo grupę ir pagrindinius kompiuterius leidžia parametrus samba konfigūracijos faile.
Puikus straipsnis, tiesiog puiku !!!!
Aš ką tik perskaičiau ir man patinka ir tai, kaip jūs tai paaiškinate, ir tikrai naudingas „iptables“ naudojimas, aš tikrai norėčiau išmokti jį naudoti išsamiau.
Linkėjimai ir puikus straipsnis, tikiuosi, kad paskelbsite daugiau apie „Iptables“! ^^
Gerbiamasis;
Turiu tarpinį serverį su „iptables“ ir vienas iš mano tinklų negali pinguoti http://www.google.cl dėl šios priežasties aš užblokavau uostus ir bandau tūkstantį būdų atidaryti uostus, ir nieko nevyksta. Jei negaliu pinguoti, negaliu susieti perspektyvos
Sveikiname su įrašu! Labai gerai. Bet man kyla klausimas. Kartais IP adresas, priskirtas jums tinkle, gali pasikeisti (jei tiesa, kad mes galėtume priskirti IP savo MAC adresams), tačiau ar yra galimybė „Iptables“ leisti prieigą prie mūsų serverio per SSH naudojant MAC adresą?
Tikiuosi, kad gerai sau paaiškinau.
Pagarbiai ir labai ačiū!
Sveiki, jūs žinote, kad aš sukonfigūravau „Linux“ serverį ir, įdėjęs šias komandas, aš viską užblokavau ir praradau prieigą, galėjau atkurti beveik viską, bet man trūksta 2 dalykų. * Aš nebegaliu pasiekti iš žiniatinklio naršyklės per „serverio“ pavadinimą, jei „ip“, 10.10.10.5 ir, kita vertus, nematau bendrinamų išteklių iš „Windows Explorer“ tinkle, prieš tai, kai įdėjau \\ serverį ir pamačiau visus bendri ištekliai. Tikiuosi, kad galite man padėti, žinau, kad tai kvaila, bet aš negaliu to išspręsti, ačiū
Cituoju pažodžiui:
"
Icmp protokolas, icmp = ping. Tai yra, aš neleidžiu SSH ar nieko panašaus, aš leidžiu tik ping (icmp)
"
ICMP ir PING nėra tas pats. Pingavimas yra ICMP protokolo dalis, bet tai dar ne viskas. ICMP („Internet Control Message Protocol“) protokolas turi daug daugiau naudojimo būdų, kai kuriems iš jų kyla tam tikrų pavojų. Jūs sutinkate su visais ICMP srautais. Turėtumėte apsiriboti tik ping.
Sveiki atvykę!
Turiu atlikti praktiką, bet nelabai suprantu apie „iptables“. Gal galėtumėte man padėti ...
dėkoju!!!!!!!