iptables

Iptables iesācējiem

Iptables iesācējiem
Iptables būtībā ir galvenais ugunsmūris, ko izmanto Linux sistēmās, ir alternatīvas, piemēram, nftables, bet Iptables joprojām ir galvenā, tā ir ļoti elastīga, pieņemot tiešas komandas no lietotāja, pēc nepieciešamības varat ielādēt un izkraut kārtulas, lai palielinātu ugunsmūra politikas precizitāte.

Patiesībā jums pat nav jāzina Iptable sintakse, lai to izmantotu, jums ir grafiski rīki, piemēram, Firewall Builder, kas var padarīt mācību procesu nevajadzīgu, bet, ja vēlaties palielināt Linux administrēšanas zināšanas, Iptables ir pirmais solis, lai uzzinātu, kā praktiski administrēt drošību operētājsistēmā Linux un pat atvieglot CISCO vai Fortigate drošības ierīču un tamlīdzīgu pārvaldību.

Iptables būtībā ļauj jums uzdot sistēmai pieņemt, atteikt vai pārsūtīt savienojumu atkarībā no izvēlētajiem parametriem, piemēram, novirzīt visus savienojumus uz X portu uz citu IP adresi, bloķēt visus savienojumus, kas nāk no noteikta IP, IP diapazona vai uz pieņemt visus savienojumus, kas nāk no baltajā sarakstā iekļautajām IP adresēm, starp daudzām citām funkcijām.

Šajā apmācībā mēs uzzināsim, kā aizsargāt tīmekļa serveri, kā pārsūtīt savienojumus uz iekšējām IP adresēm no mūsu LAN un kā piedāvāt konkrētus pakalpojumus tikai baltajā sarakstā iekļautajām IP adresēm.

Iptables instalēšana

Lai instalētu iptables Debian / Ubuntu sistēmās, vienkārši palaidiet “apt update && apt install iptables” kā root vai ar “sudo” kā prefiksu, kā parādīts šajā attēlā.

HTTP un HTTPS portu atvēršana

Pirmkārt, ļauj pievienot visas ACCEPT politikas, sākot ar tīmekļa serveri.

iptables -A INPUT -p tcp --dport 80 -j PIEŅEMT
iptables -A IEVADE -p tcp - 446.dokuments -j PIEŅEMT

Lai skatītu mūsu pievienotās kārtulas, palaidiet “iptables -L”

Kur:

Iptables = izsauc programmu
-A = pievieno kārtulu
IEVADE = ienākošā trafika
-lpp = protokols
-ddport = galamērķa osta
-j = norādiet “mērķi”, mērķis ir politikas veids: ACCEPT, DROP, QUEUE or RETURN.

Pēc tam augšējā attēla paraugā mēs sakām Iptables pievienot kārtulu ienākošajai datplūsmai, izmantojot TCP protokolu, un 80 un 443 porti jāpieņem.

Mēs varam mainīt komandu, lai pieņemtu savienojumu tikai no noteikta IP, pievienojot parametru “-s”:

iptables -A INPUT -s 127.0.0.1 -p tcp - atbalsts 80 -j PIEŅEMT

Kur:

s = avots
Iptables -L = uzskaita visas iptables ielādētās kārtulas
Iptables -L -v = tas pats ar daudzbalsību.

Mēs varam arī pārbaudīt mūsu ugunsmūri ar nmap:

Kā redzam, ports 80 ir atvērts gan saskaņā ar “iptables -L”, gan Nmap.

Piezīme. Lai iegūtu papildinformāciju par Nmap lietošanu, varat izlasīt mūsu apmācību

Servera aizsardzība

# Atvērt HTTP un HTTPS pakalpojumus.
iptables -A INPUT -p tcp --dport 80 -j PIEŅEMT
iptables -A IEVADE -p tcp - 446.dokuments -j PIEŅEMT
# Atvērt SSH ostas pakalpojumu
iptables -A INPUT -p tcp --port 22 -m conntrack --ctstate NEW, ESTABLISHED -j ACCEPT

Ja ir jaunie parametri:

-m = nozīmē “saskaņot” un tiek izmantots, lai izsauktu Iptable paplašinājumus, piemēram, conntrack, kas nav daļa no iptable pamatfunkcijām.

savienojums = Ļauj izsekot informāciju par savienojumiem, piemēram, noteiktām adresēm vai šajā gadījumā savienojuma stāvokli. Tas ir jāizmanto uzmanīgi, jo daudzi noteikumi, lai aizsargātu serverus no dažiem uzbrukumiem, izmanto conntrack, kamēr tā lietošanu ierobežo aparatūra, un šādus ierobežojumus var izmantot, lai pārslogotu servera resursus.

-ctstate = nosaka noteikuma stāvokli, kuram jāsaskaņo, iespējamie stāvokļi ir: JAUNS, IESTATĪTS, SAISTĪTS un NEDERĪGS.

