2015-05-05 31 views
6

Ok, voglio verificare se posso eseguire alcuni comandi OS o MQSC nel server MQ da remoto. Finché so, questo potrebbe essere fatto con SYSTEM.ADMIN.SVRCONN. Per fare ciò, aggiungo un Queue Manager remoto al mio client WebSphere MQ. Inserisco il nome del Queue Manager sul server con IP corretto, ma quando uso SYSTEM.ADMIN.SVRCONN come nome del canale, ho ricevuto l'errore: Channel name not recognized (AMQ4871).Esegui comandi Linux/MQSC dal client mq

Inoltre, se ho un nome di canale come MY.CHANNEL.NAME ed è un canale di connessione server con mqm come MCAUSER, posso eseguire alcuni comandi (MQSC o OS) attraverso questo canale sul server?

Grazie.

Edit1


sto utilizzando WebSphere MQ v.7.0

Con "aggiungo un gestore code remoto al mio cliente WebSphere MQ" Intendevo ho aggiunto un gestore code remoto MQ Esploratore.

Edit2


voglio spiegare la mia domanda più precisamente in questa modifica. Voglio collegarmi a un Qmanager remoto tramite MQ Explorer. Conosco il nome di Qmanager e il suo corso di IP. Inoltre, il Qmanager remoto ha a disposizione sia il canale SYSTEM.ADMIN.SVRCONN sia il canale SYSTEM.AUTO.SVRCONN. Quando controllo CHLAUTH per questi canali, ho:

AMQ8878: Display channel authentication record details. 
    CHLAUTH(SYSTEM.ADMIN.SVRCONN)   TYPE(ADDRESSMAP) 
    ADDRESS(*)        USERSRC(CHANNEL) 
AMQ8878: Display channel authentication record details. 
    CHLAUTH(SYSTEM.*)      TYPE(ADDRESSMAP) 
    ADDRESS(*)        USERSRC(NOACCESS) 
dis chl(SYSTEM.ADMIN.SVRCONN) MCAUSER 
    5 : dis chl(SYSTEM.ADMIN.SVRCONN) MCAUSER 
AMQ8147: WebSphere MQ object SYSTEM.ADMIN.SVRCONN not found. 
dis chl(SYSTEM.AUTO.SVRCONN) MCAUSER 
    6 : dis chl(SYSTEM.AUTO.SVRCONN) MCAUSER 
AMQ8414: Display Channel details. 
    CHANNEL(SYSTEM.AUTO.SVRCONN)   CHLTYPE(SVRCONN) 
    MCAUSER() 

Come si può vedere qui, dovrei essere in grado di connettersi tramite questi due canali ed eseguire alcuni comandi. Ma quando scelgo SYSTEM.ADMIN.SVRCONN come nome del canale in configurazione remota ottengo: Channel name not recognized (AMQ4871) e quando scelgo SYSTEM.AUTO.SVRCONN come nome del canale, ottengo: You are not authorized to perform this operation (AMQ4036).

Qualche idea?

+1

Sembra che tu ci abbia mostrato nella tua modifica che NON hai il SYSTEM.ADMIN.SVRCONN definito. 'AMQ8147: oggetto WebSphere MQ SYSTEM.ADMIN.SVRCONN non trovato. Prego definirlo. –

risposta

2

Aggiungo un gestore code remoto al mio client WebSphere MQ.

Non sono affatto sicuro di cosa significhi esattamente. MQ Explorer mantiene un elenco di definizioni del gestore code. MQ Client è solo una libreria per effettuare connessioni.

Se intendevi aggiungere un gestore code remoto a MQ Explorer, è logico. Oltre a definire la connessione in Explorer, sarà necessario eseguire il provisioning della connessione al gestore code. Ciò significa definire il canale SYSTEM.ADMIN.SVRCONN o uno con un nome di tua scelta, definire e avviare un listener. Se si è su un gestore code 7.1 o superiore (è sempre utile elencare le versioni quando si richiede informazioni su MQ), sarà inoltre necessario creare una regola CHLAUTH per consentire la connessione e un'altra regola CHLAUTH per consentire la connessione con i privilegi amministrativi. o quello o disabilita del tutto le regole di CHLAUTH, ma questo non è raccomandato.

Se ho un nome di un canale come MY.CHANNEL.NAME ed è un canale di connessione server con mqm come MCAUSER, posso eseguire alcuni comandi (MQSC o OS) attraverso questo canale sul server?

