ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Clustering » MQ Security setup

Post new topic  Reply to topic Goto page 1, 2, 3  Next
 MQ Security setup « View previous topic :: View next topic » 
Author Message
Sam Uppu
PostPosted: Sun Mar 15, 2009 2:31 pm    Post subject: MQ Security setup Reply with quote

Yatiri

Joined: 11 Nov 2008
Posts: 610

Hi Guys,
I am on SunOS and version 6.

I have 2 QMgrs, QM.LONDON which is in London and QM.PARIS which is in Paris and both these QMgrs are in a cluster called CLUSTER1.

An application with application id: App1 is connecting to Qmgr, QM.LONDON and on the destination side, another application with application id: App2 is connected to QM.PARIS.

A cluster queue, CLUSTERQ is defined on QM.PARIS and the permissions are provided for the user, App2 for the queue, CLUSTERQ(put/get/browse) and for the QMgr, QM.PARIS(connect).

The application 1(Application id: App1) is trying to put the message onto CLUSTERQ on QM.PARIS.

As the user ids, App1 & App2 are not part of mqm group - an Alias queue named, ALIAS.CLUSTERQ(targetq: CLUSTERQ) is defined on QM.LONDON and provided permissions for the user, App1 for the queue ALIAS.CLUSTERQ(put) and for the QMgr, QM.LONDON(connect).

Now the Question:

Do I also need to set the MCAUSER and PUTAUT parameters of ClusterReceiver(CLUSRCVR) channel on QM.PARIS?. If so what do I need to set these parameters?.

I tried something like this:
MCAUSER(dummy) PUTAUT(CTX)....still the user App1 is able to put the message onto CLUSTERQ.

MCAUSER(dummy) PUTAUT(Def)....still the user App1 is able to put the message onto CLUSTERQ.

Note: The user: dummy doesn't exists on server where the Qmgr, QM.PARIS is running.

Please share your thoughts to close the security holes in my cluster.

Thanks.
Back to top
View user's profile Send private message
Vitor
PostPosted: Sun Mar 15, 2009 3:13 pm    Post subject: Re: MQ Security setup Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Sam Uppu wrote:
As the user ids, App1 & App2 are not part of mqm group - an Alias queue named, ALIAS.CLUSTERQ(targetq: CLUSTERQ) is defined on QM.LONDON and provided permissions for the user, App1 for the queue ALIAS.CLUSTERQ(put) and for the QMgr, QM.LONDON(connect).


Why an alias? Why not provide permissions for the underlying queue?

Sam Uppu wrote:
Please share your thoughts to close the security holes in my cluster.


Why do you think these are holes? Why are you trying to distinguish users like this?

Also remember that data doesn't pass over manually defiened cluster channels, and the rules for setting parameters differ.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Sam Uppu
PostPosted: Sun Mar 15, 2009 5:01 pm    Post subject: Re: MQ Security setup Reply with quote

Yatiri

Joined: 11 Nov 2008
Posts: 610

Vitor wrote:
Sam Uppu wrote:
As the user ids, App1 & App2 are not part of mqm group - an Alias queue named, ALIAS.CLUSTERQ(targetq: CLUSTERQ) is defined on QM.LONDON and provided permissions for the user, App1 for the queue ALIAS.CLUSTERQ(put) and for the QMgr, QM.LONDON(connect).


Why an alias? Why not provide permissions for the underlying queue?

Sam Uppu wrote:
Please share your thoughts to close the security holes in my cluster.


Why do you think these are holes? Why are you trying to distinguish users like this?

Also remember that data doesn't pass over manually defiened cluster channels, and the rules for setting parameters differ.



Quote:
Why an alias? Why not provide permissions for the underlying queue?

The applications are remote and used ids, App1 and App2 doesn't exist on remote application servers,

App1 resides only on server where QM.LONDON is running and App2 resides on server where QM.PARIS is running.

So I cant provide the permissions for the App1 user on the QMgr-QM.PARIS as the user doesn't exists on this server and the same case applies to App2 user.

Thanks.
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Mar 16, 2009 12:34 am    Post subject: Re: MQ Security setup Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Sam Uppu wrote:
So I cant provide the permissions for the App1 user on the QMgr-QM.PARIS as the user doesn't exists on this server and the same case applies to App2 user.


Yes, granted, but what's the requirement to authenticate against the target queue? Why are you attempting that?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
exerk
PostPosted: Mon Mar 16, 2009 1:39 am    Post subject: Re: MQ Security setup Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

Vitor wrote:
Sam Uppu wrote:
As the user ids, App1 & App2 are not part of mqm group - an Alias queue named, ALIAS.CLUSTERQ(targetq: CLUSTERQ) is defined on QM.LONDON and provided permissions for the user, App1 for the queue ALIAS.CLUSTERQ(put) and for the QMgr, QM.LONDON(connect).


Why an alias? Why not provide permissions for the underlying queue?


It is my understanding that permission for the application connected to QM.LONDON to PUT to the SYSTEM.CLUSTER.TRANSMIT.QUEUE would be needed, ergo security hole.

Vitor wrote:
Sam Uppu wrote:
Please share your thoughts to close the security holes in my cluster.


Why do you think these are holes? Why are you trying to distinguish users like this?

_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Mar 16, 2009 2:48 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Cluster security is a strange animal that is quite complicated.

  • looking at your first example with cluster receiver channel mca...
    Did you STOP the cluster receiver channel and restart it every time you changed the mcauser?

  • you don't want to authorize the SYSTEM.CLUSTER.TRANSMIT.QUEUE so what are your alternatives?
    You can declare a qremote on the qmgrs that don't have a local instance of the queue, but that are being connected to by the client, to serve as an alias for the clustered queue, and authorize that queue... ex:
    def qr(myalias) qname(myclusterq) qmname('clusteralias')
    def qr(clusteralias) qname(' ') qmname(' ') cluster(mycluster)
    This will then give the poster authority to post to the qr which resolves to a clustered queue.
    Make sure when using this technique that you have no message affinity.
    Make sure to use the proper bindings (fixed|not fixed).


Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Mon Mar 16, 2009 4:23 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

