17 Mayıs 2018 Perşembe

Centos çekirdek versiyonu değişikliği

Çalıştığım centos sunucularda çekirdek versiyonu yükseltme ve indirme işlemi yapmak zorunda kaldım. Bununla ilgili buraya da not alayım istedim.

Öncelikle işlemi gerçekleştirmeden önce

 $ uname -a 

komutu ile çekirdek versiyonumuzu kontrol edelim.

Eğer çekirdek versiyonunu yükseltme işlemi yapacaksak.

$ sudo rpm  -i  çekirdekpaketi.rpm
$ sudo reboot

Bu iki komutu kullanarak işletim sistemimizi artık yeni çekirdekle kaldırabiliriz.

Eğer çekirdek versiyonumuzu indirme işlemi yapacaksak. Öncelikle sistemim ayağa kalktığı çekirdeği sistemden kaldırmamız gerekiyor. Ve bunun için paket isminden emin olmalıyız.

$ sudo rpm -qa | grep kernel
$ sudo rpm -e paket-adi.rpm
$ sudo rpm -i paket-adi.rpm
$ sudo reboot

Bu komutlardan sonra işletim sistemimizi artık eski versiyonda bir çekirdekle ayağa kaldırmış oluyoruz.

7 Mayıs 2018 Pazartesi

Ssh kimlik doğrulamasının Tacacs+ ile entegrasyonu

  Terminal erişim denetleyici erişim kontrol sistemi (TACACS), merkezi bir sunucu üzerinden ağa bağlı erişim kontrolü için uzaktan kimlik doğrulamayı ve yetkilendirme gibi hizmetleri sağlar. Tacacs bağlantı noktası olarak (tcp veya udp) 49.portu kullanır. Tacacs, bir istemcinin bir kullanıcı adı ve parola kabul etmesine ve bir tacacs kimlik doğrulaması sunucusuna, bazen de tacacs daemon veya tacacsd denen bir sorgu göndermesine izin verir. Kimlik doğrulama isteğinin kabul edilip edilmeyeceğini veya reddedilip reddedileceğini belirler.
  Tacacs+ ve Radıus, daha yakın zamanda oluşturulmuştur. Tacacs+ tamamen yeni bir protokoldür ve öncülleri, Tacacs ve Xtacacs ile uyumlu değildir. Tacacs+, TCP'yi kullanır. Tacacs+ kimlik doğrulama, yetkilendirme ve muhasebe (AAA) mimarisini kullandığı için, protokolün bu ayrı bileşenleri ayrı sunucularda ayrıştırılabilir ve işlenebilir.

 Ben debian üzerinde ssh kimlik doğrulamasını tacacs+ ile sağlamak istiyordum. Bunu için linux'da pam modulunu kullandım. PAM , servislere göre farklı kimlik denetleme yöntemleri belirleyebilmeyi sağlayan bir sistemdir. Bununla birlikte tacacs+ kullanmabilmek için iki paket yüklememiz gerekiyor.

$ sudo apt-get install libpam-tacplus
$ sudo apt-get install tacacs+

Ssh'ın pam modulunu kullanmasını istediğimiz için /etc/ssh/sshd_config dosyasında aşağıdaki değişiklikleri yapıyoruz:

UsePAM no
ChallengeResponseAuthentication no


"/etc/pam.d/" dizinini altına ve tacacs oluşturuyoruz. Ben şuan sadece kimlik doğrulaması için tacacs+ kullanmak istediğim için onunla ilgili yapılandırmaları yaptım.

/etc/pamd/sshd

auth include tacacs
@include common-password


/etc/pam.d/tacacs

auth  [success=2 default=ignore] pam_succeed_if.so uid < 501
auth [success=done default=ignore] /lib/security/pam_tacplus.so debug server=serverip secret=secretkey login=plain timeout=2
auth required pam_unix.so user=admin
#ben admin kullanıcısının aynı zamanda yereldeki parolasıyla giriş yapabilmesini istediğim için bu ayarı özel olarak ekledim.


Bu ayarları yaptıktan sonra sshd servisini yeniden başlatıyoruz.
$sudo services sshd restart

