Hello! Uj vagyok a listan, ezert eloszoris udvozlok mindenkit. Egy nagyon hosszu levellel kezdek, amelyben egy konkret konfiguracion keresztul szeretnem kerni a segitsegeteket, illetve megtanulni (legalabbis megprobalni) a Zorp konfiguralasat. Akkor jojjon a konfig: from Zorp import Zorp, SockAddr, Listener, Zone, Service, Chainer from Zorp import Stream, Plug, POP3, AnyPy, Ftp, Session, Sink from Zorp import Receiver, Http, Auth from Zorp.Zorp import * from Zorp.LabelSet import LabelSet # Ez a tuzfal neve. Zorp.firewall_name = 'proba1@shinwa.hu' # Definialom az intranet zonat (192.168.0.0/255.255.255.0), # es a belulrol a DMZ-be engedni kivant szolgaltatasokat. # Egyelore http, ftp, ssh, pop3 es smtp kellene. Az # smtp-vel kapcsolatban: felteszek egy csak tovabbito # modban mukodo smtp-szervert a tuzfalra - ekkor kell-e # valamilyen Zorp service-t vagy ipchains szabalyt definialnom? Zorp.zones= [ Zone.InetZone("intranet","192.168.0.0","255.255.255.0", None, outbound_services["BDHttp","BDFtp","BDSsh","BDPop"], inbound_services[]), # Definialom a DMZ zonat (192.168.1.0/255.255.255.0), # es a belso halozatra iranyulo szolgaltatasokat. Zone.InetZone("DMZ", "192.168.1.0", "255.255.255.0", None, outbound_services[], inbound_services["BDHttp","BDFtp","BDSsh","BDPop"]) ] # A belso halorol a DMZ fele iranyulo http keresek # iranyitasara szolgal. # Ha azt szeretnem, hogy csak a belso proxy-szerveren # keresztul erhessek el a DMZ-t is, akkor fel kell # venni egy zonat a proxy-szervernek, es csak onnan # engedelyezni a szolgaltatast. Peldaul: # Zone.InetZone("proxy","192.168.0.210","255.255.255.0",None, # outbound_services["PDHttp","PDFtp"], # inbound_services[])] # Ekkor a "DMZ inbound_services"-be fel kell venni a # "PDHttp"-t es a "PDFtp"-t, valamint ki kell venni a # "BDHttp"-t es a "BDFtp"-t a DMZ-bol es az intranetbol is. # Ha "transparent_mode = 1" (ebben az esetben), akkor a # belso-proxyn nem kell beallitanom semmit. Ha viszont 0, # akkor be kell allitani, hogy o a gyermek-proxy, es a # tuzfal a szulo-proxy. # Ha transzparens, akkor kell egy redirect ipchains # szabaly hozza. class BDHttp(Http.HttpProxy): def config(self): self.transparent_mode = 1 # A belso halorol a DMZ fele iranyulo ftp keresek # iranyitasara szolgal. # A command_accept-ben megadott ftp parancsokat tudja # hasznalni a kliens. A NAT = 1 azt jelenti, hogy # maszkolom a kereseket. # Ha azt szeretnem, hogy csak a belso proxy-szerveren # keresztul erhessek el a DMZ-t is, akkor fel kell # venni egy zonat a proxy-szervernek, es csak onnan # engedelyezni a szolgaltatast. A fenti peldahoz tartozo # classok ugyanazok, mint a "BDFtp" es a "BDHttp", csak # a nevuk valtozik meg? Illetve a "def"-juk is ugyanaz, # ott is csak a nevuket kell megvaltoztatni? # # Az external_data_address a tuzfal DMZ feloli laba, az # internal_data_address pedig a tuzfal belso halozat # feloli laba. class BDFtp(Ftp.FtpProxy): def config(self): self.command_accept = 0x00000000 self.NAT = 1 self.fw_external_data_address="192.168.1.1" self.fw_internal_data_address="192.168.0.250" # A belso halorol a DMZ fele iranyulo ssh keresek # iranyitasara szolgal. class BDSsh(Plug.PlugProxy): def config(self): pass # A belso halorol a DMZ fele iranyulo pop3 keresek # iranyitasara szolgal. class BDPop(Plug.PlugProxy): def config(self): pass # Szolgaltatasok definicioi. def init(name): BDPop_service = \ Service.Service("BDpop", # Ha transzparensnek allitom be a pop3 service-t, akkor a # klienseknek a tuzfalat kell megadnom pop3 szerverkent? # A transzparensseg miatt kell ipchains redirect? # A "None,0" azt jelenti, hogy ne irja at a kliens cimet? Chainer.TransparentChainer(None,0), BDPop) BDHttp_service = \ Service.Service("BDHttp", # Ha nem transzparens http-t szeretnek, akkor InbandChainer-t # kell hasznalnom? A "None,1" azt jelenti, hogy nem adunk meg # cimet, es a kliens eredeti cime latszodjon? # A transzparensseg miatt kell ipchains redirect? Chainer.TransparentChainer(None,1), BDHttp) BDFtp_service = \ Service.Service("BDFtp", # Ha nem transzparens ftp-t szeretnek, akkor InbandChainer-t # kell hasznalnom? A "None,1" azt jelenti, hogy nem adunk meg # cimet, es a kliens eredeti cime latszodjon? # A transzparensseg miatt kell ipchains redirect? Chainer.TransparentChainer(None,1), BDFtp) BDSsh_service = \ Service.Service("BDSsh", # A transzparensseg miatt kell ipchains redirect? A "None,1" # azt jelenti, hogy nem adunk meg cimet, es a kliens eredeti # cime latszodjon? Chainer.TransparentChainer(None,1), BDSsh) # A 192.168.0.250 a tuzfal belso halo fele eso laba, de miert # ezek a portszamok vannak megadva? Ide irhatok nekem tetszo # portszamokat is, csak az ipchains redirect-et kell ezekre # beallitanom? Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",2110), BDPop_service) Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",3080), BDHttp_service) Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",3021), BDFtp_service) Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",3022), BDSsh_service) Elnezest kerek, ha tul hosszura nyult a levelem. A kovetkezok mar (remelhetoleg) rovidebbek lesznek :) -- Udvozlettel Zsiga
Hi! Beszúrva válaszolok, és aránylag keveset törlök, hogy minden egyértelmű legyen. Elnézést azoktól akiknek kicsi a sávszélességük. A levelezőm azt hiszi, hogy Kosa Attila a következőeket írta: []
# Definialom az intranet zonat (192.168.0.0/255.255.255.0), # es a belulrol a DMZ-be engedni kivant szolgaltatasokat. # Egyelore http, ftp, ssh, pop3 es smtp kellene. Az # smtp-vel kapcsolatban: felteszek egy csak tovabbito # modban mukodo smtp-szervert a tuzfalra - ekkor kell-e # valamilyen Zorp service-t vagy ipchains szabalyt definialnom?
Ha az smtp-t natív módban nyomod, akkor Zorp szolgáltatást nyilván nem kell definiálni hozzá. A mailhubok és a dns (MX) konfigurációjától, meg a csomagszűrési stílusodtól függ az hogy kell-e külön csomagszűrő szabály. Lássunk néhány példát: 1. smtp natív proxyval, a csomagszűrési stílus az hogy az interface-re közvetlenül jövő tcp kapcsolatokat acceptáljuk, az MX-ek a tűzfalra mutatnak, az intranetes mailhub(ok) a tűzfal felé route-olja a leveleket: Nem kell további csomagszűrő szabály. 2. smtp natív proxy, a csomagszűrési stílus az hogy az interface-re közvetlenül jövő tcp kapcsolatokat nem acceptáljuk, az MX-ek a tűzfalra mutatnak, az intranetes mailhub(ok) a tűzfal felé route-olja a leveleket: Egy ACCEPT szabály kell. 3. Két tűzfal HA megoldásban, a csomagszűrési stílus az hogy az interface-en beeső és a tűzfal másik oldalára menő kapcsolatokat deny-oljuk, és egyenként adunk neki redirect-et, a külső MX egy a tűzfalon "belül" lévő, internetről route-olható címre mutat (dmz), a belső mailhub(ok) MX alapján deliverálnak: Mindkét oldalon redirect szabály kell. Az ne zavarjon hogy a külső MX-ben szereplő címen nem is figyel MTA, mert mindkét irányt a tűzfalon futő natív proxy fogja továbbítani. Csak neki kell megmagyarázni, hogy a bejövő leveleket igaziból hová kell továbbítani. Ennek a megoldásnak az az előnye, hogy mindig az elsődleges tűzfal fogja kezelni a leveleket.
Zorp.zones= [ Zone.InetZone("intranet","192.168.0.0","255.255.255.0", None, outbound_services["BDHttp","BDFtp","BDSsh","BDPop"], inbound_services[]),
# Definialom a DMZ zonat (192.168.1.0/255.255.255.0), # es a belso halozatra iranyulo szolgaltatasokat. Zone.InetZone("DMZ", "192.168.1.0", "255.255.255.0", None, outbound_services[], inbound_services["BDHttp","BDFtp","BDSsh","BDPop"]) ]
# A belso halorol a DMZ fele iranyulo http keresek # iranyitasara szolgal.
# Ha azt szeretnem, hogy csak a belso proxy-szerveren # keresztul erhessek el a DMZ-t is, akkor fel kell # venni egy zonat a proxy-szervernek, es csak onnan # engedelyezni a szolgaltatast. Peldaul: # Zone.InetZone("proxy","192.168.0.210","255.255.255.0",None, # outbound_services["PDHttp","PDFtp"], # inbound_services[])] # Ekkor a "DMZ inbound_services"-be fel kell venni a # "PDHttp"-t es a "PDFtp"-t, valamint ki kell venni a # "BDHttp"-t es a "BDFtp"-t a DMZ-bol es az intranetbol is. # Ha "transparent_mode = 1" (ebben az esetben), akkor a # belso-proxyn nem kell beallitanom semmit. Ha viszont 0, # akkor be kell allitani, hogy o a gyermek-proxy, es a # tuzfal a szulo-proxy.
# Ha transzparens, akkor kell egy redirect ipchains # szabaly hozza. class BDHttp(Http.HttpProxy): def config(self): self.transparent_mode = 1
# A belso halorol a DMZ fele iranyulo ftp keresek # iranyitasara szolgal. # A command_accept-ben megadott ftp parancsokat tudja # hasznalni a kliens. A NAT = 1 azt jelenti, hogy # maszkolom a kereseket.
Pontosan azt jelenti hogy a kliens által kiadott PORT parancs paramétereit értelmesre átírja a proxy.
# Ha azt szeretnem, hogy csak a belso proxy-szerveren # keresztul erhessek el a DMZ-t is, akkor fel kell # venni egy zonat a proxy-szervernek, es csak onnan # engedelyezni a szolgaltatast. A fenti peldahoz tartozo # classok ugyanazok, mint a "BDFtp" es a "BDHttp", csak # a nevuk valtozik meg? Illetve a "def"-juk is ugyanaz, # ott is csak a nevuket kell megvaltoztatni?
Akár a nevük is lehet ugyanaz; ugyanaz a viselkedése a proxynak, a hozzáférésvezérlés a zónánál van definiálva. Ez stílus kérdése.
# # Az external_data_address a tuzfal DMZ feloli laba, az # internal_data_address pedig a tuzfal belso halozat # feloli laba. class BDFtp(Ftp.FtpProxy): def config(self): self.command_accept = 0x00000000 self.NAT = 1 self.fw_external_data_address="192.168.1.1" self.fw_internal_data_address="192.168.0.250"
# A belso halorol a DMZ fele iranyulo ssh keresek # iranyitasara szolgal. class BDSsh(Plug.PlugProxy): def config(self): pass
# A belso halorol a DMZ fele iranyulo pop3 keresek # iranyitasara szolgal. class BDPop(Plug.PlugProxy): def config(self): pass
# Szolgaltatasok definicioi. def init(name): BDPop_service = \ Service.Service("BDpop", # Ha transzparensnek allitom be a pop3 service-t, akkor a # klienseknek a tuzfalat kell megadnom pop3 szerverkent?
Nem, a valódi pop3 szervert. Ha azt akarod hogy ne is tudják hol van igaziból, vagy nem route-olható helyen van, akkor DirectedChainert használj.
# A transzparensseg miatt kell ipchains redirect?
Biza.
# A "None,0" azt jelenti, hogy ne irja at a kliens cimet? Chainer.TransparentChainer(None,0), BDPop)
BDHttp_service = \ Service.Service("BDHttp", # Ha nem transzparens http-t szeretnek, akkor InbandChainer-t # kell hasznalnom? A "None,1" azt jelenti, hogy nem adunk meg
igen.
# cimet, es a kliens eredeti cime latszodjon?
igen.
# A transzparensseg miatt kell ipchains redirect?
Biza.
Chainer.TransparentChainer(None,1), BDHttp)
BDFtp_service = \ Service.Service("BDFtp", # Ha nem transzparens ftp-t szeretnek, akkor InbandChainer-t # kell hasznalnom? A "None,1" azt jelenti, hogy nem adunk meg # cimet, es a kliens eredeti cime latszodjon? # A transzparensseg miatt kell ipchains redirect? Chainer.TransparentChainer(None,1), BDFtp)
BDSsh_service = \ Service.Service("BDSsh", # A transzparensseg miatt kell ipchains redirect? A "None,1" # azt jelenti, hogy nem adunk meg cimet, es a kliens eredeti # cime latszodjon?
(igen,igen)
Chainer.TransparentChainer(None,1), BDSsh)
# A 192.168.0.250 a tuzfal belso halo fele eso laba, de miert # ezek a portszamok vannak megadva? Ide irhatok nekem tetszo
Csak úgy:)
# portszamokat is, csak az ipchains redirect-et kell ezekre # beallitanom?
Igen.
Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",2110), BDPop_service) Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",3080), BDHttp_service) Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",3021), BDFtp_service) Listener.Listen( SockAddr.SockAddrInet("192.168.0.250",3022), BDSsh_service)
-- GNU GPL: csak tiszta forrásból
Hello! On Fri, Dec 15, 2000 at 02:07:52PM +0100, Magosányi Árpád wrote:
A levelezőm azt hiszi, hogy Kosa Attila a következőeket írta:
A pontosabb elkepzelesem (meg lehet rajta valtoztatni) az smtp-rol a kovetkezo: mail-szerver a dmz-ben. Smtp-n fogad es kuld leveleket, illetve belulrol es kivulrol el lehet erni pop3-mal. Ehhez gondoltam tarsitani egy tuzfalon futo smtp-szervert, amely csak tovabbitja a leveleket az internet fele. Ez hasonlit az elso peldara, de az MX-nek erzesem szerint a dmz-ben levo mailszerverre kellene mutatnia. Ennek a mailszervernek pedig az van beallitva, hogy a tuzfalon levo smtp-szerver a smarthost. A dmz-re is 192.168-as cimet terveztem. Ebben az esetben nincs szukseg csak bizonyos ipchains szabalyok alkalmazasara. Ez jo igy?
1. smtp natív proxyval, a csomagszűrési stílus az hogy az interface-re közvetlenül jövő tcp kapcsolatokat acceptáljuk, az MX-ek a tűzfalra mutatnak, az intranetes mailhub(ok) a tűzfal felé route-olja a leveleket: Nem kell további csomagszűrő szabály.
def init(name): BDPop_service = \ Service.Service("BDpop", # Ha transzparensnek allitom be a pop3 service-t, akkor a # klienseknek a tuzfalat kell megadnom pop3 szerverkent?
Nem, a valódi pop3 szervert. Ha azt akarod hogy ne is tudják hol van igaziból, vagy nem route-olható helyen van, akkor DirectedChainert használj.
Akkor nem is kell transzparensnek beallitanom? Ha nem akarom, hogy tudjak, hogy hol van, akkor is a valodi pop3 szervert kell megadni a klienseknek, vagy akkor mar a tuzfalat (DirectedChainer hasznalata eseten)? Az archivumban talaltam egy 0.5.26-ra vonatkozo ftp-s reszt: # Mit is csinal ez a proxyallow? class MyFtp(Ftp.FtpProxyAllow): def config(self): # Mit csinal a debug? Zorp.debug(0, "MyFtp startUp()") # Az ncftp kulonleges allatfajta, hogy ilyen elbanasban # reszesul? Ha squid proxyn keresztul nyomulnak a kliensek, # akkor is kell ilyen specialis "segitseget" nyujtani? # ncftp kliens self.FtpAnswerENABLE("500", "CLNT") # Ez micsoda? self.proxy_state = 1 -- Udvozlettel Zsiga
participants (2)
-
Kosa Attila
-
Magosányi Árpád