fjb_saper wrote:

def qr(myalias) qname(myclusterq) qmname('clusteralias')
def qr(clusteralias) qname(' ') qmname(' ') cluster(mycluster)


FJ, you define the clusteralias qr on the sending QM, or on the destination QM? Or on every QM in the cluster?


Instead of using the qr called myalias, which requires the qr clusteralias as well, could you not accomplish the same thing with only one Alias queue? If the local queue on the destination QM is called MY.APP.QUEUE and it is clustered, define this on the sending queue:
DEFINE QALIAS(THE.APP.QUEUE) TARGQ(MY.APP.QUEUE)
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Sam Uppu
PostPosted: Mon Mar 16, 2009 7:46 am    Post subject: Re: MQ Security setup Reply with quote

Yatiri

Joined: 11 Nov 2008
Posts: 610

Vitor wrote:
Sam Uppu wrote:
As the user ids, App1 & App2 are not part of mqm group - an Alias queue named, ALIAS.CLUSTERQ(targetq: CLUSTERQ) is defined on QM.LONDON and provided permissions for the user, App1 for the queue ALIAS.CLUSTERQ(put) and for the QMgr, QM.LONDON(connect).


Why an alias? Why not provide permissions for the underlying queue?

Sam Uppu wrote:
Please share your thoughts to close the security holes in my cluster.


Why do you think these are holes? Why are you trying to distinguish users like this?

Also remember that data doesn't pass over manually defiened cluster channels, and the rules for setting parameters differ.


Quote:
Also remember that data doesn't pass over manually defiened cluster channels, and the rules for setting parameters differ


Are you sure?. I thought the Cluster sender/receiver channels will be used for data transfer and also talking with other repositories in the cluster.

Let me know..thanks.
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Mar 16, 2009 7:53 am    Post subject: Re: MQ Security setup Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Sam Uppu wrote:
Are you sure?. I thought the Cluster sender/receiver channels will be used for data transfer and also talking with other repositories in the cluster.


Manually defined channels connect partial repositories with full repositories (and of course full repositories with full repositories).

It's the auto-defined channels that carry data, linking source and target on request.


_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Mar 16, 2009 8:04 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Manually defined channels are more or less only actually run once, and basically just long enough to register the channels. Unless you run REFRESH CLUSTER a lot.

Autodefs are then created from the manual def after that, and carry all cluster traffic.
Back to top
View user's profile Send private message
Sam Uppu
PostPosted: Mon Mar 16, 2009 11:40 am    Post subject: Reply with quote

Yatiri

Joined: 11 Nov 2008
Posts: 610

PeterPotkay wrote:
fjb_saper wrote:

def qr(myalias) qname(myclusterq) qmname('clusteralias')
def qr(clusteralias) qname(' ') qmname(' ') cluster(mycluster)


FJ, you define the clusteralias qr on the sending QM, or on the destination QM? Or on every QM in the cluster?


Instead of using the qr called myalias, which requires the qr clusteralias as well, could you not accomplish the same thing with only one Alias queue? If the local queue on the destination QM is called MY.APP.QUEUE and it is clustered, define this on the sending queue:
DEFINE QALIAS(THE.APP.QUEUE) TARGQ(MY.APP.QUEUE)


I am also creating the Local Alias Queue for the remote cluster queue and not a remote queue.
Back to top
View user's profile Send private message
Sam Uppu
PostPosted: Mon Mar 16, 2009 11:46 am    Post subject: Re: MQ Security setup Reply with quote

Yatiri

Joined: 11 Nov 2008
Posts: 610

Vitor wrote:
Sam Uppu wrote:
So I cant provide the permissions for the App1 user on the QMgr-QM.PARIS as the user doesn't exists on this server and the same case applies to App2 user.


Yes, granted, but what's the requirement to authenticate against the target queue? Why are you attempting that?


I have seen one of the IBM PPT:
Quote:
Setting MCAUSER on an inbound MCA channel (RCVR, RQSTR or CLUSRCVR) to a low-privileged ID enables the ability to restrict that channel to accessing only specific queues.


Thatswhy I was trying to fill in the MCAUSER of Cluster receiver channel on the QM.PARIS QMgr. I am planning to fill in this MCAUSER with App2 id as this id exists on the server where QM.PARIS is running and PUTAUT to be DEF.

Let me know your thoughts.

Thanks.
Back to top
View user's profile Send private message
Sam Uppu
PostPosted: Mon Mar 16, 2009 12:00 pm    Post subject: Reply with quote

Yatiri

Joined: 11 Nov 2008
Posts: 610

If I define a cluster receiver channel with MCAUSER('dummy'), the channel is not starting and its always in inactive state. If I set the MCAUSER('') attribute to be empty, the channel is again starting. Not sure why IBM had this MCAUSER parameter when there is no need to use this attribute and channel goes into inactive state.

Please let me know your thoughts.

Thanks.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Mon Mar 16, 2009 1:37 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

MCASUER is used on Cluster Receiver channels.
PUTAUT = CTX is a waste of time and false security.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
bruce2359
PostPosted: Mon Mar 16, 2009 2:43 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9469
Location: US: west coast, almost. Otherwise, enroute.

Quote:
If I define a cluster receiver channel with MCAUSER('dummy'), the channel is not starting and its always in inactive state.

What did you find in the qmgr error logs that explained this?
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 of 3

MQSeries.net Forum Index » Clustering » MQ Security setup
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.