Linux sistemlerde son zamanlarda ortaya çıkan bir otomatik güncelleme furyası var Centos/RHEL ailesi bunu uzun zamandır yapıyordu zaten. Kurumsal çözümler için oldukça güzel bir durum her paketin anında güncellenmesi yerine sadece güvenlik güncelleştirmelerinin geçilmesi yeter
Kritik çalışan ve sorun olması istenmeyen durumlar için çoğu zaman güvenlik güncelleştirmeleri bile göz ardı edilir. Çalışıyorsa dokunma mantığı bu gibi durumlar için risk oluşturur.
Gelin hep beraber Centos/RHEL ailesinde bu durumu nasıl çözebileceğiz bir bakalım
İlk önce yum-cron
adlı paketi sistemimize dahil etmemiz gerekiyor. Bu paket bize gerektiği zaman güncellemeyi otomatik olarak yüklemesini sağlayacak
yum -y install yum-cron
Bu komut, yum-cron paketini kısa bir sürede yükleyecektir, şimdi yapılandırma zamanı geldi, varsayılan yapılandırma dosyası /etc/yum/yum-cron.conf
dır.
# What kind of update to use:
# default = yum upgrade
# security = yum --security upgrade
# security-severity:Critical = yum --sec-severity=Critical upgrade
# minimal = yum --bugfix upgrade-minimal
# minimal-security = yum --security upgrade-minimal
# minimal-security-severity:Critical = --sec-severity=Critical upgrade-minimal
update_cmd = default
# Whether a message should be emitted when updates are available,
# were downloaded, or applied.
update_messages = yes
# Whether updates should be downloaded when they are available.
download_updates = yes
# Whether updates should be applied when they are available. Note
# that download_updates must also be yes for the update to be applied.
apply_updates = no
# Maximum amout of time to randomly sleep, in minutes. The program
# will sleep for a random amount of time between 0 and random_sleep
# minutes before running. This is useful for e.g. staggering the
# times that multiple systems will access update servers. If
# random_sleep is 0 or negative, the program will run immediately.
# 6*60 = 360
random_sleep = 360
Şimdi bu default yapılandırma dosyamız içerisinde yapılacak olanları belirleyebiliyoruz. Biz sadece güvenlik güncelleştirmelerini yapmak istiyoruz. Bunun aynı zamanda otomatik olmasınıda istiyoruz.
İlk olarak bence en can alıcı noktamız, CENTOS/RHEL 6 serisinde hangi tür güncellemenin otomatik olarak yapılabileceğini seçemiyorduk, CENTOS/RHEL 7’de bu konu çözülmüş ve bir çok seçenekte yukardaki gibi getirilmiş.
Şimdi geldik yapılandırmayı yapmaya güvenlik güncelleştirmeleri için aşağıdaki değişikliği default yapılandırma dosyası üzerinde uygulayınız.
update_cmd = security-severity:Critical
Bu size sistem üzerinde tüm güvenlik güncelleştirmelerini değil sadece kritik olanları getireceği anlamına gelir. Böylelikle sistemde istenmeyen durumların önüne geçebilirsiniz.
Ne demiştik kritik servislerin çalışmasına engel olmayacak şekilde güvenlik yamalarını yapmamız önemli demiştik. Yeniden başlaması uzun sürecek servislerin yeniden başlatılması önerilmez. Bu yüzden aşağıdaki parametreyi kullanmanız zorunludur.
exclude=kernel* mysql*
Bu uygulamalara gelecek olası güvenlik güncelleştirmelerini yapmak için ise yoğunluğun az olduğu, kesintinin sisteminizi etkilemeyeceği bir zamanı seçip güncellemeleri yapabilirsiniz. (Örneğin gece 03:00 gibi)
Aynı zamanda bu güncellemelerin otomatik olarak yapılmasınıda sağlayabilirsiniz.
apply_updates = yes
Tabi ben gözümle göreceğim illaki derseniz bu seçeneği no
olarak ayarlayın sadece size mail yada sunucuya bağlandığınızda bir mesaj olarak kritik güncelleştirmeler var bak yap yoksa sıkıntı çıkar diye uyaracak
Tabi mail ile size ulaşabilmesi için aşağıdaki ayarlarında aynı yapılandırma dosyasının en altına eklenmesi gerekiyor.
[email]
email_from = noreply@mertcangokgoz.com
email_to = admin@mertcangokgoz.com
email_host = smtp.mertcangokgoz.com
Kayıt edip çıkış yapıyorsunuz bundan sonra güncelleme geldiğinde ve güncellemelerin durumları hakkında hem size bildiriyor hemde yaptıklarına dair bir bildirimde atmayı ihmal etmiyor.
Servisin çalıştığını ise systemctl status yum-cron.service
komutu aracılığı ile öğrenebilirsiniz. Daha yeni kurduysanız ve ayarlamarı yeni yaptıysanız. stopped
olarak görmeniz gayet normal bu durumda systemctl start yum-cron.service
komutu ile servisi başlatabilirsiniz.