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

Reklamlar

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:

  1. İlk olarak makineyi kapatıyoruz.
  2. Diski qemu-img resize komutu ile genişletiyoruz.
  3. Makineyi açıyoruz ve data diskini unmount ediyoruz.
  4. Fdisk -l komutu ile diski inceliyoruz.
  5. GPT ile yapılandırıldığını gördüğümüz için “parted” komutu ile diski inceleyip ilgili partitionu genişletiyoruz.
  6. LVM PV yi genişletiyoruz.
  7. LVM LV yi genişletiyoruz.
  8. Filesystem i genişletiyoruz
  9. Diski mount ediyoruz.

Adımların ekran görüntüleri sırasıyla alttaki gibidir.

Okumaya devam et

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.