Anmelden

View Full Version : Remote call auf Linux von CL aus?



Seiten : [1] 2 3

Klaus Söllner
07-10-10, 15:56
Wir suchen nach einer Lösung, um aus einem CL heraus ein Programm oder Skript auf einem fernen Linux System aufzurufen.

Was wir bislang erfolglos versucht haben, ist der Weg über RUNRMTCMD, da der rexecd auf Linux Probleme mit der Authentifizierung macht.

Hier im Forum habe ich erfahren, dass man Telnet nicht skripten kann. Dieser Weg scheidet also auch aus.

Das Absetzen eines Remote-Befehls über FTP wird von den aktuellen Distributionen auch nicht mehr unterstützt.

Nun wäre die Idee gewesen, ein PHP Skript über den HTTP-Server von Linux aufzurufen, aber wie lässt sich das in einem CL bewerkstelligen?

Für Lösungsvorschläge wären wir sehr dankbar!

AS400.lehrling
07-10-10, 16:52
Hm,

Das spricht nicht für die Distribution :eek:

Was ist mit sftp oder scp :confused:


Gruß AS400.lehrling

bateau
08-10-10, 16:57
Mahlzeit!

Das mit der Authentifizierung sollte eigentlich relativ problemlos funzen.

Schau doch mal ins Logfile des rexecd auf deiner Linus Kiste, die Fehlernachrichten sind i.d.R. relativ aussagekräftig.

Eine beliebte Fehlerquelle ist der Penis pervers Lookup äääh DNS Reverse Lookup. Meines Wissens ist bei den meisten Distributionen der rexecd so eingestellt, dass er per(vers) Lookup überprüft, ob denn die Kombination aus IP-Adresse und Hostname stimmt. Simple Sicherheitsmassnahme...

Wenn Du keinen reverse Lookup für deine AS/400 (jawohl, SO heisst die Kiste, und nicht "Ei"!!!) in deinem DNS eingetragen hast verweigert der rexecd die Zusammenarbeit. Das Luder!

Grüsse

Martin

BenderD
08-10-10, 17:12
... der Hesse hats da einfacher, bei uns wird die Frage, wie die Kiste heißt mit "Ei AS400" beantwortet...



...AS/400 (jawohl, SO heisst die Kiste, und nicht "Ei"!!!)
Martin

Klaus Söllner
11-10-10, 11:02
Vielen Dank für den Tipp mit dem DNS Reverse Lookup. Leider führte der entsprechende Eintrag auch nicht zum Erfolg.

Bei jedem Versuch, ein RUNRMTCMD abzusetzen, erhalten wir im auth.log auf Linux-Seite folgende Meldungen:

Oct 10 22:55:25 npvvm011 in.rexecd[7564]: PAM unable to dlopen(/lib/security/pam_unix_auth.so): /lib/security/pam_unix_auth.so: cannot open shared object file: No such file or directory
Oct 10 22:55:25 npvvm011 in.rexecd[7564]: PAM adding faulty module: /lib/security/pam_unix_auth.so

(auf AS/400 Seite kommt gar kein Feedback - weder im Joblog noch als Spoolfile)


Mittlerweile haben wir zwar eine SSH Verbindung zustande gebracht, aber um diese unter Umgehung der Passworteingabe in ein CL packen zu können, müssten bei jedem aufrufenden AS/400 Benutzer die Keys im Home-Verzeichnis abgelegt werden (wenn ich es richtig verstanden habe). Auch kein wirklich eleganter Weg, zumal ich nicht bei jedem neu angelegten User darauf achten möchte.

Ich bin schon kurz vorm Haareraufen - warum müssen heutzutage die simplen Dinge so schwierig sein?

bateau
11-10-10, 17:56
Aaah kuck, sag ich doch, dass in den Logfiles was brauchbares zu finden ist.

Wenn die Kiste dir sagt, dass eine Datei fehlt, dann liegt es in der Regel daran... dass eine Datei fehlt :-)

Aus Spass wurde Ernst : Deine Linux-Installation ist nicht ok. Den sogenannten "Pluggable Authentication Modules" (PAM) fehlt eine Komponente.

Wenn Du rausfindest, in welchem rpm- bzw. deb-Paket diese zu finden ist (von Distribution zu Distribution kann das unterschiedlich sein), brauchst Du i.d.R. dieses nur zu installieren. Ggf. wird eine "-force" Option benötigt, denn wenn es laut rpm/deb Datenbank schon installiert ist, dann weigert das System sich, dieselbe Version nochmals drüberzuhauen.

Via SSH ist natürlich auch eine schöne Alternative, denn Da kannst Du statt User-/Passwort-Authentication ganz einfach über die authorized_keys fahren :

