Zabranite icmp promet vašem VPN-u. Cisco ACL za napredne. Proširene pristupne liste. Resetirajte ili dopustite promet s određenih MAC adresa

05.03.2020 Sigurnost

Dakle, nastavimo se baviti ACL-ovima. Ovaj put imamo proširene ACL-ove. Uzet ćemo topologiju iz prethodnog članka, nadam se da ste je temeljito proučili. Ako to nije slučaj, toplo preporučujem da ga pročitate kako bi materijali u ovom članku bili razumljiviji.

Prije svega, počet ću s time što su prošireni ACL-ovi. Prošireni ACL-ovi omogućuju vam da navedete protokol, odredišnu adresu i priključke uz izvorišnu adresu. Kao i posebni parametri određenog protokola. Najbolje je učiti iz primjera, pa napravimo novi zadatak, komplicirajući prethodni. Usput, netko bi mogao biti zainteresiran za rješavanje pitanja distribucije prometa po prioritetu nakon ovoga, preporučujem QoS klasifikaciju i označavanje dobar članak, doduše na engleskom. Pa, za sada, vratimo se našem zadatku:

Zadatak.

  1. Dopusti echo zahtjeve od hostova na mreži 192.168.0.0/24 prema poslužitelju.
  2. S poslužitelja – zabrani echo zahtjeve internoj mreži.
  3. Dopusti WEB pristup poslužitelju s čvora 192.168.0.11.
  4. Dopusti FTP pristup poslužitelju s hosta 192.168.0.13.

Složen zadatak. I to ćemo riješiti cjelovito. Prije svega, pogledat ću sintaksu za korištenje proširenog ACL-a.

Proširene ACL opcije

<номер от 100 до 199> <действие permit, deny> <протокол> <источник> <порт> <назначение> <порт> <опции>

Brojevi portova navedeni su samo za TCP / UDP protokole, naravno. Mogu postojati i prefiksi ekv(broj porta jednak navedenom), gt/lt(broj porta je veći/manji od navedenog), nekv(broj porta nije jednak navedenom), domet(raspon luka).

Imenovani ACL-ovi

Usput, pristupne liste ne mogu se samo numerirati, već i imenovati! Možda će vam se ova metoda činiti prikladnijom. Ovaj put ćemo učiniti upravo to. Ove se naredbe izvode u kontekstu globalne konfiguracije, a sintaksa je:

Router(config)#ip access-list proširen<имя>

