[zorp-hu] Konfiguralas

=?iso-8859-2?Q?Magos=E1nyi_=C1rp=E1d?= mag@bunuel.tii.matav.hu
Thu, 11 Jan 2001 15:24:39 +0100


> # 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

A gépeket funkciók szerint zónákba sorolod. A hozzáférésvezérlésnél
ezeket a zónákat használod.

> # 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

Mindig mindent érdemes specifikálni:)

> 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?

Ez egy megoldás, ami működik. De meg lehet azt csinálni, hogy
definiálsz pl egy web-user zónát, amineka  címtartománya eredetileg az
intranet, és ha megvan a www cache-ed, akkor leszűkíted arra.
Ha elég paranoid vagy akkor mindkettőt csinálod.

> #---------------------------------------------------------#
> 
> #---------------------------------------------------------#
> # 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

Most nincs kedvem gondolkozni, de úgy tűnik hogy tudnak, sőt
a data porthoz elég az ACCEPT. 

> 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

Ugyanaz a helyzet mont a http esetében.

> # A Windowsos kliensek tudnak-e igy ftp-zni (proxyn 
> # keresztul)?

Igen.

> #---------------------------------------------------------#
> 
> #---------------------------------------------------------#
> # 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?


Zónákat definiálj mindezekre, és azokkal oldd meg a dolgot.

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

Kicsit sok az inited.

> 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?

Úgy tűnik.

[]

-- 
GNU GPL: csak tiszta forrásból