1.) Auf der AS/400 nen User einrichten, mit dem die Verbindung bzw. die Jobs laufen sollen.
2.) Auf der Linux Möhre nen user mit demselben Namen einrichten
3.) In der Kuh-Shell oder der PASE Shell mittels ssh-keygen ein private/public key pair ohne Passphrase generieren und im .ssh Verzeichnis des unter 1.) angelegten Users speichern (siehe auch IBM Software Knowledge Base, da gibts irgendwo nen Artikel, der das relativ gut beschreibt)
4.) Den soeben angelegten public key auf die Linux Möhre kopieren, am besten einfach erstmal die ganze id_rsa.pub oder wie auch immer per FTP oder SCP rüberkopieren
5.) Den Inhalt der public key Datei per cat im Append-Modus zur .ssh/authorized_keys2 Datei des Zielusers hinzufügen :
cat id_rsa.pub >> authorized_keys2

Jetzt sollte, wenn man mit dem unter 1.) erstellten User angemeldet ist, jegliche SSH-Verbindung zur Linux Möhre ohne Authentifizierung (aber natürlich SSH-verschlüsselt) laufen.

Ist ein bisschen Arbeit am Anfang, aber danach umso schöner. Ungefähr so, wie wenn man sich mim diggn Hammer auf die Wurstfinger kloppt und dann der Schmerz nachlässt.... schöööön :D

Grüsse

Martin

Klaus Söllner
12-10-10, 11:42
Vielen Dank für die SSH Anleitung! So in der Art habe ich das auch schon gefunden, aber wie gesagt wäre das bei uns problematisch gewesen, da das CL von vielen unterschiedlichen AS/400 Benutzern aufrufbar sein soll, welche dann alle das Schlüsselpaar im persönlichen Benutzerverzeichnis liegen haben müssten. Dafür wäre mir der Verwaltungsaufwand zu hoch.
(quasi nur um "Hello World!" zu fabrizieren :cool:)

Mit der nicht funktionierenden PAM Komponente sind wir auch noch nicht weiter gekommen. Möglicherweise ist das ein hausgemachtes Problem von Ubuntu auf VM-Ware. (Oder auch nicht - ich selbst habe keinen Schimmer von Linux, und diese kleine Episode hier weckt auch nicht gerade meine Begeisterung.)

Jedenfalls haben wir nun eine Lösung gefunden: cURL

Wie man cURL auf AS/400 installiert, ist hier im ersten Abschnitt schön beschrieben, inklusive Quellenangabe:
SNDTWTMSG - MidrangeWiki (http://wiki.midrange.com/index.php/SNDTWTMSG)

Damit können wir nun im CL über die QShell ein im Apache Server der Linux Maschine veröffentlichtes PHP Skript "aufrufen", welches die weitere Arbeit erledigt:

QSH CMD('/QOpenSys/usr/local/bin/curl -u name:kennwort http://linuxserver/as400/go.php')

Und nun ab zum Frisör - graue Haare tönen lassen. . .

Muller
23-08-13, 15:31
Hallo Zusammen,

ich versuche seit mehreren Stunden das Addon Curl zu installieren.
Ich habe einige Sachen probiert, dennoch finde ich nicht die im Link angegebene .tar Datei und kann somit auf der AS400 auch nicht entpacken / installieren.

Kann mir jemand helfen?

Danke!

Grüße Muller

Zerberus77
23-08-13, 19:21
Hallo Muller,

probier die 7.15.1 statt die 7.13.1 Version von hier: ftp://ftp.thewrittenword.com/packages/by-name/curl-7.15.1/powerpc-ibm-aix4.3.3.0/curl-7.15.1.lpp.tar.Z


MFG Zerberus

Muller
24-08-13, 07:04
Hallo,

ich habe mir deine verlinkte Datei herunter geladen.
Ich erhalte folgende Dateien

curl-7.15.1.lpp.tar.Z

Wenn ich diese entpacke den Ordner

curl-7.15.1.lpp

dieser enthält folgende Dateien

LICENSE.CURL
LICENSE.LIBGCRYPT.LGPL
LICENSE.LIBGNUTLS
LICENSE.LIBGPG-ERROR.LGPL
LICENSE.LIBTASN1.LGPL
LICENSE.pycurl.LGPL
LICENSE.ZLIB
README
TWW.curl715.bff

In der Anleitung steht was von

"uncompress curl.7.13.1.tar.Z (gives curl.7.13.1.tar)"
"tar xf /home/addons/curl.7.13.1.tar (installs curl in /QOpenSys/usr/local)

Ich erhalte weder die oben beschriebene Datei, noch eine andere brauchbare die mit dem Befehl 'tar' verwendet werden kann.

Was mache ich falsch?
Bin für alle Tipps dankbar.

@Zerberus77 Danke für deine schnelle Antwort!

Grüße Muller