Erinevus lehekülje "Kahe võrgukaardiga ruutiv tulemüür" redaktsioonide vahel
Allikas: Kuutõrvaja
(→Paketifiltri seadistamine) |
(→Paketifiltri seadistamine) |
||
102. rida: | 102. rida: | ||
set timeout tcp.closed 50 | set timeout tcp.closed 50 | ||
− | # | + | # |
+ | # HALDUSLIGIPÄÄS AVALIKUST VÕRGUST TULEMÜÜRI | ||
+ | # | ||
# ssh kaugligipaas haldusest | # ssh kaugligipaas haldusest | ||
pass in quick on $if_ext inet proto tcp from <kontor> to $if_ext port 22 $tcpopts (tcp.established 1064000) label "JSext_kontor" | pass in quick on $if_ext inet proto tcp from <kontor> to $if_ext port 22 $tcpopts (tcp.established 1064000) label "JSext_kontor" | ||
+ | # | ||
+ | # VAIKIMISI LIIKLUSE KEELD | ||
+ | # | ||
# Igasugune liiklus läbi tulemüüri võrguseadmete on vaikimisi keelatud | # Igasugune liiklus läbi tulemüüri võrguseadmete on vaikimisi keelatud | ||
# keelatud on sissepääs, väljapääs ja igas suunas läbipääs | # keelatud on sissepääs, väljapääs ja igas suunas läbipääs | ||
112. rida: | 117. rida: | ||
block in on $if_int label "ESint_vaikimisi" | block in on $if_int label "ESint_vaikimisi" | ||
block out on $if_int label "EVint_vaikimisi" | block out on $if_int label "EVint_vaikimisi" | ||
− | + | ||
+ | # | ||
+ | # BLACKLISTI RAKENDAMINE | ||
+ | # | ||
# Avalikust võrgust tulemüüri taha läbivale liiklusele blacklisti rakendamine | # Avalikust võrgust tulemüüri taha läbivale liiklusele blacklisti rakendamine | ||
block in quick on $ext_if from <blacklist> label "ESe_blacklist" | block in quick on $ext_if from <blacklist> label "ESe_blacklist" | ||
− | # Avalikust võrgust tulemüüri taha läbiv | + | # |
− | pass in quick on $ext_if inet proto tcp to $serv_HTTP port { 80, 443 } tag TO_HTTP $synopts label "JSext_http | + | # NORMAALSE LIIKLUSE LÄBIPÄÄSU LUBAMINE AVALIKUST VÕRGUST TULEMÜÜRI TAHA |
− | pass in quick on $ext_if inet proto tcp to $serv_SMTP port 25 tag TO_SMTP $synopts label "JSext_smtp | + | # |
+ | # Avalikust võrgust tulemüüri taha läbiv liikluse sisenemise lubamine | ||
+ | pass in quick on $ext_if inet proto tcp to $serv_HTTP port { 80, 443 } tag TO_HTTP $synopts label "JSext_http" | ||
+ | pass in quick on $ext_if inet proto tcp to $serv_SMTP port 25 tag TO_SMTP $synopts label "JSext_smtp" | ||
# Läbipääseva TO_HTTP ja TO_SMTP liikluse väljumise lubamine | # Läbipääseva TO_HTTP ja TO_SMTP liikluse väljumise lubamine | ||
124. rida: | 135. rida: | ||
pass out quick on $if_int tagged TO_SMTP label "JVint_smtp" | pass out quick on $if_int tagged TO_SMTP label "JVint_smtp" | ||
− | # | + | # |
− | # | + | # LÄBIPÄÄSU LUBAMINE TULEMUURI TAGANT AVALIKKU VÕRKU |
+ | # et teenusserverite kellaaeg oleks õige | ||
pass in quick on $if_int inet proto tcp from { $serv_HTTP, $serv_SMTP } to $ntp port 123 tag TO_NTP $tcpopts label "JSint_ntp" | pass in quick on $if_int inet proto tcp from { $serv_HTTP, $serv_SMTP } to $ntp port 123 tag TO_NTP $tcpopts label "JSint_ntp" | ||
+ | # et veebiserver saaks kontrollida kliendisertifikaatide kehtivust | ||
pass in quick on $if_int inet proto udp from $serv_HTTP to $ocsp port 80 tag TO_OCSP $tcpopts label "JSint_ocsp" | pass in quick on $if_int inet proto udp from $serv_HTTP to $ocsp port 80 tag TO_OCSP $tcpopts label "JSint_ocsp" | ||
pass out quick on $ext_if tagged TO_OCSP label "JVext_ocsp" | pass out quick on $ext_if tagged TO_OCSP label "JVext_ocsp" | ||
pass out quick on $ext_if tagged TO_NTP label "JVext_ntp" | pass out quick on $ext_if tagged TO_NTP label "JVext_ntp" | ||
− | + | ||
# | # | ||
# TULEMÜÜRIST ENDAST VÄLJAPÄÄS | # TULEMÜÜRIST ENDAST VÄLJAPÄÄS |
Redaktsioon: 2. mai 2009, kell 14:45
Eesmärk
Olgu eesmärgiks ühendada tulemüüri abil internetiga avalikke aadresse kasutatav serverite võrgusegment
internet 2 Mbit/s download | default gw, 172.16.1.18 768 kbit/s upload | | em0, 172.16.1.17/30 __|__ | | | | |_____| | | em1, 192.168.100.254/24 | | |_______ SERVERID - 192.168.100.0/24 _________
ning peavad olema täidetud sellised nõuded
- Sissepääs tulemüüri
- haldusligipääs ssh, 22/tcp
- Väljapääs tulemüürist
- kellaaeg ntp, 123/udp - nimeteenus, 53/udp,tcp - süsteemsed teated smtp, 25/tcp
- Läbipääs avalikust võrgust SERVERID võrku
- eposti teenus smtp, 25/tcp - veebiteenus, http, 80,443/tcp
- Läbipaas SERVERID võrgust avalikku võrku
- kellaaeg ntp, 123/udp - nimeteenus, 53/udp,tcp - süsteemsed teated smtp, 25/tcp - ocsp, 80/tcp
Tulemüüri seadistamine
Esitatud ülesande täitmiseks peab tulemüüris
- seadistamine sobivalt võrguseadmed
- lülitama sisse ip pakettide ruutimise
- käivitama ssh serveri
- käivitama ntp serveri (mida kasutatakse lokaalselt)
Paketifiltri seadistamine
Esitatud ülesande täitmiseks sobib kasutada sellist paketifiltri seadistusfaili /etc/pf.conf
# MACROS and LISTS # if_ext = "em0" # 172.16.1.17 if_int = "em1" # 192.168.100.254 ntp = "10.0.1.14" # ntp server ftp = "10.0.1.15" # ftp server ocsp = "10.0.1.16" # ocsp server smtp = "10.0.1.17" # smtp server serv_SMTP = "192.168.100.25" # smtp server, teenus serv_HTTP = "192.168.100.80" # http server, teenus icmp_types = "echoreq" tcpopts = "flags S/SA modulate state" synopts = "flags S/SAFR synproxy state" udpopts = "keep state" ######## TABLES ######### # # 10.0.1.18 - loomaaia tulemüüri ühe halduri töökohaarvuti ip aadress # 10.50.1.19 - loomaaia tulemüüri teise halduri töökohaarvuti ip aadress table <kontor> const { 10.0.1.18, 10.50.1.19 } # Reserveeritud. http://www.iana.org/assignments/ipv4-address-space table <reserved> const file "/etc/pf.tbl/reserved" # Valetatud aadressid. table <spoofed> const { 10.0.0.0/8 169.254.0.0/16 172.16.0.0/12 \ 192.0.2.0/24 192.168.0.0/16 224.0.0.0/4 } # Blacklist table <blacklist> persist file "/etc/pf.tbl/blacklist" # Whitelist table <whitelist> persist file "/etc/pf.tbl/whitelist" # Eesti table <eesti> persist file "/etc/pf.tbl/eesti" ######### OPTIONS ######### set loginterface $ext_if set optimization aggressive set timeout tcp.established 300 set limit states 500000 set limit frags 100 set timeout tcp.first 15 set skip on lo # set skip on $if_int set timeout tcp.closed 50 # # HALDUSLIGIPÄÄS AVALIKUST VÕRGUST TULEMÜÜRI # # ssh kaugligipaas haldusest pass in quick on $if_ext inet proto tcp from <kontor> to $if_ext port 22 $tcpopts (tcp.established 1064000) label "JSext_kontor" # # VAIKIMISI LIIKLUSE KEELD # # Igasugune liiklus läbi tulemüüri võrguseadmete on vaikimisi keelatud # keelatud on sissepääs, väljapääs ja igas suunas läbipääs block in on $if_ext label "ESext_vaikimisi" block out on $if_ext label "EVext_vaikimisi" block in on $if_int label "ESint_vaikimisi" block out on $if_int label "EVint_vaikimisi"
# # BLACKLISTI RAKENDAMINE # # Avalikust võrgust tulemüüri taha läbivale liiklusele blacklisti rakendamine block in quick on $ext_if from <blacklist> label "ESe_blacklist" # # NORMAALSE LIIKLUSE LÄBIPÄÄSU LUBAMINE AVALIKUST VÕRGUST TULEMÜÜRI TAHA # # Avalikust võrgust tulemüüri taha läbiv liikluse sisenemise lubamine pass in quick on $ext_if inet proto tcp to $serv_HTTP port { 80, 443 } tag TO_HTTP $synopts label "JSext_http" pass in quick on $ext_if inet proto tcp to $serv_SMTP port 25 tag TO_SMTP $synopts label "JSext_smtp" # Läbipääseva TO_HTTP ja TO_SMTP liikluse väljumise lubamine pass out quick on $if_int tagged TO_HTTP label "JVint_http" pass out quick on $if_int tagged TO_SMTP label "JVint_smtp" # # LÄBIPÄÄSU LUBAMINE TULEMUURI TAGANT AVALIKKU VÕRKU # et teenusserverite kellaaeg oleks õige pass in quick on $if_int inet proto tcp from { $serv_HTTP, $serv_SMTP } to $ntp port 123 tag TO_NTP $tcpopts label "JSint_ntp" # et veebiserver saaks kontrollida kliendisertifikaatide kehtivust pass in quick on $if_int inet proto udp from $serv_HTTP to $ocsp port 80 tag TO_OCSP $tcpopts label "JSint_ocsp" pass out quick on $ext_if tagged TO_OCSP label "JVext_ocsp" pass out quick on $ext_if tagged TO_NTP label "JVext_ntp" # # TULEMÜÜRIST ENDAST VÄLJAPÄÄS # # et tulemüüri kellaaeg oleks õige pass out on $if_ext inet proto udp to $ntp port 123 label "JVext_ntp" # et tulemüüri sees nimelahendus töötaks pass out on $if_ext inet proto { tcp, udp } to $dns port 53 label "JVext_to_dns" # et haldusteated saaksid välja pass out on $if_ext inet proto tcp to $smtp port 25 $tcpopts label "JVext_to_smtp" # et tulemüüri saaks tarkvara lisada pass out on $if_ext inet proto tcp to $ftp port 80 $tcpopts label "JVext_to_ftp"