iptables

Iptables algajatele

Iptables algajatele
Iptables on põhiliselt Linuxi süsteemide jaoks kasutatav tulemüür, seal on alternatiive nagu nftables, kuid peamiseks jääb Iptables, see on kasutajalt otseseid käske aktsepteerides väga paindlik, saate tulemüüri poliitikate suurendamiseks vajadusel reegleid laadida ja tühjendada täpsus.

Tegelikult ei pea te selle kasutamiseks isegi Iptable'i süntaksit tundma, teil on graafilisi tööriistu nagu Firewall Builder, mis võib muuta õppeprotsessi mittevajalikuks, kuid kui soov on suurendada Linuxi haldusteadmisi, on Iptables esimene samm, kuidas õppida praktiliselt administreerida Linuxi turvalisust ja hõlbustada isegi CISCO või Fortigate turvaseadmete jms haldamist.

Põhimõtteliselt lubab Iptables teie süsteemil anda juhised ühenduse aktsepteerimiseks, keeldumiseks või edastamiseks sõltuvalt valitud parameetritest, näiteks suunata kõik ühendused X-porti teisele IP-aadressile, blokeerida kõik ühendused, mis tulevad konkreetselt IP-lt, IP-vahemikult või aktsepteerige kõigi muude funktsioonide hulgas kõiki lubatud loendisse lisatud IP-aadressidelt pärinevaid ühendusi.

Selles õpetuses õpime, kuidas kaitsta veebiserverit, kuidas edastada ühendusi sisemiste IP-aadressidega meie LAN-ist ja kuidas pakkuda konkreetseid teenuseid ainult lubatud loendisse lisatud IP-aadressidele.

Iptablesi installimine

Iptablesi installimiseks Debiani / Ubuntu süsteemidesse käivitage lihtsalt "apt update && apt install iptables" juurena või "sudo" prefiksina nagu järgmisel pildil.

HTTP- ja HTTPS-porti avamine

Kõigepealt lubage lisada kõik veebisaidi serveri algusega aktsepteeritavad poliitikad.

iptables -A SISEND -p tcp --port 80 -j VASTU
iptables -A SISEND -p tcp --port 443 -j VASTU

Lisatud reeglite nägemiseks käivitage käsk „iptables -L”

Kus:

Iptables = kutsub programmi
-A = lisab reegli
SISEND = sissetulev liiklus
-lk = protokoll
-ddport = sihtsadam
-j = määrake „sihtmärk“, sihtmärk on selline poliitika: AKTSEPT, DROP, QUEUE või RETURN.

Seejärel palume ülaltoodud pildi näidisel Iptablesil lisada reegel TCP-protokolli kaudu sissetuleva liikluse jaoks ja aktsepteerida porte 80 ja 443.

Saame muuta käsku, et aktsepteerida ühendust ainult kindla IP-ga, lisades parameetri “-s”:

iptables -A SISEND -s 127.0.0.1 -p tcp --port 80 -j VASTU

Kus:

s = allikas
Iptables -L = loetleb kõik iptablesi laaditud reeglid
Iptables -L -v = sama paljusõnalisusega.

Saame oma tulemüüri testida ka nmap-iga:

Nagu näeme, on port 80 avatud nii „iptables -L” kui ka Nmap järgi.

Märkus. Lisateavet Nmapi kasutamise kohta leiate meie juhendajast

Teie serveri kaitsmine

#Ava HTTP ja HTTPS teenused.
iptables -A SISEND -p tcp --port 80 -j VASTU
iptables -A SISEND -p tcp --port 443 -j VASTU
#Ava SSH sadamateenus
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW, ESTABLISED -j ACCEPT

Kui uued parameetrid on:

-m = tähendab "mängu" ja seda kasutatakse Iptable'i laienduste, näiteks conntracki kutsumiseks, mis ei kuulu iptable'i põhifunktsioonide hulka.

liitumine = Võimaldab jälgida teavet ühenduste kohta, näiteks konkreetsed aadressid või antud juhul ühenduse olek. Seda tuleb hoolikalt kasutada, kuna paljud reeglid serverite kaitsmiseks mõne rünnaku eest kasutavad conntracki, samas kui selle kasutamist piirab riistvara ja sellist piirangut saab kasutada serveri ressursside ülekoormamiseks.

-ctstate = määrab vastava reegli oleku, võimalikud olekud on: UUS, KINNITATUD, SEOTUD ja KEHTETUD.

