ECS: Så här förhindrar du inmatning av värdrubrik på ECS 3.8.0 och senare för att undvika hanterings-API 403-fel och otillgängligt Grafana-användargränssnitt
Summary: Från och med ECS 3.8.0.x finns det ett säkerhetsproblem som åtgärdats angående injicering av värdhuvud (se versionskommentarer för 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
Vad är Host Header Injection?
- Programmet litar på HTTP-värdhuvudet som tillhandahålls av användaren och använder värdhuvudet som tillhandahålls av användaren för att omdirigera till en annan sida.
- En angripare kan dra nytta av det genom att ändra HTTP-värdhuvudet till ett skadligt värdnamn och omdirigera användaren till en skadlig webbsida.
Obs! Detta påverkar endast Management API-anrop via en proxy eller en lastbalanserare. Det påverkar inte dataåtgärder.
Vilka ändringar implementeras från och med ECS 3.8.0.x?
Som en del av korrigeringen implementeras en ny uppsättning API:er som gör det möjligt att ställa in eller ta bort listan över tillåtna servernamn. Värdhuvudets värde för inkommande begäranden kontrolleras mot listan. Begäran avvisas om värdhuvudets värde inte finns i listan.
Nedan visas den nya uppsättningen REST-API:er som introduceras för registrering och hantering av listan över godkända servrar.
| Resursnamn | Beskrivning |
|---|---|
GET /acceptedservernames/ |
Hämtar listan över godkända hanteringsservernamn |
POST /acceptedservernames/ |
Skapar eller ersätter listan över godkända hanteringsservernamn |
PUT /acceptedservernames/ |
Uppdatera listan över godkända hanteringsservernamn. |
DELETE /acceptedservernames/ |
Tar bort listan över godkända hanteringsservernamn |
Under vilka omständigheter påverkas du?
Användningsfall för att implementera lösningen att konfigurera listan över godkända servrar på ECS:
| Uppgradera från | Uppgradera till eller installera på | Åtgärd |
|---|---|---|
| ECS 3.7 och tidigare | ECS 3.8.0.x |
|
| ECS 3.7 och tidigare | ECS 3.8.1.x eller senare |
|
| ECS 3.8.0.x | ECS 3.8.1.x eller senare |
|
Vad tyder på att du har stött på ett problem?
- Alla API:er för hanteringsinloggning misslyckas med 403-forbidden efter ny installation eller uppgradering till 3.8.0.x från tidigare 3.8-versioner.
- Grafana-instrumentpanelen kan också vara otillgänglig.
Vilka fel visar loggarna 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.
Sammanfattning av lösning (efter uppgradering till 3.8.0.x eller senare)
- Uppgradera din ECS xDoctor-programvara till den senaste versionen.
- Lägg till listan över externa IP-adresser.
- Det finns inget krav på att registrera externa servrar som gör hanterings-API-anrop direkt till ECS-noderna direkt, eller använda ECS-nodernas IP-adresser, eftersom anslutningen redan skulle lyckas. Proceduren nedan krävs endast om anslutningen skickas via en proxyserver eller en lastbalanserare. Därför måste alla proxy- och/eller lastbalanserare läggas till i listan över godkända hanteringsservernamn.
1 xDoctor-uppgradering
- Uppgradera din ECS xDoctor-programvara till den senaste tillgängliga versionen.
- Kontrollera xDoctor-versionen som körs på ditt system. Om versionen är 4.8-87.0 eller senare går du vidare till steg "Lägg till lista över externa IP-adresser". Om inte, fortsätt med stegen nedan.
Kommando:
# sudo xdoctor --version
Exempel:
admin@node1:~> sudo xdoctor --version 4.8-87.0
- Logga in på Dells supportwebbplats, anslut direkt till den här nedladdningsplatsen, sök efter xDoctor med hjälp av nyckelordssökfältet och klicka på länken xDoctor 4.8-87.0 RPM för att ladda ner. Om du vill visa versionskommentarerna ansluter du direkt till ECS-produktsidan och väljer Handböcker och dokument i sidofältet där de ska vara tillgängliga för nedladdning.
- När RPM-minnet har laddats ner använder du valfritt fjärr-SCP-program för att ladda upp filen till katalogen /home/admin på den första ECS-noden.
- När uppladdningen är klar SSH-anslut till den första noden i ECS-systemet med admin.
- Uppgradera xDoctor på alla noder med den nyligen distribuerade versionen.
Kommando:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpmExempel:
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
- Om miljön är en VDC med flera rack måste det nya xDoctor-paketet installeras på den första noden i varje rack. Om du vill identifiera dessa primära rackversioner kör du kommandot nedan. I det här fallet är fyra rack och fyra primära rack markerade
- Hitta de primära racknoderna (markerade i fetstil nedan).
Kommando:
# svc_exec -m "ip address show private.4 |grep -w inet"Exempel:
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
- Kopiera paketet från den första noden i systemet (R1N1) till de andra primära rackinställningarna enligt nedan:
Exempel:
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~>
- Enligt steg 1 ovan kör du samma xDoctor-installationskommando på var och en av ovanstående rackprimärer som identifierades tidigare.
Kommando:
# sudo xdoctor --upgrade --local=/home/admin/xDoctor4ECS-4.8-87.0.noarch.rpm
2-A Lägg till en lista över externa IP-adresser.
- En hanteringsanvändare måste utföra den här aktiviteten med rollen Säkerhetsadministratör. I exemplet nedan använder vi rotanvändaren eftersom den också har en säkerhetsadministrationsfunktion.
- Det kan göras på valfri nod på ECS VDC.
- I en federation med flera VDC:er måste det utföras efter att alla VDC: er i federationen har uppgraderats. Proceduren kan sedan tillämpas på varje VDC.
-
Obs! Tillåtelselistan replikeras över federerade virtuella datacenter, så om du lägger till godkännandelisteposter i ett kluster replikeras dessa poster till det andra klustret och allt som redan har lagts till i det andra klustret skrivs över
- Verktyget genererar undantaget "401 – Obehörig" om användaren inte är säkerhetsadministratör eller om fel autentiseringsuppgifter används.
- Förbered listan över servernamn (IP, värdnamn och FQDN) som ska läggas till i listan över betrodda användare. Konsolidera listan i en fil, där varje rad har ett servernamn. Om hanteringsnätverket är separerat ska även FQDN för hanteringsnoder läggas till i listan över betrodda noder. Många kunder kan behöva lägga till namnen på noderna. Både kort med svc_exec "värdnamn -s" och lång med svc_exec värdnamn
Om du vill kontrollera om nätverksseparation för hantering kör du nedanstående och söker efter "mgmt" markerat.
Kommando:
# getrackinfo -n
Exempel:
#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
Exempel nedan med servernamnslista (ersätt med de riktiga).
# 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
- Kontrollera loggarna för att kontrollera servernamnet för eventuella 403-fel:
Kommando:
svc_log -f 'ERROR HostHeaderAcceptListFilter.java' -sr objcontrolsvc -start '2 hours ago'
Exempel:
# 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
Exempel nedan med servernamnslista (ersätt med de riktiga).
# 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
Lägg till betrodda servrar med den medföljande listan som tillhandahåller <mgmt_user>. Användaren uppmanas att ange lösenordet för mgmt_user, ange lösenordet och sedan trycka på Retur för att fortsätta.
Kommando:
svc_param asn add -u <mgmt_user> -p -f <server.list>
Exempel:
# 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!
- Hämta listan över betrodda servrar. Listan kan antingen a) skrivas ut på en skärm för snabb kontroll om den är kort, eller b) sparas i en fil för säkerhetskopiering eller inspektion.
- Skriv ut resultatet på skärmen. Du uppmanas att ange lösenordet. Tryck på Retur för att fortsätta.
Kommando:
svc_param asn list -u <mgmt_user> -p
Exempel:
# 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
- Spara resultatet i en fil. Du uppmanas att ange lösenordet. Tryck på Retur för att fortsätta.
Kommando:
svc_param asn list -u <mgmt_user> -p -o <output file>
Exempel:
# 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
Obs! Om en lastbalanserare INTE används och fortfarande får samma
nginx 403 Forbidden fel i ECS-användargränssnittet, kontrollera om kunden använderVLAN-nätverket. Separering med hjälp av getrackinfo -n kommando per steg 1. I så fall lägger du till hanterings-DNS-namnen och IP-adresserna för hantering från kundnätverket i listan över betrodda servrar för alla noderna.
(Som nedan)
Exempel:
# 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 Ta bort listan över externa IP-adresser.
Om du måste ta bort poster från en lista över betrodda användare uppmanas du att ange lösenordet och trycka på Retur för att fortsätta. A server.to.remove.list bör inrättas.
Exempel:
# cat server.list.to.remove Load_balancer1_Hostname Load_balancer2_IPKommando för att ta bort:
svc_param asn remove -u <mgmt_user> -p -f <server.to.remove.list>(Du uppmanas att ange lösenordet, tryck på enter för att fortsätta.)
Exempel:
# 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!
Lista posterna igen för att bekräfta att posterna har tagits bort.
svc_param asn list -u root -p(Du uppmanas att ange lösenordet, tryck på enter för att fortsätta.)
Exempel:
# 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
Mer information och sammanhang om den här ändringen finns i följande dokument som finns på Dells support:
- ECS 3.8.0 eller ECS 3.8.1 versionskommentarer
- ECS 3.8.0 eller ECS 3.8.1 – Administrationsmanual
- ECS 3.8.0 eller ECS 3.8.1 säkerhetsmanual
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.