[zorp-hu] Egy pelda-konfig
Kosa Attila
atkosa@shinwa.hu
Fri, 15 Dec 2000 13:34:32 +0100
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