„iptables“

„Iptables“ pradedantiesiems

„Iptables“ pradedantiesiems
„Iptables“ iš esmės yra pagrindinė ugniasienė, naudojama „Linux“ sistemoms, yra alternatyvų, tokių kaip „nftables“, tačiau „Iptables“ išlieka pagrindinė, ji yra labai lanksti priimdama tiesiogines vartotojo komandas, prireikus galite įkelti ir iškrauti taisykles, kad padidintumėte užkardos politiką tikslumas.

Tiesą sakant, jums net nereikia žinoti „Iptable“ sintaksės, kad galėtumėte jį naudoti, turite grafinių įrankių, tokių kaip „Firewall Builder“, kurie gali padaryti mokymosi procesą nereikalingu, tačiau jei norite padidinti „Linux“ administravimo žinias, „Iptables“ yra pirmas žingsnis norint išmokti praktiškai administruoti saugumą naudojant „Linux“ ir netgi lengviau valdyti CISCO ar „Fortigate“ saugos įrenginius ir panašius.

„Iptables“ iš esmės leidžia nurodyti sistemai priimti, atsisakyti arba perduoti ryšį, atsižvelgiant į pasirinktus parametrus, pavyzdžiui, peradresuoti visus ryšius į X prievadą kitu IP adresu, blokuoti visus ryšius, gaunamus iš konkretaus IP, IP diapazono arba į priimti visas jungtis, gaunamas iš baltųjų sąrašų IP adresų, be daugybės kitų funkcijų.

Šioje pamokoje sužinosime, kaip apsaugoti žiniatinklio serverį, kaip persiųsti ryšius į vidinius IP adresus iš mūsų LAN ir kaip pasiūlyti konkrečias paslaugas tik į baltąjį sąrašą įtrauktiems IP adresams.

„Iptables“ diegimas

Norėdami įdiegti „iptables“ „Debian“ / „Ubuntu“ sistemose, tiesiog paleiskite „apt update && apt install iptables“ kaip šakninį arba „sudo“ kaip priešdėlį, kaip šiame paveikslėlyje.

HTTP ir HTTPS prievadų atidarymas

Pirmiausia leidžia pridėti visas ACCEPT strategijas, pradedant žiniatinklio serveriu.

iptables -A ĮVADAS -p tcp --port 80 - j PRIIMTI
iptables -A ĮVADAS -p tcp --port 443 -j PRIIMTI

Norėdami pamatyti pridėtas taisykles, paleiskite „iptables -L“

Kur:

„Iptables“ = iškviečia programą
-A = prideda taisyklę
ĮVADAS = gaunamas srautas
-p = protokolas
-ddport = paskirties uostas
-j = nurodykite „tikslą“, taikinys yra tokios rūšies politika: PRIIMTI, NURODYTI, EILĖ arba GRĮŽTI.

Tada aukščiau esančio paveikslėlio pavyzdyje „Iptables“ liepiame pridėti taisyklę gaunamam srautui per TCP protokolą ir priimti 80 ir 443 prievadus.

Mes galime pakeisti komandą priimti ryšį tik iš konkretaus IP pridėdami parametrą „-s“:

iptables -A ĮVADAS-127.0.0.1 -p tcp -dport 80 -j PRIIMTI

Kur:

s = šaltinis
„Iptables“ - L = pateikia visas „iptables“ įkeltas taisykles
„Iptables“ - L -v = tas pats ir su daugžodžiavimu.

Mes taip pat galime išbandyti savo užkardą naudodami nmap:

Kaip matome, 80 prievadas yra atidarytas pagal „iptables -L“ ir „Nmap“.

Pastaba: Norėdami gauti daugiau informacijos apie Nmap naudojimą, galite perskaityti mūsų pamoką

Apsaugokite savo serverį

