ECS: Sådan forhindres værtsheaderinjektion på ECS 3.8.0 og nyere for at undgå Management API 403-fejl og utilgængelig Grafana-brugergrænseflade
Summary: Fra og med ECS 3.8.0.x er der løst et sikkerhedsproblem vedrørende indsættelse af værtsheader (se produktbemærkninger til 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
Hvad er Host Header Injection?
- Programmet har tillid til den HTTP-værtsheader, der leveres af brugeren, og bruger den brugerleverede værtsheader til at omdirigere til en anden side.
- En hacker kan drage fordel af det ved at ændre HTTP-værtsoverskriften til et ondsindet værtsnavn og omdirigere brugeren til en ondsindet webside.
Bemærk: Dette påvirker kun Management API-kald via en proxy eller en belastningsjustering. Det påvirker ikke datadriften.
Hvilke ændringer implementeres ved at starte ECS 3.8.0.x?
Som en del af rettelsen implementeres et nyt sæt API'er, der gør det muligt at indstille eller fjerne indstillingen af listen over tilladte servernavne. Værtsheaderværdien for indgående anmodninger kontrolleres i forhold til denne liste. Anmodningen afvises, hvis værtsheaderværdien ikke findes på listen.
Nedenfor er det nye sæt REST API'er, der blev introduceret til registrering og administration af listen over accepterede servere.
| Ressourcenavn | Beskrivelse |
|---|---|
GET /acceptedservernames/ |
Henter listen over accepterede administrationsservernavne |
POST /acceptedservernames/ |
Opretter eller erstatter listen over accepterede administrationsservernavne |
PUT /acceptedservernames/ |
Opdater listen over accepterede administrationsservernavne. |
DELETE /acceptedservernames/ |
Sletter listen over accepterede administrationsservernavne |
Under hvilke omstændigheder er du berørt?
Brugsscenarier til implementering af løsningen med konfiguration af listen over accepterede servere på ECS:
| Opgradering fra | Opgradering til eller installation på | Afhjælpning |
|---|---|---|
| ECS 3.7 og tidligere | ECS 3.8.0.x |
|
| ECS 3.7 og tidligere | ECS 3.8.1.x eller nyere |
|
| ECS 3.8.0.x | ECS 3.8.1.x eller nyere |
|
Hvad indikerer, at du er stødt på et problem?
- Alle administrationslogin-API'er mislykkes med 403-forbidden efter ny installation eller opgradering til 3.8.0.x fra tidligere 3.8-versioner.
- Grafana-dashboardet kan også være utilgængeligt.
Hvilke fejl viser logfilerne 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.
Løsningsoversigt (efter opgradering til 3.8.0.x eller nyere)
- Opgrader ECS xDoctor-softwaren til den nyeste version.
- Tilføj listen over eksterne IP-adresser.
- Der er ikke noget krav om at registrere eksterne servere, der foretager Management API-kald direkte til ECS-noderne eller bruger ECS-nodernes IP'er, da forbindelsen allerede ville være vellykket. Nedenstående procedure er kun nødvendig, hvis forbindelsen sendes via en proxyserver eller en Load Balancer. Derfor skal alle proxy- og/eller belastningsjusteringer føjes til administrationsserverens liste over accepter af servernavne.
1-xDoctor-opgradering
- Opgrader ECS xDoctor-softwaren til den nyeste tilgængelige version.
- Kontroller xDoctor-versionen, der kører på dit system. Hvis versionen er 4.8-87.0 eller nyere, skal du gå til trin "Tilføj liste over eksterne IP-adresser". Hvis ikke, skal du fortsætte med nedenstående trin.
Kommando:
# sudo xdoctor --version
Eksempel:
admin@node1:~> sudo xdoctor --version 4.8-87.0
- Log på Dells supportwebsted, opret forbindelse direkte til denne download ECS-downloadplacering, søg efter xDoctor ved hjælp af nøgleordets søgelinje, og klik på linket xDoctor 4.8-87.0 RPM for at downloade. For at se produktbemærkningerne skal du oprette forbindelse direkte til ECS-produktsiden, vælge Manualer og dokumenter fra sidebjælken, hvorfra de skulle være tilgængelige til download.
- Når RPM er downloadet, skal du bruge et eksternt SCP-program til at uploade filen til mappen /home/admin på den første ECS-node.
- Når uploaden er fuldført, SSH til den første node i ECS-systemet ved hjælp af admin.
- Opgrader xDoctor på alle noder med den nyligt distribuerede version.
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 VDC med flere racks, skal den nye xDoctor-pakke installeres på den første node i hvert rack. For at identificere disse primærvalg skal du køre nedenstående kommando. I dette tilfælde er fire racks og fire rackprimærvalg fremhævet
- Find rackets primære noder (fremhævet med fed 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
- Kopiér pakken fra systemets første node (R1N1) til de andre rackprimærvalg i henhold til nedenstående:
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~>
- I henhold til trin 1 ovenfor skal du køre den samme xDoctor-installationskommando på hver af ovenstående rackprimærvalg, der er identificeret tidligere.
Kommando:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpm
2-A Tilføj liste over eksterne IP-adresser.
- En administrationsbruger skal udføre denne aktivitet med rollen Sikkerhedsadministrator. I eksemplet nedenfor bruger vi rodbrugeren , da den også har en sikkerhedsadministrationsfunktion.
- Det kan gøres på enhver node på ECS VDC.
- I en føderation med flere VDC'er skal den udføres, efter at alle VDC'er i føderationen er blevet opgraderet. Proceduren kan derefter anvendes på hver VDC.
-
BEMÆRK: Tilladelseslisten replikeres på tværs af VDC'er, der er medlem af organisationsnetværket, så hvis du tilføjer tilladelseslisteposter i én klynge, replikeres disse poster til den anden klynge, og alt, hvad der allerede er tilføjet i den anden klynge, overskrives
- Værktøjet udsender en "401 - Uautoriseret" undtagelse, hvis brugeren ikke er sikkerhedsadministrator, eller hvis der bruges forkerte legitimationsoplysninger.
- Forbered listen over servernavne (IP, værtsnavn og FQDN), der skal føjes til tillidslisten. Konsolider listen i en fil, hver linje med et servernavn. Hvis administrationsnetværket er adskilt, skal FQDN for administrationsnoder også føjes til tillidslisten. Mange kunder skal muligvis tilføje navnene på noderne; både kort ved hjælp af svc_exec "værtsnavn -s" og lang ved hjælp af svc_exec værtsnavn
For at kontrollere, om netværksadskillelse til administration, skal du køre nedenstående og søge efter "mgmt" fremhævet.
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 servernavneliste (erstat med de rigtige).
# 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 logfilerne for at kontrollere servernavnet for eventuelle 403-fejl:
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 servernavneliste (erstat med de rigtige).
# 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
Tilføj servere, der er tillid til, med den medfølgende liste, der leverer mgmt_user<>. Brugeren bliver bedt om at indtaste adgangskoden til mgmt_user, indtaste adgangskoden og derefter trykke på Enter for at fortsætte.
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 servere, der er tillid til. Listen kan enten a) udskrives på en skærm for hurtig kontrol, hvis den er kort, eller b) gemmes i en fil til sikkerhedskopiering eller inspektion.
- Udskriv resultatet til skærmen. Du bliver bedt om at indtaste adgangskoden, tryk på enter for at fortsætte.
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
- Gem resultatet i en fil. Du bliver bedt om at indtaste adgangskoden, tryk på enter for at fortsætte.
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
Bemærk: I tilfælde af at en Load Balancer IKKE bruges og stadig får det samme
nginx 403 Forbidden fejl i ECS-brugergrænsefladen, skal du kontrollere, om kunden brugerVLAN-netværk. Adskillelse ved hjælp af getrackinfo -n kommando pr. trin 1. Hvis det er tilfældet, skal du tilføje administrations-DNS-navne og administrations-IP-adresser fra kundenetværket til listen over tillidsservere for alle deres noder.
(Så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 listen over eksterne IP-adresser.
Hvis du skal fjerne poster fra en liste, der er tillid til, bliver du bedt om at indtaste adgangskoden og trykke på enter for at fortsætte. A server.to.remove.list bør oprettes.
Eksempel:
# cat server.list.to.remove Load_balancer1_Hostname Load_balancer2_IPKommando til at fjerne:
svc_param asn remove -u <mgmt_user> -p -f <server.to.remove.list>(Du bliver bedt om at indtaste adgangskoden, tryk på enter for at fortsætte.)
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!
Angiv posterne igen for at bekræfte, at posterne er fjernet.
svc_param asn list -u root -p(Du bliver bedt om at indtaste adgangskoden, tryk på enter for at fortsætte.)
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
Du kan finde flere oplysninger og kontekst vedrørende denne ændring i følgende dokumenter, der er tilgængelige på Dell Support:
- Produktbemærkninger til ECS 3.8.0 eller ECS 3.8.1
- Administrationsvejledning til ECS 3.8.0 eller ECS 3.8.1
- Sikkerhedsvejledning til 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.