[zorp-hu] 3.9 ssl keybridge nem indul - megoldas

Kosa Attila zsiga at kosaek.hu
2011. Ápr. 14., Cs, 12:43:15 CEST


On Thu, Apr 14, 2011 at 10:11:11AM +0200, Kosa Attila wrote:
> 
> Sima http oldal bejon, tehat a halozat mukodik. Azonban az
> latszik, hogy a bongeszo mar dobja, hogy nem elerheto az oldal,
> es a logban csak ezutan jelennek meg a zorp uzenetei. Ugyanakkor
> a tcpdump-ban az latszik, hogy jonnek-mennek a csomagok a kliens
> es a tuzfal kozott. Ennel jobban meg nem melyultem el a tcpdump
> elemzeseben eddig.

Na, most elmelyultem :) Es jelentem, mukodik! A Internet Explorer
szivatott meg. Ugyanis mukodik a konfig, csak az IE nem szolt egy
szot sem, hogy gond van a tanusitvannyal, hanem lecsapta a
kapcsolatot. Ellenorzendo megneztem Firefox-szal, az szolt, hogy
nem ismeri a tanusitvanyt. Megetettem vele (es az IE-vel is) a
trust.crt fajlt, azonnal mukodott mindket bongeszovel az otpbank.

Koszi a segitseget mindenkinek!

Es hogy meglegyen a komplett konfig, ami mukodik:

from Zorp.Core import *
from Zorp.Pssl import *
from Zorp.Http import *
from Zorp.Keybridge import *


InetZone("intranet", "192.168.2.0/24",
        inbound_services=[],
        outbound_services=["intra_Keybridge_HTTPS_inter"])

InetZone("internet", "0.0.0.0/0",
        inbound_services=["intra_Keybridge_HTTPS_inter"],
        outbound_services=[])

class StrongHttpsProxy(HttpProxy):
        def config(self):
                HttpProxy.config(self)
                self.ssl.client_keypair_files=("/etc/ssl/certs/fw.akarmi.hu.crt", "/etc/ssl/private/fw.akarmi.hu.key.nopass")
                self.ssl.client_verify_type=SSL_VERIFY_NONE
                self.ssl.client_connection_security = SSL_FORCE_SSL
                self.ssl.server_connection_security = SSL_FORCE_SSL
                self.ssl.server_cagroup_directories=("/etc/zorp/ca.crt", "/etc/zorp/crls/")
                self.ssl.server_ssl_method=SSL_METHOD_ALL
                self.ssl.server_disable_proto_sslv2=TRUE
                self.ssl.server_ssl_cipher=SSL_CIPHERS_HIGH
                self.ssl.server_verify_type=SSL_VERIFY_REQUIRED_UNTRUSTED

class KeybridgeStrongHttpsProxy(StrongHttpsProxy):
        def config(self):
                StrongHttpsProxy.config(self)
                self.ssl.key_generator=X509KeyBridge(key_file="/etc/zorp/keybridging_cert/fwca.key", key_passphrase="12345678", cache_directory="/var/lib/zorp/keybridge-cache", trusted_ca_files=("/etc/zorp/certs/trust.crt", "/etc/zorp/certs/trust.key.nopass"), untrusted_ca_files=("/etc/zorp/certs/untrust.crt", "/etc/zorp/certs/untrust.key.nopass"))
                self.ssl.handshake_seq=PSSL_HSO_SERVER_CLIENT
                self.ssl.client_keypair_generate=TRUE

def zorp_https() :
        Service(name="intra_Keybridge_HTTPS_inter", proxy_class=KeybridgeStrongHttpsProxy, router=TransparentRouter(overrideable=FALSE, forge_addr=FALSE))

        Dispatcher(bindto=DBIface(protocol=ZD_PROTO_TCP, iface="eth1", ip="192.168.2.254", port=60443), service="intra_Keybridge_HTTPS_inter", transparent=TRUE, threaded=FALSE, backlog=255)

Meg kellettek ezek a parancsok:
/sbin/ip route add local 0.0.0.0/0 dev lo table 100
/sbin/ip rule add fwmark 1 lookup 100
/sbin/ip route flush cache

A csomagszuro tartalma:

*mangle
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DIVERT -
-A PREROUTING -p tcp -m socket -j DIVERT
-A DIVERT -j MARK --set-mark 1
-A DIVERT -j ACCEPT
-A PREROUTING -i IFintra -p tcp -s INTRANET --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 60080 --on-ip 192.168.2.254
-A PREROUTING -i IFintra -p tcp -s INTRANET --dport 443 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 60443 --on-ip 192.168.2.254
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:LOintra -
:LOinter -
:icmpk -
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j icmpk
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i IFintra -j LOintra
-A INPUT -i IFinter -j LOinter
-A INPUT -j LOG --log-prefix "INPUT DROP: "
-A INPUT -j DROP
-A FORWARD -j LOG --log-prefix "FORWARD DROP: "
-A FORWARD -j DROP
-A LOintra -p tcp --dport 53 -j ACCEPT
-A LOintra -p udp --dport 53 -j ACCEPT
-A LOintra -p tcp --dport ZORPKIFELE -j ACCEPT
-A LOintra -j LOG --log-prefix "LOintra DROP: "
-A LOintra -j DROP
-A LOinter -p tcp --dport 22 -j ACCEPT
-A LOinter -j LOG --log-prefix "LOinter DROP: "
-A LOinter -j DROP
-A icmpk -p icmp --icmp-type destination-unreachable -j ACCEPT
-A icmpk -p icmp --icmp-type time-exceeded -j ACCEPT
-A icmpk -p icmp --icmp-type parameter-problem -j ACCEPT
-A icmpk -p icmp --icmp-type source-quench -j ACCEPT
-A icmpk -p icmp --icmp-type echo-request -j ACCEPT
-A icmpk -p icmp --icmp-type echo-reply -j ACCEPT
-A icmpk -j LOG --log-prefix "Icmpk DROP: "
-A icmpk -j DROP
COMMIT

Egy dolog nem egeszen vilagos a mukodesben, a ZORPKIFELE valtozot
tartalmazo szabaly. Ebbe ugyanis fel kell vennem az osszes
portot, amit a zorpon keresztul akarok engedni (a fenti peldaban
a 443-at), kulonben a LOintra agon eldobasra kerulnek a csomagok,
nem jutnak el a zorp-hoz. Hogy kellene ezt "elegansabban"
megoldani?

-- 
		Udvozlettel
				    Zsiga


További információk a(z) zorp-hu levelezőlistáról