*****Bilmeniz gereken önemli bir nokta, ssh ile kimlik doğrulamasını tacacs'a yaptırırken, kullanıcılarınızın yerelde de tanımlı olması gerekiyor. Tacacs sadece kullanıcı adı ve parola gönderdiği için ssh ile bağlantı sağlandığında ssh bu kullanıcının kabuğunu, ev dizinini, kullanıcı id, grup id gibi beklediği cevapları alamaz. Bu yüzden de kullanıcın yerelde de tanımlı olması gerekir. Bunu aşmanın bazı yöntemleri varmış. Nss tabanlı yöntemler bunlara bakabilirsiniz.



27 Nisan 2018 Cuma

Sftp Sunucusu Kurulumu-CENTOS

  Sftp, ssh kullanarak dosya transferi yapan bir dosya aktarım protokolüdür. Sftp ssh'ın sağladığı güvenlik özelliklerini kullanmış olur. Nerdeyse tüm linux dağıtımlarda stfp istemcisi ön tanımlı olarak gelir. Bunun için ayrıca sftp kurulumu yapmanıza gerek olmaz.
Şimdi aşağıdaki kod ile sistemimizde gerekli dosyaların olup olmadığını kontrol edelim.

$ rpm -qa|grep ssh

libssh2-1.4.3-10.el7_2.1.x86_64
openssh-7.4p1-13.el7_4.x86_64
openssh-server-7.4p1-13.el7_4.x86_64
openssh-clients-7.4p1-13.el7_4.x86_64


Daha sonra sftp dosyalarını yükleyip indirmek için kullanıcağımız dizini oluşturalım. Bu dizini istediğiniz dizin altına oluşturabilirsiniz. Ben  home dizini altına oluşturmayı tercih ettim.

$ mkdir /home/sftp
$ cd /home
$ chmod 701 sftp

sftp dizininin iznini 701 yapıyoruz.
Bir sftp kullanıcıları için grup oluşturuyoruz.

$ groupadd sftpusers

Daha sonra kullanıcıyı oluşturuyoruz:

$ useradd -g sftpusers -d /upload -s /sbin/nologin mysftpuser

* -d komutu  ile daha sonra /upload klasörünün /home/sftp/upload altında olacağı anlamına gelir.

$ passwd mysftpuser

Upload dizinini oluşturup sahiplik ayarlarını yapıyoruz:

$ mkdir -p /home/sftp/upload
$ chown -R root:sftpusers /home/sftp
$ chown -R mysftpuser:sftpusers /home/sftp/upload



Daha sonra /etc/ssh/sshd_config yapılandırma dosyasına aşağıdaki satırları ekliyoruz:

Match Group sftpusers
ChrootDirectory /home/sftp/%u
ForceCommand internal-sftp


*sftpusers grubundaki kullanıcıların sadece sftp bağlantısı sağlayabilmesini ve sadece home/sftp altına erişimi olmasına izin verdik.

Son olarakta sshd servisini yeniden başlatıyoruz.
$ service sshd restart 

 

24 Mart 2018 Cumartesi

VRRP

  Vrrp birden çok yönlendiricinin tek bir yönlendirici gibi davranmasına imkan veren bir yönlendirici yedekliliği protokolüdür. IEEE standartlarına uygundur. Vrrp, bir yönlendiricinin durumu hakkında bilgi verir, bu yönlendirici tarafından işlenen ve değiştirilen rotalar hakkında bilgi vermez.

 Vrrp bir Ip alt ağında otomatik varsayılan ağ geçidi seçimleri aracılığıyla yönlendirme yollarının güvenilirliğini ve kullanılabilirliğini arttırır. Bunu ana ve yedek yönlendiriciler grubu oluşturarak yapar. Varsayılan ağ geçidi fiziksel yönlendirici yerine sanal yönlendiriciye atanır.
Vrrp'de seçilen bir yönlendirici sanal IP adresine gelen istekleri işler. Bu yönlendiriciye ana yönlendirici (master) denir. Bir vrrp grubunda birden fazla ana yönlendirici ve yedek yönlendirici bulunabilir. Yerel ağdaki cihazlar varsayılan olarak sanal yönlendirici grubunun Ip adresini kullanır.

