Erinevus lehekülje "OpenBSD tulemüür" redaktsioonide vahel

Allikas: Kuutõrvaja
(PF paketifiltri reeglite kirjutamine)
(Teemad)
 
(ei näidata 2 kasutaja 100 vahepealset redaktsiooni)
1. rida: 1. rida:
===Sissejuhatus===
+
===OpenBSD tulemüür===
  
OpenBSD operatsioonisüsteemi kasutamine võrgusõlmes on tema üheks oluliseks kasutusalaks. OpenBSD tulemüüril (ruuteril) on muu hulgas sellised omadused
+
Järgnevad tekstid eeldavad, et ollakse tuttav OpenBSD kui operatsioonisüsteemi kasutamisega ning on olemas mõõdukas ettekujutus TCP/IP protokollist.
 +
 
 +
OpenBSD operatsioonisüsteemi kasutamine võrgusõlmes on tema üheks oluliseks kasutusalaks. Sõltuvalt konkreetsetest vajadustest võib OpenBSD tulemüüril olla realiseeritud selliseid funktsioone
  
 
* liikluse filtreerimine - pf, mitmesugustele tingimustele põhinevate piirangute seadmine sh automaatselt täituvad ja tühjenevad blacklistid, synproxy
 
* liikluse filtreerimine - pf, mitmesugustele tingimustele põhinevate piirangute seadmine sh automaatselt täituvad ja tühjenevad blacklistid, synproxy
 +
* NAT - mitte-avalike aadressidega arvutite interneti ühendamine
 
* liikluse prioritiseerimine - altq
 
* liikluse prioritiseerimine - altq
* koormusjaotur - pf
+
* koormusjaotur - pf, relayd
* statistika ja andmete analüüsiks kogumise vahendid (pfctl, pftop, pfstat, pflogd, tcpdump)
+
* tulemüüri kluster - mitmest erinevast füüsilisest arvutist koosnev üks loogiline tulemüür (nn active/passive või active/active režiimis; carp, pfsync)
* VPN - IPsec, stunnel
+
* statistika ja andmete analüüsiks kogumine (pfctl, pftop, tcpstat, pflogd, tcpdump, symon, syweb, netflow)
* redundantse tulemüüri klustri võimalus - pfsync (koos sessioonide edasiandmisega)
+
* Sild (ingl. k. bridge)
 
+
* ruutinguprotokollide bgp ja ospf kasutamine
Käesoleva teksti mõistmiseks on abiks mõõdukas ettekujutus TCP/IP protokollist.
 
 
 
===Ülesandepüstitus===
 
 
 
Tulemüüri seadistamine algab sellest, et võimalikult täpselt ette kujutada, millist tulemust saavutada soovitakse. Olgu käesoleva pala kontekstis tegu sellise ülesandepüstitusega, mida iseloomustab skeem
 
 
 
                  internet
 
                      |  default gw, 172.16.1.18
 
                      |
 
                      |  fxp0, 172.16.1.17/28
 
                    __|__ 
 
                  |    |  rl0, 10.0.1.254/24
 
                  |    |------ DMZ 10.0.1.0/24 -----
 
                  |_____|
 
                      |
 
                      |  em0, 192.168.1.254/24
 
                      |
 
                      |
 
                      |_______ KALAKE - 192.168.1.0/24 _________
 
 
 
ning peavad olema täidetud sellised nõuded
 
 
 
# Kohtvõrgu osast KALAKE, kus asuvad kasutajate töökohaarvutid pääseb piiramatult avalikku internetti ning DMZ võrku.
 
# Avalikust internetist peab pääsema ainult DMZ võrgus töötava veebiserveri juurde.
 
# DMZ võrgust ei saa algatada ühendusti kuskil suunas.
 
# Tulemüüri kohtvõrgu ja DMZ võrguliidestel töötab nimeserveri teenus.
 
# Tulemüüris tehakse NAT'i DMZ ning KALAKE võrgus paiknevatele arvutitele.
 
# DMZ ja KALAKE võrgu arvutite vaikelüüsiks ning nimeserveriks on vastavalt 10.0.1.254 ja 192.168.1.254.
 
 
 
===Tulemüüri võrgu seadistamine===
 
 
 
