ECS: IP-beperking CAS-client
Samenvatting: In dit artikel wordt de mogelijkheid beschreven om client-IP-adressen te beperken die toegang hebben tot een CAS-bucket.
Instructies
Inleiding:
- Deze functie kan worden gebruikt wanneer klanten de toegang van client-IP's tot een CAS-bucket willen beperken. Alleen de IP-adressen die zijn ingesteld onder de beperkingslijst hebben toegang tot de betreffende gebruiker.
- Standaard zijn er geen beperkingen ingesteld voor een gebruiker.
- IP-beperking voor CAS-gebruikers is van toepassing op de gebruiker in alle VDC's.
- De limiet van het standaard IP-adres voor een gebruiker is 10 en deze is configureerbaar.
Opmerking: Neem contact op met Dell ECS Remote Support om de standaard IP-grenswaarde te wijzigen.
Stappen voor het configureren van CAS Client IP-beperking:
- Een CAS-gebruiker maken
- Maak een .xml-bestand met de lijst met IP-adressen die u toegang wilt geven aan de gebruiker. Elk ander IP-adres dat toegang probeert te geven tot de CAS-gebruiker zou moeten mislukken
FP_AUTHENTICATION_FAILED_ERR - Gebruik de
PUTopdracht om een IP-beperking voor een bepaalde gebruiker in te stellen - Gebruik de
GETOpdracht om de beperkingsset voor een gebruiker op te halen of weer te geven - Naar
EDITeen beperking die eerder voor een gebruiker was ingesteld, bewerk het xml-bestand met de IP's en voer eenPUT - Naar
DELETEeen beperking die eerder is ingesteld, verwijdert u de<ip_restrictions>127.127.127.127</ip_restrictions>uit het XML-bestand en voer eenPUT
Voorbeeld van een xml-bestand wanneer IP-beperking is ingesteld: (alleen deze twee IP's hebben toegang tot CAS-gebruikers 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>
Hieronder vindt u de REST opdrachten met PUT, GET, LISTen DELETE bewerkingen, moet een toegangstoken worden gebruikt voor rootgebruiker.
Voorbeeld:
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:~>
IP-beperkingen voor gebruikers instellen:
Gebruik de onderstaande opdracht:PUT /object/user-cas/ip-restrictions/{namespace_name}/{user_name}
Voorbeeld:
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
Response body voorbeeld 1: (standaard wanneer er geen IP-beperking is ingesteld voor de gebruiker)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions>
Voorbeeld 2 van de hoofdtekst van de respons: (alleen het hieronder opgegeven client-IP-adres heeft toegang tot de gebruiker)
<?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>
IP-beperkingen voor gebruikers ophalen:
Gebruik de onderstaande opdracht:GET /object/user-cas/ip-restrictions/{namespace_name}/{user_name}
Voorbeeld:
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 -
Voorbeeld van antwoordtekst: (alleen het hieronder opgegeven client-IP-adres heeft toegang tot de gebruiker)
<?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>
Voorbeeld 2 van de hoofdtekst van de respons: (GET standaard voor een gebruiker wanneer er geen IP-beperking is ingesteld)
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>
IP-beperkingen weergeven bij gebruikers:
Gebruik de onderstaande opdracht:
GET /object/user-cas/ip-restrictions/
Voorbeeld: (vermeldt de IP-beperkingen voor elke gebruiker)
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>
IP-beperkingen verwijderen die zijn ingesteld voor een gebruiker:
Verwijder de vermeldingen met IP-beperkingen uit de .xml en voer een 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>
Opdracht:
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
Voorbeeld van antwoordtekst:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>clientuser</user_name> </user_ip_restrictions>
In onderstaand voorbeeld ziet u het gedrag van de functie tijdens PUTen GET, en toegang tot een gebruiker met en zonder beperking:
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>
Met behulp van JCASS geprobeerd toegang te krijgen tot de pool vanaf 127.127.127.127 en had toegang tot:
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
Geprobeerd toegang te krijgen tot de pool vanaf een IP-adres dat niet in de lijst met IP-beperkingen staat (wat een lijst met toegestane adressen is). Toegang tot de groep zou moeten mislukken met de onderstaande fout:
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)Extra informatie
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