[zorp-hu] (már nem) KSH és a
biztonságtudat
Magosányi Árpád
zorp-hu@lists.balabit.hu
Wed, 18 Feb 2004 12:35:45 +0000
A levelezőm azt hiszi, hogy Kosa Attila a következőeket írta:
> Jo, legyunk ontopic-ok egy kicsit :)
>
> Ha megnezzuk az emlitett cimet, akkor lathato, hogy sajat maguknak
> krealtak egy certificate-et, ami asp1 nevre van kiallitva, mikozben a
> site neve asp.ksh.hu. Tudnal mutatni egy olyan konfigot, amely ehhez az
> esethez jol van beallitva?
Először is lássuk be, hogy valamely szervezettel vagy emberrel
kapcsolatos -akár jogos- ellenszenved kiélésére nem ez a lista
való.
A kérdésedet ontopic módon így tudom értelmezni:
"""
Van egy saját gyártmányú certem, ami "asp1" névre
van kiállítva. Valamiért szeretném ha a szerveren
ugyanez a cert maradna, ugyanakkor a külvilág számára
szeretnék egy korrekt certet mutatni.
"""
Mint mindannyian tudjuk, ebben az esetben a pssl
használata, és a korrekt certtel való átkulcsolás
a megoldás.
class MyHttpsProxy(PsslProxy):
def config(self):
# both side need ssl
self.server_need_ssl = TRUE
self.client_need_ssl = TRUE
# correct secret key and cert generated by openssl
self.client_cert = '/etc/zorp/myhttps.crt'
self.client_key = '/etc/zorp/myhttps.key'
# do check clients certificates in behalf of the server
self.client_verify_type = SSL_VERIFY_REQUIRED_TRUSTED
# strict check of https server certs
self.server_verify_type = SSL_VERIFY_REQUIRED_TRUSTED
# put the allowed CAs' certs into this directory, so
# only the good servers will be allowed, for instance
# if you only put verysign CA cert here, only those
# servers will be allowed, which owns VS certs
# WARNING: never allow sef singed certs;-))))
# you can gain CA certs form apache-ssl deb package
# put here the cert of the CA which signed the server
# key, or set server_verify_type to NONE
self.server_ca_directory = '/etc/zorp/ca.d/'
# you want to shutdown each way Read and Write)
# separately.
self.shutdown_soft = TRUE
# now I stack Http Proxy with the previous
# URI filtering into the SSL proxy, so sex.com
# cannot be visited neither via HTTP and HTTPS...
self.stack_proxy = MyHttpProxy
Ha a levél végén lévő patchet alkalmazod (emlékezetből írtam, lehet
hogy nem is fordul, a következő unoff zorpban benne lesz tesztelve),
akkor a MyHttpProxyban a pssl client_cert attribútuma alapján
eldöntheted, hogy egyáltalán odaengeded-e józsit a szerverhez.
Sajnos nem találtam olyan kérdést, amelyik a te kérdésedhez közelebb
lenne és ontopic.
M modules/zorp-module-pssl-2.0.0/pssl.c
* modified files
--- orig/modules/zorp-module-pssl-2.0.0/pssl.c
+++ mod/modules/zorp-module-pssl-2.0.0/pssl.c
@@ -72,6 +72,7 @@
SSL_CTX *client_ctx, *server_ctx;
int verify_type[EP_MAX];
int verify_depth[EP_MAX];
+ GString *client_name;
} PsslProxy;
#define ENABLE_PKT_STATS 1
@@ -100,6 +101,7 @@
self->poll = z_poll_new();
self->client_keyfile = g_string_sized_new(32);
+ self->client_name = g_string_sized_new(0);
self->client_certfile = g_string_sized_new(32);
self->client_ca_dir = g_string_sized_new(0);
@@ -178,6 +180,10 @@
"client_key_file",
Z_VAR_GET | Z_VAR_SET_CONFIG | Z_VAR_TYPE_STRING,
self->client_keyfile);
+ z_proxy_var_new(&self->super,
+ "client_name",
+ Z_VAR_GET | Z_VAR_TYPE_STRING,
+ self->client_name);
z_proxy_var_new(&self->super,
"client_cert_file",
@@ -356,6 +362,7 @@
X509_NAME_oneline(X509_get_subject_name(peercert), tmp,
sizeof(tmp) - 1);
X509_free(peercert);
+ self->client_name = g_string_assign(self->client_name,tmp);
z_proxy_log(self, PSSL_DEBUG, 4, "Identified peer on the client
side; peer='%s'", tmp);
}
--
GNU GPL: csak tiszta forrásból