Dell PowerEdge sunucularda BIOS (Basic Input/Output System) ve UEFI (Unified Extensible Firmware Interface) arasındaki fark yalnızca arayüz değildir; güvenlik modeli temelden farklıdır. 14. nesil (14G) ve sonrasında Dell, tüm sunucularda UEFI Class 3 uyumluluğu sağlamakta, CSM (Compatibility Support Module) desteğini kademeli olarak kaldırmaktadır. Bu geçiş, Secure Boot ve TPM gibi modern güvenlik özelliklerinin kullanımını zorunlu kılmaktadır.
Dell'in BIOS yönetim araçları üç katmanda çalışır: iDRAC9 (Integrated Dell Remote Access Controller), racadm CLI ve Redfish API. iDRAC9, BIOS ayarlarını işletim sistemi bağımsız olarak yönetmenizi sağlar; bu da bakım penceresinde bile güvenlik politikalarını uygulamanıza olanak tanır. Redfish API, DMTF standardını takip eder ve vendor-agnostic otomasyon imkânı sunar.
🔒
Secure Boot
UEFI imza doğrulama
14G+ varsayılan açık
🔑
TPM 2.0
Donanım güven kökü
fTPM veya dTPM seçeneği
🛡️
iDRAC9
OOB Yönetim
Redfish v1.x uyumlu
⚙️
racadm
CLI Yönetim Aracı
local / uzak mod
ℹ️
Dell PowerEdge sunucularda BIOS ayarları bir sonraki yeniden başlatmada etkinleşir. Staged (sahnelenmiş) mod ile yapılandırma beklenebilir; Immediate mod ise iDRAC'ın sunucuyu yeniden başlatmasını tetikler.
racadm -r <idrac-ip> -u root -p <password> getversion -f all
racadm -r <idrac-ip> -u root -p <password> getversion -t bios
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysInformation
curl -s -k -u root:<password> \
https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1 \
| python3 -m json.tool | grep -E '"BiosVersion|Model|Manufacturer"'
Secure Boot, UEFI firmware'in yalnızca güvenilir imzaya sahip boot loader ve kernel'ları yüklemesini sağlar. Dell PowerEdge'de Secure Boot varsayılan olarak Deployed Mode ile gelir; bu mod PK (Platform Key), KEK (Key Exchange Key), db (Signature Database) ve dbx (Forbidden Signatures Database) değişkenlerini içerir. Üretim ortamında bu anahtarları kuruluşunuzun özel sertifika yetkilisine göre özelleştirmeniz kritik önem taşır.
Dell, iki Secure Boot modu sunar: Standard Mode (Dell fabrika anahtarlarını kullanır) ve Custom Mode (kendi db/KEK sertifikalarınızı ekleyebilirsiniz). Özellikle özel imzalı kernel modülü kullanan ortamlarda Custom Mode zorunludur. Mevcut Secure Boot durumu racadm veya Redfish API ile sorgulanabilir ve değiştirilebilir.
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysSecurity.SecureBoot
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.SysSecurity.SecureBoot Enabled
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysSecurity.SecureBootMode
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.SysSecurity.SecureBootMode CustomMode
curl -s -k -u root:<password> \
https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1/SecureBoot \
| python3 -m json.tool
curl -s -k -u root:<password> \
-X PATCH \
-H "Content-Type: application/json" \
-d '{"SecureBootEnable": true}' \
https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1/SecureBoot
curl -s -k -u root:<password> \
-X POST \
-H "Content-Type: application/json" \
-d '{}' \
https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1/SecureBoot/Actions/SecureBoot.ResetKeys
⚠️
Dikkat: Secure Boot etkinleştirilmeden önce mevcut işletim sistemi boot loader'ının (GRUB, shim, Windows Boot Manager) geçerli bir imzaya sahip olduğunu doğrulayın. İmzasız boot loader ile Secure Boot etkinleştirilirse sunucu açılmaz.
Özel Sertifika Ekleme (Custom Mode)
openssl x509 -in my-ca.pem -outform DER -out my-ca.der
racadm -r <idrac-ip> -u root -p <password> \
sslcertupload -t 11 -f my-ca.der
racadm -r <idrac-ip> -u root -p <password> \
get BIOS.SysSecurity.SecureBootDb
Trusted Platform Module (TPM), kriptografik anahtarları güvenli biçimde depolayan ve platform bütünlüğünü ölçen bir donanım bileşenidir. Dell PowerEdge sunucularda fTPM (firmware TPM — Intel PTT) ve dTPM (discrete TPM — fiziksel çip) olmak üzere iki seçenek mevcuttur. Kurumsal ortamlarda, özellikle BitLocker veya TPM tabanlı disk şifreleme kullanan sistemlerde dTPM önerilir çünkü firmware güncellemelerinden etkilenmez.
TPM 2.0 etkinleştirildiğinde, PCR (Platform Configuration Register) kayıtları boot sürecinin her aşamasını ölçer ve değiştirilmemiş bir boot zincirini garanti eder. Bu mekanizma, önyükleyici manipülasyonu veya firmware değişikliği gibi tehditlere karşı koruma sağlar. Özellikle vTPM (sanal TPM) kullanan VMware ESXi ortamlarında dTPM varlığı zorunludur.
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysSecurity.TpmSecurity
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.SysSecurity.TpmSecurity On
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysSecurity.TpmInfo
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysSecurity.TpmActivation
curl -s -k -u root:<password> \
https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1 \
| python3 -c "import sys,json; d=json.load(sys.stdin); print(json.dumps(d.get('TrustedModules',[]), indent=2))"
cat /sys/class/tpm/tpm0/tpm_version_major
tpm2_getcap properties-fixed | grep TPM2_PT_MANUFACTURER
tpm2_pcrread sha256:0,1,2,3,4,5,6,7
✅
Best Practice: TPM ownership'ini etkinleştirdikten sonra mutlaka TPM owner password'ü kaydedin ve güvenli bir kasada saklayın. Owner password kaybedilirse TPM'yi sıfırlamak sunucuyu açmanızı gerektirir ve şifreli disklere erişilemez hale gelebilir.
Dell PowerEdge BIOS, iki ayrı parola katmanı sunar: System Password (boot sırasında sistem başlatma parolası) ve Setup Password (BIOS ayarlarına erişim parolası). Güvenlik sertleştirme kapsamında her iki parolanın da ayarlanması gereklidir. Yalnızca Setup Password ayarlanmışsa, kullanıcı sistemi boot edebilir ancak BIOS ayarlarını değiştiremez — bu çoğu kurumsal senaryo için yeterli değildir.
USB external storage boot, PXE boot ve optik sürücüden boot gibi alternfatif önyükleme seçeneklerinin kısıtlanması da BIOS güvenliğinin ayrılmaz parçasıdır. Bir saldırgan fiziksel erişime sahipse yetkisiz bir ortamdan boot ederek şifrelenmemiş disk verilerine erişebilir. Bu nedenle Boot Sequence Lock ve External Media kısıtlamaları mutlaka uygulanmalıdır.
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.SysSecurity.SetupPassword <yeni-parola>
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.SysSecurity.SystemPassword <yeni-parola>
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.SysProfileSettings.ExtSerialConnector Disabled
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.PxeDev1Settings.PxeDev1EnDis Disabled
racadm -r <idrac-ip> -u root -p <password> get BIOS.BiosBootSettings
racadm -r <idrac-ip> -u root -p <password> \
set BIOS.BiosBootSettings.BootMode Uefi
racadm -r <idrac-ip> -u root -p <password> \
jobqueue create BIOS.Setup.1-1 -r pwrcycle -s TIME_NOW
racadm -r <idrac-ip> -u root -p <password> jobqueue view
🚨
Kritik Uyarı: BIOS Setup Password'ü kayıt altına alın. Password unutulursa sisteme fiziksel erişim ve CMOS pil çıkarma işlemi gerekir. Kurumsal ortamlarda parola yönetim sistemi (örn. HashiCorp Vault, CyberArk) entegrasyonu zorunludur.
iDRAC9, BIOS'tan bağımsız bir güvenlik yüzeyi oluşturur. Varsayılan root/calvin kimlik bilgileri değiştirilmemiş iDRAC'lar, ağ erişimi olan bir saldırgan için kritik bir giriş noktası oluşturur. iDRAC güvenliği; kimlik doğrulama, ağ kısıtlamaları, TLS politikaları ve oturum yönetimi olmak üzere dört ana boyutu kapsar.
iDRAC9 ile Active Directory / LDAP entegrasyonu, sertifika tabanlı kimlik doğrulama ve IP whitelisting yapılandırılabilir. Ayrıca iDRAC üzerindeki Virtual Media ve Virtual Console özelliklerini yalnızca gerekli olduğunda etkinleştirmek, saldırı yüzeyini önemli ölçüde azaltır.
racadm -r <idrac-ip> -u root -p calvin \
set iDRAC.Users.2.Password <güçlü-yeni-parola>
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.WebServer.TLSProtocol TLS1.2_and_higher
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.WebServer.HttpPort Disabled
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.IPMILan.Enable Disabled
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.IPFiltering.IPRangeStart1 10.10.0.1
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.IPFiltering.IPRangeEnd1 10.10.0.254
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.IPFiltering.Enable Enabled
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.SessionMgmt.SessionIdleTimeout 1800
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.SSH.Enable Enabled
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.Telnet.Enable Disabled
Büyük ölçekli ortamlarda her sunucuyu tek tek yapılandırmak hem zaman alıcı hem de hata yaratmaya yatkındır. Redfish API, tüm PowerEdge sunucularına aynı güvenlik politikasını programatik olarak uygulamanızı sağlar. Python tabanlı betikler veya Ansible playbook'ları ile yüzlerce sunucuyu idempotent biçimde sertleştirebilirsiniz.
Dell'in açık kaynak python-redfish-utility (iDRACulo) ve OpenManage Python SDK kütüphaneleri, Redfish çağrılarını soyutlayarak daha okunabilir otomasyon kodu yazılmasını kolaylaştırır. Aşağıdaki örnekler ham Redfish/curl ve Python SDK kombinasyonunu göstermektedir.
import requests
import json
import urllib3
urllib3.disable_warnings()
SERVERS = [
{"ip": "10.10.1.10", "user": "root", "pass": "SecureP@ss1"},
{"ip": "10.10.1.11", "user": "root", "pass": "SecureP@ss1"},
{"ip": "10.10.1.12", "user": "root", "pass": "SecureP@ss1"},
]
BIOS_SETTINGS = {
"Attributes": {
"SecureBoot": "Enabled",
"TpmSecurity": "On",
"BootMode": "Uefi",
"PxeDev1EnDis": "Disabled",
"SetupPassword": "BIOSPwd!2026"
}
}
def harden_server(server):
base = f"https://{server['ip']}/redfish/v1"
auth = (server['user'], server['pass'])
headers = {"Content-Type": "application/json"}
# BIOS ayarlarını uygula
r = requests.patch(
f"{base}/Systems/System.Embedded.1/Bios/Settings",
auth=auth, headers=headers,
data=json.dumps(BIOS_SETTINGS), verify=False
)
print(f"{server['ip']}: BIOS patch → {r.status_code}")
# Job oluştur (reboot gerektiren ayarlar için)
job_payload = {
"TargetSettingsURI": "/redfish/v1/Systems/System.Embedded.1/Bios/Settings"
}
r2 = requests.post(
f"{base}/Managers/iDRAC.Embedded.1/Jobs",
auth=auth, headers=headers,
data=json.dumps(job_payload), verify=False
)
print(f"{server['ip']}: Job oluşturuldu → {r2.headers.get('Location', 'N/A')}")
for srv in SERVERS:
harden_server(srv)
#!/bin/bash
SERVERS=("10.10.1.10" "10.10.1.11" "10.10.1.12")
USER="root"
PASS="SecureP@ss1"
for IP in "${SERVERS[@]}"; do
STATUS=$(curl -s -k -u "$USER:$PASS" \
"https://$IP/redfish/v1/Systems/System.Embedded.1" \
| python3 -c "import sys,json; d=json.load(sys.stdin); \
sb=d.get('Boot',{}).get('BootSourceOverrideEnabled','?'); print(sb)")
SECURE=$(curl -s -k -u "$USER:$PASS" \
"https://$IP/redfish/v1/Systems/System.Embedded.1/SecureBoot" \
| python3 -c "import sys,json; d=json.load(sys.stdin); \
print(d.get('SecureBootCurrentBoot','?'))")
echo "$IP → SecureBoot: $SECURE"
done
CIS (Center for Internet Security) Benchmark for Dell PowerEdge, sunucu güvenliğini değerlendirmek için endüstri standardı kontrol noktaları sağlar. Aşağıdaki kontrol listesi CIS Dell PowerEdge Server Benchmark v1.x ile uyumludur ve production ortamına geçmeden önce her maddeyi doğrulamanızı öneririz.
| Kontrol |
Öneri |
Seviye |
racadm Komutu |
| Secure Boot |
Enabled |
L1 |
set BIOS.SysSecurity.SecureBoot Enabled |
| TPM Security |
On |
L1 |
set BIOS.SysSecurity.TpmSecurity On |
| Boot Mode |
Uefi |
L1 |
set BIOS.BiosBootSettings.BootMode Uefi |
| IPMI over LAN |
Disabled |
L1 |
set iDRAC.IPMILan.Enable Disabled |
| iDRAC TLS |
TLS 1.2+ |
L1 |
set iDRAC.WebServer.TLSProtocol TLS1.2_and_higher |
| BIOS Setup Password |
Set |
L1 |
set BIOS.SysSecurity.SetupPassword <pwd> |
| USB External Boot |
Disabled |
L2 |
set BIOS.SysProfileSettings.ExtSerialConnector Disabled |
| iDRAC Telnet |
Disabled |
L1 |
set iDRAC.Telnet.Enable Disabled |
racadm -r <idrac-ip> -u root -p <password> get BIOS.SysSecurity \
| grep -E "SecureBoot|TpmSecurity|SetupPassword|BootMode"
racadm -r <idrac-ip> -u root -p <password> get iDRAC.WebServer
racadm -r <idrac-ip> -u root -p <password> get iDRAC.SSH
racadm -r <idrac-ip> -u root -p <password> get iDRAC.IPMILan
Güvenlik sertleştirme tek seferlik bir işlem değildir. Firmware güncellemeleri, yeni sunucu eklemeleri veya yanlış yapılandırmalar, güvenlik politikasının zamanla bozulmasına yol açabilir. Dell OpenManage Enterprise (OME) üzerinden yapılandırma uyumluluk profilleri oluşturabilir ve sapmaları otomatik olarak tespit edebilirsiniz.
iDRAC Lifecycle Controller logları, tüm BIOS değişikliklerini zaman damgalı biçimde kaydeder. Bu logların SIEM sistemine (Splunk, Elastic) iletilmesi, yetkisiz BIOS değişikliği girişimlerini gerçek zamanlı olarak algılamanızı sağlar. Redfish olay aboneliği ile kritik olaylar için push bildirim alabilirsiniz.
racadm -r <idrac-ip> -u root -p <password> lclog view -n 50 -s warning
racadm -r <idrac-ip> -u root -p <password> lclog view \
| grep -i "BIOS\|SecureBoot\|TPM" | tail -20
curl -s -k -u root:<password> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"Destination": "https://siem.example.com/redfish/events",
"EventTypes": ["Alert"],
"Context": "dell-bios-monitor",
"Protocol": "Redfish"
}' \
https://<idrac-ip>/redfish/v1/EventService/Subscriptions
curl -s -k -u admin:<password> \
-X POST \
-H "Content-Type: application/json" \
-d '{"TemplateId": 42, "DeviceIds": [1001, 1002, 1003]}' \
https://<ome-ip>/api/TemplateService/Actions/TemplateService.DeployTemplate
curl -s -k -u admin:<password> \
"https://<ome-ip>/api/ProfileService/ComplianceInfo?$filter=TemplateName eq 'BIOS-Hardening'" \
-o compliance-report.csv
- ✓ Secure Boot tüm sunucularda Enabled durumda
- ✓ TPM 2.0 etkin ve owner parolası Vault'ta kayıtlı
- ✓ BIOS Setup Password ayarlanmış ve parola yöneticisinde
- ✓ Boot Mode: UEFI only (CSM devre dışı)
- ✓ iDRAC varsayılan parolası değiştirilmiş
- ✓ IPMI over LAN devre dışı
- ✓ iDRAC TLS 1.2+ enforced
- ✓ Lifecycle Controller logları SIEM'e iletiliyor