# Atidarykite HTTP ir HTTPS paslaugas.
iptables -A ĮVADAS -p tcp --port 80 - j PRIIMTI
iptables -A ĮVADAS -p tcp --port 443 -j PRIIMTI
# Atidarykite SSH uosto paslaugą
„iptables“ -A INPUT -p tcp - „port 22 -m “jungties takelis -„ state “NAUJA, NUSTATYTA -j PRIIMTI

Kur yra nauji parametrai:

-m = reiškia „atitikimas“ ir naudojamas skambinti „Iptable“ plėtiniams, pvz., „conntrack“, kuris nėra pagrindinių „iptable“ funkcijų dalis.

jungtis = Leidžia sekti informaciją apie ryšius, pvz., Konkrečius adresus arba šiuo atveju ryšio būseną. Tai turi būti naudojama atsargiai, nes daugelis taisyklių, skirtų apsaugoti serverius nuo kai kurių išpuolių, naudoja „conntrack“, o jo naudojimą riboja aparatinė įranga ir toks apribojimas gali būti naudojamas perkraunant serverio išteklius.

-ctstate = nustato taisyklės būseną, kad atitiktų galimas būsenas: NAUJA, NUSTATYTA, SUSIJED ir NETEISINGA.

# Apsaugokite savo SSH tarnybą nuo žiaurios jėgos atakų, leisdami tik tam tikrą IP
prieigai prie iptables -A INPUT -p tcp -s X.X.X.X --port 22 m jungties takelis - valstija NAUJA,
Įsteigta -j PRIIMTI
# Apsaugokite savo SSH tarnybą nuo žiaurios jėgos atakų, apribodami bandymus prisijungti
„Iptables“ -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j 22-test
„Iptables“ - 22 bandymai -m naujausi --pavadinimas JUNGTYS - nustatyti --mask 255.255.255.255 - šaltinis
„Iptables“ - 22 bandymai -m naujausi --pavadinimas JUNGTYS - patikrinkite --mask 255.255.255.255
--rsource --sekundės 30 --hitcount 3 -j 22-protection
„Iptables“ - 22 testai -j PRIIMTI
„Iptables“ -A 22 apsauga -j DROP

Kur:
Pirmame liNe mūsų taisyklė sako:-m jungtis -aktinė NAUJIENA “ o tai reiškia, kad jei ryšys yra naujas, pereikite prie taisyklės „22 testas“.

Antroje eilutėje rašoma, kad „packets netmask 255“.255.255.255 pavadinti JUNGTYS .

Trečioje eilutėje sakoma, jei a JUNGTYS atrodo, kad daugiau nei 3 kartus per 30 sekundžių užkarda tęsia grandinės taikymą 22-apsauga. Ketvirta eilutė sako, jei JUNGTYS neatrodė daugiau kaip 3 kartus per 30 sekundžių, tai galima sutikti.
Penktoji eilutė, priklausanti 22-apsauga grandinė sako numesti JUNGTYS jei atrodo daugiau kaip 3 kartus per 30 sekundžių.

Dabar, jei norite baigti, galime atmesti visus nepriimtus ryšius ir leiskime visą išeinantį srautą:

„iptables“ -P IŠĖJIMO PRIĖMIMAS
„iptables“ -P INPUT DROP

Kur -P reiškia taikinio grandinę, atminkite, kad taikinys yra politika, PRIIMTI, LAŠYTI, EILĖ arba GRĄŽINTI. Šiuo atveju sakome, kad numatytoji išeinančio srauto politika yra priimtina, o numatytoji gaunamo srauto politika yra atsisakymas, nebent ankstesnėse taisyklėse nurodėme ką kita. Tai labai paprasta ugniasienė, kurioje nėra daugybės atakų, mokymosi, o ne gamybos taisyklių, straipsnio pabaigoje aš pridedu ugniasienę, kurią naudojau gamybai serveryje, joje yra komentarų, paaiškinančių kiekvieną taisyklę.

JUNGIMO SU KONKREČIU UOSTU PERKĖLIMAS Į KONKREČIĄ IP ADRESĄ