Forse.

Fuori dalla scatola, MQ nega tutte le connessioni client. Esistono regole di CHLAUTH per negare le connessioni amministrative e altre regole di CHLAUTH per negare le connessioni per qualsiasi canale SYSTEM.* diverso da SYSTEM.ADMIN.SVRCONN. Poiché le connessioni di amministratore sono negate, gli utenti non amministratori devono disporre dell'accesso tramite i comandi o setmqaut prima che possano utilizzare SYSTEM.ADMIN.SVRCONN, quindi MQ è detto "sicuro per impostazione predefinita".

Quando si crea MY.CHANNEL.NAME e si connette come amministratore e se CHLAUTH è abilitato, la connessione verrà negata. Dovresti aggiungere una nuova regola CHLAUTH come ...

SET CHLAUTH('MY.CHANNEL.NAME') TYPE(BLOCKUSER) USERLIST('*NOBODY') WARN(NO) ACTION(ADD) 

... per consentire la connessione di amministratore.

(NOTA:.. Regole di blocco MQ CHLAUTH utilizzano una metodologia lista nera I blocchi di regole predefinite*MQADMINda tutti i canali La regola che ho elencato sopra prevale la regola di default in quanto il nome del canale è più specifico, e blocca*NOBODY-. che è un elenco di ID utente che non includono mqm o qualsiasi altro ID utente di gestione e 'strano, ma è così che funziona)

Maggiori informazioni su questo argomento in http://t-rob.net/links, e in particolare la conferenza di Morag. presentazione alloLe regolesono obbligatorie.

20150506 Aggiornamento
risposta a modifiche # 1 # 2 & nella domanda originale è la seguente:

La prima modifica dice che il QMgr è alla v7.0 e la seconda mostra che la QMgr aveva Record di CHLAUTH definiti. Poiché CHLAUTH non era disponibile fino alla versione 7.1, queste due affermazioni si escludono a vicenda: non possono essere entrambe vere. Quando si fornisce la versione del server o client MQ, è meglio incollare l'output di dspmqver. Se la domanda riguarda GSKit, codice Java o altri componenti oltre al codice base, allora dspmqver -a sarebbe ancora meglio.

L'output MQSC fornito negli aggiornamenti delle domande spiega completamente gli errori.

dis chl(SYSTEM.ADMIN.SVRCONN) MCAUSER 
    5 : dis chl(SYSTEM.ADMIN.SVRCONN) MCAUSER 
AMQ8147: WebSphere MQ object SYSTEM.ADMIN.SVRCONN not found. 

Come osserva Morag, il SYSTEM.ADMIN.SVRCONN non può essere utilizzato perché non è stato definito.

AMQ8878: Display channel authentication record details. 
    CHLAUTH(SYSTEM.*)      TYPE(ADDRESSMAP) 
    ADDRESS(*)        USERSRC(NOACCESS) 

L'errore auths accade perché qualsiasi collegamento a qualsiasiSYSTEM.* canale SVRCONN non espressamente sovrascritto è bloccata da questa regola. La regola CHLAUTH per SYSTEM.ADMIN.SVRCONN ha la precedenza perché è più esplicita e consente connessioni non di amministrazione a quel canale. La mancanza di una regola di override simile per SYSTEM.AUTO.SVRCONN significa che viene negata dalla regola esistente per i canali SYSTEM.* come elencato sopra.

Come osservato in precedenza, è FORTEMENTE consigliato di andare al sito web collegato e leggere conferenza di presentazione di Morag sulla sicurezza v7.1 e CHLAUTH regole MQ. Spiega come vengono applicate le regole di CHLAUTH, come funziona la precedenza e, cosa forse più importante, come verificarle con lo MATCH(RUNCHECK) parameter.

di fare la giusta MQ Security, è necessario almeno seguente:

  1. definire un canale con un nome che non inizia con SYSTEM.* e impostare MCAUSER('*NOBODY').
  2. Definire una regola CHLAUTH per consentire le connessioni a quel canale, mappando il MCAUSER come richiesto.
  3. Se si desidera collegare al canale con mqm o l'accesso di amministrazione, definire le regole per CHLAUTH autenticare il canale, preferibilmente utilizzando TLS e certificati.

ci sono diverse cose che si fanno non vogliono fare, per motivi che sono spiegati in Morag e di mie presentazioni. Questi includono ...

  1. Utilizzare SYSTEM.AUTO.SVRCONN per qualsiasi connessione legittima.
  2. Per quello che riguarda, utilizzando SYSTEM.* qualsiasi cosa (eccetto per SYSTEM.ADMIN.SVRCONN o SYSTEM.BROKER.*) per le connessioni legittime.
  3. Consentire le connessioni di amministratore non autenticate.
  4. Disabilitazione delle regole di CHLAUTH.
  5. Disattivazione OAM.

I voglio persone per imparare la sicurezza MQ e impararlo davvero bene. Tuttavia, in qualità di consulente specializzato in questo settore, devo dirvi che anche i clienti che mi hanno assunto per offrire corsi sul posto e aiutare con la loro implementazione hanno difficoltà a bloccarlo. Ci sono due intuizioni da trarre da questo fatto.

In primo luogo, se non si ha abbastanza tempo per essere aggiornati sulla sicurezza MQ, l'implementazione non sarà sicura.Studiare l'argomento al punto di comprendere come tutti i pezzi si adattino abbastanza bene per escogitare un modello di sicurezza decente richiede un addestramento pratico con un QMgr che puoi costruire, martellare, demolire, ricostruire, ecc. Richiede settimane di studio pratico dedicato, o mesi o anni di studio casuale. Il mio consiglio qui è di andare a ottenere MQ Advanced for Developers. È completamente funzionante, gratuito, e ha un superset dei controlli che hai sulla QMgr v7.1 o v7.5 su cui stai lavorando ora.

Secondo intuizione è che non esiste una scorciatoia per l'apprendimento di sicurezza MQ (o qualsiasi altro IT). Se viene affrontato come se fosse semplicemente una questione di configurazione, allora è quasi garantito che non sia sicuro quando implementato. Se viene affrontato come l'apprendimento di tutti i diversi controlli disponibili per l'autenticazione, l'autorizzazione e l'applicazione delle policy, e quindi imparare come interagiscono tutti e se la sicurezza viene affrontata come una disciplina della pratica, allora è possibile ottenere una sicurezza significativa.

Affrontare questa seconda questione richiederà un investimento nell'istruzione. Leggi le presentazioni e prova i vari controlli in diretta su un QMgr di prova che gestisci. Comprendere quali errori vanno a quali registri errori, quali generano messaggi di eventi e quale tipo di eventi sono generati. Ottenere alcuni degli strumenti di diagnostica nel SupportPacs, come ad esempio MS0P, che è uno dei miei preferiti, e acquisire familiarità con loro. Prendi in considerazione la partecipazione allo MQ Tech Conference (dove puoi incontrare molte delle persone che rispondono qui su SO) per una formazione più approfondita.

Se tu (o il tuo datore di lavoro) non sei pronto a impegnarti in un'approfondita preparazione o stai cercando di apprenderlo per una scadenza imminente del progetto, considera l'assunzione di competenze approfondite di MQ Security in base alle necessità, perché dipende la formazione sul lavoro just-in-time per questo argomento è una ricetta per una rete non protetta.

+0

Grazie per la tua risposta breve T.Rob. Vorresti dare un'occhiata alle mie modifiche? Ho cercato di spiegare la mia domanda più precisamente. – A23149577

4

quando uso SYSTEM.ADMIN.SVRCONN come nome del canale, ho ottenuto: Canale nome non riconosciuto errore (AMQ4871).

Si è definito il canale sul gestore code remoto?

se ho un nome di un canale come MY.CHANNEL.NAME ed è un canale di connessione server con mqm come MCAUSER, posso eseguire alcuni comandi (MQSC o OS) attraverso questo canale sul server ?

Sicuro. E così può chiunque altro. Si dovrebbe leggere sulla sicurezza MQ e non esporre il proprio gestore code agli hacker.

+0

Grazie Roger per la risposta, ho controllato la porta e la porta listener SYSTEM.ADMIN.SVRCONN era diversa, quindi ha senso che il nome del canale non sia stato riconosciuto. Tuttavia, riguardo alla tua seconda risposta, ho un canale con mqm come MCAUSER e non ha alcun meccanismo di autenticazione, come posso eseguire alcuni comandi attraverso questo canale sul server MQ? – A23149577