Dakle, počnimo s oblikovanjem pravila.

  1. Dopuštanje pingova s ​​mreže 192.168.0.0/24 na poslužitelj. Tako, jeka-zahtjevi su protokol ICMP, odabrat ćemo našu podmrežu kao izvornu adresu, adresu poslužitelja kao odredišnu adresu, vrstu poruke – na dolaznom sučelju jeka, na izlazu - echo-odgovor. Router(config)#ip access-list extended INT_IN Router(config-ext-nacl)#permit icmp 192.168.0.0 0.0.0.255 host 10.0.0.100 echo Ups, što nije u redu s podmrežnom maskom? Da, ovo je trik ACL. Takozvani Zamjenski znak-maska. Izračunava se kao inverzna maska ​​od uobičajene. Oni. 255.255.255.255 - Maska podmreže. U našem slučaju, podmreža 255.255.255.0 , nakon oduzimanja ono što ostaje je samo 0.0.0.255 .Mislim da ovo pravilo ne treba objašnjenje? Protokol icmp, adresa izvora – podmreža 192.168.0.0/24 , adresa odredišta - host 10.0.0.100, vrsta poruke – jeka(zahtjev). Inače, to je lako primijetiti host 10.0.0.100 ekvivalent 10.0.0.100 0.0.0.0 .Ovo pravilo primjenjujemo na sučelje. Router(config)#int fa0/0
    Router(config-if)#ip access-group INT_IN u Pa, tako nešto. Sada, ako provjerite pingove, lako je vidjeti da sve radi dobro. Ovdje nas, međutim, čeka jedno iznenađenje koje će se pojaviti nešto kasnije. Neću još otkriti. Tko je pogodio - bravo!
  2. S poslužitelja – zabranjujemo sve echo zahtjeve prema internoj mreži (192.168.0.0/24). Definiramo novu imenovanu listu, INT_OUT, i pripojimo je sučelju najbližem poslužitelju.
    Router(config)#ip access-list extended INT_OUT
    Router(config-ext-nacl)#deny icmp host 10.0.0.100 192.168.0.0 0.0.0.255 echo
    Usmjerivač(config-ext-nacl)#izlaz
    Router(config)#int fa0/1
    Router(config-if)#ip access-group INT_OUT in
    Dopustite mi da objasnim što smo učinili. Stvorio je proširenu pristupnu listu s nazivom INT_OUT, onemogućivši protokol u njoj icmp s tipom jeka od domaćina 10.0.0.100 po podmreži 192.168.0.0/24 i primijenjen na ulaz sučelja fa0/1, tj. najbliži poslužitelju. Pokušavamo poslati ping sa servera.
    POSLUŽITELJ>ping 192.168.0.11
    Pinganje 192.168.0.11 s 32 bajta podataka:

    Odgovor od 10.0.0.1: Odredišni host nedostupan.
    Odgovor od 10.0.0.1: Odredišni host nedostupan.
    Odgovor od 10.0.0.1: Odredišni host nedostupan.
    Ping statistika za 192.168.0.11:
    Paketi: Poslano = 4, Primljeno = 0, Izgubljeno = 4 (100% gubitak)
    Pa, činilo se da radi kako treba. Za one koji ne znaju slati pingove, kliknite na čvor koji nas zanima, na primjer poslužitelj. Idite na karticu Desktop, tamo Command Prompt. A sada, obećana šala. Pokušajte poslati ping s hosta, kao u prvoj točki. PC>ping 10.0.0.100
    Pinganje 10.0.0.100 s 32 bajta podataka:
    Zahtjev je istekao.
    Zahtjev je istekao.
    Zahtjev je istekao.
    Zahtjev je istekao.

    Evo jedan za tebe. Sve je upravo radilo! Zašto je prestalo? Ovo je obećano iznenađenje. Objašnjavam u čemu je problem. Da, prvo pravilo nije nestalo. Dopušta slanje echo zahtjeva čvoru poslužitelja. Ali gdje je dopuštenje za prosljeđivanje echo odgovora? Otišao je! Šaljemo zahtjev, ali ne možemo prihvatiti odgovor! Zašto je prije sve radilo? Tada nismo imali ACL na sučelju. fa0/1. A kako nema ACL-a, onda je sve dozvoljeno. Morat ćete stvoriti pravilo koje će omogućiti primanje icmp odgovora.

    Dodaj na popis INT_OUT

    Dodajmo isto na popis INT_IN.

    Router(config-ext-nacl)#permit icmp host 10.0.0.100 192.168.0.0 0.0.0.255 echo-odgovor

    Nemoj se žaliti. Sve ide super!

  3. Dopuštamo WEB pristup poslužitelju s čvora *.11.Činimo isto! Ovdje, međutim, trebate znati nešto o tome kako se pozivi odvijaju putem protokola sloja 4 (TCP, UDP). Port klijenta odabire se proizvoljno > 1024, a port poslužitelja odabire se u skladu s uslugom. Za WEB, ovo je port 80 (http protokol) Što je s WEB poslužiteljem? Prema zadanim postavkama, WEB usluga je već instalirana na poslužitelju, možete je vidjeti u postavkama čvora. Provjerite postoji li kvačica. A možete se spojiti na poslužitelj odabirom prečaca "Web preglednik" na "Radnoj površini" bilo kojeg čvora. Naravno, sada neće biti pristupa. Zato što imamo ACL-ove na sučeljima usmjerivača, a oni nemaju nikakva pravila dopuštenja za pristup. Pa, stvorimo INT_IN pristupnu listu (koja je na sučelju fa0/0) dodajte pravilo: Router(config-ext-nacl)#permit tcp host 192.168.0.11 gt 1024 host 10.0.0.100 eq 80 To jest, dopuštamo TCP protokol s našeg hosta (proizvoljni port, > 1024) na adresu poslužitelja , HTTP port.

    I, naravno, suprotno pravilo je na popisu INT_OUT (koji se nalazi na sučelju fa0/1):

    Router(config-ext-nacl)#permit tcp host 10.0.0.100 eq 80 host 192.168.0.11 uspostavljen

    Odnosno dopuštamo TCP iz luke 80 poslužitelja po hostu *.11 , a veza bi već trebala biti uspostavljena! Možda umjesto toga uspostavljena ukazuju na isto GT 1024, djelovat će jednako dobro. Ali značenje je malo drugačije.

    Odgovorite u komentarima što bi bilo sigurnije?

  4. Dopuštamo FTP pristup od *.13 čvora do poslužitelja. Ni apsolutno ništa komplicirano! Pogledajmo kako se interakcija odvija putem FTP protokol. U budućnosti planiram posvetiti cijeli niz članaka radu različitih protokola, jer je to vrlo korisno u stvaranju preciznih (snajperskih) ACL pravila. Pa, za sada: Akcije poslužitelja i klijenta:+ Klijent pokušava uspostaviti vezu i šalje paket (koji sadrži indikaciju da će raditi u pasivnom načinu) na port 21 poslužitelja sa svog porta X (X > 1024, slobodan port) + Poslužitelj šalje odgovor i prijavljuje svoj broj porta za formiranje podataka kanala Y (Y > 1024) klijentskom portu X, ekstrahiranom iz zaglavlja TCP paketa.+ Klijent započinje komunikaciju za prijenos podataka na portu X+1 na poslužiteljski port Y (preuzeto iz zaglavlja prethodne transakcije). Nešto kao ovo. Zvuči malo komplicirano, ali samo trebate shvatiti! Dodajte pravila na popis INT_IN:

    dozvoli tcp host 192.168.0.13 gt 1024 host 10.0.0.100 eq 21
    dozvoli tcp host 192.168.0.13 gt 1024 host 10.0.0.100 gt 1024

    I dodajte pravila na popis INT_OUT:

    dozvoli tcp host 10.0.0.100 eq ftp host 192.168.0.13 gt 1024
    dozvoli tcp host 10.0.0.100 gt 1024 host 192.168.0.13 gt 1024

    Provjera od naredbeni redak, tim ftp 10.0.0.100, gdje se prijavljujemo koristeći svoje vjerodajnice cisco:cisco(preuzeto iz postavki poslužitelja), tamo unesite naredbu red i vidjet ćemo da se podaci, kao i naredbe, uspješno prenose.

To je otprilike sve što se tiče proširenih popisa pristupa.

Dakle, pogledajmo naša pravila:

Router#sh pristup
Proširena IP pristupna lista INT_IN
dopustiti icmp 192.168.0.0 0.0.0.255 host 10.0.0.100 echo (17 podudaranja)
dozvoli icmp host 10.0.0.100 192.168.0.0 0.0.0.255 echo-odgovor
dozvoli tcp host 192.168.0.11 gt 1024 host 10.0.0.100 eq www (36 podudaranja)
dozvoli tcp host 192.168.0.13 gt 1024 host 10.0.0.100 eq ftp (40 podudaranja)
dozvoli tcp host 192.168.0.13 gt 1024 host 10.0.0.100 gt 1024 (4 podudaranja)
Proširena IP pristupna lista INT_OUT
zabrani icmp host 10.0.0.100 192.168.0.0 0.0.0.255 echo (4 podudaranja)
dozvoli icmp host 10.0.0.100 192.168.0.0 0.0.0.255 echo-odgovor (4 podudaranja)
dopustiti tcp host 10.0.0.100 eq www host 192.168.0.11 uspostavljen (3 podudaranja)
dozvoli tcp host 10.0.0.100 eq ftp host 192.168.0.13 gt 1024 (16 podudaranja)
dozvoli tcp host 10.0.0.100 gt 1024 host 192.168.0.13 gt 1024 (3 podudaranja)

Korisnicima često smeta sporost interneta. To se posebno odnosi na veliku vojsku amatera mrežne igrice. Možete smanjiti potencijalna kašnjenja tako da onemogućite značajku ping.

Trebat će vam

  • - osobno računalo s instaliranim Windows operativnim sustavom;
  • - Pristup internetu.

