Pazar, Şubat 5, 2023
Anasayfa > Güncel Makaleler > LOG4J ve VMware Çözümü

LOG4J ve VMware Çözümü

vCenter Sanal Makina Eklenince Alarm Oluşturulması

Herkese Merhabalar son bir kaç günden beri öneli olan konuya değineceğim. Tüm dünyayı ayağa kaldıran Apache Log4j kullanan servis vb benzeri tüm yapılar kolayca hack edilebiliyor. Detaylara buradan erişebilirsiniz.

VMware için açıklanan bülten içinde burayı kontrol edebilirsiniz.

VMware firması etkilenen ürünler için henüz bir yama yayınlamış değil maalesef. Ancak kullandığınız ürünler için geçici çözümler ile bu açığı kapatabilirsiniz.

Küçük bir hatırlatma eğer VMware vCenter HA yapınız var ise önce bu yapıyı iptal etmeniz gerekiyor. PSC yapınız var ise bu işlemi hem PSC hemde vCenter’da yapmanız gerekmekte.

Yapmamız gerekenleri aşağıda anlatmaya çalışacağım. İşlemlere başlamadan önce mutlaka vCenter Server’in backup‘nı almayı ihmal etmeyin. Daha sonra vCenter Server’e SSH ile bağlantı yapmanız gerekmektedir.

LOG4J ve VMware Çözümü

Şimdi sırası ile aşağıdaki komut setlerini çalıştırmanız gerekmekte.

Öncelikle vMON Service için komut çalıştırıyoruz.

java-wrapper-vmon” dosyasını yedekliyoruz öncelikle.

cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak

LOG4J ve VMware Çözümü

vi editör yardımı ile “java-wrapper-vmon” dosyasını açıyoruz.
vi /usr/lib/vmware-vmon/java-wrapper-vmon

LOG4J ve VMware Çözümü

Şimdi burada önemli olan nokta kullandığınız sürüme göre aşağıdaki satırlarda değişiklik yapmanız gerekmekte.

vCenter 7.0 Update 3, 3a, vCenter 7.0 Update 2, 2a, 2b, 2c, 2d sürümleri için;

Mevcut satır:
exec $java_start_bin $jvm_dynargs $security_dynargs $original_args

Değiştirilecek kod:
log4j_arg=”-Dlog4j2.formatMsgNoLookups=true”
exec $java_start_bin $jvm_dynargs $log4j_arg $security_dynargs $original_args

LOG4J ve VMware Çözümü

Eğer kullandığınız sistem vCenter 7.0 GA, 7.0.0a, 7.0.0b, 7.0.0c, 7.0.0d, vCenter 7.0 Update 1, U1a, U1c, U1d ise aşağıdaki satırları eklemeniz gerekmekte.

Mevcut Satır:
exec $java_start_bin $jvm_dynargs “$@”

Değiştirilecek Kod:
log4j_arg=”-Dlog4j2.formatMsgNoLookups=true”
exec $java_start_bin $jvm_dynargs $log4j_arg “$@”

İlgili satırı ekledikten sonra vCenter servislerini restart ediyoruz.

service-control –stop –all

LOG4J ve VMware Çözümü

service-control –start –all

Eğer servis başlamaz ise dosya yetkilerini aşağıdaki gibi düzenlememiz gerekli.

chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon

chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon

LOG4J ve VMware Çözümü

Şimdi ise Update Manager Service dosyasını değiştiriyoruz.

“start.ini” Dosyasını yedekliyoruz öncelikle.

cp -rfp /usr/lib/vmware-updatemgr/bin/jetty/start.ini /usr/lib/vmware-updatemgr/bin/jetty/start.ini.bak

LOG4J ve VMware Çözümü

Şimdi ilgili satırı aşağıdaki gibi değiştiriyoruz.

vi /usr/lib/vmware-updatemgr/bin/jetty/start.ini
sayfanın son satırın altına bunları ekliyoruz.i “-Dlog4j2.formatMsgNoLookups=true”

LOG4J ve VMware Çözümü

Şimdi Update Manager servisini yeniden başlatıyoruz.

service-control –restart vmware-updatemgr

LOG4J ve VMware Çözümü


Şimdide Analytics Service dosyasını değiştiriyoruz.

Öncelikle yine log4j-core-2.8.2.jar dosyasını yedekliyoruz.

cp -rfp /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar.bak

LOG4J ve VMware Çözümü

Jawa ile ilgili Class’ları disable etmek için aşağıdaki komutu kullanıyoruz.

zip -q -d /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

LOG4J ve VMware Çözümü

Şimdi ilgili servisi restart ediyoruz.

service-control –restart vmware-analytics

Son olarak DBCC Utility üzerinde değişiklikleri yapıyoruz.

Yine öncelikle ilgili dosyayı yedekliyoruz.

cp /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar.bak

java class disable için komutumuzu giriyoruz.

zip -q -d /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

Eğer bu komutu çalıştırdıktan sonra “zip error: Nothing to do!” uyarısı alırsanız bu adımı atlayabilirsiniz.

Şimdi yaptıklarımızı kontrol ediyoruz.

vMon hizmeti için komut setimiz;

“ps auxww | grep formatMsgNoLookups” İşlemlerin -Dlog4j2.formatMsgNoLookps=true olarak görmemiz gerekli.

Update Manager kontrol için komut setimiz.

cd /usr/lib/vmware-updatemgr/bin/jetty/

“java -jar start.jar –list-config”

System Properties tabı altında log4j2.formatMsgNoLookups = true (/usr/lib/vmware-updatemgr/bin/jetty/start.ini) kontrol ediyoruz.

Analytics Service değişikliğini kontrol etmek için komut setimiz aşağıdaki gibidir.

“grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar | wc -l” Bu komut size  0 mesajı dönmeli.

Son olarak DBCC Utility değişikliğini doğruluyoruz. Komut setimiz aşağıdaki gibidir.

“grep -i jndilookup /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar | wc -l” Bu komutta size  0 mesajı dönecektir.

Evet LOG4J ve VMware Çözümü yazımızın sonuna geldik. Yukarıda anlattıklarım VMware sitesinde belirtilen tamamen geçici çözümdür. 7.x öncesi sürümler için yine buradan VMware sitesinde belirtilen yönergeleri takip edebilisiniz. Herkese sorunsuz ve sağlıklı günler dilerim.

Kaynak: https://kb.vmware.com/s/article/87081?lang=en_US

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.