Tai labai naudinga ir darbalaukio vartotojams, norintiems užmegzti ryšį per tam tikrą įrenginį. Tai gali būti naudinga net žaidėjams, paprastai tai darome iš maršrutizatoriaus nustatymų, bet tarkime, kad maršruto parinkimo įrenginyje veikia „Iptables“.

iptables -A PREROUTING -t nat -p tcp -d X.X.X.X --port 8080 -j DNAT - į paskirties vietą
Y.Y.Y.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT - į šaltinį X.X.X.X

Pirmiau nurodytos taisyklės kreipiasi į NAT (tinklo adresų vertimą), kad nurodytų ryšius per protokolą TCP į adresą X.X.X.X ir 8080 prievadas bus nukreipti adresu Y.Y.Y.Y, 80 prievadas. Antroji taisyklė nurodo, kad atsakymai turi būti siunčiami šaltinio adresu (X.X.X.X). Mes galime naudoti šias taisykles, kad leistume naudotis IP kamera, įgalintume internetinius žaidimus su išoriniais tinklais ir pan.

Ši pamoka buvo skirta pradedantiesiems supažindinti su „Iptables“ ir paaiškina tik ribotą pagrindinių funkcijų skaičių. Žemiau galite pamatyti gerai suplanuotos užkardos, kuri buvo naudojama gamybos serveriui, pavyzdį. Tai apima kai kurias jau matytas taisykles ir sudėtingesnes taisykles, skirtas užkirsti kelią DDoS atakoms.
Kita pamoka bus apie šnipinėjimą vietiniuose tinkluose, bet kitoje pamokoje paaiškinsiu keletą taisyklių, taikomų toliau esančiai užkardai.  Dėkojame, kad sekėte „LinuxHint“.lt, stebėkite mus, norėdami ateityje atnaujinti „Iptables“ ir „Linux“.

Premija: Gamybos užkardos pavyzdys

