[zorp-hu] Konfiguralas

Kosa Attila atkosa@shinwa.hu
Thu, 11 Jan 2001 14:52:49 +0100


Hello!
Bocsanat, hogy mar megint ilyen hosszu levelet irok, de
ugy latszik, kicsit nehez a felfogasom :) Igyekeztem
belezsufolni mindent, amire szuksegem lehet, de megint
van egy par kerdesem. Egy kupacba tettem az osszetartozo
dolgokat, de csak a konnyebb erthetoseg (szamomra) miatt.
Tudom, hogy a valosagban nem igy kell.

# A tuzfal belso halo feloli laba: 192.168.0.250 eth2
# A tuzfal DMZ feloli laba: 192.168.1.1	eth1
# A tuzfal internet feloli laba: 100.100.100.100 eth0

# Egy altalanos kerdes: hogyan tudom szabalyozni, hogy
# (ip-cim szerint) mely gepek milyen szolgaltatasokat
# erhetnek el a tuzfalon keresztul? Ez a konfig melyik
# zorp verzioval mukodik stabilan? Ugyanis ugy lattam,
# hogy a 0.7.11-es verzional mar mas 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 *

Zorp.firewall_name = 'zorp1@teszt.hu'

Zorp.zones = [
  InetZone("intranet","192.168.0.0","255.255.255.0", None,
    outbound_services["BIHttp", "BIFtp", "BIPop", "BDHttp", "BDSsh", "BDPop"],
    inbound_services[]),
  InetZone("DMZ", "192.168.1.0", "255.255.255.0", None,
    outbound_services[],
    inbound_services["BDHttp", "BDSsh", "BDPop", "IDHttp", "IDPop"]),
  InetZone("internet", "0.0.0.0", "0.0.0.0", None,
    outbound_services["IDHttp", "IDPop"],
    inbound_services["BIHttp", "BIFtp", "BIPop"])]

#---------------------------------------------------------#
# A belso halorol az internet elerese http-n keresztul
class BIHttp(Http.HttpProxy):
    def config(self):
	HttpProxy.config(self)
	self.transparent_mode = 1
#	self.request["POST"] = (Http.HTTP_DROP)

def init(name):
    BIHttp_service = \
	Service("BIHttp", InbandChainer(), BIHttp)

# A kesobbiekben szeretnek egy proxyt is kesziteni a belso
# halozatra, de egyelore direktben szeretnem kiengedni a
# usereket. Erdemes-e beletenni a "-s 192.168.0.0/24" reszt?
# ipchains -A input -i eth2 -d 0/0 80 -j REDIRECT 3128
Listener(SockAddrInet("192.168.0.250", 3128), BIHttp_service)
# Ha kesz lesz a proxy-szerver (squid), akkor csak az
# atiranyitast kell megvaltoztatnom? Ahogy en gondolom:
# ipchains -A input -i eth2 -s proxy.ip.cim.e -d 0/0 80 -j REDIRECT 3128
# Es ekkor a proxyn nem kell semmit beallitani, ugye?
#---------------------------------------------------------#

#---------------------------------------------------------#
# A belso halorol az internet elerese ftp-n keresztul
class BIFtp(FtpProxyAllow):
    def config(self):
	FtpProxy.config(self)
	self.fw_server_data.ip_s="100.100.100.100"
	self.fw_client_data.ip_s="192.168.0.250"
	NAT = 1

def init(name):
    BIFtp_service = \
	Service("BIFtp", TransparentChainer(), BIFtp)

# A Windowsos kliensek tudnak-e igy ftp-zni?
# ipchains -A input -i eth2 -d 0/0 21 -j REDIRECT 2021
# ipchains -A input -i eth2 -d 0/0 1024: -j REDIRECT 0
Listener(SockAddrInet("192.168.0.250", 2021), BIFtp_service)
# Ha kesz lesz a proxy-szerver (squid), akkor ezeket az
# atiranyitasokat is at kell irni. Ahogy en kepzelem:
# ipchains -A input -i eth2 -s proxy.ip.cim.e -d 0/0 21 -j REDIRECT 2021
# ipchains -A input -i eth2 -s proxy.ip.cim.e -d 0/0 1024: -j REDIRECT 0
# A Windowsos kliensek tudnak-e igy ftp-zni (proxyn 
# keresztul)?
#---------------------------------------------------------#