# Kaitske oma SSH-teenust toore jõu rünnakute eest, lubades ainult konkreetset IP-d
juurdepääsuks iptables -A INPUT -p tcp -s X.X.X.X --port 22 -m ühendusraja - osariik UUS,
ASUTATUD -j VASTUVÕTU
# Kaitske oma SSH-teenust toore jõu rünnakute eest, piirates ühenduse katseid
Iptables -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j 22-test
Iptables -A 22-test -m viimased --nimi ÜHENDUSED --seade --mask 255.255.255.255 - allikas
Iptables -A 22-test -m viimased --nimi ÜHENDUSED --rcheck --mask 255.255.255.255
--rsource --sekundit 30 --hitcount 3 -j 22-protection
Iptables -A 22-test -j ACCEPT
Iptables -A 22-kaitse -j DROP

Kus:
Esimeses liNes ütleb meie reegel:-m conntrack -aktriik UUS ” mis tähendab, et kui ühendus on uus, siis minge üle reeglile “22-test”.

Teine rida ütleb paketid netimask 255.255.255.255 on nimetatud kui ÜHENDUSED .

Kolmas rida ütleb, kui a ÜHENDUSED tundub, et tulemüür jätkab keti rakendamist 30 sekundi jooksul üle 3 korra 22-kaitse. Neljas rida ütleb, kas ÜHENDUSED ei tundunud 30 sekundi jooksul üle 3 korra, sellega võib nõustuda.
Viies rida, mis kuulub 22-kaitse kett ütleb, et kuku ÜHENDUSED kui tundub 30 sekundi jooksul üle 3 korra.

Nüüd lõpuks lubab keelduda kõikidest aktsepteerimata ühendustest ja lubame kogu väljuva liikluse:

iptables -P VÄLJUND aktsepteerib
iptables -P INPUT DROP

Kus -P tähendab sihtmärgi ahelat, pidage meeles, et sihtmärk on poliitika, AKTSEPT, DROP, QUEUE või RETURN. Sel juhul ütleme, et väljuva liikluse vaikepoliitika on aktsepteeritav ja sissetuleva liikluse vaikepoliitika on keeldumine, kui me pole eelmistes reeglites midagi muud määranud. See on väga lihtne tulemüür, mis ei sisalda reegleid paljude rünnakute jaoks, õppimise ja mitte tootmise jaoks. Artikli lõpus lisan serverisse tootmiseks kasutatava tulemüüri, sellel on kommentaarid, mis selgitavad kõiki reegleid.

KONKREETSE PORTRIGA ÜHENDAMISE EDASTAMINE KONKREETSE IP-AADRESSIGA

See on väga kasulik ka töölaua kasutajatele, kes soovivad ühenduse marsruutida konkreetse seadme kaudu, see võib olla kasulik isegi mängijatele, tavaliselt teeme seda ruuteri seadetest, kuid oletame, et marsruutimisseade töötab Iptables.

iptables -A PREROUTING -t nat -p tcp -d X.X.X.X --port 8080 -j DNAT - sihtkohta
Y.Y.Y.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT - allikale X.X.X.X

Eespool toodud reeglid tuginevad NAT-ile (Network Address Translation), et täpsustada ühendusi protokolli TCP kaudu aadressile X.X.X.X ja port 8080 suunatakse aadressile Y.Y.Y.Y, port 80. Teine reegel täpsustab, et vastused tuleb saata allika aadressile (X.X.X.X). Me võime neid reegleid kasutada IP-kaamerale juurdepääsu võimaldamiseks, võrgumängu võimaldamiseks väliste võrkudega jne.

See õpetus oli mõeldud algajatele Iptable'i tutvustamiseks ja selgitab ainult piiratud arvu põhifunktsioone. Allpool näete tooteserveri jaoks kasutatud hästi planeeritud tulemüüri näidist. See sisaldab mõningaid juba nähtud reegleid kuni keerukamate reegliteni DDoS-rünnakute vältimiseks.
Järgmine õpetus on kohalike võrkude nuusutamisest, kuid järgmises õpetuses selgitan allpool mõningaid tulemüürile rakendatavaid reegleid.  Täname teid LinuxHinti jälgimise eest.com, jälgige meid edaspidi Iptablesi ja üldiselt Linuxi värskenduste saamiseks.

Boonus: tootmistulemüüri näidis

