ECS: Jak zabránit vkládání hlavičky hostitele v systému ECS 3.8.0 a novějším, abyste se vyhnuli chybám rozhraní API pro správu 403 a nepřístupnému uživatelskému rozhraní Grafana
Summary: Počínaje verzí ECS 3.8.0.x byl vyřešen problém se zabezpečením týkající se vkládání hlavičky hostitele (viz informace o vydání pro STORAGE-27164).
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
Co je injektáž hlavičky hostitele?
- Aplikace důvěřuje hlavičce hostitele HTTP zadané uživatelem a používá hlavičku hostitele zadanou uživatelem k přesměrování na jinou stránku.
- Útočník by toho mohl využít změnou hlavičky hostitele HTTP na škodlivý název hostitele a přesměrováním uživatele na škodlivou webovou stránku.
Poznámka: To má vliv jenom na volání rozhraní API pro správu prostřednictvím proxy serveru nebo nástroje pro vyrovnávání zatížení. Nemá vliv na operace s daty.
Jaké změny se zavádějí od verze ECS 3.8.0.x?
V rámci opravy je implementována nová sada rozhraní API, která umožňuje nastavení nebo zrušení nastavení seznamu povolených názvů serverů. Hodnota hlavičky hostitele příchozích požadavků se kontroluje podle tohoto seznamu. Požadavek se odmítne, pokud se v tomto seznamu nenachází hodnota hlavičky hostitele.
Níže je uvedena nová sada rozhraní REST API zavedená pro registraci a správu seznamu akceptovaných serverů.
| Název zdroje | Popis |
|---|---|
GET /acceptedservernames/ |
Získá seznam přijatých názvů serverů pro správu. |
POST /acceptedservernames/ |
Vytvoří nebo nahradí seznam přijatých názvů serverů pro správu. |
PUT /acceptedservernames/ |
Aktualizujte seznam přijímaných názvů serverů pro správu. |
DELETE /acceptedservernames/ |
Odstraní seznam přijatých názvů serverů pro správu |
Za jakých okolností se vás to týká?
Případy použití řešení konfigurace seznamu přijímaných serverů v systému ECS:
| Upgrade z | Upgrade nebo instalace na | Náprava |
|---|---|---|
| ECS 3.7 a starší | ECS 3.8.0.x |
|
| ECS 3.7 a starší | ECS 3.8.1.x nebo novější |
|
| ECS 3.8.0.x | ECS 3.8.1.x nebo novější |
|
Co naznačuje, že jste narazili na problém?
- Všechna rozhraní API pro přihlášení ke správě selžou s kódem 403-forbidden po nové instalaci nebo upgradu na verzi 3.8.0.x z dřívějších verzí 3.8.
- Řídicí panel Grafana může být také nepřístupný.
Jaké chyby se zobrazují v protokolech ECS?
"GET /login HTTP/1.1" 403 error is seen in /opt/storageos/logs/nginx/access.log and /opt/storageos/logs/objcontrolsvc.log on nodes API calls are made against.
Shrnutí řešení (po upgradu na verzi 3.8.0.x nebo novější)
- Proveďte upgrade softwaru ECS xDoctor na nejnovější verzi.
- Přidejte seznam externích IP adres.
- Není nutné registrovat externí servery, které volají rozhraní API pro správu přímo do uzlů ECS nebo používají IP adresy uzlů ECS, protože připojení by již bylo úspěšné. Následující postup je vyžadován pouze v případě, že je připojení předáno přes proxy server nebo Load Balancer. Proto je nutné všechny nástroje proxy nebo nástroje pro vyrovnávání zatížení přidat do seznamu přijímaných názvů serverů pro správu.
Upgrade 1x Doctor
- Upgradujte software ECS xDoctor na nejnovější dostupnou verzi.
- Zkontrolujte, zda je v systému spuštěna verze aplikace xDoctor. Pokud je verze 4.8-87.0 nebo novější, přejděte ke kroku "Add list of external IP s". Pokud ne, pokračujte kroky níže.
Příkaz:
# sudo xdoctor --version
Příklad:
admin@node1:~> sudo xdoctor --version 4.8-87.0
- Přihlaste se k webu podpory společnosti Dell, připojte se přímo k tomuto umístění pro stahování ECS, vyhledejte aplikaci xDoctor pomocí vyhledávacího pole klíčových slov a klikněte na odkaz pro stažení aplikace xDoctor 4.8-87.0 RPM. Chcete-li zobrazit informace o vydání, připojte se přímo na stránku produktu ECS a na postranním panelu vyberte Příručky a dokumenty, odkud by měly být k dispozici ke stažení.
- Po stažení souboru RPM jej odešlete do adresáře /home/admin na prvním uzlu ECS pomocí libovolného programu pro vzdálené připojení SCP.
- Po dokončení nahrávání se jako správce přihlaste pomocí SSH k prvnímu uzlu v systému ECS.
- Proveďte upgrade aplikace xDoctor na všech uzlech na nově vydanou verzi.
Příkaz:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpmPříklad:
admin@ecs-n1:~> sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpm 2022-07-04 07:41:49,209: xDoctor_4.8-83.0 - INFO : xDoctor Upgrader Instance (1:SFTP_ONLY) 2022-07-04 07:41:49,210: xDoctor_4.8-83.0 - INFO : Local Upgrade (/home/admin/xDoctor4ECS-4.8-84.0.noarch.rpm) 2022-07-04 07:41:49,226: xDoctor_4.8-83.0 - INFO : Current Installed xDoctor version is 4.8-86.0 2022-07-04 07:41:49,242: xDoctor_4.8-86.0 - INFO : Requested package version is 4.8-84.0 2022-07-04 07:41:49,242: xDoctor_4.8-86.0 - INFO : Updating xDoctor RPM Package (RPM) 2022-07-04 07:41:49,293: xDoctor_4.8-86.0 - INFO : - Distribute package 2022-07-04 07:41:50,759: xDoctor_4.8-86.0 - INFO : - Install new rpm package 2022-07-04 07:42:04,401: xDoctor_4.8-86.0 - INFO : xDoctor successfully updated to version 4.8-87.0
- Pokud se jedná o prostředí VDC s více racky, na prvním uzlu každého racku je nutné nainstalovat nový balíček aplikace xDoctor. Chcete-li identifikovat tyto primární uzly racku, spusťte následující příkaz. V tomto případě jsou zvýrazněny 4 racky a 4 primární racky
- Najděte primární uzly racku (níže zvýrazněné tučně).
Příkaz:
# svc_exec -m "ip address show private.4 |grep -w inet"Příklad:
admin@ecsnode1~> svc_exec -m "ip address show private.4 |grep -w inet" svc_exec v1.0.2 (svc_tools v2.1.0) Started 2021-12-20 14:03:33 Output from node: r1n1 retval: 0 inet 169.254.1.1/16 brd 169.254.255.255 scope global private.4 Output from node: r2n1 retval: 0 inet 169.254.2.1/16 brd 169.254.255.255 scope global private.4 Output from node: r3n1 retval: 0 inet 169.254.3.1/16 brd 169.254.255.255 scope global private.4 Output from node: r4n1 retval: 0 inet 169.254.4.1/16 brd 169.254.255.255 scope global private.4
- Zkopírujte balíček z prvního uzlu systému (R1N1) do dalších uzlů racku, jak je uvedeno níže:
Příklad:
admin@ecs-n1: scp xDoctor4ECS-4.8-87.0.noarch.rpm 169.254.2.1:/home/admin/ xDoctor4ECS-4.8-84.0.noarch.rpm 100% 32MB 31.9MB/s 00:00 admin@ecsnode1~> scp xDoctor4ECS-4.8-87.0.noarch.rpm 169.254.3.1:/home/admin/ xDoctor4ECS-4.8-84.0.noarch.rpm 100% 32MB 31.9MB/s 00:00 admin@ecsnode1~> scp xDoctor4ECS-4.8-87.0.noarch.rpm 169.254.4.1:/home/admin/ xDoctor4ECS-4.8-87.0.noarch.rpm 100% 32MB 31.9MB/s 00:00 admin@ecsnode1~>
- Podle kroku 1 výše spusťte stejný instalační příkaz aplikace xDoctor na všech výše uvedených primárních rackových serverech.
Příkaz:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpm
2-A Přidejte seznam externích IP adres.
- Tuto činnost musí provádět uživatel pro správu s rolí správce zabezpečení. V níže uvedeném příkladu používáme uživatele root , protože má také funkci správy zabezpečení.
- Lze to provést na jakémkoli uzlu v systému ECS VDC.
- Ve federaci s více virtuálními datovými centry je nutné ji provést po upgradu všech virtuálních datových úložišť ve federaci. Postup lze poté aplikovat na každý VDC.
-
POZNÁMKA: Seznam povolených se replikuje napříč federovanými virtuálními počítači, takže přidáním položek seznamu povolených do jednoho clusteru se tyto položky replikují do druhého clusteru a přepíší se vše, co již bylo do druhého clusteru přidáno
- Pokud uživatel není správcem zabezpečení nebo jsou použity nesprávné přihlašovací údaje, nástroj vyvolá výjimku 401 – Neautorizováno.
- Příprava seznamu názvů serverů (IP, název hostitele a plně kvalifikovaný název domény), které mají být přidány do seznamu důvěryhodných certifikátů. Sloučit seznam do souboru, každý řádek s jedním názvem serveru. Pokud je síť pro správu oddělená, měl by být do seznamu důvěryhodných certifikátů přidán také plně kvalifikovaný název domény uzlů pro správu. Mnoho zákazníků může být nuceno přidat názvy uzlů. Krátké svc_exec "hostname -s" i dlouhé používání svc_exec názvu hostitele
Chcete-li zkontrolovat, zda je oddělení sítě pro správu, spusťte níže uvedený postup a vyhledejte zvýrazněný výraz "mgmt".
Příkaz:
# getrackinfo -n
Příklad:
#getrackinfo -n Named networks ============== Node ID Network Ip Address Netmask Gateway VLAN Interface 1 mgmt 1xx.xxx.xx.xxx 255.25x.xxx.x 19x.xxx.xx.x xxx public 1 mgmt 1xx.xxx.xx.xxx 255.25x.xxx.x 19x.xxx.xx.x xxx public 1 mgmt 1xx.xxx.xx.xxx 255.25x.xxx.x 19x.xxx.xx.x xxx public 1 mgmt 1xx.xxx.xx.xxx 255.25x.xxx.x 19x.xxx.xx.x xxx public 1 mgmt 1xx.xxx.xx.xxx 255.25x.xxx.x 19x.xxx.xx.x xxx public 1 mgmt 1xx.xxx.xx.xxx 255.25x.xxx.x 19x.xxx.xx.x xxx public
Níže uvedený příklad se seznamem názvů serverů (nahraďte skutečnými).
# cat trust.server.list ecs1-n1 ecs1-n1.dell.com ecs1-n2 ecs1-n2.dell.com ecs1-n3 ecs1-n3.dell.comecs1-n4 ecs1-n4.dell.comecs1-n5 ecs1-n5.dell.comLoad_balancer1_IPLoad_balancer1_HostnameLoad_balancer1_FQDNLoad_balancer2_IPLoad_balancer2_HostnameLoad_balancer2_FQDN
- Zkontrolujte protokoly a ověřte, zda název serveru neobsahuje chyby 403:
Příkaz:
svc_log -f 'ERROR HostHeaderAcceptListFilter.java' -sr objcontrolsvc -start '2 hours ago'
Příklad:
# svc_log -f 'ERROR HostHeaderAcceptListFilter.java' -sr objcontrolsvc -start '2 hours ago'
svc_log v1.0.31 (svc_tools v2.13.1) Started 2023-10-10 18:00:11
Running on nodes: <All nodes>
Time range: 2023-10-13 17:00:00 - 2023-10-13 18:11:47
Filter string(s): 'ERROR HostHeaderAcceptListFilter.java'
Show filename(s): True
Show nodename(s): True
Search reclaim logs (if any): False
169.254.1.1 objcontrolsvc.log 2023-10-10T17:00:07,188 [qtp47151359-4412] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m1
169.254.1.1 objcontrolsvc.log 2023-10-10T17:00:38,609 [qtp47151359-4386] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m1
169.254.1.1 objcontrolsvc.log 2023-10-10T17:01:07,499 [qtp47151359-4310] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m1
169.254.1.2 objcontrolsvc.log 2023-10-10T17:05:01,743 [qtp1754883736-3393] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m2
169.254.1.2 objcontrolsvc.log 2023-10-10T17:05:01,756 [qtp1754883736-3397] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m2
169.254.1.3 objcontrolsvc.log 2023-10-10T17:30:01,533 [qtp1289718177-2883] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m3
169.254.1.3 objcontrolsvc.log 2023-10-10T17:30:01,546 [qtp1289718177-2944] ERROR HostHeaderAcceptListFilter.java (line 81) The host header server name didn't match the accepted list ecsdev1-m3
Níže uvedený příklad se seznamem názvů serverů (nahraďte skutečnými).
# cat trust.server.list ecs1-n1 ecs1-n1.dell.com ecs1-n2 ecs1-n2.dell.com ecs1-n3 ecs1-n3.dell.comecs1-n4 ecs1-n4.dell.comecs1-n5 ecs1-n5.dell.com ecsdev1-m1 ecsdev1-m2 ecsdev1-m3Load_balancer1_IP Load_balancer1_HostnameLoad_balancer1_FQDNLoad_balancer2_IPLoad_balancer2_HostnameLoad_balancer2_FQDN
Přidejte důvěryhodné servery s poskytnutým seznamem dodávajícím <mgmt_user>. Uživatel bude vyzván k zadání hesla k mgmt_user, které poté zadejte a pokračujte stisknutím klávesy Enter.
Příkaz:
svc_param asn add -u <mgmt_user> -p -f <server.list>
Příklad:
# svc_param asn add -u root -p -f trust.server.list Password: svc_param v1.1.3 (svc_tools v2.7.0) Started 2022-11-08 19:27:16 add trusted servers successfully!
- Načtěte seznam důvěryhodných serverů. Seznam lze buď a) vytisknout na obrazovku pro rychlou kontrolu, pokud je krátký, nebo b) uložit do souboru pro zálohování nebo kontrolu.
- Vytiskněte výsledek na obrazovku. Budete vyzváni k zadání hesla. Pokračujte stisknutím klávesy Enter.
Příkaz:
svc_param asn list -u <mgmt_user> -p
Příklad:
# svc_param asn list -u root -p
Password:
svc_param v1.1.3 (svc_tools v2.7.0) Started 2023-10-10 19:32:58
Found 19 trusted servers:
Load_balancer1_FQDN
Load_balancer1_Hostname
Load_balancer1_IP
Load_balancer2_FQDN
Load_balancer2_Hostname
Load_balancer2_IP
ecs-n1
ecs-n1.nas2008.com
ecs-n2
ecs-n2.nas2008.com
ecs-n3
ecs-n3.nas2008.com
ecs-n4
ecs-n4.nas2008.com
ecs-n5
ecs-n5.nas2008.com
ecsdev1-m1
ecsdev1-m2
ecsdev1-m3
- Uložte výsledek do souboru. Budete vyzváni k zadání hesla. Pokračujte stisknutím klávesy Enter.
Příkaz:
svc_param asn list -u <mgmt_user> -p -o <output file>
Příklad:
# svc_param asn list -u root -p -o server.list.backup Password: svc_param v1.1.3 (svc_tools v2.7.0) Started 2022-10-10 19:38:05 Found 19 trusted servers: Please find the result in /home/admin/server.list.backup # cat /home/admin/server.list.backup Load_balancer1_FQDN Load_balancer1_Hostname Load_balancer1_IP Load_balancer2_FQDN Load_balancer2_Hostname Load_balancer2_IP ecs-n1 ecs-n1.nas2008.com ecs-n2 ecs-n2.nas2008.com ecs-n3 ecs-n3.nas2008.com ecs-n4 ecs-n4.nas2008.com ecs-n5 ecs-n5.nas2008.com ecsdev1-m1 ecsdev1-m2 ecsdev1-m3
Poznámka: V případě, že se Load Balancer nepoužívá a stále se používá stejný
nginx 403 Forbidden v uživatelském rozhraní ECS, zkontrolujte, zda zákazník používásíť VLAN. Separace pomocí getrackinfo -n pro krok 1. Pokud ano, přidejte názvy DNS pro správu a IP adresy pro správu ze sítě zákazníka do seznamu důvěryhodných serverů pro všechny jejich uzly.
(Například níže)
Příklad:
# cat trust.server.list 10.x.x.1 10.x.x.2 10.x.x.3 10.x.x.4 10.x.x.5 10.x.x.6 test-n1.domain.example test-n2.domain.example test-n3.domain.example test-n4.domain.example test-n5.domain.example test-n5.domain.example
2-B Odstraní seznam externích IP adres.
Pokud je nutné odebrat položky ze seznamu důvěryhodných položek, budete vyzváni k zadání hesla a budete pokračovat stisknutím klávesy Enter. A server.to.remove.list by měly být vytvořeny.
Příklad:
# cat server.list.to.remove Load_balancer1_Hostname Load_balancer2_IPPříkaz k odebrání:
svc_param asn remove -u <mgmt_user> -p -f <server.to.remove.list>(Budete vyzváni k zadání hesla, pokračujte stisknutím klávesy Enter.)
Příklad:
# svc_param asn remove -u root -p -f server.list.to.remove Password: svc_param v1.1.3 (svc_tools v2.7.0) Started 2022-11-08 19:42:00 remove trusted servers successfully!
Opětovným výpisem položek potvrďte odebrání položek.
svc_param asn list -u root -p(Budete vyzváni k zadání hesla, pokračujte stisknutím klávesy Enter.)
Příklad:
# svc_param asn list -u root -p
Password:
svc_param v1.1.3 (svc_tools v2.7.0) Started 2022-11-08 19:43:19
Found 4 trusted servers:
Load_balancer1_FQDN
Load_balancer1_IP
Load_balancer2_FQDN
Load_balancer2_Hostname
Additional Information
Další podrobnosti a kontext týkající se této změny najdete v následujících dokumentech dostupných na webu podpory Dell:
- Informace o vydání ECS 3.8.0 nebo ECS 3.8.1
- Průvodce správou ECS 3.8.0 nebo ECS 3.8.1
- Průvodce zabezpečením systému ECS 3.8.0 nebo ECS 3.8.1
Affected Products
ECS, ECS Appliance, Elastic Cloud StorageArticle Properties
Article Number: 000205031
Article Type: How To
Last Modified: 14 Nov 2024
Version: 30
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.