Peale tulemüüri paigaldamist, tuleks tulemüür füüsiliselt internetist lahti ühendada, seadistada käsitsi võrguseadmetele joonisel toodud aadressid, veel parem, veenduda, et eksisteerivad sellise sisuga järgnevad failid (et failidesse kirjutatud seadistused oleksid tänu nendele failidele kehtestatud, peaks peale failide muutmist arvutile tegema alglaadimise)
 
 
 
# cat /etc/hostname.fxp0
 
inet 172.16.1.17 255.255.255.240 NONE
 
# cat /etc/hostname.rl0
 
inet 10.0.1.254 255.255.255.0 NONE
 
# cat /etc/hostname.em0
 
inet 192.168.1.254 255.255.255.0 NONE
 
# cat /etc/mygate
 
172.16.1.18
 
# cat /etc/resolv.conf
 
lookup file bind
 
127.0.0.1
 
# cat /etc/sysctl.conf | grep net.inet.ip.forward
 
net.inet.ip.forwarding=1        # 1=Permit forwarding (routing) of IPv4 packets
 
 
 
Seejärel ühendada külge DMZ ja KALAKE kohtvõrgust mõni arvuti ning veenduda, et kui paketifilter on välja lülitatud
 
 
 
# pfctl -d
 
 
 
siis ruuting töötab. Seda võiks kontrollida nt ping programmi abil.
 
 
 
===Nimeserveri kasutamine===
 
 
 
Üldiselt töötavad võrku ühendatud arvutid paremini, kui nimesüsteem töötab korrektselt. Seepärast tuleb käivitada kohalikke nimeseid ja vastavaid pöördteisendusi lahendava ning nn cache'ivas rezhiimis töötava nimeserveri. Alustuseks sobib kävitada lihtsalt vaikimisi /var/named kataloogis olevate seadistustega nimeserver
 
 
 
# named
 
 
 
ning veendumaks, et ta töötab küsida
 
 
 
# dig @localhost localhost
 
 
 
Nimeserveri kasutamise kohta on üksikasjalikum juhend toodud palas 'OpenBSD levinud teenuste seadistamine ja käivitamine'.
 
 
 
===pfctl programmi kasutamine===
 
 
 
PF paketifiltri tööd juhitakse programmiga pfctl, mille abil saab laadida tekstifailis kirjas olevad paketifiltri reeglid ning lisaks paketifiltri välja ja sisse lülitamitada. Tavaliselt on reeglid kirjas failiks /etc/pf.conf. Põhjalik PF paketifiltri juhend asub aadressil http://www.openbsd.org/faq/pf/index.html.
 
 
 
Selleks, et liiklus läbiks tulemüüri, võiks kõige lihtsamal olla süntaksiliselt korrektse /etc/pf.conf faili sisu
 
 
 
pass all
 
  
Reeglite laadimine ja kehtestamine toimub käsuga, nii tuleb öelda ka iga kord peale /etc/pf.conf faili muutmist muudatuste kehtestamiseks
+
Muude populaarsete tulemüürilahenduste seas paistab OpenBSD paketifilter (tulemüür) silma sellistes aspektides
  
# pfctl -f /etc/pf.conf
+
* reeglite kirjutamise efektiivsus - mitme pordi või aadressi näitamine ühes reeglis, tabeli konstruktsioon, include'id ja ankrud mitmete failide vahel jaotatud seadistuste kasutamiseks
 +
* tulemüüri oleku jälgimise võimalus - pfctl utiliidi abil saab suvalisel ajahetkel täpselt kontrollida, millised ühendused tulemüürist läbi käivad ja millised paketifiltri reeglid on ühendusega seotud
 +
* tulemüüri paketifiltri tegevuste logimine - saab täpselt logida, millised pakette on lubatud läbi või milliseid on takistatud, label'ite kasutamine
 +
* synproxy - tulemüür tekitab tulemüüri taga töötava serveri eest ära 3-way tcp handshake, et kaitsta serverit syn-floodi eest
 +
* tcpcookies kasutamise võimalus puudub
 +
* aktiivne/passiivne kluster - kahest arvutist saab moodustada ühe loogilise tulemüüri, igal ajahetkel pakub teenust vaid üks klustri komponent, kusjuures ümberlülitumisel võetakse üle ka ühendused, st olemasolevad tcp ühendused ei katke
 +
