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
Sammanfattning: 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).
Den här artikeln gäller för
Den här artikeln gäller inte för
Den här artikeln är inte kopplad till någon specifik produkt.
Alla produktversioner identifieras inte i den här artikeln.
Instruktioner
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
Ytterligare 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
Berörda produkter
ECS, ECS Appliance, Elastic Cloud StorageArtikelegenskaper
Artikelnummer: 000205031
Artikeltyp: How To
Senast ändrad: 14 nov. 2024
Version: 30
Få svar på dina frågor från andra Dell-användare
Supporttjänster
Kontrollera om din enhet omfattas av supporttjänster.