systemd ile Sistem ve Servis Yönetimi

Linux Akademi blogunda yayınladığım systemd makalesini buradan da yayınlıyorum.

Bilindiği gibi RHEL, Oracle, SuSe, Debian gibi major bir çok linux dağıtımı eski SystemV init sistemi yerine default olarak systemd kullanmaya başladılar. systemd’nin sadece açılışlarda servislerin inşaasını üstlenen init sistemine oranla daha komplike olması, servisler için paralelizasyon, mount ve automount, journal, ve system state snapshot desteği gibi bir dizin özellik barındırmasından dolayı kimilerince Unix filozofisine aykırı olduğu gerekçesi ile (“do one thing and do it well”) hoş karşılanmasa da yukarıda ismi zikredilen dağıtımlar tarafından default olarak kullanılmaya başlaması nedeniyle sıkça karşılaşılan ve dinamiklerinin bilinmesinde fayda olan bir sistem.


Devamini okuyun: systemd ile Sistem ve Servis Yönetimi


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler:

4 Temmuz 2015

Posted In: *nix, Genel, update service

Etiketler:

389 Directory Server (LDAP) Kurulum ve Yapılandırması

Bu makaleyi daha önce BilgiO / Linux Akademi Blogu‘nda yayınlamıştım. Aynı şekilde burada da yayınlıyorum.

Linux ve açık kaynak kod teknolojiler barındıran altyapılar için, merkezi kimlik denetimi işleri için bir ldap dizin servisi ihtiyacı olduğu zaman OpenLDAP dahil kullanılabilecek bir kaç alternatif var. Multi Master replikasyon desteği, yüksek performans, LDAPv3 uyumluluğu gibi güzel özellikleri ve kullanışlı bir arayüze sahip olmasından dolayı “389 Directory Server” alternatifler arasında iyi bir tercih olmaktadır. RHEL tarafından geliştirilmekte olan 389-DS hemen her tür operasyonu da online olarak gerçekleştirebilmesinden mütevellit, üretim ortamları için de çok uygun bir directory serverdır.

Bu yazıda, tüm özelliklerine http://directory.fedoraproject.org/docs/389ds/FAQ/features.html adresinden erişelebilecek olan 389 Directory Server’ın, CentOS 6.6 sürümü üzerinde nasıl kurulacağı; temel ve genel güvenlik ayarlarının yapılarak nasıl servisin nasıl devreye alınabileceğine değineceğim. Yazının sonraki bölümlerinde ise Master & Slave replication ve SSSD üzerinden SSH servisinin ve SUDO entegrasyonlarından bahsedeceğim.


Devamini okuyun: 389 Directory Server (LDAP) Kurulum ve Yapılandırması


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,

21 Haziran 2015

Posted In: *nix, installation, kurulum

Etiketler: ,

Locust – Açık Kaynak Kod Load Test Uygulaması

Locust, web uygulamaları üzerinde detaylı olarak stress test yapabilmeye olanak sağlayan açık kaynak kodlu çok güzel bir yazılım. Temel olarak yük testinin yapılacağı web uygulaması için hangi sayfalarda kaç kişinin gezeceğini, hangi sayfalardan hangi sayfalara geçileceği, toplam dolaşım süresinin ne olacağı vs. gibi detaylı senaryonuzu bir python scripti şeklinde tarif edip, locust’a bu senaryoyu simule etmesini söylüyorsunuz.

Aşağıdaki gibi güzel ve anlaşılır bir web arabirimi olan Locust aynı anda milyonlarca anlık ziyaretiçiyi belirlediğiniz eşik değerlerine göre web uygulamanıza dolduruyor ve arayüz üzerinden uygulamanızın kullanıcı isteklerine verdiği cevapların stabilitesini ölçüp sınırlarınızı tespit edebiliyorsunuz.

 


Devamini okuyun: Locust – Açık Kaynak Kod Load Test Uygulaması


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,

28 Şubat 2015

Posted In: *nix, Genel, kurulum, Qmail, tools

Etiketler: ,

Zfsonlinux Kurulumu ve Yapılandırması

Zfs, yüksek ölçeklenebilirliğe uyumlu, aşağıdaki kriterleri dikkate alarak dizayn edilmiş dosya sistemi ve mantıksal hacim yöneticidir.

  • Veri bütünlüğü
  • Basit depolama yönetimi
  • Her şeyi online olarak yapabilmesi

Bsd sistemlerde default olarak gelen zfs dosya sistemini, zfsonlinux kurarak linux sistemlerde de kullanma imkanı bulabiliyoruz.

Zfsonlinux Kurulumu

Redhat tabanlı işletim sistemi için zfsonlinux download sayfasından 6 ve 7 dağıtımları için gerekli rpm repolarını indirebilirsiniz. Bu yazıda Centos 6 için kurulum yapılacaktır.

# rpm -ivh https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm
# yum install kernel-devel zfs

# reboot

