Ich versuche Softlayers Python-Bibliothek zu verwenden, um automatisierte Schwachstellen-Scans durchzuführen. Leider bekomme ich folgende Ausnahme:SoftLayer-Schwachstellen-Scan Python
SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception): Unable to create a new object of type SoftLayer_Network_Security_Scanner_Request_Nessus. Make sure the authentication method is correct.
Der Code, den ich verwende, kann unten gesehen werden.
erhieltPOST /xmlrpc/v3.1/SoftLayer_Network_Security_Scanner_Request HTTP/1.1
Host: api.softlayer.com
Connection: keep-alive
Accept: */*
Content-Type: application/xml
Content-Length: 798
<?xml version='1.0'?>
<methodCall>
<methodName>createObject</methodName>
<params>
<param>
<value><struct>
<member>
<name>headers</name>
<value><struct>
<member>
<name>authenticate</name>
<value><struct>
<member>
<name>username</name>
<value><string>***USERNAME_HERE***</string></value>
</member>
<member>
<name>apiKey</name>
<value><string>***API_KEY_HERE***</string></value>
</member>
</struct></value>
</member>
</struct></value>
</member>
</struct></value>
</param>
<param>
<value><struct>
<member>
<name>ipAddress</name>
<value><string>***TARGET_IP_HERE***</string></value>
</member>
<member>
<name>accountId</name>
<value><int>***ACCOUNT_ID_HERE***</int></value>
</member>
</struct></value>
</param>
</params>
</methodCall>
Die HTTP-Antwort ist:
import SoftLayer
USERNAME="" # I put valid value in here
APIKEY="" # I put valid value in here
TARGET="" # I put valid value in here
client = SoftLayer.create_client_from_env(
username=USERNAME,
api_key=APIKEY
)
""" ALTERNATE I TRIED ALSO FROM DOCUMENTATION:
client = SoftLayer.Client(
username=USERNAME,
api_key=APIKEY
)
"""
account = client['Account'].getObject()
scanner = client.call(
"SoftLayer_Network_Security_Scanner_Request",
"createObject", {
"accountId": account.get('id'),
"ipAddress": TARGET
})
Die HTTP-Anforderung durch die aussehen Python-Bibliothek gesendet werden
HTTP/1.1 200 OK
Date: Thu, 09 Feb 2017 12:47:17 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
Connection: close
Content-Type: text/xml
Content-Length: 495
<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value>
<string>SoftLayer_Exception</string>
</value>
</member>
<member>
<name>faultString</name>
<value>
<string>Unable to create a new object of type SoftLayer_Network_Security_Scanner_Request_Nessus. Make sure the authentication method is correct.</string>
</value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Könnte mir jemand bitte helfen und einen Blick auf der Code, da ich nicht herausfinden konnte, wo das Problem sein könnte. Könnten Sie bitte auch die Liste der erforderlichen Berechtigungen angeben, damit dies funktioniert?
Hinweis: Ich mit allen möglichen Berechtigungen versucht, aktiviert für das Debuggen aber kein Glück
Mit Ihrem Code ergab sich die folgende Ausnahme: SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError (SoftLayer_Exception_Public): Eine IP-Adresse ist erforderlich, um eine Sicherheitsabfrage zu starten. Also, ich habe die IP-Adresse der Anfrage hinzugefügt, aber dann bekomme ich genau die gleiche Ausnahme wie zuvor. – Keymandll
Lassen Sie mich überprüfen ... –
Ich hatte einen Schreibfehler mit der Anfrage für virtuelle Server Ich notierte "guiestId" statt "guestId" Es ist jetzt behoben Bitte versuchen Sie es erneut –