opsecfail


Sanal sunucuya istenilen işletim sistemini kurma

2024-12-31

Giriş §

Birçok VPS sağlayıcısı özel sistem imajı yüklemeye izin vermiyor. Çoğunlukla Debian ve Red Hat ailesinin dışındaki sistemleri de ellerinde bulundurmuyorlar.

Bunu, kurulu olan bir linux sistem çalışır vaziyetteyken istediğimiz sistem imajını diske yazarak aşabiliriz.

Yeniden başlatma sonrasında da video konsoluna (VNC, SPICE vs.) bağlanarak yeni sistemimizin kurulumunu tamamlayabiliriz.

Eğer video konsoluna erişim mevcut değilse çeşitli otomatik kurulum araçları (cloud-init, OpenBSD autoinstall(8) vs.) ile kurulumu tamamlamak da mümkün. Ama bu yazıda yer almıyor.

Sunucuya bağlanma §

Herhangi bir Linux dağıtımı ile gelmiş olan sunucumuza SSH, VNC vs. üzerinden bağlanıyoruz.

$ ssh debian@vps-00000000.vps.ovh.ca

.iso dosyasını edinme §

Kurmak istediğimiz sistemin .iso (OpenBSD ise .img) dosyasını sunucuya indiriyoruz.

$ wget "https://cdn.openbsd.org/pub/OpenBSD/7.6/amd64/install76.img" \
    -O /dev/shm/openbsd.img

Ya da:

$ curl "https://cdn.openbsd.org/pub/OpenBSD/7.6/amd64/install76.img" \
    > /dev/shm/openbsd.img

Not §

/dev/shm, genellikle mevcut RAM’in %50’sini kullanabilir. İndirilecek imaj bundan daha büyükse:

  1. mount -o remount,size=1G /dev/shm komutu ile bu alan büyütülebilir.
  2. Sunucuyu ‘resize’ etmeye imkan tanıyan bir sağlayıcı ise kurulum tamamlanana kadar RAM miktarı artırılabilir.

Diğer not §

OpenBSD’nin cd*.img (yani file set’leri dahil edilmemiş) imajı bu yöntemde boot etmiyor, neden bilmiyorum. install*.img imajını kullanmak gerekiyor. Kurulumda diskleri biçimlendirince file set’leri kullanamıyoruz, yine internetten edinmek gerekiyor.

Dosya sistemlerini salt okunur yapma §

Veri bütünlüğünü sağlamak için tüm dosya sistemlerini salt okunur (read-only) moda alıyoruz. Yani biz imajı RAM’den diske yazmaya başladıktan sonra herhangi bir program diske bir şey yazıp imajımızı çöp etmesin.

echo 'u' > /proc/sysrq-trigger

Disk imajı yazdırma §

Sistem imajını sabit diske yazdırıyoruz.

dd if=/dev/shm/openbsd.iso of=/dev/sda status=progress

Yeniden başlatma §

4. adımdan sonra reboot komutu da dahil herhangi bir komut muhtemelen çalışmayacaktır. Sunucunun yönetim panelinden yeniden başlatmak gerekiyor. “Force power off” gibi bir seçenek var ise işimizi hızlandıracaktır.

Kurulum §

Yeniden başlatılan sunucuya video konsolu üzerinden bağlanıp kurulumu bitiriyoruz.