'ipucu' Kategori'sine ait arşiv.
XFS Filesystem has duplicate UUID – can’t mount
Gerek müşterilerimiz gerekse kendimizin AWS üzerinde barındırdığımız sanal sunucularımızda klasik olarak RHEL 7 kullanıyoruz. Red Hat ve türevlerinin 7 sürümü ile birlikte default olarak gelmeye başlayan XFS dosya sistemi ile formatlanmış diskleri farklı sunuculara mount etmek istediğiniz zaman – ki böyle bir durum özellikle AWS için problematic sistemlerin ebs disklerini recovery amacı ile bir başka ec2 instance’ına bağlamak sureti ile cereyan eden bir durumdur – aşağıdaki mount hatası ile işlem başarısız olabilir:
mount: wrong fs type, bad option, bad superblock on /dev/xvdf2, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
Bu durumda detay almak için aşağıdaki komut ile
journalctl -k
komutu ile kernel tarafından üretilen loglara baktığınızda sistem üzerindeki iki disk bölümünün aynı uuid’ye sahip olduğu gerekçesi ile mount işleminin yapılamadığını belirtir aşağıdaki hata mesajını görürsünüz:
[ 789.411840] XFS (xvdf2): Filesystem has duplicate UUID 6785eb86-c596-4229-85fb-4d30c848c6e8 - can't mount
Bu durumda önünüzde iki seçenek bulunuyor.
Birincisi diski aşağıdaki örnekte olduğu gibi nouuid parametresi ile mount etmektir:
# mount -t xfs -o nouuid /dev/xvdf2 /disk2
Bu yöntem disk üzerinde herhangi bir değişiklik yapmadığı için özellikle ilgili diski ilgili sisteme geçici olarak mount edecekseniz ilk tercih edilebilecek yoldur.
İkinci opsiyon ise, ilgili disk için aşağıdaki komut ile yeni bir uuid üretip diski bu şekilde mount etmektir:
# xfs_admin -U generate /dev/xvdf2 # sudo mount /dev/xvdf2 /disk2/ -t xfs
Bu şekilde disk sorunsuz olarak mount edilecek ve erişilir duruma gelecektir.
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.
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.
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.
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.
mailsend – Komut Satırından Posta Göndermek
https://github.com/muquit/mailsend adresinde, komut satırından (ve SMTP) üzerinden email göndermeye yarayan küçük bir uygulama var. Normalde, nix sistemlerde default mail komutunu kullanarak iletmek istediğiniz postayı, sunucu üzerinde bulunan default MTA’ya vererek gönderilmesini sağlayabiliyorsunuz. Ancak bu işlemi yaptığınız sunucu bir posta sunucusu değilse muhtemelen giden mail, alıcı tarafında Sarı Çizmeli Mehmet Ağa’dan gelen ne idüğü belirsiz bir email muamelesi görüp junk’a iletilecektir. İşte bu gibi bir probleminiz varsa mailsend kullanmak akıllıca olabilir. Zira, mailsend ile komut satırından örneğin gmail hesabınız üzerinden smtp ya da submission portundan mail gönderebiliyorsunuz.
Elbette bu yöntemi kullanmak için -mail komutu gibi sistemde default bulunan bir uygulama olmadığından dolayı- mailsend’i sisteminize kurmanız gerekiyor. Aşağıda bu kurulumu ve uzaktaki bir posta sunucusuna oturum açıp (örnek olarak gmail üzerinden) nasıl posta gönderilebileceğine değineceğim.
VIM – Built-in Encryption
vim, bir çok güzel özellik barındırmasından ötürü yıllardır kullandığım ve herkese tavsiye ettiğim bir text editor. Hatta kendisi ile ilglili zamanında bir başvuru klavuzu da yayınlamıştım. vim’in güzel özelliklerinden birisi de built-in bir ecnryption fonksiyonuna sahip olması. Yani vim kullanarak ek bir araca gerek kalmaksızın text metinlerinizi şifreleyebiliyorsunuz.
Editlediğiniz bir dosya içerisinde :X parametresini girdiğinizde bir parola belirlemeniz isteniyor ve dosya (swap, undo ve backup dosyaları da dahil olmak üzere) bu key ile şifreleniyor. :X‘e benzer olarak :set key=sifre şeklinde de dosya encrypt edilebiliyor ancak bu yöntemde şifre plain text olarak ekranda görüldüğünden dolayı tercih edilmeyebilir. Bir dosyadaki encryption’ı kaldırmak için ise :set key= şeklinde key değerini boş vermeniz yeterli oluyor.
Bu güzel özellik ile ilgli biraz daha detay için şu adrese göz atabilirsiniz: http://vim.wikia.com/wiki/Encryption
Advanced Copy – CP Komutu ve Progress Bar
http://mylinuxbook.com/advanced-copy-cp-command/ adresinde cp ve mv komutunun, kopyalama ya da taşıma işlemine ait gidişatı gösteren bir progress bar’a sahip patch’li bir versiyonu var. Aşağıda örnek bir çıktısı olan araç özellikle büyük dosya ve dizin kopyalama işlerinde durumu, ekstra bir araç ya da komuta ihtiyaç duymadan takip edebilmek açısından epey kullanışlı.
1469 files copied so far... 130.2 MiB / 298.7 MiB [|||||||||||||||||||||||||||||------------------------------------] 43.6 % Copying at 23.4 MiB/s (about 0h 0m 31s remaining) BigFolder/automation/delegates/class-list.jpeg 1.5 MiB / 2.0 MiB [|||||||||||||||||||||||||||||||||||||||||||||||------------------] 75.0 %
Aşağıda advanced-copy’nin nasıl kurulup kullanılabileceği ile ilgili notlar mevcut.