# Aizsargājiet savu SSH pakalpojumu pret nežēlīgu spēku uzbrukumiem, atļaujot tikai noteiktu IP
lai piekļūtu iptables -A INPUT -p tcp -s X.X.X.X --port 22 -m conntrack --ctstate NEW,
Dibināts -j PIEŅEMT
# Aizsargājiet savu SSH pakalpojumu pret nežēlīgiem spēka uzbrukumiem, ierobežojot savienojuma mēģinājumus
Iptables -A INPUT -p tcp -m tcp --port 22 -m conntrack --ctstate NEW -j 22-test
Iptables -A 22-tests -m jaunākie --nosaukuma SAVIENOJUMI --set --mask 255.255.255.255 - avots
Iptables -A-22-tests -m nesenie - nosaukums CONNECTIONS - pārbaudiet --mask 255.255.255.255
--rsource --sekundes 30 --hitcount 3 -j 22-aizsardzība
Iptables -A-22 tests -j ACCEPT
Iptables -A 22 aizsardzība -j DROP

Kur:
Pirmajā likumā mūsu likums saka:-m conntrack -ctstate JAUNS ” kas nozīmē, ja savienojums ir jauns, pārejiet uz noteikumu “22-tests”.

Otrajā rindiņā teikts, ka pakešu tīkls maskē 255.255.255.255 ir nosaukti kā SAVIENOJUMI .

Trešajā rindiņā teikts, ja a SAVIENOJUMI šķiet, ka vairāk nekā 3 reizes 30 sekunžu laikā ugunsmūris turpina piemērot ķēdi 22-aizsardzība. Ceturtajā rindā teikts, ja SAVIENOJUMI 30 sekunžu laikā nešķita vairāk kā 3 reizes, to var pieņemt.
Piektā līnija, kas pieder pie 22-aizsardzība ķēde saka nomest SAVIENOJUMI ja šķiet vairāk nekā 3 reizes 30 sekunžu laikā.

Tagad beigsim ļaut atteikt visus nepieņemtos savienojumus un atļaut visu izejošo datplūsmu:

iptables -P IZVADES PIEŅEMŠANA
iptables -P INPUT DROP

Kur -P nozīmē mērķa ķēdi, atcerieties, ka mērķis ir politika, ACCEPT, DROP, QUEUE vai RETURN. Šajā gadījumā mēs sakām, ka noklusējuma politika izejošajai datplūsmai ir pieņemšana un ienākošās trafika noklusējuma politika ir atteikums, ja vien iepriekšējos noteikumos nav norādīts citādi. Šis ir ļoti vienkāršs ugunsmūris, kurā nav iekļauti noteikumi daudziem uzbrukumiem, mācību nolūkiem, nevis ražošanai. Raksta beigās es serverī pievienoju ugunsmūri, kuru izmantoju ražošanai, tajā ir komentāri, kas izskaidro katru kārtulu.

SAVIENOJUMA PĀRVIETOŠANA AR ĪPAŠU OSTU AR ĪPAŠU IP ADRESI

Tas ir ļoti noderīgi arī galddatoru lietotājiem, kuri vēlas maršrutēt savienojumu, izmantojot noteiktu ierīci, tas var būt noderīgs pat spēlētājiem, parasti mēs to darām no maršrutētāja iestatījumiem, bet pieņemsim, ka maršrutēšanas ierīcē darbojas Iptables.

iptables -A PREROUTING -t nat -p tcp -d X.X.X.X - ports 8080 -j DNAT - uz galamērķi
Jā.Jā.Jā.Y: 80
iptables -A POSTROUTING -t nat -p tcp -j SNAT - uz avotu X.X.X.X

Iepriekš minētie noteikumi atsaucas uz NAT (tīkla adrešu tulkošana), lai norādītu savienojumus, izmantojot protokola TCP, uz adresi X.X.X.X un ports 8080 tiks novirzīts uz adresi Y.Jā.Jā.Y, 80. osta. Otrais noteikums norāda, ka atbildes jānosūta uz avota adresi (X.X.X.X). Mēs varam izmantot šos noteikumus, lai atļautu piekļuvi IP kamerai, lai spēlētu tiešsaistē ar ārējiem tīkliem utt.

Šī apmācība bija domāta iesācēju iepazīstināšanai ar Iptables un izskaidro tikai ierobežotu skaitu pamatfunkciju. Zemāk ir redzams labi izplānota ugunsmūra paraugs, kas tika izmantots ražošanas serverim. Tajā ietilpst daži no jau redzētajiem noteikumiem līdz sarežģītākiem noteikumiem, lai cita starpā novērstu DDoS uzbrukumus.
Nākamā apmācība būs par šņaukšanos vietējos tīklos, bet nākamajā apmācībā es paskaidrošu dažus noteikumus, kas zemāk piemēroti ugunsmūrim.  Paldies, ka sekojat LinuxHint.lv, turpiniet sekot mums, lai nākotnē atjauninātu Iptables un Linux kopumā.

Bonuss: Ražošanas ugunsmūra paraugs

