Kahe võrgukaardiga ruutiv tulemüür: erinevus redaktsioonide vahel
Allikas: Kuutõrvaja
Mine navigeerimisribaleMine otsikasti
| 60. rida: | 60. rida: | ||
if_int = "em1" # 192.168.100.254 | 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 | |||
serv_SMTP = "192.168.100.25" # smtp server | smtp = "10.0.1.17" # smtp server | ||
serv_HTTP = "192.168.100.80" # http server | serv_SMTP = "192.168.100.25" # smtp server, teenus | ||
serv_HTTP = "192.168.100.80" # http server, teenus | |||
icmp_types = "echoreq" | icmp_types = "echoreq" | ||
| 130. rida: | 131. rida: | ||
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 | |||
# | |||
# 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" | |||
Redaktsioon: 2. mai 2009, kell 11:39
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
# Sissepääs 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"
# 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"
# Avalikust võrgust tulemüüri taha läbivale liiklusele blacklisti rakendamine
block in quick on $ext_if from <blacklist> label "ESe_blacklist"
# Avalikust võrgust tulemüüri taha läbiv liiklus
pass in quick on $ext_if inet proto tcp to $serv_HTTP port { 80, 443 } tag TO_HTTP $synopts label "JSext_http-whitelist"
pass in quick on $ext_if inet proto tcp to $serv_SMTP port 25 tag TO_SMTP $synopts label "JSext_smtp-whitelist"
# 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ääs tulemüüri tagant avalikku võrku
#
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 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"