iptables -F
# ---- Įjunkite blogo klaidos pranešimo apsaugą
įjungti / proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses
# ---- Įjunkite atbulinio kelio filtravimą. Saugiau, bet pažeidžia asimetrinį maršrutą ir (arba) IPSEC
įjungti / proc / sys / net / ipv4 / conf / * / rp_filter
# ---- Nepriimkite šaltinio nukreiptų paketų. Šaltinių nukreipimas retai naudojamas teisėtiems tikslams
tikslais išjungti / proc / sys / net / ipv4 / conf / * / accept_source_route
# ---- Išjunkite ICMP peradresavimo priėmimą, kuris gali būti naudojamas jūsų maršrutų lentelėms pakeisti
išjungti / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Kadangi mes nepriimame peradresavimo, nesiųskite ir peradresavimo pranešimų
išjungti / proc / sys / net / ipv4 / conf / * / send_redirects
# ---- Nepaisykite paketų su neįmanomais adresais
išjungti / proc / sys / net / ipv4 / conf / * / log_martians
# ---- Apsaugokite nuo eilės numerių suvyniojimo ir padėkite matuoti pirmyn ir atgal laiką
įjungti / proc / sys / net / ipv4 / tcp_timestamps
# ---- Pagalba nuo sinchroninio „DoS“ ar „DDoS“ atakų naudojant tam tikrus pradinio pasirinkimo variantus
TCP sekos numeriai įgalina / proc / sys / net / ipv4 / tcp_syncookies
# ---- Naudokite Selective ACK, kuris gali būti naudojamas norint pažymėti, kad trūksta konkrečių paketų
išjungti / proc / sys / net / ipv4 / tcp_sack
„modprobe nf_conntrack_ipv4“
modprobe nf_nat
# modprobe nf_conntrack_ipv6
# modprobe nf_conntrack_amanda
# modprobe nf_nat_amanda
modprobe nf_conntrack_h323
modprobe nf_nat_h323
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
# modprobe nf_conntrack_netbios_ns
# modprobe nf_conntrack_irc
# modprobe nf_nat_irc
# modprobe nf_conntrack_proto_dccp
# modprobe nf_nat_proto_dccp
modprobe nf_conntrack_netlink
# modprobe nf_conntrack_pptp
# modprobe nf_nat_pptp
# modprobe nf_conntrack_proto_udplite
# modprobe nf_nat_proto_udplite
# modprobe nf_conntrack_proto_gre
# modprobe nf_nat_proto_gre
# modprobe nf_conntrack_proto_sctp
# modprobe nf_nat_proto_sctp
# modprobe nf_conntrack_sane
modprobe nf_conntrack_sip
modprobe nf_nat_sip
# modprobe nf_conntrack_tftp
# modprobe nf_nat_tftp
# modprobe nf_nat_snmp_basic
#Dabar galime pradėti pridėti pasirinktas paslaugas prie mūsų užkardos filtro. Pirmas toks dalykas
yra „localhost“ sąsaja „iptables“ -A INPUT -i lo -j ACCEPT
#Mes liepėme ugniasienei paimti visus gaunamus paketus su tcp vėliavomis NĖRA ir tiesiog juos numesti.
iptables -A ĮVADAS -p tcp ! -m jungtis - valstybinė NAUJIENA-j DROP
# Mes liepiame „iptables“ pridėti (-A) taisyklę prie gaunamo (INPUT) - SSH veikia 50683 prievade
vietoj 22.
„iptables -A INPUT“ -p tcp -m tcp --port 50683 -j PRIIMTI
„iptables“ -A INPUT -p tcp -m tcp -s specifinis ip --port 50683 -j ACCEPT
„iptables“ -A INPUT -p tcp -m tcp -s specifinis ip --port 50683 -j ACCEPT
„iptables“ -A INPUT -p tcp -m tcp -s specifinis ip --port 50683 -j ACCEPT
„iptables“ -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m naujausias --set
--vardas SSH -j PRIIMTI
„iptables“ -A INPUT -p tcp --port 50683 -m naujausias - atnaujinimas - sekundės 60 --hitcount 4
--rttl --pavadinimas SSH -j LOG --log-prefiksas "SSH_brute_force"
„iptables“ -A INPUT -p tcp - dport 50683 -m naujausias - atnaujinimas - sekundės 60 --hitcount 4
--rttl - vardas SSH -j DROP
„iptables“ -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m neseniai --set
--vardas SSH
„iptables“ -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -j SSH_WHITELIST
„iptables“ -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m neseniai --update
--sekundės 60 --hitcount 4 --rttl - vardas SSH -j ULOG --ulog-prefix SSH_bru
„iptables“ -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m neseniai --update
--sekundės 60 --hitcount 4 --rttl --pavadinimas SSH -j DROP
#Dabar leidžiu imap ir smtp.
-ĮVADAS -p tcp -dport 25 -j PRIIMTI
# Leidžia „pop“ ir „pops“ ryšius
-ĮVADAS -p tcp -dport 110 -j PRIIMTI
-ĮVADAS -p tcp --portas 995 -j PRIIMTI
############ IMAP ir IMAPS ############
-ĮVADAS -p tcp -dport 143 -j PRIIMTI
-ĮVADAS -p tcp --port 993 -j PRIIMTI
########### MYSQL #####################
„iptables“ -A ĮVADAS -i eth0 -p tcp -m tcp --port 3306 -j PRIIMTI
########## R1soft CDP sistema ################
„iptables“ -A INPUT -p tcp -m tcp -s specifinis ip --port 1167 -j PRIIMTI
############### outgoing #####################
„iptables -I INPUT“ - „m“ jungtis - „state“ NUSTATYTA, SUSIJED - j PRIIMTI
### Leisti vykti, blokuoti gaunamus veiksmus nenustatyta ###
„iptables“ -P IŠĖJIMO PRIĖMIMAS
„iptables“ -P INPUT DROP
„iptables“ -L -n
„iptables-save“ tee / etc / iptables.testas.taisykles
„iptables-restore“ < /etc/iptables.test.rules
#service iptables paleisti iš naujo
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...