Erinevus lehekülje "Kahe võrgukaardiga ruutiv tulemüür" redaktsioonide vahel

Allikas: Kuutõrvaja
(Paketifiltri seadistamine)
(Paketifiltri seadistamine)
100. rida: 100. rida:
 
   # set skip on $if_int
 
   # set skip on $if_int
 
   set timeout tcp.closed 50
 
   set timeout tcp.closed 50
 
+
 
 
   # Sissepääs tulemüüri
 
   # Sissepääs 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 "JShld_kontor"
+
   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
 
   # Igasugune liiklus läbi tulemüüri võrguseadmete on vaikimisi keelatud
112. rida: 112. rida:
 
   block out on $if_int label "EVint_vaikimisi"
 
   block out on $if_int label "EVint_vaikimisi"
 
    
 
    
  # Avalikust võrgust tulemüüri taha läbivale liiklusele whitelisti rakendamine
 
  pass in quick on $ext_if inet proto tcp from <whitelist> to $serv_HTTP port { 80, 443 } tag TO_HTTP $synopts label "JSext_http-whitelist"
 
  pass in quick on $ext_if inet proto tcp from <whitelist> to $serv_SMTP port 25 tag TO_SMTP $synopts label "JSext_smtp-whitelist"
 
 
 
   # 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 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"

Redaktsioon: 2. mai 2009, kell 14:33

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_loomaaed         = "10.0.1.15"         # ntp server
 ftp_loomaaed         = "10.0.1.16"         # ftp server
 ocsp_loomaaed        = "10.0.1.17"         # ocsp server
 serv_SMTP            = "192.168.100.25"    # smtp server
 serv_HTTP            = "192.168.100.80"    # http server
 
 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"