Sunucuyu yeniden başlattıktan sonra aşağıdaki şekilde hata almanızın sebebi  kernel, kernel-headers ve kernel-devel versiyonlarının uyuşmamasından kaynaklanıyor olabilir. Kernel’i güncellemeniz problemi çözecektir.

# zfs list
Failed to load ZFS module stack.
Load the module manually by running 'insmod <location>/zfs.ko' as root.

[root@localhost ~]# rpm -qa |grep kernel
kernel-firmware-2.6.32-504.el6.noarch
dracut-kernel-004-356.el6.noarch
kernel-2.6.32-504.el6.x86_64
kernel-devel-2.6.32-504.8.1.el6.x86_64
kernel-headers-2.6.32-504.8.1.el6.x86_64

Zfs Pool Oluşturulması

Zfs kurulumu yapılan sunucuda 2 disk mevcut, 2. disk zfs olarak yapılandırılıp, tank0 olarak zfs pool oluşturacağız. 2.diski sisteme mount etmediğimden dolayı “df ” çıktısında görünmüyor. Eğer önceden ext4 olarak formatlayıp mount ettiğiniz bir diski kullancak iseniz ilk önce umount edip, “/etc/fstab” dosyasından diskin mount edildiği satırın başına “#” koymanız yada satırı silmeniz gerekiyor. Bu sayede zfs diski legacy olarak fstab üzerinden sisteme sorunsuz mount edebiliriz.

# zpool create tank0 /dev/sdb 
# zfs list 
NAME    USED  AVAIL  REFER  MOUNTPOINT
tank0   108K  19.6G    30K  /tank0

tank0 poolunun yanında aynı disk üzerinde birden fazla poollar da oluşturabilirsiniz.

# zfs create -o mountpoint=/home/zfs1 tank0/zfs1

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank0        156K  19.6G    30K  /tank0
tank0/zfs1    30K  19.6G    30K  /home/zfs1

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  961M  8.6G  10% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             477M   49M  403M  11% /boot
tank0                  20G  128K   20G   1% /tank0
tank0/zfs1             20G  128K   20G   1% /home/zfs1

Poolları legacy olarak oluşturmadığımız için sunucuyu resetlemeniz durumunda zfs poolları sunucunun açılışında oluşturulamayacak ve ” df ” çıktısında görünmeyecektir.

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank0        158K  19.6G    30K  /tank0
tank0/zfs1    30K  19.6G    30K  /home/zfs1

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  961M  8.6G  10% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             477M   49M  403M  11% /boot

Bu sebeble aşağıdaki şekilde zfs poollarını mointpoint olarak legacy ayarlayıp, sunucunun açılışı sırasında fstab ayarlarına göre mount olmasını sağlıyoruz.

# zfs set mountpoint=legacy tank0

# zfs get mountpoint tank0
NAME   PROPERTY    VALUE       SOURCE
tank0  mountpoint  legacy      local

# zfs set mountpoint=legacy tank0/zfs1

# zfs get mountpoint tank0/zfs1
NAME        PROPERTY    VALUE       SOURCE
tank0/zfs1  mountpoint  legacy      local

fstab dosyasına aşağıdaki satırları ekliyoruz.

tank0                   /tank0                  zfs     defaults        0 0
tank0/zfs1              /home/zfs1              zfs     defaults        0 0

Artık poolları mount edebiliriz.

# mount -a

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  961M  8.6G  10% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             477M   49M  403M  11% /boot
tank0/zfs1             20G     0   20G   0% /home/zfs1
tank0                  20G     0   20G   0% /tank0

Zfs komutunun ayrıntılarını linkte bulabilirsiniz.

Performans Ayarları

Sunucularda performans amacı ile kullandığım birkaç zfs ayarlarından bahsedecek olursak,

  • Çok fazla i/o yapan bir sunucuda zfs compression özelliğini aktif ederek i/o sorununu azaltabilirsiniz.

# zfs get compression
NAME        PROPERTY     VALUE     SOURCE
tank0       compression  off       default
tank0/zfs1  compression  off       default

# zfs set compression=on tank0
# zfs set compression=on tank0/zfs1

# zfs get compression
NAME        PROPERTY     VALUE     SOURCE
tank0       compression  on        local
tank0/zfs1  compression  on        local

  • recordsize değerini değiştirebilirsiniz.

# zfs set recordsize=128K tank0
# zfs set recordsize=128K tank0/zfs1
 
# zfs get recordsize
NAME        PROPERTY    VALUE    SOURCE
tank0       recordsize  128K     default
tank0/zfs1  recordsize  128K     default

 

10 Şubat 2015

Posted In: *nix, lkd-gezegen, zfs, zfs kurulumu, zfs pool, zfs yapılandırması, zfsonlinux, zpool

Two-Factor Auth Destekli OpenVPN Server Kurulumu

