from Zorp.Core import * from Zorp.Plug import * from Zorp.Http import * from Zorp.Ftp import * Zorp.firewall_name = 'University Zorp' Zone(name='servers', addrs=['10.10.10.0/24']) Zone(name='uni', addrs=['10.10.0.0/16']) Zone(name='uni.students', admin_parent='uni', addrs=['10.10.1.0/24']) Zone(name='uni.offices', admin_parent='uni', addrs=['10.10.2.0/24']) # All HTTP communication is forwarded through a proxy that is invisible to both parties def http_proxy(): Service(name='transparent_http_proxy', proxy_class=HttpProxy) Rule(service='transparent_http_proxy', dst_port=80, src_zone=('uni',), dst_zone=('servers',) ) def ftp_connections(): Service(name='ftp_read_only', proxy_class=FtpProxyRO) Service(name='ftp_read_write', proxy_class=FtpProxyRW) Rule(service='ftp_read_only', dst_port=21, src_zone='uni', dst_zone='servers') Rule(service='ftp_read_write', dst_port=21, src_zone='uni.offices')