Kun DesdeLinux Olin vain muutaman kuukauden ikäinen ja kirjoitin äärimmäisen helposti ymmärrettävän opetusohjelman iptablesista: iptables aloittelijoille, uteliaille, kiinnostuneille (1. osa) . Käyttämällä metaforoja, kuten vertaamalla tietokonettamme taloon, palomuuriamme talon oveen, sekä muita esimerkkejä selitin viihdyttävällä tavalla ilman niin monia teknisiä tai monimutkaisia käsitteitä, mikä on palomuuri, mikä on iptables ja kuinka aloittaa sen käyttö ja määrittää. Tämä on jatkoa, edellisen iptables-opetusohjelman toinen osa 🙂
Sattuu, että muutama päivä sitten asetin Linksys AP: n (tukiasema) avulla tyttöystäväni kotiin Wi-Fi-yhteyden, vaikka paikkakunta ei olekaan tekniikan kannalta parhaiten perehtynyt, eli ei ole, että halkeamalla on monia vaaroja. , on aina hyvä idea varmistaa erinomainen suojaus sekä Wifissä että tietokoneissa.
En kommentoi Wi-Fi-tietoturvaa täällä, koska se ei ole viestin tavoite, keskityn iptables-kokoonpanoon, jota käytän tällä hetkellä kannettavalla tietokoneellani.
Edellisessä viestissä olin selittänyt, että palomuurissa on välttämätöntä kieltää ensin kaikki saapuva liikenne:
sudo iptables -P INPUT DROP
Sitten meidän on annettava omalle tietokoneellemme lupa tietojen syöttämiseen:
sudo iptables -A INPUT -i lo -j ACCEPT
Sen lisäksi, että hyväksymme tietokoneeltamme peräisin olevia pyyntöjä:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Toistaiseksi tietokoneemme voi selata Internetiä ongelmitta, mutta kukaan muu ympäristö (lähiverkko, internet, Wifi jne.) Ei pääse tietokoneellemme millään tavalla. Aloitamme konfiguroida iptables tarpeidemme mukaan.
Ulpt: n käyttäminen iptables-lokien tulostamiseen toiseen tiedostoon:
Oletuksena iptables-lokit menevät ytimen lokiin, järjestelmälokiin tai vastaavaan ... Archissa oletuksena, nyt en edes muista, minne ne menevät, siksi käytän ulogd niin, että iptables-lokit ovat toisessa tiedostossa.
sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ULOG
Yksityisen palvelimen käyttöoikeuden antaminen:
En käytä VirtualBoxia tai muuta vastaavaa virtualisointiin, yksityinen palvelin on virtualisoitu Qemu + KVM jonka on pystyttävä muodostamaan yhteys kannettavaan tietokoneeseen sellaisenaan, juuri edellä määritettyjen iptables-sääntöjen kanssa, se ei pysty, minkä vuoksi minun on annettava lupa virtuaalipalvelimen IP-osoitteeseen, jotta se voi käyttää kannettavaa tietokonetta :
sudo iptables -A INPUT -i virbr0 -p tcp -s 192.168.122.88 -j ACCEPT
Aiomme yksityiskohtaisesti tämän rivin, on tärkeää, että ymmärrät, mitä kukin parametri tarkoittaa, koska ne toistetaan paljon tästä lähtien:
-TULO : Sanon, että julistan säännön saapuvalle liikenteelle
-i virbr0 : Vakuutan, että käyttöliittymä, jonka kautta hyväksyn liikenteen, ei ole etho (LAN) tai wlan0 (Wifi), sanon erityisesti, että se on virbr0-liitäntäni, toisin sanoen virtuaalinen verkkoliitäntä (sisäinen), jonka kautta kannettava tietokone kommunikoi virtuaalipalvelimeni kanssa (ja päinvastoin)
-p tcp : Määritän protokollan, eniten käytetään UDP: tä ja TCP: tä, tässä riitti todellakin jättää tämä mutta ... on tapana määrittää hyväksyttävän protokollan tyyppi
-s 192.168.122.88 : Pakettien lähde, lähde. Toisin sanoen sääntö viittaa paketteihin, jotka tulevat nimenomaisesti IP 192.168.122.88: sta
-J HYVÄKSY : Sanon jo täällä, mitä haluan tehdä edellä mainituilla paketeilla, tässä tapauksessa hyväksyn.
Toisin sanoen, hyväksyn tiivistelmänä paketit, jotka tulevat IP 192.168.122.88: sta, mutta jos haluat kirjoittaa paketteja, jotka tulevat kyseiseltä IP: ltä, MUTTA! He saapuvat käyttöliittymästä, joka ei ole virbr0, eli sanotaan, että he yrittävät syöttää paketteja IP 192.168.122.88: sta, mutta ne ovat Wifi-verkkomme tietokoneelta, jos näin on, paketit hylätään. miksi? Koska määrittelemme selvästi, että kyllä, hyväksymme paketit 192.168.122.88: sta kyllä, mutta ja vain, mutta heidän on myös syötettävä virbr0-liitännältä (sisäinen, virtuaalinen verkkoliitäntä), jos paketit tulevat toisesta rajapinnasta (LAN, RAS, Wifi jne.), Niin niitä ei hyväksytä. Määrittämällä käyttöliittymä, kuten näet, voimme rajoittaa sitä vielä enemmän, voimme paremmin hallita sitä, mitä tietokoneeseen tulee (tai ei).
Pingin hyväksyminen mistä tahansa kodin Wifi-verkon IP-osoitteesta:
Jostain muusta tietokoneesta, joka on yhteydessä Wifiin, jos yritän pingata kannettavaa tietokonetta, haluan sallia sen. syy? Ajatuksena on myös, että seuraavien viikkojen aikana naapuritalon tietokone kytketään verkkoon, joten tietojen jakaminen olisi vähemmän monimutkaista ja sujuvampaa, kun aloitan testien tekemisen linkittääksesi työpöydän Wifi-verkkoon, täytyy pingata kannettavaa tietokonetta yhteyden tarkistamiseksi, jos kannettava tietokone ei pingistä minua takaisin, voin ajatella, että tukiasema epäonnistuu tai että Wifiä käytettäessä tapahtui virhe, siksi haluan sallia pingin.
sudo iptables -A INPUT -i wlo1 -p icmp -s 192.168.1.0/24 -d 192.168.1.51 -j ACCEPT
-TULO : Sama kuin aiemmin, viittaan saapuvaan liikenteeseen
-minä wlo1 : Samanlainen kuin aikaisemmin. Edellisessä tapauksessa määritin virtuaalisen käyttöliittymän, tässä tapauksessa määritän toisen käyttöliittymän, wifi: n: wlo1
-p icmp : Icmp-protokolla, icmp = ping. Eli en salli SSH: ta tai vastaavaa, sallin vain pingin (icmp)
-s 192.168.1.0/24 : Pakettien lähde, niin kauan kuin paketit tulevat IP 192.168.1: sta? hyväksytään
-d 192.168.1.51 : Kohde-IP, eli IP-osoitteeni.
-J HYVÄKSY : Ilmoitan mitä tehdä paketeille, jotka vastaavat edellä mainittuja, hyväksy.
Toisin sanoen, ja selittääkseni tämän juoksevalla tavalla, hyväksyn, että he pingoittavat minua (icmp-protokolla), jonka kohde on nimenomaan IP-osoitteeni, kunhan he tulevat IP-osoitteesta, kuten 192.168.1 .__, mutta eivät myöskään voi tulla mistä tahansa verkkoliitännästä, heidän on syötettävä erityisesti Wifi-verkkoliittymästäni (wlo1)
Hyväksy SSH vain yhdelle IP: lle:
Joskus minun täytyy muodostaa yhteys SSH älypuhelimestani ohjata kannettavaa tietokonetta, siksi minun on sallittava SSH: n pääsy kannettavaan tietokoneeseen Wifi-verkon IP-osoitteista tätä varten:
sudo iptables -A INPUT -i wlo1 -p tcp -s 192.168.1.0/24 -d 192.168.1.51 --dport 22 -j ACCEPT
Tältä linjalta ainoa asia, joka on erilainen tai ansaitsee tulla esiin, on: –Tuki 22 (SSH-portti, jota käytän)
Toisin sanoen, hyväksyn yritykset muodostaa yhteys kannettavaan tietokoneeseen portin 22 kautta, kunhan ne tulevat wifi: n IP-osoitteesta, heillä on myös oltava IP-osoitteeni tiettyä kohdetta ja myös wlo1-liitännän kautta, wifi: n (ei LAN-verkon jne.)
Salliminen heidän tarkastella verkkosivustoasi:
Se ei ole minun tapaukseni, mutta jos jollakin teistä on isännöity verkkosivusto ja hän ei halua kieltää pääsyä kenellekään, toisin sanoen, että kaikki mistä tahansa pääsevät tälle verkkosivustolle, se on paljon yksinkertaisempaa kuin luulette:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Toisin sanoen tässä he sallivat kaiken saapuvan liikenteen (tcp) portin 80 kautta. Kuten näette, en määritä, mistä IP: stä tai verkosta sallin pääsyn, en määrittelemällä sallittavaa IP-aluetta, iptables olettaa, että haluan sallia pääsy kaikkiin olemassa oleviin IP-alueisiin, toisin sanoen koko maailmaan 🙂
Muut yhdistelmät:
Minulla on monia muita sääntöjä, kuten esimerkiksi IP-pingien hyväksyminen kodin lähiverkosta (tätä varten se on pohjimmiltaan sama rivi kuin yllä, muuttamalla IP-alueita), mikä on enemmän samaa kuin juuri selitin edellä. . kannettavassa tietokoneessa en käytä todella monimutkaisia asioita, kuten yhteyksien rajoittamista, anti DDoS, jätän sen palvelimille, kannettavalla tietokoneellani en tarvitse sitä 🙂
Joka tapauksessa, toistaiseksi artikkeli.
Kuten näette, työskentely iptablesin kanssa ei ole millään tavalla monimutkaista. Kun luot komentosarjan, johon kirjoitat säännöt, se on hyvin yksinkertaista ja muokkaa sitä, lisää tai poista sääntöjä palomuuriin.
En pidä itseäni asiantuntijana aiheesta kaukana siitä huolimatta, että sinulla on epäilyksiä, he kommentoivat täällä, yritän auttaa sinua niin paljon kuin pystyn.
terveiset
Erittäin hyvä, erittäin hyvin selitetty, hieno.
Rakastan tällaista viestiä.
Kiitos paljon kommentoinnista 🙂
Tämä viesti oli velka, jota minulla oli pitkään, on miellyttävää ja miellyttävää lopulta pystyä maksamaan se takaisin ^ _ ^
terveiset
kysymys oletko Kuubassa?
… Sattuu, että muutama päivä sitten asetin Linksys AP: n (tukiasema) avulla tyttöystäväni kotiin Wifin
Kyllä, tietysti, olen syntynyt ja asunut Kuubassa. miksi kysymys?
@FIXOCONN: Hei ystävä ja anna anteeksi kysymyksen offtopic, mutta miten määrität Cinnamonin näkyvän työpöytäympäristönä käyttäjäagentissa? Käytän Mint 13: tä Cinnamonin kanssa, mutta en millään tavalla saa Cinnamon-logoa näkymään käyttäjäagentissani aina, kun kommentoin tätä sivustoa
Olisitko niin ystävällinen ja välittäisit minulle käyttäjäagenttisi tiedot, jos se ei ole liikaa vaivaa? Haluaisin tietää, että tiedot sijoitetaan itse =)
Jätän sinulle sivun, jotta voit tarkistaa sen ja antaa minulle tiedot. Kiitos ja järjestelmänvalvojat, anteeksi "uistelu" (jos voit kutsua sitä niin) puolestani näiden tietojen kanssa -> http://user-agent-string.info/
Lisää "Cinnamon" (ilman lainausmerkkejä) mihin tahansa UserAgentin osaan, jolloin logon pitäisi näkyä tulevissa kommenteissa 🙂
Erittäin hyvä viesti! hyvin selvä 😀
Kiitos lukemisesta ja kiitos kommentistasi 🙂
Kiitos! Se todella auttaa minua!
Hei, ensinnäkin monet onnittelut blogista, mielestäni se on hienoa.
Jotain, mikä saattaa olla hyvä mainita, on se, että mahdollisuus kirjautua ULOG: iin ei toimi käyttöjärjestelmissä, joissa on ulogd2, tässä tapauksessa säännön tulisi olla:
sudo iptables -A SYÖTTÖ -p tcp -m tcp –tcp-liput FIN, SYN, RST, ACK SYN -j NFLOG
Ensinnäkin, kiitos paljon siitä, mitä sanoitte blogista 🙂
Minulla on asennettuna ulogd v2.0.2-2 Archiin, ja laitamani rivi toimii ongelmitta (minun piti laittaa loglevel = 1 tiedostoon /etc/ulogd.conf, mutta se vie lokit toiseen tiedostoon ilman ongelmia.
Käytätkö ulogd v2: ta tai uudempaa, toimiiko jättämäni linja sinulle väärin?
Terveisin ja kiitos kommentoinnista.
Odotin aina toista osaa, muistan kun luin ensimmäisen (se oli minun aloitukseni palomuureissa). Kiitos @ KZKG ^ Gaara, terveisin 🙂
Kiitos, että lukit minut 😀
Ja hehe kyllä, mitä sanoin ... tämä viesti oli velka, joka minulla oli kauan sitten ^ _ ^
Terveiset. Erittäin hyvä viesti. Yritän määrittää iptables-sääntöjä ohjaamaan liikennettä kalmareista dansguardianiin, ja se ei silti saavuta tavoitetta. Arvostan apua tässä asiassa.
iptables sitä varten? Eikö sitä tehdä suoraan kalmarien ACL-luetteloiden kanssa?
"Minulla on monia muita sääntöjä, kuten .."
Tätä kutsun paranoiaksi, poika
Hieman enemmän ja laitat pakkauksen Rotwaileria modeemin / reitittimen jokaiseen avoimeen porttiin 🙂
HAHAHAHAHAHAHAHAHA kuolen naurua rottwailereiden kanssa hahahaha
Terveisiä ystäväni, sattuu, että tarvitsen apua IPT-taulukoiden määrittämisessä siten, että se estää pääsyn vain portille 80, kun kirjoitan osoitteen mukautettujen nimipalvelimien selaimeen, ts. Kun kirjoitan esimerkiksi ns1.mydomain.com ja ns2.mydomain. com (jotka ovat nimipalvelimiani) IP-taulukot estävät pääsyn porttiin 80 niin, että selain yrittää ladata sivua, mutta jonkin ajan kuluttua se vanhenee eikä koskaan lataudu, sattuu, että olen jo kokeillut seuraavilla komennoilla:
iptables -A SYÖTTÖ -d ns1.midomini.com -p tcp –portti 80 -j DROP
iptables -A SYÖTTÖ -d ns2.midomini.com -p tcp –portti 80 -j DROP
Mutta ainoa asia, jonka se tekee, on kieltää pääsy porttiin 80 kaikilla verkkotunnuksillani (koska niillä on sama IP kuin virtuaalisella isännällä), haluan sen olevan vain nimipalvelimien URL-osoitteessa ja IP-osoitteessa, johon nimipalvelimeni osoittavat, eli IP-taulukot estävät pääsyn porttiin 80:
ns1.midomini.com (kohta A) -> 102.887.23.33
ns2.midomini.com (kohta A) -> 102.887.23.34
ja IP-osoitteet, joihin nimipalvelimet osoittavat
102.887.23.33
102.887.23.34
Esimerkki yrityksestä, jolla on tämä järjestelmä, on: Dreamhost
Heidän nimipalvelimet: ns1.dreamhost.com ja ns2.dreamhost.com sekä IP-osoitteet, joihin he osoittavat, etteivät vastaa, kun kirjoitetaan selaimen osoiteriville
Kiitos paljon etukäteen huomiosi, haluaisin todella, että annatte minulle käteni tässä asiassa, tarvitsen sitä todella ja kiireellisesti!
Hyvää päivää !!
Hei Ivan,
Ota minuun yhteyttä sähköpostitse (kzkggaara[at]desdelinux[dot]net) puhuaksesi siitä rauhallisemmin ja selittääksesi paremmin, huomenna vastaan sinulle (tänään kuljen ohi)
Se, mitä haluat tehdä, on yksinkertaista, en tiedä miksi linjat, jotka sanot minulle, eivät toimi sinulle, niiden pitäisi, mutta sinun on tarkistettava lokit ja muut asiat, jotka olisivat täällä liian pitkiä.
Terveisiä ja odotan sähköpostiasi
teoreettisesti iptablesin avulla voisin välttää yhteyden katkaisupyyntöjen lähettämistä ohjelmista, kuten aircrack. Olen oikeassa??? No, minä teen testejä, mutta jos kerrot minulle, että tekisit minut hyvin onnelliseksi XDDD
Teoriassa luulen niin, nyt en tiedä miten se voitaisiin tehdä, en ole koskaan tehnyt sitä ... mutta toistan teoriassa, mielestäni voisi.
Kun olen soveltanut iptables-sääntöjä, minun on mahdotonta käyttää jaettuja Windows-kansioita lähiverkossa. Mitä sääntöä minun pitäisi soveltaa sen korjaamiseksi?
Kiitos.
Mitä iptables-sääntöjä käytit?
Tämä on "iptables for newbies" -osan 2. osa, luitko ensimmäisen? Pyydän tätä tietämään, oletko soveltanut sääntöjä, jotka olivat edellisessä viestissä
Kyllä, olen lukenut molemmat osat. Skriptiä varten perustan itseni toiseen viestiin, jonka olet kirjoittanut systemd-aloitussäännöistä.
#! / Bin / bash
# - UTF 8 -
# Iptables-binaari
iptables = »/ usr / bin / iptables»
heitti pois ""
## Tyhjennä taulukot ##
$ iptables -F
$ iptables -X
$ iptables -Z
#echo »- Valmistettu FLUS iptableteiksi» && kaiku »»
## Lokien luominen ULOGD: lla ##
$ iptables -A SYÖTTÖ -p tcp -m tcp –tcp-liput FIN, SYN, RST, ACK SYN -j ULOG
## Määritä DROP-oletuskäytäntö ##
$ iptables -P INPUT DROP
$ iptables -P ETEENPUDOTUS
#echo »- oletusarvoisesti määritetty DROP-käytäntö» && echo »»
## Salli kaiken paikalliselle isännälle ##
$ iptables -A SYÖTTÖ -i lo -j HYVÄKSY
$ iptables -A LÄHTÖ -o lo -j HYVÄKSY
#echo »- Kaikki sallittu paikallisille palvelimille» && echo »»
## Salli syöttää aloittamiesi yhteyksien paketteja ##
$ iptables -A SYÖTTÖ -m tila –tila PERUSTETTU, LIITTYVÄ -j HYVÄKSY
#echo »- Salli minun aloittamani yhteyspaketit» && echo »»
heitti pois " ##############################"
echo »## IPTABLES MÄÄRITETTY OK! ## »
heitti pois " ##############################"
Olen lukenut Internetistä, että samba-ohjelmassa sinulla tulisi olla seuraavat säännöt skriptissä:
$ iptables -A SYÖTTÖ -p tcp –tuki 139 -j HYVÄKSY
$ iptables -A SYÖTTÖ -p tcp –tuki 445 -j HYVÄKSY
$ iptables -A SYÖTTÖ -p udp –sport 137 -j HYVÄKSY
$ iptables -A SYÖTTÖ -p udp –tuki 137 -j HYVÄKSY
$ iptables -A SYÖTTÖ -p udp –tuki 138 -j HYVÄKSY
En kuitenkaan näe heidän kanssaan Windows-työryhmiä. : S
Ongelma ratkaistu. Muokkaa työryhmää ja isännät sallivat parametrit samba-määritystiedostossa.
Erinomainen artikkeli, upea !!!!
Luin juuri sen ja rakastan sekä tapaa, jolla selität sen, että iptablesin todella hyödyllistä käyttöä, haluaisin todella oppia käyttämään sitä syvemmälle.
Terveisiä ja erinomainen artikkeli, toivottavasti julkaiset lisää Iptablesista! ^^
Rakas;
Minulla on välityspalvelin, jossa on iptables, ja yksi verkkoistani ei voi pingata http://www.google.cl tästä syystä minulla on portit estetty ja yritän tuhatta tapaa avata portit, eikä mitään tapahdu. Jos en voi pingata, en voi muodostaa yhteyttä Outlookiin
Onnittelut postista! Oikein hyvä. Mutta minulla on kysymys. Joskus verkossa sinulle määritetty IP-osoite voi muuttua (jos on totta, että voisimme määrittää IP-osoitteen MAC-osoitteillemme), mutta onko Iptablesin kanssa mahdollista sallia pääsy palvelimellemme SSH: n kautta MAC-osoitteen avulla?
Toivon, että olen selittänyt itselleni hyvin.
Terveisin ja paljon kiitoksia!
Hei, tiedät, että minulla oli määritetty linux-palvelin, ja näiden komentojen asettamisen jälkeen estin kaiken ja menetin pääsyn, voisin palauttaa melkein kaiken, mutta puuttuu 2 asiaa. * En voi enää käyttää verkkoselainta cname «server» -palvelun kautta, jos ip: llä, 10.10.10.5 ja toisaalta en näe jaettuja resursseja Windows Explorerista verkossa, ennen kuin laitoin \\ palvelimen ja Näin kaikki jaetut resurssit. Toivon, että voit auttaa minua, tiedän, että se on typerää, mutta en pysty ratkaisemaan sitä, kiitos
Lainaan sanatarkasti:
"
Icmp-protokolla, icmp = ping. Eli en salli SSH: ta tai vastaavaa, sallin vain pingin (icmp)
"
ICMP ja PING eivät ole samat. Pingaus on osa ICMP-protokollaa, mutta se ei ole kaikki. ICMP (Internet Control Message Protocol) -protokollalla on paljon enemmän käyttötarkoituksia, joillakin niistä on tiettyjä vaaroja. Ja hyväksyt kaiken ICMP-liikenteen. Sinun pitäisi rajoittaa vain pingiin.
Saludos!
Minun on tehtävä työharjoittelu, mutta en ymmärrä paljon iptablesista, voisitteko auttaa minua ...
Kiitos!!!!!!!