Vrrp avantajlarından bir kaçı; yük paylaşımı ( Birden çok yönlendirici üzerinden trafik iletilir. ), aktif yönlendirici düşerse yedek ayağa kalkar ve aktif yönlendirici geri gelirse yedek yönlendirici yeniden yedek yönlendirici olur.


Hsrp yedekleme protokülü de vardır. Bu protokol cisco'ya özel bir protokoldür

Bir sanal yönlendirici grubu oluşturalım.

R1:
interface  Ethernet1/0
ip address 10.10.10.1 255.255.255.0
vrrp 1 ip 10.10.10.254
vrrp 1 priority 254

R2:
interface  Ethernet1/0
ip address 10.10.10.2 255.255.255.0
vrrp 1 ip 10.10.10.254
vrrp 1 priority 250


    Yukarıdaki topolojide 2 yönlendiriciden oluşturulmuş bir sanal yönlendirici grubu bulunmaktadır. İki routerımız için gerekli konfigürasyonları gerçekleştirdik. Bu iki yönlendirici Ana ve yedek olacaklarını kendi aralarında, priority değeri belirlediğimiz için bu değerlere bakarak seçecekler. Öncelik numarası (priority number) en yüksek olan R1 ana yönlendirici olarak gözükmektedir. Öncelik numarası varsayılan olarak 100’dür. Bir yönlendiriciye elle 1-254 arası öncelik numarası verilebilir.

   VRRP'nin özelliklerinden biri de bir yönlendiriciye hangi öncelik numarası verilirse verilsin eğer yönlendiricinin IP adresi sanal yönlendirici grubunun IP adresi ise o yönlendiricinin öncelik numarası otomatik olarak 255 olur ve ana yönlendirici olur

VRRP komutları oturduktan ve iki router birbirini gördükten sonra “show vrrp” komutu ile durumlarını teyit edebilirsiniz.
 

10 Şubat 2018 Cumartesi

SFTP & TFTP

SFTP 

  Sftp, ssh kullanarak dosya transferi yapan bir dosya aktarım protokolüdür. Sftp ssh'ın sağladığı güvenlik özelliklerini kullanmış olur. Nerdeyse tüm linux dağıtımlarda stfp istemcisi ön tanımlı olarak gelir.

Sftp bağlantısını kurarken aynı ssh komutu gibi kullanıyoruz:
  "$ sftp kullanıcı_adı@sftpserverip"

Eğer varsayılan port dışında bir port kullanılıyorsa, port numarasını -P parametresi ile birlikte vererek bağlantı sağlayabilirsiniz.

? işareti ile sftp için kullanabilceğimiz komutları ve ne işe yaradıklarını görebiliriz.



Sftp sunucusundan istemciye dosya almak için get , göndermek için put komutunu kullanıyoruz.
ls komutu ile sftp sunucusunda olduğumuz dizini listeleyebiliriz.
lls komutu ile de sftp istemcisinde olduğumuz dizini listeleriz.
Yukarıdaki resimde kullanabilceğimiz komutları görebilirsiniz.


TFTP

  Tftp protokolü de dosya transferi için kullanılan basit bir protokoldur. 69.port üzerinden genellikle udp kullanılarak uygulanır. Kullanımı sırasında az bellek kullandığı için genelde yönlendirici bilgisayarların önyüklemesinde kullanılır.

 Tftp'de kullanıcı kimlik dogrulaması için bir kural yoktur. Tftp dosya transferi yaparken okur ve yazar. Okuma ve yazma işlemi ile transfer başlar. Tftp transfer işlemi tftp sunucunun izin verdiği dizinde gerçekleşir.

Tftp sunucusu kurulumu için şu komutu kullanıyoruz:

$ sudo apt-get install tftpd-hpa

Tftp yapılandırmasını /etc/default/tftpd-hpa dosyasından yapıyoruz. Dosya içeriği şu şekildedir:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

tftp_directory seçeneği ile istemcinin hangi dizin altından dosya alıp hangi dizin altına dosya göndereceğini belirliyorsunuz. Fakat burda önemli bir konu dizin izinleridir.