upute

  • Uđite u izbornik Start operacijski sustav Windows klikom na odgovarajući gumb u lijevom kutu programske trake. Neki ulazni uređaji imaju tipku s logotipom Windows koju možete pritisnuti za pristup glavnom izborniku operativnog sustava izravno s tipkovnice.
  • Otvorite odjeljak "Upravljačka ploča", aktivirajte " Vatrozid za Windows" i u dijaloškom okviru idite na karticu "Napredno". Kliknite na gumb ICMP Settings i poništite odabir opcije "Allow incoming echo request" uklanjanjem oznake odgovarajuće stavke izbornika. Spremite promjene koje ste napravili u postavkama klikom na gumb "U redu".
  • Koristite ugrađenu IPSec aplikaciju za blokiranje dolaznih i odlaznih ping paketa. Pritisnite gumb "Start" i, ako koristite operativni sustav Windows 7, unesite mmc u traku za pretraživanje. Ako posjedujete računala sa sustavom Windows XP, unesite istu vrijednost u redak "Pokreni". Kliknite na stavku "Otvori" ili pritisnite tipku Enter.
  • Potvrdite svoj izbor i u prozoru aplikacija idite na izbornik Datoteka. Odaberite funkciju “Add/Remove Snap-in” i aktivirajte uslužni program “IP Security and Policy Management”. Označite okvir "Lokalno računalo" i dovršite čarobnjaka klikom na gumb Zatvori.
  • Pritisnite desnu tipku manipulatora i pozovite kontekstni izbornik. Odredite naredbu “Upravljanje popisima IP filtera i radnjama filtera” i aktivirajte stavku “Sav ICMP promet”. Idite na odjeljak "Upravljanje radnjama filtra", kliknite gumb Dalje i potvrdite okvir "Blokiraj". Potvrdite svoje postavke i zatvorite dijaloški okvir.
  • U kontekstnom izborniku “Pravila sigurnosti IP-a” aktivirajte naredbu “Stvori politiku sigurnosti IP-a”. Navedite stavku "Blokiraj ping" u odgovarajućem polju čarobnjaka za izradu pravila koji se otvori. Poništite okvir pored "Aktiviraj pravilo zadanog odgovora" i odaberite stavku "Uredi svojstva". Spremite svoje postavke i zatvorite prozor čarobnjaka.
  • Savjet dodan 25. siječnja 2012. Savjet 2: Kako onemogućiti ping Funkcija ping koristi se za provjeru dostupnosti internetskih resursa slanjem paketa određene veličine hostu koji se koristi. Time se mjeri vrijeme povrata podataka kako bi se odredila brzina veze. Ova funkcija onemogućili igrači na mreži kako bi smanjili vrijeme kašnjenja.

    upute

  • Otvorite početni izbornik operativnog sustava Windows sustavi, čiji se gumb nalazi u lijevom kutu programske trake. Također na nekim tipkovnicama postoji gumb sa slikom Windows prozora, klikom na koji možete pokrenuti glavni izbornik. Idite na odjeljak "Upravljačka ploča" i idite na izbornik "Vatrozid za Windows". Pritisnite karticu "Napredno" u dijaloškom okviru koji se otvori.
  • Pronađite gumb Postavke ICMP-a i kliknite na njega, a zatim poništite okvir pored "Dopusti dolazni echo zahtjev". Nakon toga kliknite gumb "U redu" na dnu prozora kako biste spremili navedene postavke. Nakon toga morate koristiti ugrađenu IPSec aplikaciju za blokiranje dolaznih i odlaznih ping paketa.
  • Kliknite gumb "Start" i unesite mmc u traku za pretraživanje (za Windows 7) ili u redak "Pokreni" (za Windows XP). Kliknite gumb Otvori ili tipku Enter Potvrdite naredbu i otvorite izbornik Datoteka u prozoru Aplikacije. Odaberite funkciju "Add/Remove Snap-in" i dodajte uslužni program "IP Security and Policy Management". U potvrdnom okviru "Lokalno računalo" kliknite gumb Zatvori da biste dovršili čarobnjaka.
  • Desnom tipkom miša kliknite redak "Pravila sigurnosti IP-a" da biste otvorili kontekstni izbornik. Odaberite naredbu “Manage IP filter Lists and Filter Actions” i označite potvrdni okvir “All ICMP Traffic”. Nakon toga idite na odjeljak "Upravljanje radnjama filtra". Pritisnite gumb Dalje i potvrdite okvir pored "Blokiraj". Potvrdite postavku i zatvorite dijaloški okvir.
  • Odaberite naredbu "Create IP Security Policy" iz kontekstnog izbornika "IP Security Policies". Otvorit će se čarobnjak za izradu pravila u kojem u odgovarajuće polje navedite “Blokiraj ping”. Poništite okvire uz "Aktiviraj pravilo zadanog odgovora" i označite okvire pored "Uredi svojstva". Spremite postavke i zatvorite prozor čarobnjaka.
  • Kako onemogućiti ping - verzija za ispis

    Možete naučiti kako konfigurirati MikroTik na online tečaju o opremi ovog proizvođača. Autor tečaja je certificirani MikroTik trener. Više možete pročitati na kraju članka.

    Članak daje odgovor na pitanje koliko je opasno blokirati ICMP promet.

    ICMP je jabuka razdora

    Mnogi mrežni administratori vjeruju da Internet Control Message Protocol (ICMP) predstavlja sigurnosni rizik i stoga ga treba uvijek blokirati. Istina je da protokol ima neke povezane sigurnosne probleme i da bi neke zahtjeve trebalo blokirati. Ali to nije razlog blokirati sav ICMP promet!

    ICMP promet ima mnoge važne funkcije; neki od njih su korisni za rješavanje problema, dok su drugi potrebni za pravilan rad mreže. Ispod su neki važni dijelovi ICMP protokola koje biste trebali znati. Trebali biste razmotriti kako ih najbolje usmjeriti kroz svoju mrežu.

    Echo zahtjev i Echo odgovor

    IPv4 – Echo zahtjev (Type8, Code0) i Echo odgovor (Type0, Code0)
    IPv6 – Echo zahtjev (Type128, Code0) i Echo odgovor (Type129, Code0)

    Svi dobro znamo da je ping jedan od prvih alata za rješavanje problema. Da, ako omogućite obradu ICMP paketa na svom hardveru, to znači da je vaš host sada vidljiv, ali ne sluša li vaš već port 80 i šalje odgovore na zahtjeve klijenta? Naravno, blokirajte i ove zahtjeve ako stvarno želite da vaš DMZ bude na rubu mreže. Ali blokiranjem ICMP prometa unutar vaše mreže nećete ojačati svoju sigurnost; naprotiv, završit ćete sa sustavom s nepotrebno složenim postupkom rješavanja problema ("Molimo provjerite odgovara li pristupnik na mrežne zahtjeve?", "Ne, ali to me uopće ne uzrujava jer me nije briga.” neće ništa reći!”).

    Zapamtite, također možete dopustiti zahtjevima da idu u određenom smjeru; na primjer, konfigurirajte opremu tako da Echo zahtjevi s vaše mreže idu na Internet, a Echo odgovori s Interneta na vašu mrežu, ali ne obrnuto.

    Potrebna fragmentacija paketa (IPv4) / Paket je prevelik (IPv6)

    IPv4 – (Tip3, Kod4)
    IPv6 – (Type2, Code0)

    Ove komponente ICMP protokola vrlo su važne jer su važna komponenta u Path MTU Discovery (PMTUD), koji je sastavni dio TCP protokol. Omogućuje dvama glavnima da prilagode vrijednost TCP maksimalne veličine segmenta (MSS) na vrijednost koja odgovara najmanjem MTU duž komunikacijskog puta između dva odredišta. Ako duž putanje paketa postoji čvor s manjom maksimalnom jedinicom prijenosa od pošiljatelja ili primatelja, a oni nemaju sredstva za otkrivanje ovog sudara, tada će promet biti tiho odbačen. I nećete razumjeti što se događa s komunikacijskim kanalom; drugim riječima, "za vas će doći veseli dani".

    Nemojte fragmentirati – ​​ICMP neće proći!

    Prijenos IPv4 paketa s postavljenim bitovima Nemoj fragmentirati (većina njih!) ili IPv6 paketa (zapamtite da u IPv6 nema fragmentacije usmjerivačima) koji su preveliki za prijenos kroz sučelje uzrokovat će da usmjerivač odbaci paket i generirajte odgovor izvoru prijenosa sa sljedećim ICMP pogreškama: Potrebna fragmentacija ( Potrebna fragmentacija), ili pakiranje je preveliko ( Paket također velik). Ako se odgovori s ovim pogreškama ne mogu vratiti pošiljatelju, on će protumačiti izostanak potvrdnih odgovora o isporuci ACK paketa ( Priznanje) od primatelja kao zagušenje/gubitak i izvor za ponovni prijenos paketa koji će također biti odbačeni.

    Teško je identificirati uzrok takvog problema i brzo ga riješiti; TCP postupak rukovanja radi dobro jer uključuje male pakete, ali čim dođe do masovnog prijenosa podataka, sesija prijenosa se zamrzava jer izvor prijenosa ne primati poruke o greškama.

    Istraživanje putanje isporuke paketa

    RFC 4821 je osmišljen kako bi pomogao sudionicima u mrežnom prometu da zaobiđu ovaj problem korištenjem ispitivanja putanje paketa (Otkrivanje puta MTU (PLPMTUD). Standard vam omogućuje otkrivanje maksimalne količine podataka (Maksimalna prijenosna jedinica (MTU), koji se može prenijeti protokolom u jednoj iteraciji, postupnim povećanjem maksimalne veličine korisnog bloka podataka (Maksimalna veličina segmenta (MSS), kako bi se pronašla najveća moguća veličina paketa bez njegovog fragmentiranja na putu od odašiljača do prijamnika. Ova funkcionalnost smanjuje ovisnost o pravodobnom primanju odgovora na pogreške putem Internet Control Message Protocol (ICMP) i dostupna je u većini skupova mrežnih uređaja i operativnih sustava klijenata. Nažalost, nije tako učinkovita kao izravno dobivanje podataka o maksimalnoj mogućoj veličini poslanih paketa. Molimo dopustite ovim ICMP porukama da se vrate na izvor prijenosa, u redu?

    Vrijeme prijenosa paketa je prekoračeno

    IPv4 – (Tip11, Kod0)
    IPv6 – (Tip3, Kod0)

    Traceroute je vrlo koristan alat za rješavanje problema mrežne veze između dva domaćina, s pojedinostima o svakom koraku puta.


    Šalje paket s vijekom trajanja podatkovnog paketa za IP protokol (Vrijeme za život (TTL) jednak 1 da bi prvi usmjerivač poslao poruku o pogrešci (uključujući vlastitu IP adresu) da je paketu isteklo vrijeme života. Zatim šalje paket s TTL 2 i tako dalje. Ovaj postupak je neophodan kako bi se otkrio svaki čvor duž putanje paketa.

    NDP i SLAAC (IPv6)

    Traženje usmjerivača (RS) (Type133, Code0)
    Oglašavanje usmjerivača (RA) (Type134, Code0)
    Privlačenje susjeda (NS) (Type135, Code0)
    Oglašavanje susjeda (NA) (Type136, Code0)
    Preusmjeravanje (Tip137, Kod0)

    Dok je IPv4 koristio protokol razlučivanja adrese (ARP) za mapiranje sloja 2 i sloja 3 mrežni model OSI, IPv6 ima drugačiji pristup u obliku Neighbor Discovery Protocol (NDP). NDP pruža mnoge značajke uključujući otkrivanje usmjerivača, otkrivanje prefiksa, razlučivanje adrese i više. Uz NDP, StateLess Address AutoConfiguration (SLAAC) omogućuje dinamičku konfiguraciju glavnog računala na mreži, slično konceptu Dynamic Host Configuration Protocol (DHCP) (iako je DHCPv6 namijenjen za detaljniju kontrolu).

    Ovih pet tipova ICMP poruka ne smiju biti blokirani unutar vaše mreže (zanemarujući vanjski perimetar) kako bi IP protokol za prijenos podataka ispravno funkcionirao.

    ICMP numeriranje tipa

    Internet Control Message Protocol (ICMP) sadrži mnogo poruka koje su identificirane poljem "type".

    Tip Ime Specifikacija
    0 Odgovor jekom
    1 Nedodijeljeno
    2 Nedodijeljeno
    3 Odredište nedostupno
    4 Gušenje izvora (zastarjelo)
    5 Preusmjeri
    6 Alternativna adresa glavnog računala (zastarjelo)
    7 Nedodijeljeno
    8 Jeka
    9 Oglas za ruter
    10 Traženje usmjerivača
    11 Vrijeme je prekoračeno
    12 Problem s parametrima
    13 Vremenska oznaka
    14 Vremenska oznaka Odgovor
    15 Zahtjev za informacijama (zastarjelo)
    16 Informacijski odgovor (zastarjelo)
    17 Zahtjev za masku adrese (zastarjelo)
    18 Odgovor maske adrese (zastarjelo)
    19 Rezervirano (za sigurnost) Solo
    20-29 Rezervirano (za eksperiment robusnosti) ZSu
    30 Traceroute (zastarjelo)
    31 Pogreška konverzije datagrama (zastarjelo)
    32 Preusmjeravanje mobilnog hosta (zastarjelo) David_Johnson
    33 IPv6 Gdje ste (zastarjelo)
    34 IPv6 I-Am-Here (zastarjelo)
    35 Zahtjev za mobilnu registraciju (zastarjelo)
    36 Odgovor o mobilnoj registraciji (zastarjelo)
    37 Zahtjev za naziv domene (zastarjelo)
    38 Odgovor na naziv domene (zastarjelo)
    39 PRESKOČI (zastarjelo)
    40 Photuris
    41 ICMP poruke koje koriste eksperimentalni protokoli mobilnosti kao što je Seamoby
    42 Prošireni eho zahtjev
    43 Prošireni eho odgovor
    44-252 Nedodijeljeno
    253 Eksperiment 1 u stilu RFC3692
    254 Eksperiment 2 u stilu RFC3692
    255 Rezervirano

    Nekoliko riječi o ograničenjima brzine

    Iako ICMP poruke poput onih opisanih u ovom članku mogu biti vrlo korisne, zapamtite da generiranje svih ovih poruka oduzima CPU vrijeme na vašim usmjerivačima i generira promet. Očekujete li doista da ćete dobiti 1000 pingova u sekundi kroz svoj firewall u normalnoj situaciji? Hoće li se to smatrati normalnim prometom? Vjerojatno ne. Ograničiti propusnost mreže za ove vrste ICMP prometa kako vam odgovara; ovaj vam korak može pomoći da zaštitite svoju mrežu.

    Čitajte, istražujte i razumite

    S obzirom da rasprava o temi “blokirati ili ne blokirati” ICMP pakete uvijek dovodi do zabune, sporova i neslaganja, predlažem da nastavite proučavati ovu temu sami. Dao sam mnogo poveznica na ovoj stranici; vjerujem da biste za potpunije razumijevanje problema trebali potrošiti vrijeme na njihovo čitanje. I donesite informirane odluke o tome što najbolje funkcionira za vašu mrežu.

    MikroTik: gdje kliknuti da bi radio?
    Uz sve svoje prednosti, MikroTik proizvodi imaju jedan nedostatak - postoji mnogo razbacanih i ne uvijek pouzdanih informacija o njegovoj konfiguraciji. Preporučujemo pouzdani izvor na ruskom, gdje je sve prikupljeno, logično i strukturirano - video tečaj “ Postavljanje MikroTik opreme" Tečaj uključuje 162 video lekcije, 45 laboratorijskih radova, pitanja za samotestiranje i bilješke. Svi materijali ostaju kod vas na neodređeno vrijeme. Početak tečaja možete pogledati besplatno ostavljanjem zahtjeva na stranici tečaja. Autor tečaja je certificirani MikroTik trener.

    Vatrozid je prva linija obrane za bilo koji poslužitelj i protiv njega ispravne postavke ovisi o tome može li napadač dalje napredovati u svojim pokušajima prodora u sustav. Suvremeni vatrogasni softver nudi mnogo sigurnosnih mehanizama pomoću kojih možete držati 99% napadača izvan petlje. I sve to bez potrebe za kupnjom skupe opreme i komercijalnog softvera.

    Glavni cilj svih hakera je dobiti pristup interpreteru naredbi poslužitelja kako bi iskoristili njegove mogućnosti u svoju korist. Najčešće se prodor u "svetinju nad svetinjama" provodi pomoću rupa u uslugama ili putem pogađanja lozinke (gruba sila) jednoj od njih (na primjer, ssh).

    Skeniranje priključaka

    Kako bi identificirao prisutnost ranjivih usluga na računalu, napadač izvodi izviđanje pomoću skenera portova i raznih sustava za otkrivanje ranjivosti. Obično se nmap koristi kao skener portova, koji može skenirati desetke na razne načine au nekim slučajevima može otkriti verzije OS-a i usluge. Ovdje je popis posebno popularnih nmap zastavica koje obično koriste napadači:

    Nmap oznake koje se koriste tijekom skeniranja

    • -sT - normalno TCP skeniranje otvaranjem veze na navedeni port i njezinim prekidom;
    • -sS - SYN/ACK skeniranje, veza se prekida odmah nakon odgovora na zahtjev za otvaranjem veze;
    • -sU - UDP skeniranje;
    • -sF - skeniranje u paketima s postavljenom FIN zastavom;
    • -sX - skeniranje s paketima s postavljenim zastavicama FIN, PSH i URG;
    • -sN - skeniranje u paketima bez postavljenih zastavica.

    Metoda protiv skeniranja je jednostavna i poznata svakom administratoru sustava. Sastoji se od jednostavnog zatvaranja svih usluga koje ne bi trebale biti vidljive s vanjske mreže. Na primjer, ako stroj pokreće usluge ssh, samba i apache, a samo web poslužitelj s korporativnom web stranicom trebao bi biti vidljiv iz vanjskog svijeta, vatrozid se može konfigurirati ovako:

    Početno postavljanje iptables

    outif="eth1"
    iptables -F
    iptables -i $outif -A INPUT \
    -m praćenje\
    --ctstate USTANOVLJENO, POVEZANO \
    -j PRIHVATITI
    iptables -i $outif -A INPUT -p tcp \
    --dport 80 -j PRIHVATITI
    iptables -i $outif -P INPUT DROP
    iptables -i $outif -P PRIHVAĆANJE IZLAZA

    Početno postavljanje ipfw-a

    outif="rl0"
    ipfw dodaj dopusti ip od bilo kojeg do bilo kojeg \
    putem lo0
    ipfw dodaj dopusti ip od mene bilo kojem \
    preko $outif
    ipfw add dopusti tcp od bilo koje meni \
    uspostavljen putem $outif
    ipfw dodaj dopusti tcp s bilo kojeg 80 \
    meni putem $outif
    ipfw dodaj zabrani ip s bilo kojeg na bilo koji \
    preko $outif

    Početna pf postavka

    outif="rl0"
    postavite preskakanje na lo0
    blokiraj sve
    onesvijestiti se na $outif od $outif \
    u bilo koje stanje zadržati
    proslijedi $outif proto iz bilo kojeg \
    na $outif port 80

    Sva tri skupa pravila čine istu stvar - dopuštaju bilo kojem prometu da prođe kroz sučelje povratne petlje, dopuštaju prihvaćanje paketa iz već uspostavljenih veza (tako da, na primjer, preglednik može primiti odgovor na zahtjev za udaljeni poslužitelj), dopustite pozive prema priključku 80, blokirajući sve ostale i dopustite sve veze prema van. Imajte na umu da ako smo u primjerima iptables i ipfw izričito postavili pravila za dopuštanje primanja paketa iz već uspostavljenih veza, tada je u slučaju pf bilo dovoljno navesti "zadrži stanje" u skupu pravila, dopuštajući sve odlazne veze.

    Općenito, ova shema za zaštitu mrežnih usluga od skeniranja i upada radi izvrsno, ali možemo ići dalje i konfigurirati vatrozid tako da se neke vrste skeniranja uopće ne mogu izvoditi. Tehnički to ne možemo učiniti za redovita skeniranja (nmap oznake "-sT", "-sS" i "-sU") jednostavno zato što tu nema ništa kriminalno, ali nestandardne vrste skeniranja kao što su "-sN" "-sF " i "-sX" generiraju pakete koje nikako nisu mogle stvoriti legitimne aplikacije.

    Stoga, bez imalo sumnje, odbacujemo takve veze.

    Metode za borbu protiv egzotičnih vrsta skeniranja

    # Onemogućite FIN skeniranje
    Linux> iptables -A INPUT –p tcp\
    –m tcp\
    --tcp-flags FIN,ACK FIN -j DROP
    FreeBSD>
    nije uspostavljen tcpflags fin
    # Onemogući X-scan
    Linux>
    --tcp-zastavice FIN,SYN,RST,PSH,ACK,URG
    FIN,SYN,RST,PSH,ACK,URG\
    –j KAP
    FreeBSD> ipfw add reject tcp from any to any \
    tcp zastavice fin, syn, rst, psh, ack, urg
    # Onemogući N-scan
    Linux> iptables -A INPUT –p tcp –m tcp\
    --tcp-zastavice FIN,SYN,RST,PSH,ACK,URG NEMA –j DROP
    FreeBSD> ipfw add reject tcp from any to any \
    tcp zastavice !fin, !syn, !rst, !psh, !ack, !urg
    U OpenBSD-u se svi ti redovi mogu zamijeniti jednostavnim unosom na početku
    /etc/pf.conf:
    ribati u svim

    Direktiva čišćenja omogućuje mehanizam normalizacije paketa u kojem se fragmentirani paketi ponovno spajaju, a paketi s nevažećim kombinacijama zastavica se odbacuju. Osim egzotičnih vrsta skeniranja, scrub vam također omogućuje da se zaštitite od obmanjujućih sustava za otkrivanje upada (slanje visoko fragmentiranih paketa) i nekih vrsta DoS napada.

    Za zaštitu od SYN/ACK skeniranja pokrenutih korištenjem nmap "-sS" oznake, možemo koristiti pasivnu metodu otiska OS-a dostupnu u pf i iptables/netfilter vatrozidima (od verzije 1.4.6). Tijekom redovnog skeniranja (zastavica "-sT"), nmap koristi standardno sučelje utičnice operativnog sustava, tako da se takvo skeniranje gotovo ne razlikuje od toka regularnih paketa (pogledat ćemo neke od njegovih razlika u nastavku), međutim , tijekom SYN/ACK skeniranja, nmap sam generira pakete, tako da imaju neke značajke koje odaju njihov izvor. Pasivna metoda otkrivanja OS-a omogućuje vam da identificirate te pakete i odbacite ih pomoću standardnih pravila vatrozida:

    OpenBSD> blokirajte brzo iz bilo kojeg OS NMAP-a
    Linux> iptables -I INPUT -p tcp -m osf --genre NMAP \
    -j ISPUŠTITI

    Osf modul vatrozida iptables/netfilter koristi bazu podataka otisaka prstiju koju su sastavili i ažurirali programeri OpenBSD-a (/etc/pf.os), tako da bi oba ova pravila trebala dati iste rezultate. Također je zanimljivo da se mogu učinkovito suprotstaviti funkciji otkrivanja OS-a uslužnog programa nmap (oznaka "-O").

    Sada smo zaštićeni od gotovo svih vrsta skeniranja, osim standardnog i glupog "-sT". Što učiniti s njim? Zapravo je jednostavno. Činjenicu skeniranja portova lako je uočiti jednostavnom analizom zapisa vatrozida. Ako je u kratkom vremenskom razdoblju bilo mnogo veza na različite portove, to znači da smo bili skenirani. Sve što ostaje je prenijeti ovu ideju na pravila vatrozida. Postoji izvrstan recept za iptables koji blokira sve koji su preuporni u kucanju na portove koji ne rade:

    Borba protiv skeniranja s iptables

    # Provjerite kucanje na neradnim portovima (10 na sat)

    --sekundi 3600 --broj pogodaka 10 --rttl -j POVRATAK
    # Druga provjera za kucanje na neradnim portovima (2 u minuti)
    iptables -A INPUT -m recent --rcheck \
    --sekundi 60 --broj pogodaka 2 --rttl -j POVRATAK
    # Stavili smo adrese onih koji kucaju na listu
    iptables -A INPUT -m recent --set
    # Odbacite pakete od svih onih koji prekorače ograničenje za
    broj veza
    iptables -P INPUT -j DROP

    Instaliranjem paketa xtables-addons, koji sadrži razvoj patch-omatic projekta, dobit ćemo pristup PSD (Port Scan Detect) modulu, implementiranom po uzoru na scanlogd demon. Svi prethodni redovi mogu se lako zamijeniti jednostavnim pravilom:

    # iptables -A INPUT -m psd -j DROP

    Nažalost, nema ništa slično u ipfw i pf filterima paketa, ali to nije problem, jer se PortSentry daemon i scanlogd dobro suprotstavljaju skeniranjem portova.

    Zabrana icmp poruka

    Također je dobra praksa onemogućiti ICMP poruke koje bi mogle uzrokovati Dodatne informacije o hostu ili se koristiti za izvođenje raznih zlonamjernih radnji (na primjer, mijenjanje tablice usmjeravanja). Dolje je tablica s popisom mogućih vrsta ICMP poruka:

    Vrste ICMP poruka

    • 0 - echo odgovor (echo odgovor, ping)
    • 3 - odredište nedostupno (adresat je nedostupan)
    • 4 - prigušivanje izvora (prigušivanje izvora, molimo vas da pakete šaljete sporije)
    • 5 - preusmjeriti
    • 8 - echo zahtjev (echo zahtjev, ping)
    • 9 - reklama usmjerivača
    • 10 - traženje usmjerivača
    • 11 - premašeno vrijeme života (istek životnog vijeka paketa)
    • 12 - IP zaglavlje loše (neispravno zaglavlje IP paketa)
    • 13 - zahtjev za vremenski žig (zahtjev za vrijednošću vremenskog brojača)
    • 14 - odgovor na vremensku oznaku (odgovor na zahtjev za vrijednošću brojača vremena)
    • 15 - zahtjev za informacijama
    • 16 - informacijski odgovor (odgovor na zahtjev za informacijama)
    • 17 - zahtjev za adresnu masku (zahtjev za mrežnu masku)
    • 18 - odgovor maske adrese (odgovor na zahtjev maske mreže)

    Kao što vidite, odgovaranje na neke ICMP poruke može rezultirati otkrivanjem nekih informacija o hostu, dok druge mogu rezultirati izmjenom tablice usmjeravanja, pa ih je potrebno onemogućiti.

    Tipično, ICMP porukama 0, 3, 4, 11 i 12 dopušten je izlaz u vanjski svijet, dok se kao ulaz prihvaćaju samo 3, 8 i 12. Evo kako je to implementirano u različitim vatrozidima:

    Zabrana opasnih ICMP poruka

    Linux> iptables -A INPUT -p icmp\
    -icmp-tip 3,8,12 -j PRIHVAT
    Linux> iptables -A IZLAZ -p icmp\
    -icmp-tip 0,3,4,11,12 -j PRIHVAT
    FreeBSD> ipfw add dopusti icmp \
    od bilo kojeg do $outif u \
    putem $outif icmptype 3,8,12
    FreeBSD> ipfw add dopusti icmp \
    od $outif do bilo kojeg outa \
    putem $outif icmptype 0,3,4,11,12
    OpenBSD> pass inet proto icmp \
    od bilo kojeg do $outif \
    icmp-type ( 3, 8, 12 ) zadržati stanje
    OpenBSD> pass out inet proto icmp \
    od $outif do bilo kojeg \
    icmp-vrsta (0, 3, 4, 11, 12)\
    zadržati stanje

    Ako želite, možete blokirati sav ICMP promet, uključujući ping zahtjeve, ali to može utjecati na ispravan rad mreže.

    Sirova snaga

    Nakon što smo izvidjeli informacije o otvorene luke i OS, napadač pokušava prodrijeti u sustav, što se može temeljiti na iskorištavanju rupa u uslugama ili pogađanju lozinki. Vatrozid nam neće pomoći u sprječavanju mogućnosti hakiranja usluga, ali je lako usporiti proces brutalnog nametanja lozinki. Da bi se to postiglo, koriste se mogućnosti za ograničavanje broja paketa koji stižu na stroj s jedne IP adrese. Evo kako to učiniti pomoću iptables:

    Brute force zaštita s iptables

    # Lanac za provjeru spojeva
    iptables -N brute_check
    # Blokiraj adresu ako je preko 60
    sekundi je pokrenuo više od 2 veze

    --ažuriraj --sekundi 60\
    --hitcount 3 -j DROP
    # Ako nije, dopustite vezu i
    dodajte adresu na popis
    iptables -A brute_check -m recent\
    --set -j PRIHVATITI
    # Obrišite lanac INPUT
    iptables -F ULAZ
    # Pošalji brute_check u lanac
    svi koji se pokušaju povezati s
    22. luka

    --ctstate NOVO -p tcp \
    --dport 22 -j gruba_provjera
    iptables -P INPUT DROP

    Isto se može učiniti pomoću pf:

    Brute force zaštita pomoću pf

    # Napravite stol za brute forcers
    stol ustrajati
    # Blokiraj sve koji uđu u to
    blokirati brzo od
    # Stavite u bruteforcer tablicu svakoga tko pokrene više od dvije veze na portu 22 u minuti
    proslijedite na $ext_if inet proto tcp u $outif \
    port 22 zastave S/SA zadržati stanje \
    (max-src-conn-rate 60/2, \preopterećenje ispiranje)

    Vatrozid ipfw nema dovoljno funkcionalnosti za učinkovito suzbijanje bruteforcera, pa njegovi korisnici moraju koristiti naprednije alate visoka razina, poput posebnih PAM modula, sustava za otkrivanje upada i programa poput sshguarda.

    lažiranje

    Spoofing (krivotvorenje izvorne adrese paketa) može se koristiti za izvođenje DoS napada ili zaobilaženje vatrozida. U prvom slučaju lažiranje daje veliku prednost napadaču, jer značajno komplicira odgovor na napad (pakete koji stižu s potpuno različitim adresama pošiljatelja nije tako lako klasificirati i blokirati) i odgađa proces zatvaranja novih veza (obično lažna adresa je nedostupna, pa se veza zatvara tek nakon isteka vremenskog ograničenja). Spoofing, koji se provodi kako bi se zaobišli sigurnosni sustavi, manje je opasan i u većini slučajeva može se kontrolirati.

    Vrlo često, blokiranje vanjskog mrežne usluge hosta, administratori sustava ostavite ih otvorenima za određeni raspon adresa (na primjer, za povezivanje s kućnog računala). Nakon što je otkrio jednu od ovih adresa, napadač može formirati paket koristeći tu adresu kao povratnu adresu i tako se “provući” kroz vatrozid. Zatim može pogoditi redne brojeve TCP paketa i osigurati da servis koji vjeruje povratnoj adresi izvrši željenu radnju. Ovo je vrlo težak napad za implementaciju, koji ipak može izvesti kompetentan stručnjak, a ako govorimo o UDP protokolu, onda to može učiniti čak i haker.

    Srećom, lako se zaštititi od ovih napada. Dovoljno je ne otvarati portove nezaštićenih servisa prema vanjskom svijetu, a u slučaju hitne potrebe koristiti sigurnosne sustave samih servisa (primjerice, ssh certifikate) ili mehanizam “port knocking” (o kojem se govori na kraju članak).

    Situacija postaje kompliciranija kada je u pitanju mrežni most, odvajajući unutarnju i vanjsku mrežu (ili dvije lokalne mreže). Odnosi povjerenja unutar lokalna mreža- Uobičajena stvar. Usluge su dostupne svima, nema autentifikacije, enkripcije itd. - samo slastan zalogaj za provalnika. Budući da je na vanjskoj mreži, može saznati mrežnu masku interne mreže i generirati pakete s odgovarajućom povratnom adresom, što će dovesti do pristupa svim lokalnim resursima. Ovo je doista opasna situacija, ali se lako može spriječiti pravilnom konfiguracijom vatrozida ili OS-a.

    Da biste to učinili, dovoljno je zabraniti prolaz paketima čije povratne adrese odgovaraju onima koje se koriste u internoj mreži s vanjskog sučelja:

    Linux> iptables -A INPUT -i $outif \
    -s 192.168.1.0/24 -j PONICI
    FreeBSD> ipfw dodaj zabrani ip od \
    192.168.1.0/24 na bilo koji putem $outif
    OpenBSD> blokirati na $outif iz \
    192.168.1.0/24 na bilo koji

    Kao alternativu ili dodatnu sigurnosnu mjeru, možete (pa čak i trebate) koristiti posebne ipfw i pf direktive i postavke Linux kernela:

    Linux> echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
    FreeBSD> ipfw dodaj deny ip from any u any not antispoof in
    OpenBSD> brzo antispoof za $ext_if

    Ove tri naredbe daju iste rezultate. Svi paketi čije povratne adrese odgovaraju mrežnoj maski drugog sučelja se odbacuju.

    Prednosti IPTABLES-a

    Na kraju članka, pogledat ćemo nekoliko zanimljivih značajki iptables/netfilter koje mogu biti korisne u zaštiti vašeg poslužitelja od upada. Počnimo s mehanizmom daljinski upravljač firewall, nazvan "port knocking". Njegova je bit prisiliti vatrozid da izvrši određene radnje nakon povezivanja na određeni priključak. Ispod je primjer pravila koja otvaraju SSH port na 10 sekundi nakon kucanja na port 27520:

    iptables i lupanje porta
    # Lanac za provjeru veza sa zaštićenim portom
    iptables -N kucati
    # Dopustite vezu ako je došlo do kucanja unutar posljednjeg
    10 sekundi
    iptables -Knock -m recent --rcheck --seconds 10\
    -j PRIHVATITI
    # Obriši ULAZ
    iptables -F ULAZ
    # Dopusti sve što se već odnosi na uspostavljene veze
    iptables -A INPUT -m conntrack\
    --ctstate UTVRĐEN, POVEZAN -j PRIHVATLJIV
    # Svi pokušaji otvaranja veze na port 22 se šalju
    provjeriti u lancu kucanja

    -p tcp --dport 22 -j kucanje
    # Dodajte adresu osobe koja kuca na port 27520 na popis
    iptables -A INPUT -m conntrack --ctstate NOVO \
    -p tcp --dport 27520 -m recent --set
    # Kada kucate na susjedne portove, uklonite adresu s popisa
    iptables -A INPUT -m conntrack --ctstate NOVO -p tcp \
    -m multiport --dport 27519,27521 -m recent --ukloni
    # Zabraniti sve
    iptables -P INPUT DROP

    Treće pravilo od kraja dodaje adresu osobe koja kuca na popis. Ako isti stroj pristupi priključku 22 unutar 10 sekundi od kucanja, veza će se uspostaviti. Pretposljednje pravilo je zaštita od "grubog udarca". Ako napadač pokuša pokucati na sve portove uzastopno s nadom da će jedan od njih otvoriti port 22, ovo pravilo će raditi i njegova će adresa biti uklonjena s popisa odmah nakon što je pogodi.

    Drugi uslužni program iptables distribuira se u paketu xtables-addons (patch-o-matic) i zove se TARPIT. Ovo je radnja (isto kao ACCEPT ili DENY) koja "visi" vezu, sprječavajući napadača da je zatvori. Veza čiji paketi padnu u TARPIT bit će uspješno uspostavljena, ali će veličina prozora biti nula, tako da udaljeni stroj neće moći slati podatke, trošeći svoje resurse, a veza će se zatvoriti tek nakon isteka vremena. TARPIT se može koristiti u hitnim slučajevima za zaštitu od DoS-a:

    # iptables -A INPUT -p tcp -m tcp -dport 80 -j TARPIT

    Ili zavarati napadača i boriti se protiv skenera
    portovi (samo normalno TCP skeniranje, "-sT"):

    # iptables -A INPUT -p tcp -m tcp --dport 80 -j PRIHVATA
    # iptables -A INPUT -p tcp -m tcp --dport 25 -j PRIHVATA
    # iptables -A INPUT -p tcp -m tcp -j TARPIT

    Ova pravila stvaraju dojam sustava u kojem su svi portovi otvoreni, ali ako se pokušate spojiti na bilo koji od njih (osim 80 i 25), veze će se zamrznuti. Isti rezultat, ali bez propadanja veza, može se postići radnjom DELUDE, koja ispravno odgovara na sve pokušaje uspostavljanja veze, ali šalje RST paket kao odgovor na sve ostale pakete. Kako biste dodatno zbunili napadača, možete koristiti akciju CHAOS, koja nasumično aktivira jednu od dvije gore opisane akcije.

    zaključke

    Uz dovoljno znanja i pažljivog čitanja dokumentacije, možete stvoriti vrlo jak bastion kojem se neće tako lako približiti. Moderni vatrozidi, a posebno pf i iptables, nude brojne zaštite od nepozvanih gostiju, koje možete dobiti potpuno besplatno.

    Linkovi

    • sf.net/projects/sentrytools - PortSentry
    • www.openwall.com/scanlogd - scanlogd

    Borba protiv curenja resursa

    Kada koristite radnju TARPIT, svakako dodajte sljedeće pravilo u konfiguraciju, inače će "opuštene" veze pojesti resurse kada ih obrađuje podsustav conntrack:

    # iptables -t raw -I PREROUTING -p tcp --dport 25 -j NOTRACK