czwartek, 6 grudnia 2012

Manager kolejek MQ - PROXYQMGR

Architektura:
LEFT <-> PROXY <-> RIGHT

Utworzenie managerów:
crtmqm -ll -c "RIGHT manager, linear logging" RIGHT
crtmqm -ll -c "PROXY manager, linear logging" PROXY
crtmqm -ll -c "LEFT manager, linear logging" LEFT
Konfiguracja managerów:
### RIGHT #############################################################

# podstawowa konfiguracja (po dodaniu wymagany restart managera)
DEFINE QLOCAL (DEADQ.RIGHT)
ALTER QMGR DEADQ(DEADQ.RIGHT)
DEFINE LISTENER (RIGHT.LISTENER) TRPTYPE(TCP) PORT(1435) CONTROL(QMGR)
DEFINE CHANNEL (CLIENT.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
ALTER QMGR SSLKEYR('/var/mqm/qmgrs/RIGHT/ssl/RIGHT')

# odbior z PROXY
DEFINE CHANNEL(PROXY.RIGHT) CHLTYPE(RCVR) SSLCIPH(TRIPLE_DES_SHA_US)
DEFINE QLOCAL(QUEUE.INP)

# wysylka do PROXY
DEFINE CHANNEL(RIGHT.PROXY) CHLTYPE(SDR)  SSLCIPH(TRIPLE_DES_SHA_US) CONNAME('1.2.3.4(1415)') XMITQ(XMITQ.RIGHT.PROXY) DISCINT(10)
DEFINE QLOCAL(XMITQ.RIGHT.PROXY) USAGE(XMITQ) TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGTYPE(FIRST) TRIGDATA(RIGHT.PROXY)
DEFINE QREMOTE(QUEUE.OUT) RNAME(QUEUE.OUT) RQMNAME(PROXY) XMITQ(XMITQ.RIGHT.PROXY)

### PROXY #########################################################

# podstawowa konfiguracja (po dodaniu wymagany restart managera)
DEFINE QLOCAL (DEADQ.PROXY)
ALTER QMGR DEADQ(DEADQ.PROXY)
DEFINE LISTENER (PROXY.LISTENER) TRPTYPE(TCP) PORT(1415) CONTROL(QMGR)
DEFINE CHANNEL (CLIENT.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
ALTER QMGR SSLKEYR('/var/mqm/qmgrs/PROXY/ssl/PROXY')

# odbior z LEFT
DEFINE CHANNEL(LEFT.PROXY) CHLTYPE(RCVR) SSLCIPH(TRIPLE_DES_SHA_US)

# wysylka do LEFT
DEFINE QLOCAL(XMITQ.PROXY.LEFT) USAGE(XMITQ) TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGTYPE(FIRST) TRIGDATA(PROXY.LEFT)
DEFINE CHANNEL(PROXY.LEFT) CHLTYPE(SDR) SSLCIPH(TRIPLE_DES_SHA_US) CONNAME('1.2.3.4(1425)') XMITQ(XMITQ.PROXY.LEFT) DISCINT(10)
DEFINE QREMOTE(QUEUE.OUT) RNAME(QUEUE.OUT) RQMNAME(LEFT) XMITQ(XMITQ.PROXY.LEFT)

# odbior z RIGHT
DEFINE CHANNEL(RIGHT.PROXY) CHLTYPE(RCVR) SSLCIPH(TRIPLE_DES_SHA_US)

# wysylka do RIGHT
DEFINE CHANNEL(PROXY.RIGHT) CHLTYPE(SDR) SSLCIPH(TRIPLE_DES_SHA_US) CONNAME('1.2.3.4(1435)') XMITQ(XMITQ.PROXY.RIGHT) DISCINT(10)
DEFINE QLOCAL(XMITQ.PROXY.RIGHT) USAGE(XMITQ) TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGTYPE(FIRST) TRIGDATA(PROXY.RIGHT)
DEFINE QREMOTE(QUEUE.INP) RNAME(QUEUE.INP) RQMNAME(RIGHT) XMITQ(XMITQ.PROXY.RIGHT)

### LEFT ###############################################################

# podstawowa konfiguracja (po dodaniu wymagany restart managera)
DEFINE QLOCAL (DEADQ.LEFT)
ALTER QMGR DEADQ(DEADQ.LEFT)
DEFINE LISTENER (LEFT.LISTENER) TRPTYPE(TCP) PORT(1425) CONTROL(QMGR)
DEFINE CHANNEL (CLIENT.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
ALTER QMGR SSLKEYR('/var/mqm/qmgrs/LEFT/ssl/LEFT')

# odbior z PROXY
DEFINE CHANNEL(PROXY.LEFT) CHLTYPE(RCVR) SSLCIPH(TRIPLE_DES_SHA_US)
DEFINE QLOCAL(QUEUE.OUT)

# wysylka do PROXY
DEFINE QLOCAL(XMITQ.LEFT.PROXY) USAGE(XMITQ) TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGTYPE(FIRST) TRIGDATA(LEFT.PROXY)
DEFINE CHANNEL(LEFT.PROXY) CHLTYPE(SDR) SSLCIPH(TRIPLE_DES_SHA_US) CONNAME('1.2.3.4(1415)') XMITQ(XMITQ.LEFT.PROXY) DISCINT(10)
DEFINE QREMOTE(QUEUE.INP) RNAME(QUEUE.INP) RQMNAME(PROXY) XMITQ(XMITQ.LEFT.PROXY)

# odbior przez klienta (WAS)
DEFINE CHANNEL(QUEUE.CHANNEL.SVRCONN) CHLTYPE(SVRCONN) SSLCAUTH(REQUIRED) MCAUSER('mqm') SSLCIPH(TRIPLE_DES_SHA_US) SSLPEER('CN=COMMON_NAME') MAXMSGL(104857600)

poniedziałek, 19 listopada 2012

Sprawdzanie typu obiektu Java przez refleksję:

Jeśli chcemy sprawdzić czy obiekt jest danego typu lub podtypem danego obiektu:
Class objectClass = ...
if (TestObject.class.isAssignableFrom(objectClass))

poniedziałek, 15 października 2012

Tworzenie użytkownika w Oracle

CREATE USER [user] IDENTIFIED BY [password];
GRANT CONNECT TO [user];
GRANT CREATE TABLE TO [user];
ALTER USER [user] QUOTA UNLIMITED ON users;

poniedziałek, 2 lipca 2012

Tworzenie użytkownika na Oracle

CREATE USER ziomal IDENTIFIED BY q1w2e3r4 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT CREATE SESSION, UNLIMITED TABLESPACE, CREATE TABLE, CREATE CLUSTER, CREATE SEQUENCE, CREATE PROCEDURE, CREATE TRIGGER, CREATE TYPE, CREATE OPERATOR, CREATE INDEXTYPE TO ziomal;

wtorek, 5 czerwca 2012

Włączenie remote debug dla aplikacji Java

It should be passed to JVM:
-Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Maven tests debug:
mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=*:8000 -Xnoagent -Djava.compiler=NONE" test
https://doc.nuxeo.com/corg/how-to-debug-a-test-run-with-maven/

piątek, 27 kwietnia 2012

Tworzenie certyfikatów dla managera kolejek WebSphere MQ

Wymagane aplikacje: Ikeyman, OpenSSL, WebSphereMQ W pliku "openssl.[cnf|cfg]" powinno być ustawione:
basicConstraints=CA:true
Utworzenie centrum certyfikacji:
perl CA.pl -newca
(...)
A challenge password []: <hasło> ENTER
An optional company name [] <hasło> ENTER
Opcjonalnie - wydłużenie terminu ważnosci certyfikatu:
cd demoCA
openssl x509 -in cacert.pem -days 1024 -out newca.pem -signkey private/cakey.pem
mv newca.pem cacert.pem
Utworzenie certyfikatu dla klienta kanału:
perl CA.pl -newreq
(...)
Common Name (eg, YOUR name) []: QMGR NAME
Koniecznie wpisujemy nazwę managera kolejek!
(...)
A challenge password []: – ENTER
An optional company name [] – ENTER
Podpisanie certyfikatu klienta:
perl CA.pl -signreq
Eksport pary certyfikatow (centrum certyfikacji i klient kanału) do formatu PKCS12:
perl CA.pl -pkcs12 CHANNELNAME
Certyfikat centrum certyfikacji jest także w pliku demoCA/cacert.pem. Utworzenie pliku z hasłem do repozytorium CMS (Ikeyman):
runmqckm -keydb -stashpw -db QMGRNAME.kdb
Wygenerowane pliki (QMGRNAME.crl, QMGRNAME.kdb, QMGRNAME.rdb, QMGRNAME.sth) należy wgrać do katalogu "qmgrs/QMGRNAME/ssl".

Konwersja repozytorium kluczy PKCS12 na JKS:

java -classpath jetty-6.1.3/lib/jetty-6.1.3.jar org.mortbay.jetty.security.PKCS12Import PKCS12.p12 JKS.jks

czwartek, 26 kwietnia 2012

Dekodowanie hasła w pliku *.sth w managerze MQ

#!/usr/bin/perl -w
#
# unstash.pl - "decrypt" IBM HTTP server stash files. No, really. They *are* this pathetic.
#
# sploit (BoByRiTe) 1999, Major Malfunction, code by Ben Laurie, cos I dudn't dud perly thing.

use strict;

die "Usage: $0 <stash file>\n" if $#ARGV != 0;

my $file=$ARGV[0];
open(F,$file) || die "Can't open $file: $!";

my $stash;
read F,$stash,1024;

my @unstash=map { $_^0xf5 } unpack("C*",$stash);

foreach my $c (@unstash) {
    last if $c eq 0;
    printf "%c",$c;
}
printf "\n";
Wywołanie:
perl unstash.pl PLIK.sth
źródło

poniedziałek, 13 lutego 2012

Usuwanie wyszącej sesji pulpitu zdalnego

Wylistowanie wszystkich sesji:
qwinsta /server:{ip}
Zamknięcie wybranej sesji:
rwinsta /server:{ip} {identyfikator sesji}
źródło