Bu yapılandırmaya göre kullanacağınız dizinin izinini 777 yapmalısınız.
 $ sudo chmod -R 777 /srv/tftp

tftp-options ayarına eğer "--secure --create" seçeneğini eklemezseniz istemci /srv/tftp altında bulunmayan bir dosyayı bu dizine gönderme işlemi yapamaz. Sadece varolan dosyaların üstüne yazma işlemi yapabilir.

Tftp istemci kurulumu için:

$ sudo apt-get install tftp

Tftp bağlantısı için isterseniz alttaki ilk komutu kullanabileceğiniz gibi ikinci komut dizisini de kullanabilirsiniz.

  • $ tftp *.*.*.*(tftp sunucu ip)

$ tftp
$ connect  "ip"

  Tftp ile listeleme işlemi yapamıyorsunuz. Tftp de okuma ve yazma istegi ile transfer başladığı için aslında connect dediğimizde sunucuya bağlanma gibi bir işlem yapmış olmuyoruz. Hatta sunucunun 69. portundan cevap alıp alamayacağımızı get put işlemlerine kadar bilmiyoruz.

****put işlemini yaparken tftp sunucusuna koyacağınız dosyanında izni 777 olmalıdır. Ayrıca put işlemi yaparken göndermek istediğiniz dosya hangi dizinde ise o dizine gidip tftp bağlantısını o dizinde gerçekleştirmelisiniz.

  Sftp de olduğu gibi ? ile hangi komutları kullanabiliceğimizi ve ne işe yaradıklarını görebiliyoruz.









17 Ekim 2017 Salı

Bilgisayar Mühendisliğini Nasıl Seçtim...

 Bu sene hiç blog yazmadığımı farkettim. Tam da sürekli sınav sistemleri hakkında konuşulurken aklıma bu blog yazısını yazmak geldi. Bu yazı bölümü nasıl seçtiğimden çok nasıl sevmeye başladığımın hikayesi olacak aslında.

 Türkiye'deki eğitim sistemini hepimiz biliyoruz. Öğrencilerin neye göre meslek seçimi yaptığı da çok aşikar bir şekilde ortada. Ben de onlardan biriyim aslında, bir sene daha hazırlanmak isteyip hocamın "Melike yapma yeterince çalıştın zaten, istediğin puanı yapamama nedeninin stres olduğunu biliyoruz ve ikinci sene hazırlanırsan daha çok stresli olacaksın" diyerek beni engellemesi sonucu tercih yaptım. Size, herkese inat tüm tercihlerimi inşaat mühendisliği yazıp sonra nasıl değiştirdiğimi hiç anlatmayayım :) Zaten Bilgisayar Mühendisliği mi yazacaksın kız kısmı o işi mi yapar öğretmenlik seç muhabbetlerini hiç anlatmıyorum. Çoğu kadın meslek seçimi yaparken böyle şeylere maruz kalıyor. Neyse bu başka bir konu...

 Üniversiteye ilk başladığım sene hazırlık okumak istedim. Zorunlu değildi fakat benim hep böyle bir düşüncem vardı. Bir de bölüme isteyerek gelmemişim belki tekrar hazırlanır sınava girerim hayallerim vardı. Buna rağmen okula başladıktan sonra bölümle ilgili araştırma yapmaya başladım. Ne yapıyorlar bu bölüm neymiş nasıl işler yapıyorlarmış. Tabi bu sırada daha hazırlıktayken Necdet hoca hakkında rivayetler duyuyorsunuz "of bir hoca varmış dersini kimse veremiyormuş 10 sene alanlar bile varmış :) "gibi. Bu da sizi biraz fazla korkutuyor açıkçası, zaten üst sınıflarda bunu bilerek yapıyorlar :) Neyse ben korkunun ecele faydası yok diyerek araştırmaya devam ettim. Bölümü araştırdıkça ilgimi çekmeye başladı. GNU/Linux' u hazırlıktayken duymuş ve bilgisayarıma Gnu/linux dağıtımı olan Ubuntu'yu kurmuştum. Linux maceramın son kullanıcı bazlı kullanımı hazırlık seneme dayanır. Daha sonra ikinci yarıyıl zamanıydı yapısal programlama dersine gitmeye karar verdim. Gidip kodlama da neler yapıyorlar görmek istedim. O derse gidene kadar bir satır bile kodlama yapmamış, algoritmanın a'sını bile bilmeyen biriydim.

 Derse girdim Mustafa hoca veriyordu sanırım o yıl dersi. Tahtada matrisleri anlatıyordu. Ben de "tamam ya bu bizim matrisler" diyorum. Sonra kodlama kısmına gelindi matrislerle ilgili kodlama kısmından bahsedip yine onla ilgili başka bir kodu yazmamızı istedi. Ben de oturmuşum bilgisayar başına açmışım ide'yi deniycem, sanki daha önce kodlama görmüşüm edasıyla:) Şaka maka yazdım gerçekten derlendi de, ben hala ihtimal vermiyorum tabi doğru olduğuna. Hocayı çağırdık, kontrol etti "evet doğru yapmışsın değişkenin adını d yap tamamdır " dedi. Değişken mi   o_0  :)

  O gün yaşadığım heyecanı, mutluluğu size anlatamam. O gün düşündüğüm ilk şey "kızlar niye yapamasın, Melike sen bu bölümü okursun çok da güzel yaparsındı". Tabi kendimi biraz fazla gaza getirmiş de olabilirim, "ne var bunda herkes kodlama yapabilir" de diyor olabilirsiniz ama benim o gün hissettiğim umut bu bölümü sevmeme ve bilgisayar mühendisi olmama sebep olmuştur. Şimdi çok mutluyum bu bölümü okumuş olmaktan.

 Bu okuduğum dört sene içinde öğrendiğim bir şey var ki; belki bir bölümü sevmeden öyle ya da böyle okuyabilirsiniz fakat o işi yaparken lanetler okursunuz. Hatta Libreoffice'e katkı verirken birinin bir yorumunu duymuştum. Yanlış hatırlamıyorsam "işsizler ondan bunla uğraşıyorlar" tarzında bir cümleydi sanırım. Duyduğumda söylediğim bir şey vardı. Gerçekten haklı olduğu bir nokta var; yaptığınız işi seviyorsanız o sizin için iş olmaktan çıkıyor bir hobi oluyor.

 Ben şanslıydım. Çok sevdiğim bir bölümü çok sevdiğim, hakkında rivayetler duyduğum ":)" hocamla birlikte çalışarak bitirdim. Benim kadar şanslı olamayabilirsiniz bu yüzden Türkiye'de neler değişirse değişsin, size kim ne derse desin mesleğinizi seçerken iyi düşünün.
 

