Merhabalar,
Hyper-v den KVM dönüştürme işlemi yapalım dedik sanal makinelerimizden bazılarını. Çoğunlukla problemsiz geçse de Windows 7 ve Windows XP işletim sistemli sanal makineler problemsiz geçmemekte kararlılıklarını gösterdiler. Daha önceki postlarımda Windows XP nin hakkından gelmiştik.
Bu makalede de Windows 7 BSOD ekranından nasıl kurtulunur ve sanal makine açılır hale getirilir ondan bahsedeceğim.
Son Güncellemeler
Internetsiz Ortamda pip İle Paket Kurulumu
Merhabalar,
Durum:
- Elimizde iki adet Centos7 makinemiz var.Farklı ağdalar.
- Birincisi normal şekilde internete çıkabiliyor. Fakat diğeri internete çıkamıyor.
- Birinci makineden ikinciye ssh bağlantısı yapılabiliyor.
- İkinci makineye yum ile python, python-pip kurulacak.
- İkinci makineye pip ile libvirt paketi kurulacak.
Bu durumda bir çok işlem yapılabilir. Fakat ben proxy kurmadan SSH protokolü ile proxy oluşturarak ikinci makineyi internete çıkartmayı anlatacağım.
İkinci makineye login oluyoruz.
İkinci makineden birinci makineye SSH Proxy Tunel oluşturuyoruz. (8123 portunda bir proxy servisi alttaki komutla olusturulur)
ssh -D 8123 -f -C -q -N root@10.10.10.5
Artık ikinci makinenin 8123 portuna çalışan bir sock5 tipinde bir proxy servisimiz mevcut. yum ile update yapmak/paket yüklemek istediğimizde bu servis üzerinden işlemleri gerçekleştirebiliriz.
Yum komutunu socks5 ile çalıştırmak için /etc/yum.conf
dosyasını açıp proxy ifadesini proxy=socks5://ip:port
formatında alttaki gibi değiştiriyoruz.
proxy=socks5://localhost:8123
Artık yum ile python paketini kurabiliriz.
yum install python python-pip
Python paketleri kurulduktan sonra pip komutu ile istediğimiz paketi kurabiliriz… FAKAT!!
pip komutu sadece http/https proxy yi desteklemektedir. socks5/socks protokollerini desteklememektedir. Socks proxy yi adres gösterirseniz alttaki hatayı vermektedir.
Could not install packages due to an EnvironmentError: Missing dependencies for SOCKS support.
Bu durumu aşabilmek için socks proxy i http proxy e çeviren birşeylere ihtiyaç var. Bunlardan biri Centos7 de “privoxy”, Ubuntuda “proxychains” olan uygulamalardır.
yum komutuyla uygulamayı kuruyoruz.
yum install privoxy -y
/etc/privoxy/config dosyasını açarak forward-socks5[t] ile başlayan satırı alttaki gibi yapıyoruz.
forward-socks5 / 127.0.0.1:8123 .
Kaydedip kapattıktan sonra privoxy yi
systemctl start privoxy
komutu ile başlatıyoruz. Artık 8118 portunda çalışan bir http proxy miz mevcut. Bu proxy i kullanarak istediğimiz güncellemeleri kurabilir istediğimiz paketi yükleyebiliriz.
artık pip proxy yi kullanabiliriz. Örnek;
pip install libvirt-python --proxy localhost:8118
Akis Kart/KamuSM Linux Kurulum
Merhabalar,
KamuSM nin verdiği e-imza bilindiği üzere tamamıyle windows a yönelik çalışmakta sanki tek işletim sistemi buymuş gibi. Hakkını vermek lazım arkadaşlar linux e dair de bir iki paket vermişler taa fi tarihinden. Bu paketlerin yönelik olduğu linux dağıtımlarının ise esamesi bile kalmadı. Yönetim ister ki istemciler linux olsun ve kurumsal olarak kullanabilelim. Bir çok kurumda olduğu gibi e-imza bizim içinde önemli. E-imzayi kullanamazsak linux işletim sistemine geçmek hayal olabilir. Bu yüzden ilk çözülmesi gereken problem buydu. Bir kontrol edelim dedim. Tabi biraz sıkıntılı olabilecek bir durum ve zamanla unutulabilen bir işlem olduğundan şuraya yazıktırıvereyim dedim.
Ortamımız: Debian asıllı bir 64-bit Linux – (Mint)
E-imza: Akis Akıllı kart
Kart okuyucu: ACS 38T USB – Beyaz (bu pek önemli değil usb bir okuyucu işte…)
Linux işletim sistemini kurduktan ve güncellemeleri yaptıktan sonra
sudo apt install pcscd
ile kart okuyucu yazılımını linux işletim sisteminde hazır hale getiriyoruz.
sudo systemctl status pcscd
ile servisin ayakta olup olmadığını kontrol ediyoruz. Ayakta olması gerekiyor.
Servis ayakta ise bize bir de java gerekiyor.
sudo apt install openjdk-9-jre:i386
komutu ile kurulum yapıyoruz. Dikkat edersek javayi 32bit kuruyoruz. KamuSM nin sayfasında kırmızı kırmızı yazmışlar 32bit java ile çalışıyor sadece. Bende denemedim 64bit i belki de çalışıyordur. Neyse esmayı sıcratmaya gerek duyuyorsanız deneyiniz. Yoksa belirttiğim şekilde javayı kurunuz.
Daha sonra bu linki tıklayarak düzenlediğim paketi indirip çift tıklayarak yada
sudo dpkg -i akis_new.deb
komutu ile kurulumu tamamlayınız.
Denemek için turkiye.gov.tr ye girip e-imza ile giriş yapmaya çalışınız…
Şimdi linux cu arkadaşlar geeklik yapıp verdiğim pakete güvenmiyor olabilirler. Kendileri yapmak isteyebilirler paketi bu nedenle niye düzenleme yaptığımı ve nasıl yaptığımı da anlatacağım.
Normalde;
Akla gelen ilk yer KamuSM nin sayfasına gidip 64-bit debian driver i indirmek ya da ubuntu da olur. Fakat gel gör ki sayfaya gittiğimizde fi tarihinden kalma ubuntu (12.04, 14.04) ve diğer linux gibi birşeyler var. Sallayın. yani sayfayı kapatın.
Alttaki siteye gidip akis kartın daha mantıklı hazırlanmış sayfasından ubuntu 14.04 64bit için hazırlanmış olan akis kart sürücüsünü indiriniz.
http://www.akiskart.com.tr/tr/destek.html
http://www.akiskart.com.tr/dosyalar/akis_1.6_amd64.tar bu linki dogrudan indirme icin kullanabilirsiniz.
İndirdikten sonra üzerine çift tıklayıp ya da alttaki komutla kurmaya çalıştığınızda sisteminizde openjdk-6-jre ya da openjdk-7-jre olması gerektiği uyarısını verecek ve sisteminide sıkıntı çıkaracaktır.
sudo dpkg -i akis_1.6_amd64.tar
Fakat piyasada halihazırda openjdk-8-jre veya openjdk-9-jre bulunmakta niye uğraşalım ki kaldırıp eskisini kurmaya. Paketin bağımlılıklarını değiştirmemiz daha sağlıklı olacaktır. Bu yüzden ben değişmiş halinin linkini kendi sayfama koydum. Eğer siz kendi elinizle değiştirip sorunu gidermek istiyorsanız. Alttaki adımları uygulayınız.
1. deb paketini açın: ar x akis_1.6_amd64.tar (bu komutla bulunduğunuz dizinde üç dosya oluşacak: debian-binary control.tar.gz data.tar.gz)
2. control arşiv dosyasını açın: tar xzf control.tar.gz (md5sums control dosyalari ortaya çıkacak)
3. control dosyasında bağımlılıkları düzeltin. openjdk-6-jre ve openjdk-6-jre yi openjdk-8-jre openjdk-9-jre yapın(bir text editoru kullanin. mesela , nano)
control.tar.gz dosyasını yeniden paketleyin: tar c md5sums control | gzip -c > control.tar.gz
deb paketini oluşturun: ar rcs akis_1.6_yeni.deb debian-binary control.tar.gz data.tar.gz (sıra önemli!)
Deb paketimiz hazır. artık kurulumu yapabilirsiniz.
İyi Çalışmalar
rsyslog; log kaydet ve gönder
Merhabalar,
Bu gönderide dışardan gelen bir logu ayrı bir dosyaya atıp aynı zamanda farklı bir sunucuya gönderme işlemini konu alacağız.
Durum şu bir istemciden rsyslog sunucusuna bir log geliyor. rsyslog sunucusu bunu alıp istemcinin ipsi ile belirlenmis bir dosyaya yazacak ve aynı zamanda bu log kaydını başka bir sunucuya gönderecek.
Malumunuzdur ki rsyslog istemci vs hepsi linux tabanlı ve rsyslog sunucusu 8.2+ üstü bir versiyona sahip.
İşlem oldukça basit ama bulması uygulaması sorun olabiliyor.
Rsyslog iki tür yazım dizisine sahip yeni sürüm yazım şekliyle alttaki yönergeleri eklediğimizde istediğimiz sonuca ulaşabiliriz. Yazım stili farklı geliyor olabilir dert etmeyin kopyalayın yapıştırın çalışır.
# sunucu modunda gelen loglari 514 portundan dinlemek icin bu yonergeleri ekle module(load="imudp") input(type="imudp" port="514" ruleset="RemoteDevice") # Log dosyasina yazildiktan sonra bu gelen loglari yonlendirmek icin belirtilen yonergeleri ekle ruleset(name="sendToLogserver") { action(type="omfwd" Target="10.10.10.50" Port="514") } # gelen loglari ip lere gore olusturdugun dosyalarda sakla template(name="DynFile" type="string" string="/var/log/CLIENTS/system-%FROMHOST-IP%.log") # RemoteDevice ile tagledigimiz disardan gelen loglari DynFile ile belirtilen yere yaz sonra call ile forward et sonrada islemi burada stop ile kes.<span data-mce-type="bookmark" id="mce_SELREST_start" data-mce-style="overflow:hidden;line-height:0" style="overflow:hidden;line-height:0" ></span> ruleset(name="RemoteDevice"){ action(type="omfile" dynaFile="DynFile") call sendToLogserver stop }
Not: bu yönergeleri GLOBAL DIRECTIVES adli bölümden önce ekleyiniz.
pam_exec ile oturum açma işlemlerinde özel loglama
Elimizde bir uygulama var. Bu uygulama logları parçalayarak kendi işini görmekte. Fakat istedigi temel bir kaç bilgi var. Örneğin SSH bağlantısı yapıldığında log oluşacak fakat oluşan log da makinenin ip si bir anahtar kelime ve kullanıcı adına ihtiyaç var. Ya da masaüstüne oturum açıldığında benzer bilgilere ihtiyaç duyuluyor.
gel gör ki ssh logunun formatı kısıtlı ve belli ki her istenilen log aynı formatta olması mümkün değil. Formatı da geçtik içerikte farklı olabilir. Bizde naptık… Kendi logumuzu kendimiz basalım ve bunu en kolay olabilecek şekilde yapalım dedik.
Bu minvalde araştırma yaparken artık her bilgi bizi PAM a yönlendirmeye başladı. Eğer login logout olduğumda istediğim log u basabilirsem problem düzelecekti. Bizde öyle yaptık ve pam_exec ile bu işlemi gerçekleştirdik.
Linux /etc/pam.d klasörünün altına bakarsanız bir sürü pam desteği olan uygulama görürsünüz. Bizim ilgilendiğimiz uygulamalar SSH bağlantıları için “/etc/pam.d/sshd” ve Gnome masaüstü oturum açma uygulaması için ise “/etc/pam.d/gdm-password”
Mantık şu. Oturum(session) açıldığında “Authorization Success..” ve oturum kapatıldığında ise “Logout …” mesajı merkezi log sunucumuza gönderilecek.
Bu nedenle istediğimiz işlemleri gerçekleştiren bir betik yazdık aşağıdaki gibi.
Bu bash scriptini /etc/ altına .logsend diye kaydettik ve chmod +x ile çalıştırılabilir hale getirdik.
#!/bin/bash logserver="10.20.30.65" port="514" host="`hostname`" ip="`hostname -I`" msg="<14>" # Eger PAM aksiyon tipi close_session degilse basarili mesaji olustur. Eger open session degilse oturum kapatıldi mesaji olusturu ve bunu nc ile rsyslog sunucusuna gönder if [ "$PAM_TYPE" != "close_session" ]; then msg+="Authorization Succeed, $PAM_SERVICE Session Started: User:$PAM_USER from RHost:$PAM_RHOST on Host:$host Ip:$ip" elif [ "$PAM_TYPE" != "open_session" ]; then msg+="Logout, $PAM_SERVICE Session Closed: User:$PAM_USER from RHost:$PAM_RHOST on Host:$host Ip:$ip" fi echo "$msg" | nc -u -v -w 0.1 $logserver $port
Sonra gidip /etc/pam.d/sshd ve /etc/pam.d/gdm-password dosyalarına girip alttaki satırı ekledik.
session optional pam_exec.so stdout /etc/.logsend
Herhangi bir şeyi restart etmenize gerek yok. Test için 10.20.30.65 ip li makineye gidiniz ve alttaki komut ile gelen mesajlari görebilirsiniz(login logout olmayı unutmayın istemci makinede).
nc -l 514 -u
İyi Çalışmalar
Uzaktan Erişim İle Linux Kurulumu
Merhabalar,
Senaryo şöyle: Bir makinemiz var bu makine sanalda olabilir fizikselde. Remote management portuna(idrac,ipmi,ilo vb.) yani yönetim arayüzüne kurulumu yapacak kişinin erişimi bulunmamakta. Kurulumu o kişi yapacak fakat nasıl!! makineye dogrudan erişim yok veyahut ilgili ağa erişim yok.
Durum:
Fiziksel/Sanal makineye ISO dosyası ya da fiziksel cd takılı.
İlgili kişi normal ağ erişimine sahip.
Centos/RHEL/Oracle 7 Linux kurulumu yapıyoruz.
Çözüm:
Çözüm VNC den destek almaktan geçiyor. Kurulum yaparken installation ekranında vnc yi aktifleştiriyoruz ve ilgili kişi VNC istemcisi ile kurulum ekranına erişiyor ve kuruluma devam ediyor…
Altta linkini verdiğim sitede güzelce anlatılıyor. Ben not olsun site kapanır falan kendim için yazıyorum
https://www.tecmint.com/installation-of-centos-remotely-using-vnc-mode/
Install Centos 7 menüsü geldiğinde TAB tuşuna basıyor ve gelen satırın sonuna
inst.vnc inst.vncpassword=password resolution=1366x768
ifadesini ekliyoruz. Eğer DHCP miz varsa otomatik IP alacak yoksa Ctrl+B, 2 kombinasyonu(virgul yok) ile anaconda komut satırına geçip bildiğimiz yoldan ip ve route bilgilerini giriyoruz. ping ile kontrol ettikten sonra Ctrl+B, 1 tuş kombinasyonu ile kurulum ekranına dönebiliyoruz.
vncviewer ipadresi:port ile ekranı alıp kuruluma geçiyoruz.
Eğer direkt bootta ip vermek istiyorsanız DHCP aktif değilken alttaki gibi bir düzenleme yaparak bunu gerçekleştirebilirsiniz.
inst.vnc inst.vncpassword=password resolution=1366x768 ip=x.x.x.x netmask=y.y.y.y gateway=z.z.z.z dns=t.t.t.t
LVM ile Yapilandirilmiş Sanal Diskin Genişletilmesi
Merhabalar,
Durum şöyle;
KVM sanal makinemiz de yer alan bir makinenin diski genişletilmek isteniyor. Bu makinede iki disk var biri işletim sistemi diğer ise data saklamak için kullanılıyor. Bu data diskini genişletmek istiyoruz. Disk üzerinde tek bir partition var. Bu disk LVM ile yapılandırılmış ve 2TB’den büyük bir disk alanına sahip.
Adımlar:
- İlk olarak makineyi kapatıyoruz.
- Diski qemu-img resize komutu ile genişletiyoruz.
- Makineyi açıyoruz ve data diskini unmount ediyoruz.
- Fdisk -l komutu ile diski inceliyoruz.
- GPT ile yapılandırıldığını gördüğümüz için “parted” komutu ile diski inceleyip ilgili partitionu genişletiyoruz.
- LVM PV yi genişletiyoruz.
- LVM LV yi genişletiyoruz.
- Filesystem i genişletiyoruz
- Diski mount ediyoruz.
Adımların ekran görüntüleri sırasıyla alttaki gibidir.
dhcp bilgilerini override etmek
Merhabalar,
DHCP istemcisi olarak yapılandırılan arayüzlerden gelen ip, netmask, gateway, search path gibi değerleri elimizle değiştirebilmemiz mümkündür. Fakat belirli aralıklarla veya sistemlerin kapatılıp açılmasıyla birlikte yaptığımız güncellemeler kaybolmaktadır. Bu durumun önüne geçmek istediğimizde dhcp istemcisinin aldığı bilgileri override edebilmemiz mümkündür.
bunun için hangi arayüz için bu baskılamayı yapacak isek(örneğin eth0);
ubuntu için;
cat /etc/dhcp/dhcpclient-eth0.conf << EOF
supersede domain-name-servers 10.100.100.231;
supersede domain-search “ipa.ali.gov“;
EOF
rhel türevleri için;
ifcfg-eth* dosyasına
PEERDNS=no
ifadesi eklenmelidir.
Not: alti çizili alanları size uygun şekilde değiştirdiğinizde dhcp paketi ile gelen dns adresi ve arama alanını override etmiş olacaksınız.
Docker ve LXC de preinstall Oracle kullanıcısı için su: cannot open session: Permission denied
Merhabalar,
LXC ya da docker containerlerine Oracle veritabanı yazılımı kurmak istediğimizde alışkanlık üzere oracle11g-***-preinstall paketini yum ile kurmaktayiz. Ortami hazırlayıp gerekli paketleri indirip kuran bu rpm paketi aynı zamanda gerekli kullanicilari ve grupları oluşturmaktadır.
Bu arada oracle kullanıcısı ile container a giris yapmak istedigimizde(ssh ile ve ya su komutu ile) alttaki gibi permission denied hatası alınmaktadır.
Win 2000/XP/2003 stop:0x0000007b inaccessible boot device BSOD
Merhabalar,
Senaryo şu: Bir Win2000 makinemiz vardı bunu VMware Converter ile dönüştürüp VMware de koşturmaya başlamıştık. Pek problemimiz yoktu. Dönüştürürken de pek sıkıntı çıkarmadı. Fakat daha sonra bu makineyi Linux KVM e taşımayı düşündük ve qemu-img ile dönüştürme işlemi sonrasında makineyi açtık… Ta ta taaa BSOD yani namı diğer mavi ekran hatası.
Caps verelim 🙂