Kernel guncelleme hakkinda kullanicilarim icin yazdigim bir nasil'i belki bazilarinin isine yarar diye gonderiyorum.
Bu nasil, Linux sunucu isletimi konusunda, bireysel veya hosting servis destek anlaminda calisan kisiler icin 2 Mart'ta resmi olarak download'a sunulan Linux kernel 2.6.11'in uzaktaki bir sisteme nasil guncellenebilecegi ve GrSEC yamasinin kernele nasil patch edilecegini anlatmaktadir. (GrSEC yamasi sunucunuzdaki isletim sistemi ve cekirdeginde istege bagli dusuk-orta-yuksek ayarlamalari ile cok kritik guvenlik ayarlamalari yapmaktadir. Bilgi icin http://www.grsecurity.net )
** Guncel olmayan kernel'ler buyuk guvenlik riskleri tasimaktadir **
Bu belgede anlatilanlar Fedora Core 1, Fedora Core 2, Redhat 9 makinalarinda test edilmistir, ne yaptiginizi biliyorsaniz Centos vb. diger distrolarda da kullanilabilir.
Server isletimi konusunda temel bilgi sahibi oldugunuzu, makinaya superuser erisim hakki oldugunuzu ve Secure Shell protokolu uzerinden uzaktan baglanti yapabildiginizi varsayiyorum.
** Bu belgede anlatilanlari yanlis, eksik uygulamaniz halinde veya herhangi bir neden sisteminizde olusabilecek bir hasardan yalniz siz sorumlu olacaksiniz. **
# ile baslayan satirlar komut satirindan root kullanicisi ile gerceklestirilecek komutlara isaret etmektedir.
Dizinimizi degistiriyoruz
# cd /usr/src
Kernel 2.6.11'in kaynak kodunu indiriyoruz
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
GrSEC yamasini indiriyoruz
# wget http://www.grsecurity.net/grsecurity-2.1.3-2.6.11-200503070900.patch
Kernel'i aciyoruz
# tar xvfj linux-2.6.11.tar.bz2
Yamayi yapip, dizin ismini degistiriyoruz, icine giriyoruz
# patch -p0 < grsecurity-2.1.3-2.6.11-200503070900.patch
# mv linux-2.6.11 linux-2.6.11-grsec
# cd linux-2.6.11-grsec
Yama yapildigi icin kernel'i kaynak kodundan derlemeye baslayacagiz. Baslamadan makinanizda su anda bulunan kernel'in config'i uzerinden isleme baslayabiliriz. Var olan kernel versiyonu (uname -r) komutu ile ogrenilebilir.
Var olan boot configi yeni kernelimizin baslangic configi olarak kopyaliyoruz.
# cp /boot/config-`uname -r` .config
Kuruluma basla
# make clean
# make mrproper
# make oldconfig
Var olan config uzerinden yeni kernel'i yuklemeye baslar, eger yeni surumde ek ozellikler varsa bunlari baslatip baslatmayacaginizi sormak icin size sorular soracaktir. Donanim ayarlari ile ilgili olanlari default seceneklerini secerek ilerleyip, GrSecurity kismina gelindiginde "Yes" diyerek bu secenegi aktive edin ve guvenlik isteginizin dusuk-orta-yuksekligine gore gerekli secenekleri "y","n" diyerek secerek ilerleyin.
Konfigurasyon bittiginde, yuklemeye basliyoruz. Bu kisim bir hayli uzun surebilir.
# make
# make modules_install
Herhangi bir sorun cikmadigi takdirde, kernel yuklenmis durumdadir, boot sirasinda taninabilmesi icin gerekli dosyalari, boot dizinine aktariyoruz
# cp .config /boot/config-2.6.11-grsec
# cp System.map /boot/System.map-2.6.11-grsec.img
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.11-grsec
# /sbin/mkinitrd /boot/initrd-2.6.11-grsec.img 2.6.11-grsec
Gerekli dosyalar tasindigi icin bootloader'a yeni kerneli tanitmamiz gerekli.
----
Bootloaderiniz grub ise, grub konfigurasyonunu aciyoruz
# pico /etc/grub.conf
Satirlari giriyoruz:
title Fedora Core 2 (2.6.11-grsec)
root (hd0,0)
kernel /vmlinuz-2.6.11-grsec ro root=LABEL=/
initrd /initrd-2.6.11-grsec.img
Dosyanin icinde buna benzer kernel(ler) zaten olacaktir onlarin altina ekleyin. Dosyadaki
default=0 satirini yeni yarattiginiz kernel kacinci title ise ona gore degistirin, 4. ise
default=4 girin. Bu varsayilan kernel olarak yeni kernelinizi boot etmeye calisacaktir. Bir hataya karsi default satirinin altina
fallback=1 diyerek, hata olusursa bir sonraki rebootta baska bir kernel'i acmaya tesvik edebilirsiniz. (1 rakimini degistirebilirsiniz var olan calisan eski bir kernel ile)
---
Lilo bootlader kullaniyorsaniz onu aciyoruz
# pico /etc/lilo.conf
image=/boot/vmlinuz-2.6.11-grsec
label=2.6.11-grsec
append="root=LABEL=/"
read-only
initrd=/boot/initrd-2.6.11-grsec.img
Birsonraki bootta bu kernelden acmasini istiyoruz
# lilo -R 2.6.11-grsec
----
Gerekli ayarlamalar tamamlandi, restart ediyoruz
# reboot
Makinaniz tekrar online olmassa bir reboot port araciligiyla veya datacenter'iniza basvurarak makinayi fiziksel reboot ettirmeniz gerekebilir, herhangi bir sorunla karsilasmadiysaniz, makinaniz geri donecektir.
# uname -r
Yaparak yeni kernel versiyonunuzu gorebilirsiniz.
Bu nasil, Linux sunucu isletimi konusunda, bireysel veya hosting servis destek anlaminda calisan kisiler icin 2 Mart'ta resmi olarak download'a sunulan Linux kernel 2.6.11'in uzaktaki bir sisteme nasil guncellenebilecegi ve GrSEC yamasinin kernele nasil patch edilecegini anlatmaktadir. (GrSEC yamasi sunucunuzdaki isletim sistemi ve cekirdeginde istege bagli dusuk-orta-yuksek ayarlamalari ile cok kritik guvenlik ayarlamalari yapmaktadir. Bilgi icin http://www.grsecurity.net )
** Guncel olmayan kernel'ler buyuk guvenlik riskleri tasimaktadir **
Bu belgede anlatilanlar Fedora Core 1, Fedora Core 2, Redhat 9 makinalarinda test edilmistir, ne yaptiginizi biliyorsaniz Centos vb. diger distrolarda da kullanilabilir.
Server isletimi konusunda temel bilgi sahibi oldugunuzu, makinaya superuser erisim hakki oldugunuzu ve Secure Shell protokolu uzerinden uzaktan baglanti yapabildiginizi varsayiyorum.
** Bu belgede anlatilanlari yanlis, eksik uygulamaniz halinde veya herhangi bir neden sisteminizde olusabilecek bir hasardan yalniz siz sorumlu olacaksiniz. **
# ile baslayan satirlar komut satirindan root kullanicisi ile gerceklestirilecek komutlara isaret etmektedir.
Dizinimizi degistiriyoruz
# cd /usr/src
Kernel 2.6.11'in kaynak kodunu indiriyoruz
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
GrSEC yamasini indiriyoruz
# wget http://www.grsecurity.net/grsecurity-2.1.3-2.6.11-200503070900.patch
Kernel'i aciyoruz
# tar xvfj linux-2.6.11.tar.bz2
Yamayi yapip, dizin ismini degistiriyoruz, icine giriyoruz
# patch -p0 < grsecurity-2.1.3-2.6.11-200503070900.patch
# mv linux-2.6.11 linux-2.6.11-grsec
# cd linux-2.6.11-grsec
Yama yapildigi icin kernel'i kaynak kodundan derlemeye baslayacagiz. Baslamadan makinanizda su anda bulunan kernel'in config'i uzerinden isleme baslayabiliriz. Var olan kernel versiyonu (uname -r) komutu ile ogrenilebilir.
Var olan boot configi yeni kernelimizin baslangic configi olarak kopyaliyoruz.
# cp /boot/config-`uname -r` .config
Kuruluma basla
# make clean
# make mrproper
# make oldconfig
Var olan config uzerinden yeni kernel'i yuklemeye baslar, eger yeni surumde ek ozellikler varsa bunlari baslatip baslatmayacaginizi sormak icin size sorular soracaktir. Donanim ayarlari ile ilgili olanlari default seceneklerini secerek ilerleyip, GrSecurity kismina gelindiginde "Yes" diyerek bu secenegi aktive edin ve guvenlik isteginizin dusuk-orta-yuksekligine gore gerekli secenekleri "y","n" diyerek secerek ilerleyin.
Konfigurasyon bittiginde, yuklemeye basliyoruz. Bu kisim bir hayli uzun surebilir.
# make
# make modules_install
Herhangi bir sorun cikmadigi takdirde, kernel yuklenmis durumdadir, boot sirasinda taninabilmesi icin gerekli dosyalari, boot dizinine aktariyoruz
# cp .config /boot/config-2.6.11-grsec
# cp System.map /boot/System.map-2.6.11-grsec.img
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.11-grsec
# /sbin/mkinitrd /boot/initrd-2.6.11-grsec.img 2.6.11-grsec
Gerekli dosyalar tasindigi icin bootloader'a yeni kerneli tanitmamiz gerekli.
----
Bootloaderiniz grub ise, grub konfigurasyonunu aciyoruz
# pico /etc/grub.conf
Satirlari giriyoruz:
title Fedora Core 2 (2.6.11-grsec)
root (hd0,0)
kernel /vmlinuz-2.6.11-grsec ro root=LABEL=/
initrd /initrd-2.6.11-grsec.img
Dosyanin icinde buna benzer kernel(ler) zaten olacaktir onlarin altina ekleyin. Dosyadaki
default=0 satirini yeni yarattiginiz kernel kacinci title ise ona gore degistirin, 4. ise
default=4 girin. Bu varsayilan kernel olarak yeni kernelinizi boot etmeye calisacaktir. Bir hataya karsi default satirinin altina
fallback=1 diyerek, hata olusursa bir sonraki rebootta baska bir kernel'i acmaya tesvik edebilirsiniz. (1 rakimini degistirebilirsiniz var olan calisan eski bir kernel ile)
---
Lilo bootlader kullaniyorsaniz onu aciyoruz
# pico /etc/lilo.conf
image=/boot/vmlinuz-2.6.11-grsec
label=2.6.11-grsec
append="root=LABEL=/"
read-only
initrd=/boot/initrd-2.6.11-grsec.img
Birsonraki bootta bu kernelden acmasini istiyoruz
# lilo -R 2.6.11-grsec
----
Gerekli ayarlamalar tamamlandi, restart ediyoruz
# reboot
Makinaniz tekrar online olmassa bir reboot port araciligiyla veya datacenter'iniza basvurarak makinayi fiziksel reboot ettirmeniz gerekebilir, herhangi bir sorunla karsilasmadiysaniz, makinaniz geri donecektir.
# uname -r
Yaparak yeni kernel versiyonunuzu gorebilirsiniz.