iptables -F
# ---- iespējojiet nepareizu kļūdu ziņojumu aizsardzību
iespējot / proc / sys / net / ipv4 / icmp_ignore_bogus_error_responses
# ---- ieslēdziet reversā ceļa filtrēšanu. Drošāka, bet pārkāpj asimetrisko maršrutu un / vai IPSEC
iespējot / proc / sys / net / ipv4 / conf / * / rp_filter
# ---- Nepieņemiet avota maršrutētas paketes. Avotu maršrutēšanu likumīgai lietošanai izmanto reti
mērķiem atspējojiet / proc / sys / net / ipv4 / conf / * / accept_source_route
# ---- Atspējojiet ICMP novirzīšanas pieņemšanu, ko var izmantot, lai mainītu maršrutēšanas tabulas
atspējot / proc / sys / net / ipv4 / conf / * / accept_redirects
# ---- Tā kā mēs nepieņemam novirzīšanu, nesūtiet arī novirzīšanas ziņojumus
atspējot / proc / sys / net / ipv4 / conf / * / send_redirects
# ---- ignorējiet paketes ar neiespējamām adresēm
atspējot / proc / sys / net / ipv4 / conf / * / log_martians
# ---- Aizsargājiet pret kārtas numuru iesaiņošanu un palīdziet mērīt turp un atpakaļ laiku
iespējot / proc / sys / net / ipv4 / tcp_timestamps
# ---- Palīdzība pret sinhroniem DoS vai DDoS uzbrukumiem, izmantojot konkrētas sākotnējās izvēles iespējas
TCP kārtas numuri iespējo / ​​proc / sys / net / ipv4 / tcp_syncookies
# ---- Izmantojiet selektīvo ACK, ko var izmantot, lai norādītu, ka trūkst konkrētu pakešu
atspējot / 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
# Tagad mēs varam sākt atlasīto pakalpojumu pievienošanu mūsu ugunsmūra filtram. Pirmā šāda lieta
ir localhost interfeiss iptables -A INPUT -i lo -j ACCEPT
# Mēs teicām ugunsmūrim ņemt visas ienākošās paketes ar TCP karodziņiem NEKĀDU un tās vienkārši NOLAIST.
iptables -A IEVADE -p tcp ! -m savienojums - štats JAUNS-j DROP
#Mēs iesakām iptables pievienot (-A) kārtulu ienākošajam (INPUT) - SSH darbojas portā 50683
tā vietā 22.
iptables -A INPUT -p tcp -m tcp --port 50683 -j PIEŅEMT
iptables -A INPUT -p tcp -m tcp -s specifisks ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s specifisks ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s specifisks ip --port 50683 -j ACCEPT
iptables -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m nesen --set
--nosaukums SSH -j PIEŅEMT
iptables -A INPUT -p tcp --port 50683 -m nesen --update --sekundes 60 --hitcount 4
--rttl - nosaukums SSH -j LOG --log-prefikss "SSH_brute_force"
iptables -A INPUT -p tcp --port 50683 -m nesen --update --sekundes 60 --hitcount 4
--rttl - nosaukums SSH -j DROP
iptables -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m nesen --set
--nosaukums 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 nesen --update
--sekundes 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_bru
iptables -A INPUT -p tcp --port 50683 -m conntrack --ctstate NEW -m nesen --update
--sekundes 60 --hitcount 4 --rttl --nosaukums SSH -j DROP
# Tagad es atļauju imap un smtp.
-IEVADE -p tcp -dport 25 -j PIEŅEMT
# Ļauj pop un pops savienojumus
-IEVADE -p tcp -dport 110 -j PIEŅEMT
-IEVADE -p tcp -port 995 -j PIEŅEMT
############ IMAP un IMAPS #############
-IEVADE -p tcp -dv 143 -j PIEŅEMT
-IEVADE -p tcp -port 993 -j PIEŅEMT
########### MYSQL #####################
iptables -A IEVADE -i eth0 -p tcp -m tcp --port 3306 -j PIEŅEMT
########## R1soft CDP sistēma ################
iptables -A INPUT -p tcp -m tcp -s specifisks ip --port 1167 -j ACCEPT
############### outgoing ######################
iptables -I INPUT -m conntrack -ctstate ESTABLISHED, SAISTĪTS -j ACCEPT
### Atļaut turpināt, bloķēt ienākošo nav definēts ###
iptables -P IZVADES PIEŅEMŠANA
iptables -P INPUT DROP
iptables -L -n
iptables-save | tee / etc / iptables.pārbaude.noteikumiem
iptables-atjaunot < /etc/iptables.test.rules
#service iptables restartējas
SuperTuxKart operētājsistēmai Linux
SuperTuxKart ir lielisks nosaukums, kas paredzēts, lai sniegtu jums Mario Kart pieredzi bez maksas jūsu Linux sistēmā. Tas ir diezgan izaicinoši un ja...
Cīņa par Vesnota apmācību
Cīņa par Vesnotu ir viena no populārākajām atvērtā koda stratēģijas spēlēm, kuru jūs varat spēlēt šajā laikā. Šī spēle ir izstrādāta ne tikai ļoti ilg...
0 A.D. Apmācība
No daudzajām stratēģijas spēlēm 0 A.D. izdodas izcelties kā visaptverošs nosaukums un ļoti dziļa, taktiska spēle, neskatoties uz to, ka tā ir atvērtā ...