ECS. Ограничение IP-адреса клиента CAS
Résumé: В этой статье описывается возможность ограничения IP-адресов клиентов, которые могут получать доступ к контейнеру CAS.
Instructions
Введение.
- Эту функцию можно использовать, если заказчик хочет ограничить доступ клиентов к контейнеру CAS с помощью IP-адресов. Только IP-адреса, установленные в списке ограничений, могут иметь доступ к соответствующему пользователю.
- По умолчанию для пользователя не установлены никакие ограничения.
- Ограничение IP-адреса пользователя CAS применяется для пользователя во всех виртуальных ЦОД.
- Максимальное количество IP-адресов по умолчанию для пользователя равно 10 и может быть настроено.
Примечание. Обратитесь в службу удаленной поддержки Dell ECS , чтобы изменить значение ограничения для IP-адресов по умолчанию.
Шаги по настройке ограничения IP-адресов клиента клиентского реестра:
- Создание пользователя CAS
- Создайте файл .xml со списком IP-адресов, которым необходимо предоставить доступ пользователю. Любой другой IP-адрес при попытке доступа к пользователю CAS должен завершиться сбоем
FP_AUTHENTICATION_FAILED_ERR - Используйте клавишу
PUTкоманда для установки ограничения IP для конкретного пользователя - Используйте клавишу
GETкоманда для получения или просмотра ограничения, установленного для пользователя - Для
EDITограничение, которое ранее было установлено для пользователя, отредактируйте XML-файл с IP-адресами и выполните командуPUT - Для
DELETEограничение, которое было установлено ранее, удалите<ip_restrictions>127.127.127.127</ip_restrictions>из XML-файла и выполните командуPUT
Пример XML-файла, если установлено ограничение по IP-адресу: (только эти два IP-адреса имеют доступ к пользователю CAS 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>
Ниже приведены REST команды с PUT, GET, LISTи DELETE для пользователя root должен использоваться маркер доступа.
Пример:
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-адресу пользователя, выполните следующие действия.
Используйте следующую команду:PUT /object/user-cas/ip-restrictions/{namespace_name}/{user_name}
Пример.
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
Пример текста ответа 1: (по умолчанию, если для пользователя не установлено ограничение по IP-адресу)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>access_user</user_name> </user_ip_restrictions>
Пример текста ответа 2: (доступ к пользователю имеет только указанный ниже IP-адрес клиента)
<?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-адресу пользователя, выполните следующие действия.
Используйте следующую команду:GET /object/user-cas/ip-restrictions/{namespace_name}/{user_name}
Пример.
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 -
Пример текста ответа: (доступ к пользователю имеет только указанный ниже IP-адрес клиента)
<?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>
Пример текста ответа 2: (GET для пользователя по умолчанию, если не задано ограничение по IP-адресу)
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-адресам для пользователей:
Используйте следующую команду:
GET /object/user-cas/ip-restrictions/
Пример. (перечислены ограничения по IP-адресу для каждого пользователя)
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-адресу, установленные для пользователя, выполните следующие действия:
Удалите записи ограничения IP-адресов из .xml и выполните команду 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>
Команда.
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
Пример текста ответа:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_ip_restrictions> <user_name>clientuser</user_name> </user_ip_restrictions>
В приведенном ниже примере показано поведение функции во время PUTи GETи доступ к пользователю с ограничениями и без них:
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>
Используя JCASS, попытался получить доступ к пулу из 127.127.127.127 и смог получить доступ:
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
Попытка получить доступ к пулу с IP-адреса, который не входит в список ограниченных для IP-адресов (список разрешенных). При попытке доступа к пулу должен произойти сбой с ошибкой:
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)Informations supplémentaires
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