* aktiivne/aktiivne kluster - kahest arvutist saab moodustada ühe loogilise tulemüüri, nt src ip aadressi alusel käib kliendi ühendus tulemüüri taga oleva serveriga kas läbi ühe või teise tulemüüri
 +
* automaatne blacklistimine - sõltuvalt allika iseloomust (nt kui palju ühendusi tehakse ajaühikus) saab korraldada allika ip aadressi täpsusega automaatse blacklistimise (sh blacklistist väljatoomise)
 +
* tcp/ip protokolli nö fundamentaalsete omaduste kasutamine tulemüüri seadistamisel - nt saab kontrollida tcp ühenduse pidamisega seotud timeout väärtuste alusel tulemüüri olekuid (nt unustatakse ära olekud, mis on tekkinud syn pakettidest, millele ei järgnenud kliendi poolset ack'i ettenäidatud aja jooksul; või unustatakse ära olekud, millega seoses ei ole toimunud reaalset andmevahtust etteantud aja vältel)
 +
* siltide (ingl. k. tag) kasutamine - tulemüüris on võimalik ühest seadmest sisenenud paketile lisada silt ning selle alusel teha otsustusi kui ta teisest seadmest väljub; tundub, et see ongi ainuvõimalik moodus turvalise (kontrollitakse sisenevat ja väljuvat liiklust), efektiivselt töötava ja efektiivselt hallatava tulemüüri moodustamiseks
  
Vajadusel paketifiltri sisse-ning väljalülitamine toimub vastavalt käskudega
+
OpenBSD pf on seejuures täies mahus porditud ka FreeBSD peale seega töötab 99% siin palas leiduvast süntaksist ja näitematerjalist
 +
erinevad on peamiselt vaid rajad ning mõned konkreetse süsteemi utiliidid
  
# pfctl -e
+
Lisaks saab sõltuvalt vajadusest tulemüüril kasutada nt selliseid teenuseid, mis küll iseenesest ei tulemüürimisega seotud
# pfctl -d
 
  
PF paketifiltri kontrolli all olevate parameetrite väärtusi saab vaadata käsuga, OpenBSD v. 4.1 vastav väljund on tootud illustratsiooniks, allpool on lühidalt seda väljundit kommenteeritud
+
* dhcp server
 +
* nimeserver - bind
 +
* VPN - IPsec, OpenVPN
 +
* veebivahendaja - squid
 +
* greylisting tarkvara - spamd
 +
* tftp
 +
* ntp
  
# pfctl -sa
+
===Teemad===
FILTER RULES:
 
pass all flags S/SA keep state
 
No queue in use
 
 
INFO:
 
Status: Enabled for 0 days 00:00:02          Debug: Urgent
 
 
State Table                          Total            Rate
 
  current entries                        0             
 
  searches                              12            6.0/s
 
  inserts                                0            0.0/s
 
  removals                              0            0.0/s
 
Counters
 
  match                                12            6.0/s
 
  bad-offset                            0            0.0/s
 
  fragment                              0            0.0/s
 
  short                                  0            0.0/s
 
  normalize                              0            0.0/s
 
  memory                                0            0.0/s
 
  bad-timestamp                          0            0.0/s
 
  congestion                            0            0.0/s
 
  ip-option                              0            0.0/s
 
  proto-cksum                            0            0.0/s
 
  state-mismatch                        0            0.0/s
 
  state-insert                          0            0.0/s
 
  state-limit                            0            0.0/s
 
  src-limit                              0            0.0/s
 
  synproxy                              0            0.0/s
 
 
TIMEOUTS:
 
tcp.first                  120s
 
tcp.opening                  30s
 
tcp.established          86400s
 
tcp.closing                900s
 
tcp.finwait                  45s
 
tcp.closed                  90s
 
tcp.tsdiff                  30s
 
udp.first                    60s
 
udp.single                  30s
 
udp.multiple                60s
 
icmp.first                  20s
 
icmp.error                  10s
 
other.first                  60s
 
other.single                30s
 
other.multiple              60s
 
frag                        30s
 
interval                    10s
 
adaptive.start            6000 states
 
adaptive.end              12000 states
 
src.track                    0s
 
 
LIMITS:
 
states        hard limit    10000
 
src-nodes    hard limit    10000
 
frags        hard limit    5000
 
tables        hard limit    1000
 
table-entries hard limit  200000
 
 
OS FINGERPRINTS:
 
696 fingerprints loaded
 
  
Siinjuures tuleks tähele panna järgmisi sektsioone
+
Käesolev käsitlus esineb pigem reaalselt tõenäoliselt esinevatele probleemidele sobivate lahenduste väljapakkumisena kui keskendub tähestikulises järjekorras erinevate programmide manuaalide (ingl. k. manpages) ümberjutustamisele.
  
* FILTER RULES - /etc/pf.conf failis sisaldub reegel kirjutati lahti 'pass all flags S/SA keep state', mis tähendab, et lisati juurde meie poolt ilmutatud kujul näitamata jäänud parameetrite vaikeväärtused
+
* [[:Tulemüüri kasutamise vajadus]]
* INFO - paketifilter on sisse lülitatud olekus, 'Status: Enabled for 0 days 00:00:02'
+
* Tulemüüri ettevalmistamiseks vajalik riistvara ja tarkvara
* TIMEOUTS - mitmesugused TCP/IP protokolli alusel töötavat andmevahetust reguleerivad timeout parameetrid
+
* [[Packet Filter]] - OpenBSD tulemüüritarkvara PF süntaksi tutvustus
* LIMITS - tulemüüri ressurssikasutusele seatud piirangud
+
* [[OpenBSD v. 4.7 paketifilter]]
 +
* [[:Kahe võrgukaardiga ruutiv tulemüür]]
 +
* [[:Kahe võrgukaardiga aadressteisendav tulemüür]]
 +
* [[:Enam kui kahe võrgukaardiga aadressteisendav tulemüür]]
 +
* [[:Liikluse prioritiseerimine tulemüüris]]
 +
* [[:Mitme välisühendusega tulemüür]]
 +
* Passive-active tulemüürikluster
 +
* Active-active tulemüürikluster
 +
* Sild
 +
* [[:Ruuting domeenid]]
 +
* [[:FTP kasutamine OpenBSD paketifiltriga]]
  
===PF paketifiltri reeglite kirjutamine===
+
===Märkused===
  
Paketifiltri reeglite failis on muude sektsioonide hulgas FILTER RULES sektsioon, mille abil abil kontrollitakse tulemüüri erinevaid võrguseadmeid läbivat liiklust ja sellest tulenevalt ka tulemüüri läbivat liiklust. Filter reegli juures on kirjas
+
* Paketifiltri abil ei saa kirjutada ümber OpenBSD arvutis lokaalselt genereeritud paketi dst ip aadressi ja porti.
  
* muster, millega iga võrguseadet läbivat TCP/IP paketti sh tema liikumise suunda võrreldakse
+
===Kasulikud lisamaterjalid===
* tegevus - pass või block
 
  
Pakette klapitatakse reeglitega nende seadistusfailis esinemise järjekorras, kusjuures viimasena paketiga klappinud reegli juures näidatud tegevus rakendatakse. Kui paketiga ei klapi ükski reegel, siis viimane ilmutamata kujul olev reegel lubab paketi läbi.
+
* http://home.nuug.no/~peter/pf/en/long-firewall.html
 +
* Pf ja iptables ning ipfilter testid
 +
* http://www.benzedrine.cx/pf-paper.html
 +
* http://undeadly.org/cgi?action=article&sid=20060927091645 (kolmeosalise artikli esimene osas, viited teistele seal)

Viimane redaktsioon: 20. mai 2010, kell 20:23

OpenBSD tulemüür

Järgnevad tekstid eeldavad, et ollakse tuttav OpenBSD kui operatsioonisüsteemi kasutamisega ning on olemas mõõdukas ettekujutus TCP/IP protokollist.

OpenBSD operatsioonisüsteemi kasutamine võrgusõlmes on tema üheks oluliseks kasutusalaks. Sõltuvalt konkreetsetest vajadustest võib OpenBSD tulemüüril olla realiseeritud selliseid funktsioone

  • liikluse filtreerimine - pf, mitmesugustele tingimustele põhinevate piirangute seadmine sh automaatselt täituvad ja tühjenevad blacklistid, synproxy
  • NAT - mitte-avalike aadressidega arvutite interneti ühendamine
  • liikluse prioritiseerimine - altq
  • koormusjaotur - pf, relayd
  • tulemüüri kluster - mitmest erinevast füüsilisest arvutist koosnev üks loogiline tulemüür (nn active/passive või active/active režiimis; carp, pfsync)
  • statistika ja andmete analüüsiks kogumine (pfctl, pftop, tcpstat, pflogd, tcpdump, symon, syweb, netflow)
  • Sild (ingl. k. bridge)
  • ruutinguprotokollide bgp ja ospf kasutamine

Muude populaarsete tulemüürilahenduste seas paistab OpenBSD paketifilter (tulemüür) silma sellistes aspektides

  • reeglite kirjutamise efektiivsus - mitme pordi või aadressi näitamine ühes reeglis, tabeli konstruktsioon, include'id ja ankrud mitmete failide vahel jaotatud seadistuste kasutamiseks
  • tulemüüri oleku jälgimise võimalus - pfctl utiliidi abil saab suvalisel ajahetkel täpselt kontrollida, millised ühendused tulemüürist läbi käivad ja millised paketifiltri reeglid on ühendusega seotud
  • tulemüüri paketifiltri tegevuste logimine - saab täpselt logida, millised pakette on lubatud läbi või milliseid on takistatud, label'ite kasutamine
  • synproxy - tulemüür tekitab tulemüüri taga töötava serveri eest ära 3-way tcp handshake, et kaitsta serverit syn-floodi eest
  • tcpcookies kasutamise võimalus puudub
  • aktiivne/passiivne kluster - kahest arvutist saab moodustada ühe loogilise tulemüüri, igal ajahetkel pakub teenust vaid üks klustri komponent, kusjuures ümberlülitumisel võetakse üle ka ühendused, st olemasolevad tcp ühendused ei katke
  • aktiivne/aktiivne kluster - kahest arvutist saab moodustada ühe loogilise tulemüüri, nt src ip aadressi alusel käib kliendi ühendus tulemüüri taga oleva serveriga kas läbi ühe või teise tulemüüri
  • automaatne blacklistimine - sõltuvalt allika iseloomust (nt kui palju ühendusi tehakse ajaühikus) saab korraldada allika ip aadressi täpsusega automaatse blacklistimise (sh blacklistist väljatoomise)
  • tcp/ip protokolli nö fundamentaalsete omaduste kasutamine tulemüüri seadistamisel - nt saab kontrollida tcp ühenduse pidamisega seotud timeout väärtuste alusel tulemüüri olekuid (nt unustatakse ära olekud, mis on tekkinud syn pakettidest, millele ei järgnenud kliendi poolset ack'i ettenäidatud aja jooksul; või unustatakse ära olekud, millega seoses ei ole toimunud reaalset andmevahtust etteantud aja vältel)
  • siltide (ingl. k. tag) kasutamine - tulemüüris on võimalik ühest seadmest sisenenud paketile lisada silt ning selle alusel teha otsustusi kui ta teisest seadmest väljub; tundub, et see ongi ainuvõimalik moodus turvalise (kontrollitakse sisenevat ja väljuvat liiklust), efektiivselt töötava ja efektiivselt hallatava tulemüüri moodustamiseks

OpenBSD pf on seejuures täies mahus porditud ka FreeBSD peale seega töötab 99% siin palas leiduvast süntaksist ja näitematerjalist erinevad on peamiselt vaid rajad ning mõned konkreetse süsteemi utiliidid

Lisaks saab sõltuvalt vajadusest tulemüüril kasutada nt selliseid teenuseid, mis küll iseenesest ei tulemüürimisega seotud

  • dhcp server
  • nimeserver - bind
  • VPN - IPsec, OpenVPN
  • veebivahendaja - squid
  • greylisting tarkvara - spamd
  • tftp
  • ntp

Teemad

Käesolev käsitlus esineb pigem reaalselt tõenäoliselt esinevatele probleemidele sobivate lahenduste väljapakkumisena kui keskendub tähestikulises järjekorras erinevate programmide manuaalide (ingl. k. manpages) ümberjutustamisele.

Märkused

  • Paketifiltri abil ei saa kirjutada ümber OpenBSD arvutis lokaalselt genereeritud paketi dst ip aadressi ja porti.

Kasulikud lisamaterjalid