IT altyapılarının güvenilirliğini ve bağlı olarak sürekliliğini sağlamak üzere uygulanması gereken süreç disiplinlerinde kritik data içeren mecralara erişimlerde sıkı güvenlik prosedürleri izlenmesi gerekiyor. Bu anlamda özellikle PCI-DSS ya da ISO 27001 standartlarına tabii olan ya da olmak isteyen firmaların, kendi networklerine “dışarıdan” erişim ihtiyacının bulunması durumunda implemente edecekleri VPN çözümlerinin, bahsi geçen güvenlik standartlarına uygun olması gerekiyor. Örnek olarak PCI-DSS uyumluluğu için kullanılan VPN çözümünde kimlik doğrulama işlemi en az iki aşamalı olarak gerçekleştirilmek durumunda. Bu zorunluluk PCS-DSS V3’de şu şekilde tarif edilmiş durumda:

Implement Strong Access Control Measures 8.3 – Incorporate two-factor authentication for remote network access originating from outside the network by personnel (including users and administrators) and all third parties, (including vendor access for support or maintenance). Note: Two-factor authentication requires that two of the three authentication methods (see Requirement 8.2 for descriptions of authentication methods) be used for authentication. 8.2 Authentication methods – Something you know, such as a password or passphrase – Something you have, such as a token device or smart card – Something you are, such as a biometric.

Bu tanıma göre, networkünüze uzaktan erişim sağlayacak her türlü bağlantı için yapılacak kimlik denetimlerinde madde 8.2’de belirtilen metodlardan en az ikisinin kullanılması gerekiyor. Günümüzde yaygın olarak kullanılan SSL VPN çözümlerinde PKI altyapısı kullanılarak, bir username üzerinden key ibraz etmek sureti ile kimlik denetimi gerçekleştirilip bağlantı kuruluyor. Ancak bu tek yönlü kimlik denetimi, anlaşıldığı üzere yeterli değil. Bu nedenle kullandığınız VPN çözümünün username/ password (ya da key) ibraz etmeye ek olarak token ya da bir biometric denetim mekanizmasını destekliyor olması gerekiyor. Biometric denetim mekanizmalarının oldukça sınırlayıcı ve maliyetli çözümler olduğunu düşünürsek, iki yönlü doğrulama için username + token mekanizmalarını birlikte kullanmak konunun pratik çözümü olacaktır. İşte bu konudan hareketle bu yazıda, bir SSL VPN implementastonu olan OpenVPN ve Google Authenticator kullanılarak two-factor authentication destekleyen bir VPN sunucusu kurulumundan bahsedeceğim. En nihayetinde halihazırda kullandığınız OpenVPN altyapınıza yazıda anlatıldığı şekli ile google authenticator entegrasyonu da yapabilirsiniz.


Devamini okuyun: Two-Factor Auth Destekli OpenVPN Server Kurulumu


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,

30 Kasım 2014

Posted In: *nix, Genel, installation, openvpn, security

Etiketler: ,

Portspoof ile Network Scanner’ları Yanıtlamak

Portspoof, bir network scanner uygulaması kullanarak sunucular üzerinde çalışan servisleri tespit etmek isteyen saldırganların işlerini zorlaştırmak ve tarama sonucunu manupule etmek sureti onları yanıltmak üzere geliştirilmiş enteresan bir uygulamadır.

Bildiğiniz gibi network scanner uygulamalarının uzaktaki bir sistemde çalışan servisleri tespit etmeleri için kullandıkları bir takım teknikler vardır. Bu tekniklerden en tipik olanı ise TCP’nin üçlü el sıkışma prensibinden hareketle uzak sunucunun tüm portlarına (ya da ilgilenilen portlarına) birer SYN paketi göndermek ve alınacak cevaba göre ilgili servisin mevcudiyeti ya da durumu ile ilgili karara varmaktır. Örnek olarak üzerinde bir web sunucusu çalıştığını bildiğiniz uzaktaki bir sistemin 80. portuna bir SYN paketi gönderirseniz ve uzak sunucudaki bu servis çalışır durumdaysa -ayrıca herhangi bir engelleme yoksa- cevap olarak SYN+ACK paketi alırsınız. Bu şekilde ilgili servisin çalışır vaziyette olduğu uzaktan tespit edilir ve örneğin nmap ilgili port’u OPEN olarak bildirir. Aynı şekilde gönderilen SYN paketine RST paketi dönerse, uzak sunucuda ilgili portu dinleyen bir servis olmadığı anlaşılır ve scanner uygulaması durumu CLOSED olarak değerlendirir. Eğer uzak sunucu bir firewall üzerinden korunuyorsa ve SYN paketini gönderdiğiniz porta erişim izniniz yoksa ilgili paket -genel olarak- drop edilir bu nedenle de geriye herhangi bir paket döndürülmez. Bu durumda da network scanner uygulaması durumu FILTERED olarak bildirir, bu şekilde de uzaktaki sistemin bir firewall’a sahip olduğunu tespit edebilirsiniz.


Devamini okuyun: Portspoof ile Network Scanner’ları Yanıtlamak


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,

30 Ekim 2014

Posted In: *nix, Genel, ipucu, portspoof, security, tools

Etiketler: ,

WP Twitter Auto Publish Powered By : XYZScripts.com