iptables -F
# ---- lubage vale tõrketeate kaitse
Luba / proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses
# ---- Lülitage vastupidise tee filtreerimine sisse. Ohutum, kuid rikub asümmeetrilist marsruutimist ja / või IPSEC-i
Luba / proc / sys / net / ipv4 / conf / * / rp_filter
# ---- Ärge aktsepteerige lähtekoodiga suunatavaid pakette. Allikate marsruutimist kasutatakse seaduslikuks kasutamiseks harva
eesmärkidel keelake / proc / sys / net / ipv4 / conf / * / accept_source_route
# ---- Keela ICMP ümbersuunamise aktsepteerimine, mida saab kasutada marsruutimistabelite muutmiseks
keelake / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Kuna me ei aktsepteeri ümbersuunamisi, ärge saatke ka ümbersuunamise sõnumeid
keelake / proc / sys / net / ipv4 / conf / * / send_redirects
# ---- ignoreeri võimatute aadressidega pakette
keelake / proc / sys / net / ipv4 / conf / * / log_martians
# ---- Kaitse järjenumbrite pakkimise eest ja aitab edasi-tagasi aega mõõta
Luba / proc / sys / net / ipv4 / tcp_timestamps
# ---- Abi syn-flood DoS- või DDoS-rünnakute vastu, kasutades konkreetseid algvalikuid
TCP järjekorranumbrid võimaldavad / proc / sys / net / ipv4 / tcp_syncookies
# ---- Kasutage valikulist ACK-d, mida saab kasutada konkreetsete pakettide puudumise tähistamiseks
keelake / 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
#Nüüd saame hakata valitud teenuseid lisama oma tulemüüri filtrisse. Esimene selline asi
on localhosti liides iptables -A INPUT -i lo -j ACCEPT
# Me käskisime tulemüüril kõik sissetulevad TCP-lippudega paketid NONE ära võtta ja lihtsalt LEVITADA.
iptables -A SISEND -p tcp ! -m conntrack - osariik UUS -j DROP
# Me ütleme iptablesile, et lisada sissetulevale (INPUT) reegel (-A) - SSH töötab pordil 50683
selle asemel 22.
iptables -A SISEND -p tcp -m tcp --port 50683 -j VASTU
iptables -A SISEND -p tcp -m tcp -spetsiifiline ip --port 50683 -j ACCEPT
iptables -A SISEND -p tcp -m tcp -spetsiifiline ip --port 50683 -j ACCEPT
iptables -A SISEND -p tcp -m tcp -spetsiifiline ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m latest --set
--nimi SSH -j VASTU
iptables -A INPUT -p tcp --port 50683 -m hiljutine --uuendus - sekundit 60 --hitcount 4
--rttl - nimi SSH -j LOG - logi-prefiks "SSH_brute_force"
iptables -A INPUT -p tcp --port 50683 -m hiljutine --uuendus - sekundit 60 --hitcount 4
--rttl - nimi SSH -j DROP
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m latest --set
--nimi SSH
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate UUS -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m hiljuti --update
--sekundit 60 --hitcount 4 --rttl - nimi SSH -j ULOG --ulog-eesliide SSH_bru
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m hiljuti --update
--sekundit 60 --hitcount 4 --rttl - nimi SSH -j DROP
#Nüüd luban imap ja smtp.
-SISEND -p tcp --port 25 -j VASTU
# Võimaldab hüpata ja hüppab ühendusi
-SISEND -p tcp --port 110 -j VASTU
-SISEND -p tcp --port 995 -j VASTU
############ IMAP ja IMAPS ############
-SISEND -p tcp --port 143 -j VASTU
-SISEND -p tcp --port 993 -j VASTU
########### MYSQL #####################
iptables -A SISEND -i eth0 -p tcp -m tcp --port 3306 -j VASTU
########## R1soft CDP süsteem ################
iptables -A SISEND -p tcp -m tcp -spetsiifiline ip --port 1167 -j ACCEPT
############### väljuvad #####################
iptables -I INPUT -m conntrack --ctstate LOETUD, SEOTUD -j ACCEPT
### Luba käimas, blokeerige sissetulev määratlemata ###
iptables -P VÄLJUND aktsepteerib
iptables -P INPUT DROP
iptables -L -n
iptables-save | tee / etc / iptables.test.reegleid
iptables-taastamine < /etc/iptables.test.rules
#service iptables taaskäivitub
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...