Enam kui kahe võrgukaardiga aadressteisendav tulemüür: erinevus redaktsioonide vahel
Allikas: Kuutõrvaja
Mine navigeerimisribaleMine otsikasti
| 3. rida: | 3. rida: | ||
Olgu eesmärgiks ühendada tulemüüri abil internetiga mitu privaatseid aadresse kasutavate serverite võrgusegmenti | Olgu eesmärgiks ühendada tulemüüri abil internetiga mitu privaatseid aadresse kasutavate serverite võrgusegmenti | ||
internet (AVALIK) | |||
| | |||
| em0, 192.168.102.35/28 | |||
__|__ | |||
em1 | | em4 | |||
-- ARENDUS 10.10.13.1/24 ---| |---------------- HALDUS 10.10.5.1/24---- | |||
em2 | | | |||
-- TEST 10.10.7./24 --------|_____| | |||
| | |||
| em3 | |||
| | |||
| | |||
| | |||
'------- TOODANG - 10.10.6.1/24 ------- | |||
* AVALIK - avalik võrk st internet, kust pöörduvad kliendid, sh arendajad | * AVALIK - avalik võrk st internet, kust pöörduvad kliendid, sh arendajad | ||
| 87. rida: | 78. rida: | ||
# | # | ||
if_avalik = "em0" # | if_avalik = "em0" # | ||
carp_avalik = "carp0" # | carp_avalik = "carp0" # 192.168.102.35 | ||
if_arendus = "em1" | if_arendus = "em1" # | ||
carp_arendus = "carp1" # | carp_arendus = "carp1" # 10.10.13.1 | ||
if_test = "em2" | if_test = "em2" # | ||
carp_test = "carp2" # | carp_test = "carp2" # 10.10.7.1 | ||
if_toodang = "em3" | if_toodang = "em3" # | ||
carp_toodang = "carp3" # | carp_toodang = "carp3" # 10.10.6.1 | ||
if_haldus = "em4" | if_haldus = "em4" # | ||
carp_haldus = "carp4" # | carp_haldus = "carp4" # 10.10.5.1 | ||
dns = " | dns = "192.168.96.222" # dns server | ||
ntp = " | ntp = "192.168.38.1" # ntp server | ||
ftp = " | ftp = "192.168.32.82" # ftp server | ||
ocsp = " | ocsp = "192.168.42.42" # ocsp server | ||
serv_real_SMTP = "192.168.100.25" # smtp server, teenus | serv_real_SMTP = "192.168.100.25" # smtp server, teenus | ||
serv_real_HTTP = "192.168.100.80" # http server, teenus | |||
serv_teenus_SMTP = "172.16.1.25" # smtp server, teenus | serv_teenus_SMTP = "172.16.1.25" # smtp server, teenus | ||
serv_teenus_HTTP = "172.16.1.80" # http server, teenus | serv_teenus_HTTP = "172.16.1.80" # http server, teenus | ||
| 116. rida: | 106. rida: | ||
# 10.0.1.18 - loomaaia tulemüüri ühe halduri töökohaarvuti ip aadress | # 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 | # 10.50.1.19 - loomaaia tulemüüri teise halduri töökohaarvuti ip aadress | ||
table <kontor> const { | table <kontor> const { 192.168.10.10 } | ||
# Reserveeritud. http://www.iana.org/assignments/ipv4-address-space | # Reserveeritud. http://www.iana.org/assignments/ipv4-address-space | ||
Redaktsioon: 7. juuni 2009, kell 09:31
Eesmärk
Olgu eesmärgiks ühendada tulemüüri abil internetiga mitu privaatseid aadresse kasutavate serverite võrgusegmenti
internet (AVALIK)
|
| em0, 192.168.102.35/28
__|__
em1 | | em4
-- ARENDUS 10.10.13.1/24 ---| |---------------- HALDUS 10.10.5.1/24----
em2 | |
-- TEST 10.10.7./24 --------|_____|
|
| em3
|
|
|
'------- TOODANG - 10.10.6.1/24 -------
- AVALIK - avalik võrk st internet, kust pöörduvad kliendid, sh arendajad
- ARENDUS - arendusvõrk, toimub teenuste arendus
- TEST - testvõrk, toimub teenuste testimine
- TOODANG - toodanguvõrk, toimub avalike teenuste pakkumine
- HALDUS - haldusvõrk, toimub haldus, nt monitooring ja varundamine
Peavad olema täidetud sellised nõuded
Tulemüür on liikluse lähte või sihtpunkt
Sissepääs tulemüüri
- haldusligipääs ssh, 22/tcp, piiratud ip aadressidelt
Väljapääs tulemüürist
- kellaaeg ntp, 123/udp
- nimeteenus, 53/udp,tcp
- süsteemsed teated smtp, 25/tcp
- tarkvara paigaldamine ftp serverist, 80/tcp
Tulemüürist läbipääs määratletud sihtvõrku
Läbipaas kõigist võrkudest AVALIK võrku
- kellaaeg ntp, 123/udp
- nimeteenus, 53/udp,tcp
- süsteemsed teated smtp, 25/tcp
- ocsp, 80/tcp
Läbipääs kõigist võrkudest TOODANG võrku
- eposti teenus smtp, 172.16.1.25:25/tcp -> 192.16.100.25:25/tcp
- veebiteenus, http, 172.16.1.80:80,443/tcp -> 192.16.100.25:80,443/tcp
- eposti ja veebiserveri pöördumised avalikku võrku paistavad samadel ip aadressidelt, mille kaudu nende poole pöördumine toimub
Läbipääs kõigist võrkudest ARENDUS võrku
- TODO
Läbipääs kõigist võrkudest TEST võrku
- TODO
Läbipääs kõigist võrkudest HALDUS võrku
Tulemüürist läbipääs määratletud lähtevõrgust kõigisse võrkudesse
Läbipääs HALDUS võrgust kõigidesse võrkudesse
- TODO
Paketifiltri seadistamine
Esitatud ülesande täitmiseks sobib kasutada sellist paketifiltri seadistusfaili /etc/pf.conf
######### MACROS and LISTS #########
#
if_avalik = "em0" #
carp_avalik = "carp0" # 192.168.102.35
if_arendus = "em1" #
carp_arendus = "carp1" # 10.10.13.1
if_test = "em2" #
carp_test = "carp2" # 10.10.7.1
if_toodang = "em3" #
carp_toodang = "carp3" # 10.10.6.1
if_haldus = "em4" #
carp_haldus = "carp4" # 10.10.5.1
dns = "192.168.96.222" # dns server
ntp = "192.168.38.1" # ntp server
ftp = "192.168.32.82" # ftp server
ocsp = "192.168.42.42" # ocsp server
serv_real_SMTP = "192.168.100.25" # smtp server, teenus
serv_real_HTTP = "192.168.100.80" # http server, teenus
serv_teenus_SMTP = "172.16.1.25" # smtp server, teenus
serv_teenus_HTTP = "172.16.1.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 { 192.168.10.10 }
# 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"
######### OPTIONS #########
#
set loginterface $if_ext
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
######### TRANSLATION ##########
#
# teisendus ligipääsuks postimasinasse
rdr on $if_ext inet proto tcp to 172.16.1.25 port 25 tag TO_SMTP -> 192.168.100.25
# teisendus ligipääsuks veebiserverisse
rdr on $if_ext inet proto tcp to 172.16.1.80 port { 80, 443 } tag TO_HTTPS -> 192.168.100.80
# teisendus postimasina väljapääsemiseks avalikku võrku
nat pass on $if_ext tagged FROM_SMTP -> 172.16.1.25
# teisendus veebiserveri väljapääsemiskeks avalikku võrku
nat pass on $if_ext tagged FROM_HTTP -> 172.16.1.80
######### FILTER ##########
#
# 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 ON LIIKLUS 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
block in on $if_ext label "ESext_vaikimisi"
block out log on $if_ext label "EVext_vaikimisi"
block in log on $if_int label "ESint_vaikimisi"
block out log on $if_int label "EVint_vaikimisi"
#
# BLACKLISTITUD, SPOOFITUD ja RESERVED LIIKLUSE KEELAMINE
#
# Avalikust võrgust tulemüüri taha läbivale liiklusele keelu
block in quick on $if_ext from <blacklist> label "ESe_blacklist"
block in quick on $if_ext from <spoofed> label "ESe_spoofed"
block in quick on $if_ext from <reserved> label "ESe_reserved"
#
# 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 $if_ext inet tagged TO_HTTP $synopts label "JSext_http"
pass in quick on $if_ext inet tagged 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 udp from { $serv_HTTP, $serv_SMTP } to $ntp port 123 tag TO_NTP $udpopts label "JSint_ntp"
# et teenusserveid saaks nimesid lahendada
pass in quick on $if_int inet proto { tcp, udp } from { $serv_HTTP, $serv_SMTP } to $dns port 53 tag TO_DNS $udpopts label "JSint_dns"
# et veebiserver saaks kontrollida kliendisertifikaatide kehtivust
pass in quick on $if_int inet proto tcp from $serv_HTTP to $ocsp port 80 tag TO_OCSP $tcpopts label "JSint_ocsp"
# et veebiserver saaks saata süsteemseid teateid
pass in quick on $if_int inet proto tcp from $serv_HTTP to $smtp port 25 tag FROM_SMTP $tcpopts label "JSint_smtp"
# et postimasin saaks kirju valja saata
pass in quick on $if_int inet proto tcp from $serv_SMTP to any port 25 tag FROM_SMTP $tcpopts label "JSint_smtp"
# et tagitud liiklus saaks tulemüürist välja
pass out quick on $if_ext tagged FROM_SMTP label "JVext_from_stmp"
pass out quick on $if_ext tagged FROM_HTTP label "JVext_from_http"
pass out quick on $if_ext tagged TO_OCSP label "JVext_ocsp"
pass out quick on $if_ext tagged TO_NTP label "JVext_ntp"
pass out quick on $if_ext tagged TO_DNS label "JVext_dns"
#
# 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"