#---------------------------------------------------------#
# A belso halorol az internet elerese pop3-mon keresztul
class BIPop(PlugProxy):
    def config(self):
	pass

def init(name):
    BIPop_service = \
	Service("BIPop", TransparentChainer(), BIPop)

# ipchains -A input -i eth2 -d 0/0 110 -j REDIRECT 2110
Listener(SockAddrInet("192.168.0.250", 2110), BIPop_service)
# Ha korlatozni szeretnem, hogy mely gepek mehetnek ki ezen
# a szolgaltatason keresztul, akkor azt hogyan kell 
# beallitani? Ha azt is korlatozni szeretnem, hogy mely
# gepeket erhetik el a neten pop3-mal (pl. matav, elender),
# akkor kulon kell bontanom a matavos es elenderes elerest,
# es az ipchains-szel iranyitani a megfelelo porton figyelo
# service-hez? Akkor megint felmerul az ip-cim szerinti
# megkulonboztetes kerdese, illetve itt meg felmerul az is,
# hogy mi a helyzet azzal, aki mindkettot szeretne 
# hasznalni?
#---------------------------------------------------------#

#---------------------------------------------------------#
# A belso halorol a DMZ elerese pop3-mon keresztul
class BDPop(PlugProxy):
    def config(self):
	pass

def init(name):
    BDPop_service = \
	Service("BDPop", TransparentChainer(), BDPop)

# ipchains -A input -i eth2 -d 192.168.1.3 110 -j REDIRECT 3110
Listener(SockAddrInet("192.168.0.250", 3110), BIPop_service)
#---------------------------------------------------------#

#---------------------------------------------------------#
# Az internetrol a DMZ elerese pop3-mon keresztul
class IDPop(PlugProxy):
    def config(self):
	pass

def init(name):
    IDPop_service = \
	Service("IDPop", TransparentChainer(), IDPop)

# ipchains -A input -i eth0 -d 192.168.1.3 110 -j REDIRECT 4110
Listener(SockAddrInet("100.100.100.100", 4110), BIPop_service)
# Ezt inkabb DirectedChainer-rel kellene megoldani?
#---------------------------------------------------------#

#---------------------------------------------------------#
# A belso halorol a DMZ elerese http-n keresztul
class BDHttp(HttpProxy):
    def config(self):
	self.transparent_mode = 1

def init(name):
    BDHttp_service = \
	Service("BDHttp", TransparentChainer(), BDHttp)

# A 192.168.1.2 80-as portjan figyel a www-szerver.
# ipchains -A input -i eth2 -d 192.168.1.2 80 -j REDIRECT 3080
Listener(SockAddrInet("192.168.0.250", 3080), BDHttp_service)
#---------------------------------------------------------#

#---------------------------------------------------------#
# A belso halorol a DMZ elerese ssh-n keresztul
class BDSsh(PlugProxy):
    def config(self):
	pass

def init(name):
    BDSsh_service = \
	Service("BDSsh", TransparentChainer(), BDSsh)

# ipchains -A input -i eth2 -d 192.168.1.0/24 22 -j REDIRECT 3022
Listener(SockAddrInet("192.168.0.250", 3022), BDSsh_service)
#---------------------------------------------------------#

#---------------------------------------------------------#
# Az internetrol a DMZ elerese http-n keresztul
class IDHttp(HttpProxy):
    def config(self):
	self.transparent_mode = 0

def init(name):
# A 192.168.1.2 cimen a 80-as porton van a www szerver
    IDHttp_service = \
	Service("IDHttp", DirectedChainer(SockAddrInet("192.168.1.2", 80), IDHttp)

Listener(SockAddrInet("100.100.100.100", 80), IDHttp_service)
#---------------------------------------------------------#

--
		Udvozlettel
				Zsiga