'*nix' Kategori'sine ait arşiv.
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.
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.
OSSEC (HIDS) Kurulumu ve Yapılandırması
Bu makaleyi, Linux Akademi blog’unda Ossec (HIDS ) Kurulumu ve Yapılandırması ismi ile yayınlamıştım; şimdi Syslogs üzerinden de yayınlıyorum.
Özellikle dağıtık yapılarda, sunucu güvenliği konusunda süreklilik sağlamak en önemli noktalardan birisidir. Zira, tüm sistemlerin bir şekilde izlenmesi ve olası anormalliklerin hemen tespit edilip müdahale edilmesi proaktif sistem yönetiminin başlıca kurallarından birisidir. Bu noktada network trafiğini izleyerek saldırı tespiti yapmanın yanı sıra her bir sunucu/cihaz üzerinde de bir HIDS (host-based intrusion detection) uygulaması kullanarak log monitoring, dosya bütünlük kontrolü ve rootkit tespiti gibi genel işlemler gerçekleştirilmelidir.
İşte bu yazıda, bahsedilen bu ihtiyacı karşılamak üzere OSSEC isimli HIDS uygulamasından bahsedip, server/client mimarisi ile kurulumunu ve yapılandırmasını anlatacağım.
Bind DNS Server Kurulumu – Master, Slave Replication
Bind, oldukça yaygın olarak kullanılmasından dolayı bir DNS sunucusuna ihtiyacınız olduğu zaman tercih edebileceğiniz alterntiflerin başında geliyor. ISC tarafından geliştirilen bind kolay kurulumu ve yönetimi nedeni ile de tercih edilebilecek bir nameserver uygulamasıdır. Bu yazıda bind kullanarak iki CentOS 6.5 üzerinde master/slave olarak çalışacak bir DNS yapısının nasıl kurulabileceğinden bahsedeceğim.
MySQL High Availability Setup: DRBD, Pacemaker, Corosync
Kritik noktalarda çalışan MySQL servislerinde, yüksek erişilebilirlik sağlamak (high availability) ve herhangi problem anında mümkün olan en kısa sürede otomatik olarak tekrar servis verebilir duruma gelmek için uygulamanızın özelliklerine ve altyapınıza göre replikasyondan clustering’e birden fazla alternatif kullanabilirsiniz. Böyle bir ihtiyaç için seçilebilecek alternatiflerden birisi DRBD/Pacemaker/Corosync üçlüsünü kullanarak active/passive olmak üzere iki node’dan oluşan bir HA cluster kurmak olabilir.
Bu tip bir yapı ile http://dev.mysql.com/doc/refman/5.0/en/ha-drbd.html adresinde de anlatıldığı üzere iki adet (fiziksel ya da sanal) sunucu ile ortak bir storage vs. gibi herhangi ek bir yatırıma gerek kalmadan otomatik failover ve recovery özelliği ile servis devamlılığı ve senkron replikasyon (mirroring) yaparak data güvenliği sağlayan bir yapı elde edebilirsiniz.
Yazının devamında böyle bir yapının CentOS 6.5 ve MySQL 5.1 kullanılarak oluşturulmasına ait kurulum notlarını paylaşacağım.