ECS: Slik forhindrer du vertshodeinjeksjon på ECS 3.8.0 og nyere for å unngå Management API 403-feil og utilgjengelig Grafana UI
Summary: Fra og med ECS 3.8.0.x oppstår det et sikkerhetsproblem angående vertshodeinjeksjon (se produktmerknader for 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
Hva er Host Header Injection?
- Programmet stoler på HTTP-vertshodet som er angitt av brukeren, og bruker det brukermeddelte vertshodet til å omdirigere til en annen side.
- En angriper kan dra nytte av det ved å endre HTTP-vertshodet til et skadelig vertsnavn og omdirigere brukeren til en skadelig webside.
Merk: Dette påvirker bare Management API-kall via en proxy eller en belastningsfordeler. Det påvirker ikke dataoperasjoner.
Hvilke endringer implementeres fra og med ECS 3.8.0.x?
Som en del av reparasjonen implementeres et nytt sett med API-er som gjør det mulig å angi eller fjerne innstillingen av listen over tillatte servernavn. Vertshodeverdien for innkommende forespørsler kontrolleres mot denne listen. Forespørselen avvises hvis verdien for vertshodet ikke finnes i listen.
Nedenfor er det nye settet med REST-API-er introdusert for registrering og administrasjon av listen over aksepterte servere.
| Ressursnavn | Beskrivelse |
|---|---|
GET /acceptedservernames/ |
Henter listen over godkjente navn på administrasjonsserver |
POST /acceptedservernames/ |
Oppretter eller erstatter listen over godkjente navn på administrasjonsserver |
PUT /acceptedservernames/ |
Oppdater listen over godtatte navn på administrasjonsserveren. |
DELETE /acceptedservernames/ |
Sletter listen over godtatte navn på administrasjonsserver |
Under hvilke omstendigheter er du berørt?
Brukstilfeller for å implementere løsningen for konfigurering av listen over godkjente servere på ECS:
| Oppgradere fra | Oppgradere til eller installere på | Utbedring |
|---|---|---|
| ECS 3.7 og eldre | ECS 3.8.0.x |
|
| ECS 3.7 og eldre | ECS 3.8.1.x eller nyere |
|
| ECS 3.8.0.x | ECS 3.8.1.x eller nyere |
|
Hva indikerer at du har støtt på et problem?
- Alle API-er for administrasjonspålogging mislykkes med 403-forbudt etter ny installasjon eller oppgradering til 3.8.0.x fra tidligere 3.8-versjoner.
- Grafana-dashbordet kan også være utilgjengelig.
Hvilke feil viser loggene på 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.
Oppløsningssammendrag (etter oppgradering til 3.8.0.x eller nyere)
- Oppgrader ECS xDoctor-programvaren til nyeste versjon.
- Legg til listen over eksterne IP-adresser.
- Det er ikke nødvendig å registrere eksterne servere som foretar API-kall for administrering direkte til ECS-nodene direkte, eller ved hjelp av IP-ene til ECS-nodene, siden tilkoblingen allerede vil være vellykket. Fremgangsmåten nedenfor er bare nødvendig hvis tilkoblingen sendes via en proxy-server eller en Load Balancer. Derfor må alle proxy- og/eller belastningsfordelere legges til i listen over godkjenningsservernavn.
1-xDoctor oppgradering
- Oppgrader ECS xDoctor-programvaren til nyeste tilgjengelige versjon.
- Sjekk xDoctor-versjonen som kjører på systemet ditt. Hvis versjonen er 4.8-87.0 eller nyere, går du til trinn "Legg til liste over eksterne IP-adresser." Hvis ikke, fortsett med trinnene nedenfor.
Kommando:
# sudo xdoctor --version
Eksempel:
admin@node1:~> sudo xdoctor --version 4.8-87.0
- Logg deg på Dells nettsted for kundestøtte, koble direkte til dette nedlastingsstedet for ECS, søk etter xDoctor ved hjelp av søkefeltet for nøkkelord, og klikk på koblingen xDoctor 4.8-87.0 RPM for å laste ned. Hvis du vil se produktmerknadene, kobler du direkte til ECS-produktsiden og velger Håndbøker og dokumenter fra sidepanelet der de skal være tilgjengelige for nedlasting.
- Når RPM er lastet ned, kan du bruke et eksternt SCP-program til å laste opp filen til /home/admin-katalogen på den første ECS-noden.
- Når opplastingen er fullført, bruker du SSH til den første noden i ECS-systemet ved hjelp av admin.
- Oppgrader xDoctor på alle noder med den nylig distribuerte versjonen.
Kommando:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpmEksempel:
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
- Hvis miljøet er en multi-rack VDC, må den nye xDoctor-pakken installeres på den første noden til hvert rack. Kjør kommandoen nedenfor for å identifisere disse rackprimærene. I dette tilfellet er fire racker og fire primærracker uthevet
- Finn primærnodene for racket (uthevet med fet skrift nedenfor).
Kommando:
# svc_exec -m "ip address show private.4 |grep -w inet"Eksempel:
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
- Kopier pakken fra den første noden i systemet (R1N1) til de andre rack-primærvalgene nedenfor:
Eksempel:
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~>
- Per trinn 1 ovenfor, kjør den samme xDoctor installere kommandoen på hver av de ovennevnte rack primærvalg identifisert tidligere.
Kommando:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpm
2-A Legg til liste over eksterne IP-adresser.
- En administrasjonsbruker må utføre denne aktiviteten med rollen som sikkerhetsadministrator. I eksemplet nedenfor bruker vi rotbrukeren , da den også har en sikkerhetsadministrasjonsfunksjon.
- Dette kan utføres på en hvilken som helst node på ECS VDC.
- I en føderasjon med flere VDC-er må det utføres etter at alle VDC-er i forbundet er oppgradert. Prosedyren kan deretter brukes på hver VDC.
-
MERK: Tillatelseslisten replikeres på tvers av forbundsbaserte VDC-er, slik at hvis du legger til tillatelseslisteoppføringer i én klynge, replikeres disse oppføringene til den andre klyngen og alt som allerede er lagt til i den andre klyngen
- Verktøyet gir et "401 - uautorisert" unntak hvis brukeren ikke er sikkerhetsadministrator, eller feil legitimasjon brukes.
- Klargjør listen over servernavn (IP, vertsnavn og FQDN) som skal legges til i klareringslisten. Konsolider listen i en fil, hver linje med ett servernavn. Hvis administrasjonsnettverket er atskilt, bør FQDN for administrasjonsnoder også legges til i klareringslisten. Mange kunder må kanskje legge til navnene på nodene; både kort med svc_exec "vertsnavn -s" og lang med svc_exec vertsnavn
For å sjekke nettverksseparasjonen for administrasjon, kjør du nedenfor og søk etter "mgmt" uthevet.
Kommando:
# getrackinfo -n
Eksempel:
#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
Eksempel nedenfor med servernavnliste (erstatt med de ekte).
# 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
- Kontroller loggene for å bekrefte servernavnet for eventuelle 403-feil:
Kommando:
svc_log -f 'ERROR HostHeaderAcceptListFilter.java' -sr objcontrolsvc -start '2 hours ago'
Eksempel:
# 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
Eksempel nedenfor med servernavnliste (erstatt med de ekte).
# 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
Legg til klarerte servere med listen som leverer mgmt_user<>. Brukeren blir bedt om å skrive inn passordet for mgmt_user, angi passordet, og trykk deretter enter for å fortsette.
Kommando:
svc_param asn add -u <mgmt_user> -p -f <server.list>
Eksempel:
# 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!
- Hent listen over klarerte servere. Listen kan enten a) skrives ut på en skjerm for rask sjekk om den er kort, eller b) lagres i en fil for sikkerhetskopiering eller inspeksjon.
- Skriv ut resultatet til skjermen. Du blir bedt om å skrive inn passordet, trykk enter for å fortsette.
Kommando:
svc_param asn list -u <mgmt_user> -p
Eksempel:
# 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
- Lagre resultatet i en fil. Du blir bedt om å skrive inn passordet, trykk enter for å fortsette.
Kommando:
svc_param asn list -u <mgmt_user> -p -o <output file>
Eksempel:
# 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
Merk: I tilfelle der en lastbalanserer IKKE brukes og fortsatt får det samme
nginx 403 Forbidden feil i ECS-brukergrensesnittet, kontrollerer du om kunden brukerVLAN-nettverk. Separasjon ved hjelp av getrackinfo -n Kommando per trinn 1. I så fall legger du til DNS-navnene for administrasjon og administrasjons-IP-adressene fra kundenettverket i listen over klarerte servere for alle nodene.
(Slik som nedenfor)
Eksempel:
# 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 Fjern liste over eksterne IP-adresser.
Hvis du må fjerne oppføringer fra en klarert liste, blir du bedt om å angi passordet og trykke enter for å fortsette. A server.to.remove.list bør opprettes.
Eksempel:
# cat server.list.to.remove Load_balancer1_Hostname Load_balancer2_IPKommando for å fjerne:
svc_param asn remove -u <mgmt_user> -p -f <server.to.remove.list>(Du blir bedt om å skrive inn passordet, trykk enter for å fortsette.)
Eksempel:
# 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!
Vis oppføringene på nytt for å bekrefte at oppføringer fjernes.
svc_param asn list -u root -p(Du blir bedt om å skrive inn passordet, trykk enter for å fortsette.)
Eksempel:
# 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
Hvis du vil ha mer informasjon og kontekst angående denne endringen, kan du se følgende tilgjengelige dokumenter på Dell Support:
- Produktmerknader for ECS 3.8.0 eller ECS 3.8.1
- Administrasjonsveiledning for ECS 3.8.0 eller ECS 3.8.1
- Sikkerhetsveiledning for ECS 3.8.0 eller 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.