2 Kasım 2016 Çarşamba

Libreoffice Çalışmalarım-2

 Herkese merhaba,
 
 Üçüncü sınıftayken Libreoffice katkı vermeye başlamış, 13 kişilik bir ekiple birlikte çalışmıştım. Çok güzel işler yaptık ve daha önceki blog yazılarımda bu işlerden bahsetmiştim. Dördüncü sınıfta da Libreoffice katkı vermeye devam ediyorum.

 Hakkında blog yazdığım Libreoffice Math aracı ile ilgili çalışmamdan sonra Libreoffice'ın bir çok farklı işleriyle ilgili katkı verdim. Bunlar hakkında özel blog yazıları yazmamıştım. Bu yıl ilk kabul edilen yamamla birlikte şimdi neler yaptığımla ilgili kısaca yazmış olmak istedim.

Bu yılın kabul edilen ilk yamasında arka planda kod iyileştirmesi yaptım. Daha önce uğraşmadığım bir iş olan makro fonksiyonlarla çalıştım. Yeni bir makro fonksiyon tanımlaması ve kullanımıyla ilgili bir iş yaptım. Bir süre daha makrolarla ilgili çalışmaya devam edeceğim.

 Söylemeden geçemeyeceğim bir şey var ki; yazın stajda ELK, elastalert ve docker üzerine yaptığım çalışmalardan sonra tekrar "It has been merged to LibreOffice." yazan mailin sevincini yaşamak güzel bir duyguydu :)

 Bu senede +Necdet hocamın yön göstermesi ile daha güzel işler yapacağım ve size de güzel haberler vereceğim :)