ECS: Einschränkung der CAS-Client-IP
Zusammenfassung: In diesem Artikel wird die Möglichkeit beschrieben, Client-IP-Adressen einzuschränken, die auf einen CAS-Bucket zugreifen können.
Weisungen
Einführung:
- Die Funktion kann verwendet werden, wenn der Kunde den Zugriff von Client-IPs auf einen CAS-Bucket einschränken möchte. Nur die IP-Adressen, die in der Einschränkungsliste festgelegt sind, können auf den entsprechenden Nutzer zugreifen.
- Standardmäßig sind keine Einschränkungen für einen Nutzer festgelegt.
- Die Einschränkung der CAS-Nutzer-IP gilt für den Nutzer in allen VDCs.
- Das Standard-IP-Limit für einen Nutzer beträgt 10 und ist konfigurierbar.
Hinweis: Wenden Sie sich an den Dell ECS-Remotesupport , um den Standardwert für das IP-Limit zu ändern.
Schritte zum Konfigurieren der CAS-Client-IP-Einschränkung:
- Erstellen eines CAS-Nutzers
- Erstellen Sie eine .xml-Datei mit der IP-Liste, auf die Sie dem Benutzer Zugriff gewähren möchten. Jede andere IP-Adresse, die versucht, auf den CAS-Benutzer zuzugreifen, sollte fehlschlagen
FP_AUTHENTICATION_FAILED_ERR - Verwenden Sie den Befehl
PUTBefehl, um eine IP-Einschränkung für einen bestimmten Benutzer festzulegen - Verwenden Sie den Befehl
GETBefehl zum Abrufen oder Anzeigen des Einschränkungssatzes für einen Benutzer - Für
EDITeine Einschränkung, die zuvor für einen Benutzer festgelegt wurde, bearbeiten Sie die XML-Datei mit den IPs und führen Sie einePUT - Für
DELETEeine zuvor festgelegte Einschränkung, entfernen Sie das<ip_restrictions>127.127.127.127</ip_restrictions>aus der XML-Datei und führen Sie einePUT
XML-Beispieldatei, wenn die IP-Einschränkung festgelegt ist: (nur diese beiden IPs haben Zugriff auf CAS-Nutzer access_user)
cat new.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions_param> <ip_restrictions>127.127.127.127</ip_restrictions> <ip_restrictions>127.128.128.128 </ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions_param>
Nachfolgend finden Sie die REST Befehle mit PUT, GET, LISTund DELETE -Vorgänge, Für den Root-Nutzer muss ein Zugriffstoken verwendet werden.
Beispiel:
admin@ecsnode1:~> TOK=$(curl -iks https://localhost:4443/login -u root:*** | grep X-SDS-AUTH-TOKEN); echo $TOK X-SDS-AUTH-TOKEN: BAAcc1pZcEkxK3MyUU4xZy9ocEdnUXp0MHl2aTk0PQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOjdlNWQ0YzFkLTkzNjEtNDBkNS1iMWE4LTUwNzE5NDEwODRiZQIADTE2ODQ4MjYzOTk5OTIDAC51cm46VG9rZW46ODYzMzEyZDEtYzA3NC00MWFjLThlMjAtZDUzZmQ3Njk2MjVhAgAC0A8= admin@ecsnode1:~>
So legen Sie IP-Einschränkungen für Nutzer fest:
Verwenden Sie den folgenden Befehl:PUT /object/user-cas/ip-restrictions/{namespace_name}/{user_name}
Beispiel:
curl -ks -H 'Accept:application/xml' -H 'Content-Type:application/xml' -X PUT -d @new.xml -H "$TOK" https://10.245.xx.xx:4443/object/user-cas/ip-restrictions/cas_access/access_user
Antworttext – Beispiel 1: (standardmäßig, wenn keine IP-Einschränkung für den Nutzer festgelegt ist)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions>
Antworttext – Beispiel 2: (nur die unten angegebene Client-IP hat Zugriff auf den Nutzer.)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions_param> <ip_restrictions>128.128.128.128</ip_restrictions> <ip_restrictions>127.127.127.127</ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions_param>
So rufen Sie Nutzer-IP-Einschränkungen ab:
Verwenden Sie den folgenden Befehl:GET /object/user-cas/ip-restrictions/{namespace_name}/{user_name}
Beispiel:
curl -ks -H "$TOK" -H "Content-Type: application/json" https://10.245.xx.xx:4443/object/user-cas/ip-restrictions/cas_access/access_user | xmllint -format -
Beispiel für einen Antworttext: (nur die unten angegebene Client-IP hat Zugriff auf den Nutzer.)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <ip_restrictions>127.127.127.127</ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions>
Antworttext – Beispiel 2: (GET für einen Nutzer standardmäßig, wenn keine IP-Einschränkung festgelegt ist)
curl -ks -H "$TOK" -H "Content-Type: application/json" https://10.245.xx.xx:4443/object/user-cas/ip-restrictions/cas_access/access_user | xmllint -format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>access_user</user_name>
So listen Sie IP-Einschränkungen für Nutzer auf:
Verwenden Sie den folgenden Befehl:
GET /object/user-cas/ip-restrictions/
Beispiel: (listet die IP-Einschränkungen für jeden Benutzer auf)
curl -ks -H "$TOK" -H "Content-Type: application/json" https://10.245.xx.xx:4443/object/user-cas/ip-restrictions | xmllint -format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions_list> <userIpRestriction> <user_name>tsouser</user_name> </userIpRestriction> <userIpRestriction> <user_name>tsouser2</user_name> </userIpRestriction> <userIpRestriction> <ip_restrictions>10.245.xx.xx</ip_restrictions> <ip_restrictions>10.247.xx.xx</ip_restrictions> <ip_restrictions>10.245.xx.xx</ip_restrictions> <ip_restrictions>10.247.xx.xx</ip_restrictions> <ip_restrictions>10.243.xx.xx</ip_restrictions> <user_name>clientuser</user_name> >>>these are the restrictions set for this user </userIpRestriction> <userIpRestriction> <user_name>gctest</user_name> </userIpRestriction> <userIpRestriction> <user_name>casgcuser2</user_name> </userIpRestriction> <userIpRestriction> <user_name>user2</user_name> </userIpRestriction> <userIpRestriction> <user_name>gcu2</user_name> </userIpRestriction> <userIpRestriction> <user_name>casgcuser1</user_name> >>>all these users doesn't have any restrictions set </userIpRestriction> </user_ip_restrictions_list>
So löschen Sie IP-Einschränkungen, die für einen Nutzer festgelegt wurden:
Entfernen Sie die IP-Einschränkungseinträge aus dem .xml und führen Sie einen PUT
cat new.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions_param> <user_name>clientuser</user_name> </user_ip_restrictions_param>
Befehl:
curl -ks -H 'Accept:application/xml' -H 'Content-Type:application/xml' -X PUT -d @new.xml -H "$TOK" https://10.245.130.65:4443/object/user-cas/ip-restrictions/clientns/clientuser
Beispiel für einen Antworttext:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>clientuser</user_name> </user_ip_restrictions>
Das folgende Beispiel zeigt das Verhalten der Funktion während PUTund GETund Zugriff auf einen Benutzer mit und ohne Einschränkung:
cat new.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions_param> <ip_restrictions>127.127.127.127</ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions_param>
PUT:
curl -ks -H 'Accept:application/xml' -H 'Content-Type:application/xml' -X PUT -d @new.xml -H "$TOK" https://10.245.xx.xx:4443/object/user-cas/ip-restrictions/cas_access/access_user
GET:
curl -ks -H "$TOK" -H "Content-Type: application/json" https://10.245.xx.xx:4443/object/user-cas/ip-restrictions/cas_access/access_user | xmllint -format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <ip_restrictions>127.127.127.127</ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions>
Hat mit JCASS versucht, über 127.127.127.127 auf den Pool zuzugreifen, und konnte auf Folgendes zugreifen:
CASScript>po 10.245.xx.xx?name=access_user,secret=centera@1234 Attempting to connect to: 10.245.xx.xx?name=access_user,secret=centera@1234 Connected to: 10.245.xx.xx?name=access_user,secret=centera@1234 CASPool Properties: Connection String: 10.245.xx.xx?name=access_user,secret=centera@1234 Cluster Time: 2020.07.07 06:32:24 GMT Buffer Size: 16384 Prefetch Buffer Size: 32768 Connection Timeout: 120000 Multi-Cluster Failover Enabled: True Collision Avoidance Enabled: False
Es wurde versucht, über eine IP-Adresse auf den Pool zuzugreifen, die nicht in der IP-Einschränkungsliste enthalten ist (die eine Zulassungsliste ist). Der Zugriff auf den Pool sollte mit dem folgenden Fehler fehlschlagen:
CASScript>po 10.245.xx.xx?name=access_user,secret=centera@1234
Attempting to connect to: 10.245.xx.xx?name=access_user,secret=centera@1234
SDK Error Occurred:
Error Number: -10153
System Error: 0
Error: FP_AUTHENTICATION_FAILED_ERR
Error Class: null
Trace: HPPAuthCRTransaction.run<FPConnection::authenticate<Cluster.authenticate<Cluster::updateClusterInfo()<ClusterCloud::updateClusterInfo(e9f1a3c9-5cb1-3a76-a589-f639de9ad2e4)<ClusterCloud::getClusterInfo(0,ClusterInformation&,2)<FPPool::Open(10.245.130.64?name=access_user,secret=centera@1234)<_FPPool_Open(10.245.130.64?name=access_user,secret=centera@1234)<FPPool_Open8(10.245.130.64?name=access_user,secret=centera@1234)Weitere Informationen
https://dl.dell.com/content/manual52394679-ecs-3-8-administration-guide.pdf?language=en-us
https://www.dell.com/support/manuals/en-us/ecs-appliance-software-with-encryption/ecs_p_adminguide_3_8/restrict-user-ip-addresses-that-can-access-a-cas-bucket?guid=guid-c4e67b45-46f8-46fa-93cf-f63795add0ad⟨=en-us