sysdig: Sistem Seviyesi Analiz ve Sorun Giderme Aracı
Genelde IT altyapılarında meydana gelen problemleri gidermek ve bir daha tekrarlanmayacak şekilde proaktif bir yaklaşımla probleme neden ana faktörleri ortadan kaldırmak için yapılması gereken ilk şey problemi doğru analiz etmektir. Zira doğru olarak analiz edilen bir problem için üretilen çözümler doğru orantılı olarak kalıcı ve ilgili problemin ya da varyasyonlarının tekrar yaşanmasını engelleyici nitelikte olacaklardır. Hal böyle olunca yani iş, problem analizine geldiğinde bu konudaki başarıyı belirleyici en önemli faktör ise yaklaşımlarınız ve kullandığınız araçlardır.
Bu noktada doğru yaklaşım herzaman için problemin nedenlerini tam olarak anlamaktır. Yani eğer ortada neden kaynaklandığını bilemediğiniz ancak geçici çözümler üretebildiğiniz – ki gerçek hayatta en çok problemli servisi / sunucuyu restart etmeye tekabül eden – bir problem varsa önceliği problemi geçici olarak çözmek yerine nedenlerini anlamaya çalışmak üzere konunun derinlerine inmek ve altyapıyı enine boyuna analiz etmeye vermek en doğru yaklaşım olacaktır. Problem çözmede en belirleyici ikinci faktör ise, analiz sırasında kullandığınız araçların derine inmek ve inceleme konusundaki ihtiyaçlarınıza cevap verecek şekilde gelişmiş olması gerekliliğidir. İşte bu yazının konusunu oluşturan sysdig de tarif ettiğimiz bu ihtiyaçlara harika bir şekilde yanıt veren çok güzel bir uygulamadır.
Sysdig Nedir ?
Temel olarak hemen tüm majör Linux dağıtımında çalışan ve doğrudan linux kernel’ine dahil olarak tüm sistem çağrılarını ve OS ile ilgili diğer olayları en alt düzeyde yakalayıp analiz edilmesine olanak sağlayan sysdig, bu işi yapan strace gibi klasik araçlardan farklı olarak bir çok güzel özellik barındırmaktadır.
Öncelikli olarak kernel seviyesinde processing, network, storage ve memory alt sistemlerinde cereyan eden olayların anlaşılır şekilde ve bütünleşik olarak görüntülenmesine olanak sağlar. Bu, incelemekte olduğunuz platform üzerinde çalışmakta olan uygulamaların sistem seviyesinde ne gibi işlemler yaptığını görüntüleyebilmenize olanak sağlamaktadır ki , sysdig üzerinden elde edilen veri, problem çözmede kullanılabilecek ve genelde log dosyalarından ya da uygulama bağımlı debugging araçlarından elde edilemeyecek türden alt seviye kıymetli bilgi içerir.
CentOS 7.0 Üzerinde Zimbra Server 8.0 Kurulumu
Bir eposta sunucusuna ihtiyaç duyduğunuzda seçebileceğiniz bir çok alternatif bulunuyor; bunlardan en iyilerinden birisi ise gerek kolay yapılandırması ve gerekse görsel olarak güzel bir yönetim arabirimi sunması, ve son kullanıcıya modern ve mobil uyumlu arayüz sunması nedeniyle Zimbra Collaboration Suit’dir. Özellikle alternatif posta sunucularından farklı olarak takvim, dosya paylaşımı, görev listesi, görsel konferans ve sunduğu bir çok yan uygulamayla birlikte firmaların iş yapış şekillerine ve koordinasyonlarına da son derece olumlu katkılar yapan Zimbra’nın GPL lisanslı Open Source sürümü tekbaşına hemen bir çok firmanın temel ihtiyaçlarını fazlasıyla karşılayacak şekilde bir çok özellik barındırıyor.
Yakın zamanda, Telligent Systems tarafından VMWare’den alınan Zimbra’nın Network Edition isimli bazı ek özellikler sunan bir de ücretli sürümü bulunuyor. Ama yukarıda da bahsettiğim gibi genel anlamda Open Source Edition temel ihtiyaçları karşılamak açısından son derece yeterli. Zimbra her ne kadar cloud-based bir e-mail platform çözümü olsa ve bu nedenle aynen Google Apps’de olduğu gibi web üzerinden istemci erişimine yoğunlaşmış olsa da Zimbra Desktop adında bir mail istemcisi de bulunuyor.
Ajenti (Web Tabanlı Kontrol Paneli) ile Linux Yönetimi
Genelde, Linux hostlarda her tür sistem yönetimi işininin komut satırı üzerinden ve mümkünse otomatize bir şekilde yapılmasını tavsiye ediyorum. Zira bu şekilde sistem altyapısına daha fazla hakim olabildiğiniz gibi komut satırından çalışmak bir arabirim üzerinden çalışmaya oranla yaratıcılığı da tetikleyen bir konu olduğundan epeyce önemlidir. Ancak bazı durumlarda sistemlerinizi -tercihen web üzerinden çalışan bir- arabirim üzerinden de yönetmek isteyebilirsiniz.
İşte böyle bir ihtiyaç hasıl olduğu zaman çözüm olarak Ajenti isimli web tabanlı kontrol panelini kullanabilirsiniz. Plesk, cPanel ve Webmin gibi yönetim arabirimlerine güzel bir altrenatif olan Ajenti AGPLv3 lisanslı bir açık kaynak kod yazılım olmakla birlikte hosting işi yapmıyorsanız ya da ticari olarak vps’lerinizin yönetimi için kullanmamanız durumunda yani iş ve evdeki sunucularınızın yönetimini yapmak üzere personal license adı altında tüm sunucularınıza ücretsiz olarak kurup kullanabiliyorsunuz. Hosting yönetimi, VPS ve appliance ürünlerde kullanmak için ise lisans detayları ayrıca şu sayfayada bulunuyor: http://ajenti.org/licensing
Ajenti’nin yum ve apt repoları bulunduğu için RHEL ve Debian tabanlı tüm sistemlerde doğrudan paket yöneticisi üzerinden kurulabiliyor. Bu şekilde oldukça kolay bir kurulama sahip olması ve modüler plugin sistemi sayesinde sunucularınızın üzerinde koşan hemen her türlü bileşeni (Apache, MySQL, PostgreSQL, Nginx, Cron, Firewall, Munin, Samba, FTP, BIND, Squid, OpenVPN vs. ) -eski yapılandırmanızı da bozmadan çalışan sistemlere direk entegre olarak- yönetebilmesi ve API desteği ile kolay plugin geliştirme (python) imkanı vererek kendi özel uygulamalarınız için Ajenti pluginleri yazabilmenize olanak sağlaması gibi gayet güzel özellikler sunuyor. Ayrıca çok küçük bir footprint’e sahip olmasından dolayı küçük memory ve CPU kullanım değerleri ile de oldukça hafif bir uygulama olmasından dolayı tercih edilebilecek bir çözüm sağlıyor.
Aşağıda RHEL/CentOS üzerine Ajenti kurulumun nasıl yapılacağından bahsedeceğim. İlginizi çekerse kurmak isteyebilirsiniz:
ncdu – Disk Kullanımı Görüntüleme Aracı
Normalde dosya ve dizinlerin sistemde ne kadar yer kapladığını görmek için du (ya da find) komutu kullanır ve konsol üzerinden gerekli bilgiyi ediniriz. Her ne kadar du komutunun çıktısını düzenlemek için bir çok parametre bulunsa da genel anlamda du çıktısı özellikle Linux ile yeni tanışan kişiler için karışık olabilir. İşte bu nedenle, du’nun yaptığı işi yapan ancak çıktı olarak ncurses kullandığından dolayı text-tabanlı da olsa grafiksel sonuç döndüren “ncdu” isimli bir uygulama bulunuyor.
Ncdu hem okunaklı çıktı üretmesi hem de uzak hostlarda doğrudan çalıştırılabilmesi gibi özelliklerinden dolayı epey kullanışlı bir araç. Bulunduğunuz dizinde ncdu’yu çalıştırdığınız zaman aşağıdaki gibi bir çıktı alıyorsunuz:
Yazinin devami icin tiklayin.
Linux Yaz Kampı 2014
Linux Kullanıcıları Derneği ve İnternet Teknolojileri Derneği tarafından her yıl düzenlenen Linux Yaz Kampı, bu sene 11 – 23 Ağustos tarihleri arasında Bolu Abant İzzet Baysal Üniversitesi‘nin ev sahipliğinde düzenleniyor.
Benim de eğitmen olarak katılacağım Linux Yaz Kampı 2014, farklı alanlarda, farklı bilgi düzeylerine hitap eden paralel sınıflarda gerçekleştirilen eğitimlerden oluşan ve sektörün ihtiyaç duyduğu Linux ve Açık Kaynak Kod teknolojilerle ilgili yetişmiş işgücü açığını kapatmaya yardımcı olmak üzere düzenlenen ve kar amacı güdmeksizin kamu yararına düzenlenen oldukça geniş kapsamlı bir eğitim organizasyonudur.
Türkiye’nin dört bir yanından gelen 300′ü aşkın üniversite ve kamu bilgi işlem personelleri, özel sektör çalışanları ve öğrencilerin yoğun bir eğitim programıyla bilgi düzeylerini yükseltmeyi ve kendi aralarında iletişimlerini arttırmayı hedefleyen kampta, 12 gün boyunca 80 saati aşkın eğitim ve ek olarak etüt çalışmaları yapılmaktadır.
Türkiye’de alanındaki tek eğitim kampı olması, geniş ve kaliteli eğitmen kadrosu, katılımın ücretsiz olması ile büyük ilgi toplayan Linux Yaz Kampı’nda bu sene 10 paralel sınıfta gerçekleştiriliyor. 4 sınıfı “Linux Sistem Yönetimi I-II” olmak üzere, “PHP ile Yazılım Geliştirme”, “Ruby/Rails ile Yazılım Geliştirme”, “Python/Django ile Yazılım Geliştirme”, “Java Programlamaya Giriş”, “Tersine Mühendislik”, “Web Uygulama Güvenliği ve Güvenli Kod Geliştirme” sınıfları da yer alıyor.
Kamp ile ilgili detaylı bilgi için http://kamp.linux.org.tr/2014/ adresini ziyaret edebilirsiniz.
Kampa katılacak arkadaşlarla orada görüşmek üzere.
Ossec Merkezi Agent Yapılandırması
Daha önce Linux Akademi’nin Blog’unda Ossec (HIDS) Kurulumu ve Yapılandırma‘sını anlatan bir döküman yayınlamıştım. İlgili dökümandan hareketle kurulan Ossec sistemlerinde, agent’lar üzerinde yapılacak dosya bütünlük kontrolü, rootkit tespiti ve log monitoring gibi işlemlerde hangi dosya/dizinlerin izleneceği vs. gibi tüm yapılandırma işlemleri default olarak uzak host üzerinde bulunan ossec yapılandırma dosyası üzerinde tanımlanmaktadır. Bu durum monitor ettiğiniz hostlarda tek tek düzenleme yapılması anlamına geldiği için özellikle fazla sayıda host’u monitor etmek iş gücü anlamında maliyetli bir durum oluşturmaktadır. Böylesi bir durumda agent yapılandırmalarını merkezi olarak düzenleyebilmek isteyebilirsiniz. İşte bu sebeple Ossec, syscheck (dosya bütünlük kontrolü) rootkit tespiti ve log monitoring tanımlamalarının merkezi yapılabilmesine olanak sağlamaktadır.
Debian Tabanlı Sistemlerde Paket Sorgulama İşlemleri
Debian tabanlı dağıtımlarda sistemde kurulu paketlerle ilgili sorgulama işlemleri dpkg üzerinden yapılabilmektedir.
Sistemde kurulu tüm paketleri listelemek için -l paramtresi kullanılabilir:
# dpkg -l
Çıktı şuna benzer olacaktır:
ii 0trace 0.01-3 amd64 A traceroute tool that can run within an existing TCP connection. ii acccheck 0.2.1-1kali3 amd64 Password dictionary attack tool for SMB ii accountsservice 0.6.21-8 amd64 query and manipulate user account information
Kurulu bir paketle ilgili detaylı bilgi almak için ise -s paramtresi kullanılabilmektedir:
# dpkg -s hping3 Package: hping3 Status: install ok installed Priority: extra Section: net Installed-Size: 249 Maintainer: Guillaume Delacour <[email protected]> Architecture: amd64 Version: 3.a2.ds2-6kali3 Depends: libc6 (>= 2.7), libpcap0.8 (>= 0.9.8), tcl8.4 (>= 8.4.16) Description: Active Network Smashing Tool hping3 is a network tool able to send custom ICMP/UDP/TCP packets and to display target replies like ping does with ICMP replies. It handles fragmentation and arbitrary packet body and size, and can be used to transfer files under supported protocols. Using hping3, you can test firewall rules, perform (spoofed) port scanning, test network performance using different protocols, do path MTU discovery, perform traceroute-like actions under different protocols, fingerprint remote operating systems, audit TCP/IP stacks, etc. hping3 is scriptable using the Tcl language. Homepage: http://www.hping.org/
İlgili pakete ait sistem dosyalarını listelemek için ise -L parametresi kullanılabilmektedir:
# dpkg -L hping3 /. /usr /usr/sbin /usr/sbin/hping3 /usr/share /usr/share/doc /usr/share/doc/hping3 /usr/share/doc/hping3/SPOOFED_SCAN.txt.gz /usr/share/doc/hping3/changelog.gz /usr/share/doc/hping3/BUGS /usr/share/doc/hping3/MORE-FUN-WITH-IPID /usr/share/doc/hping3/API.txt.gz /usr/share/doc/hping3/README ...
Bir .deb paketinin içeriğini görüntülemek için ise -c parametresi kullanılmaktadır.
# dpkg -c rsync_3.1.0-3_amd64.deb drwxr-xr-x root/root 0 2014-04-16 10:38 ./ drwxr-xr-x root/root 0 2014-04-16 10:38 ./lib/ drwxr-xr-x root/root 0 2014-04-16 10:38 ./lib/systemd/ drwxr-xr-x root/root 0 2014-04-16 10:38 ./lib/systemd/system/ -rw-r--r-- root/root 188 2013-09-30 10:54 ./lib/systemd/system/rsync.service drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/ drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/bin/ -rwxr-xr-x root/root 390704 2014-04-16 10:38 ./usr/bin/rsync drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/share/ drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/share/man/ drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/share/man/man5/ -rw-r--r-- root/root 15833 2014-04-16 10:38 ./usr/share/man/man5/rsyncd.conf.5.gz drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/share/man/man1/ -rw-r--r-- root/root 56207 2014-04-16 10:38 ./usr/share/man/man1/rsync.1.gz drwxr-xr-x root/root 0 2014-04-16 10:38 ./usr/share/doc/ ...
dpkg ile ilgili daha fazla bilgi için ayrıca dpkg’nin sayfasına gözatmanızı tavsiye ederim.
Unbound ile Güvenli Recursive DNS Kurulumu
Unbound, güvenlik önplanda tutularak geliştirilen bir DNS sunucusudur. validating (DNSSec), recursive ve caching modları bulunan bu DNS daemon’ı ile kendi alan adlarınızına ait dns kayıtlarını barındırmak üzere authoritative DNS sunucusu kurabileceğiniz gibi üzerinde alan adı barındırmadan sadece çözümleme yapan recursive bir DNS sunucusu da kurabilirsiniz.
Ben bu yazıda unbound kullanarak hızlıca bir recursive DNS kurulum ve yapılandırmasının nasıl gerçekleştirilebileceğini anlatacağım.