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.