16 Haziran 2016 Perşembe

1 Haziran 2016 Çarşamba

PHP Versiyon Bilgisini Gizlemek

Bir başka güvenlik önlemi de PHP versiyon bilgisinin gizlenmesi. Her ne kadar kullandığınız sistemi güncelliyor olsanız da bu tarz bilgilerin gösterilmemesi her zaman avantaj olacaktır.

Öncelikle php.ini dosyasını bulmanız gerekmektedir.

PHP-FPM tercih edenler için: nano /etc/php5/fpm/php.ini
Apache Kullanıcıları LAMP ile kurdularsa:  /etc/php5/apache2/php.ini

Linux dağıtımlarında yolu bulabilmek için aşağıdaki gibi bir arama yapabilirsiniz. PHP-FPM, PHP-CLI gibi birden fazla uygulama kullanıyorsanız web tarafına çalışan PHP-FPM değiştirmeniz yeterli olacaktır:
find /etc -type f -name 'php.ini'
Dosyayı bulduktan sonra vi, vim veya nano gibi bir editör ile açıp expose_php satırı Off yapmalısınız:
nano /etc/php5/fpm/php.ini
 Sonrasında php-fpm veya kullandığınız web sunucu servisini yeniden başlatmanız gerekecektir. PHP-FPM için:
service php5-fpm restart

Güvenli günler diliyorum..

2 Mayıs 2016 Pazartesi

Nginx Versiyonu Gizlemek ve Server Header Bilgisini Değiştirmek

Siber güvenlik alanında eğitim almaya başladım. İlk derslerde bilgi toplama amacıyla yapılan sunucu taramalarında web server versiyon bilgisinin ilgili versiyon için zafiyet taramalarında kullanıldığını gördük. Önceki yazımda da bahsettiğim gibi bende Nginx tercih ediyorum. Hızlı bir araştırma ile nasıl yapılacağını buldum ve kısaca paylaşmak istedim. Nginx versiyonu gizlemeyi ve yine Header bilgisinde yer alan Nginx'i değiştirmeyi anlatacağım.

25 Kasım 2015 Çarşamba

DigitalOcean Taşınma Maceram

Bir süredir barındırma sunucum bana maliyetli gelmeye başlamıştı. Malum dolar 3 TL bulunca ve sadece WHM için 40 TL civarında verince yok artık dedim ve DigitalOcean'a (DO) transfer olmaya kadar verdim. Aslında öncesinde "Linode mi (ek IP alınabiliyor) DigitalOcean mı" diye araştırınca ve Linode eski müşterilerinden bazı olumsuz yorumlar alında DO'ya transferde karar kıldık. Taşınma ile ilgili tüm notlarımı ihtiyacı olanlar için paylaşacağım.

Taşınmaya karar verdiyseniz DigitalOcean kayıt referans linkimi kullanabilirsiniz :)
https://m.do.co/c/b7276c06e18e

5 Şubat 2015 Perşembe

QT5, MySQL 5.6 ve Ubuntu 14.04: QMYSQL driver not loaded

Yaklaşık 1 günümüzü harcadığımız ve sonunda çözdüğümüz problemi paylaşarak Türkçe kaynağa katkıda bulunmak istedim. Burada genel sorun QT'nin MySQL kütüphanesinin LAMPP / LEMP veya benzeri yöntemle kurulmasından veya Ubuntu ile gelen MySQL güncellemesi sırasında ilgili kütüphanenin değiştirilmesinden kaynaklandığını düşünüyorum. Bunun için yapılması gereken işlem ilk olarak QT kurulumunu SRC ile birlikte yapmış olmak. Sonrasında aşağıdaki komutları QT'nin kurulu olduğu klasöre göre bulup çalıştırmak.

İşlemleri yapmadan öncesinde Ubuntu için Lib Qt5 Sql5 kütüphanesini yükleyerek hatanın giderilip giderilmediğini denemenizi öneririm. Çözüm olursa daha fazla vakit ayırmamış olursunuz. Eğer yine çözüm olmaz ise sonraki aşamaları deneyebilirsiniz. Sonraki aşamaların denenmesi dizin yolları doğru olduğu sürece hiçbir problem oluşturmayacaktır.

sudo apt-get install libqt5sql5-mysql


Ben QT5.4 kurulumunu /home/aydin/Qt5.4.0/ klasörüne yaptım. ~/ home klasörünüzü işaret eder. Sizde aşağıdaki yolları buna göre düzenlemelisiniz.

cd ~/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/mysql

sudo ~/Qt5.4.0/5.4/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient_r" mysql.pro

sudo make 

sudo make install

NOT: Lütfen her komut çalıştırdığınızda çıkan mesajı (varsa) kontrol ediniz. Not found'un "dosya bulunamadı" anlamına geldiğini ve sizdeki QT versiyonu veya MySQL yolu ile ilgili olarak ihtiyaç duyulan dosyanın bulunamadığını dikkate alınır.

Artık QT ve Python yolculuğu için ilk adımı attık. Bakalım daha ne sorunlarla karşılaşacağız ve tabi çözümlerini paylaşacağız.

9 Ocak 2015 Cuma

Sunucuda C99 / R57 vb PHP Arka Kapıları (Backdoor) Bulmak

Sunucu da C99 ve R57 php shell scriptlerini arayalım:

C99 Shell ara:
grep -iR 'c99shell' /home
 find /home -name \*.php -type f -print0 | xargs -0 grep c99


R57 Shell ara:
grep -iR 'r57shell' /home

~10 Mb. 'dan büyük PHP dosyalarını ara (/home):
find /home -name "*.php" -type f -size +10000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
Tehlikeli PHP Fonksiyonları arayalım:
grep -RPn "(passthru|shell_exec|system|base64_decode|eval)" /home

Küçük bir script ile tüm sunucuyu taramak yerine sadece public_html klasörlerini tarayabilirsiniz. Cpanel/WHM kullandığım CentOS sunucu için yazdığım basit bash scripti kendinize göre uyarlayabilirsiniz (/home/kullaniciadi/public_html/ klasörlerini tarar):
#!/bin/bash
for d in /home/*/ ; do

        grep -iR 'c99shell' "$d"public_html
        grep -iR 'r57shell' "$d"public_html
        grep -RPn "(passthru|shell_exec|system|base64_decode|eval)" "$d"public_html
        find "$d"public_html -name \*.php -type f -print0 | xargs -0 grep c99
        find "$d"public_html -name "*.php" -type f -size +10000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

done


Gelişmiş özellikler ile Linux Malware Detect kullanabilirsiniz.

Kaynak: Cyberciti.biz (PHP güvenliği üzerine birçok konu var)

28 Ekim 2014 Salı

Topluca Dosya Uzantısı Değiştirmek (Bash)

Debian ve türevleri üzerinde ihtiyacım olan ve bir klasörde bulunan dosyaların topluca uzantısını değiştirmek için aşağıdaki basit scripti yazdım. Üzerinde küçük oynamalarla dosyalar için daha farklı işlemlerde de kullanabilirsiniz.







#!/bin/bash
for file in *.*
do
  mv -- "${file}" "${file%.*}.tr"
done
Kısaca scripti açıklamak gerekirse ikinci satırda yer alan *.* kısmını tüm dosyalar olarak algılar ve sonrasında bir döngü içerisinde her dosyayı tek tek do ve done içerisine sokar. Do içerisinde mv ile dosyaları taşıyoruz ve taşırken ismini değiştiriyoruz. Uzantı kısmını .tr ile belirttiğimiz kısımdan değiştirebilirsiniz.

Dosyayı ren.sh olarak kaydettikten sonra terminalden

$ chmod +x ren.sh 

ile dosyamızı çalıştırılabilir yapıyoruz ve çalıştırmamız yeterli

$ ./ren.sh
Shell Scripting ilginizi çekiyorsa devamını getiremediğim Shell Scripting 1 konusu ön bilgi açısından işinize yarayabilir.

9 Ekim 2014 Perşembe

Debian Kurulum & Çözümler

Bu ilk debian kurulum ve kullanım deneyimim ve paylaşmak istedim. Yaşadığım sorunlar ve çözümlerini paylaşarak ilk kurulumlarda çıkabilecek olası sorunlara çözümleri tek yerden ulaşılmasını amaçlamaktayım.

Kurulumda ilk ve en önemli nokta anlayabileceğiniz bir dil (Türkçe / İngilizce gibi) seçtikten sonra gelen mesajları okumanız. Endişelenmeyin önemli işlemlerde Debian sizi 2. defa uyaracaktır ama yine de dikkatli olmakta fayda var.


Disk Bölümleme (windows ile birlikte kullanım)

Ubuntu, Mint gibi Debian türevlerinde bu işlemler çok basit şekilde yapılabilmekte fakat Debian'da dikkat edilmesi gereken küçük detaylar var. Gözünüz korkmasın çünkü gerçekten oldukça kolay ve basit. Öncelikle diskinizin Debian için bir bölümünün ayrıldığını düşünüyorum aksi halde diskin tamamında windows var ise bu durumda diske tamamen debian kurmak dışında bir alternatifiniz kalmıyor. Debian için yer ayırdıysanız ilgili alanı seçtikten sonra "Bölümü Sil" (bu anlama gelen ilgili satır) ile bölümü silin ve tekrar listeye gelip seçtikten sonra "Yeni Bölümü Otomatik Oluştur" seçmeniz yeterli. Bu durumda sizin yerinize ext4 ve takas alanlarını disk boyutuna göre otomatik oluşturacaktır. Sonrasında devam etmeniz yeterli..


Oluşturduğunuz Kullanıcıya Root Yetkisi Vermek


Kendi bilgisayarınız/laptopunuz da Debian kullanıyorsanız komut satırından root'a geçip (su komutu ile) komutlar yazmak hem zahmetli hem de tab ile komut tamamlama işlevini devre dışı bıraktığı için hoşlanmadığım bir durum (belki tab ile tamamlama etkinleştirilebiliyordur). Bu nedenle ben kullanıcıma gerekli durumlarda parolamı girerek root yetkisi vermek istiyorum. Bunun için komut satırından
sudo visudo
ile sudoer'i düzenleyebileceğiniz ayarlar dosyası nano editörü ile açılır. Burada root    ALL=(ALL:ALL) ALL yazan satırı bulun ve altına root yerine kendi kullanıcı adınızı yazarak aynı satırı tamamlayın.
örn:
aydin    ALL=(ALL:ALL) ALL


Masaüstü Simgeleri

Klasik windows veya ubuntu gibi masaüstünüzde Bilgisayarım, Çöp Kutusu gibi simgelerin olması için Süper Tuşuna (windows tuşu) basıp Advanced Settings yazarak arayın ve çalıştırın. Desktop menüsünden istediğiniz seçenekleri aktif etmeniz yeterli. Diğer menülere de göz atmanızı tavsiye ederim.


Wireless Kart (Broadcom)

Non-free bir paket ve kurunca sorun düzeldi. https://packages.debian.org/wheezy/all/firmware-brcm80211/download


Chromium Türkçeleştirme

Eğer chromium kurduysanız ve ingilizce ise:
# aptitude install chromium-browser-l10n
 Kapatıp açmanız yeterli.


Grub Bekleme Süresini Kısaltma

# nano /etc/default/grub
ile grub ayarlarını açtıktan sonra
 GRUB_TIMEOUT=5
kısmındaki 5 saniyeyi düşürebilirsiniz. Sonrasında grub update etmeniz yani işlemi uygulamanız gerekmekte
 # update-grub


Otomatik Başlat (Auto Start)

Guake gibi yazılımlar sürekli aktif olması gerekir. Bu durumda her yeniden başlatma sonrası tekrar çalıştırmalısınız. Bunun yerine otomatik başlamasını sağlayabilirsiniz. Bunun için ilgili yazılımı kurduktan sonra:
# cp /usr/share/applications/guake.desktop /etc/xdg/autostart/
Burada guake için örnek verdik, siz istediğiniz yazılımı bu şekilde uygulayabilirsiniz.


Copy.com Client

AskUbuntu'da 13. maddede çok güzel açıklanmış:
http://askubuntu.com/questions/299443/how-do-i-install-copy-file-syncing-software


Chromium (Chrome) Pepper Flash Eklentisi

Chromium (Chrome) kullanıyorsanız flash eklentisi olarak Google tarafından Chromium (Chrome) için geliştirilen Pepper Flash eklentisini kurmanız gerekmektedir. Aşağıdaki adımları izlemeniz yeterli olacak.
# sudo -s
# echo "deb http://ftp.dk.debian.org/debian wheezy-backports main contrib" >> /etc/apt/sources.list
# aptitude update
# aptitude -t wheezy-backports install pepperflashplugin-nonfree

Yeni sürüm kontrolü için:
# update-pepperflashplugin-nonfree --status

Son versiyona yükseltmek için:
# update-pepperflashplugin-nonfree --install 

18 Eylül 2014 Perşembe

Ubuntu ile Bozuk Sektör Tarama

Çok sık karşılaşılan bozuk sektör (bad sector) bazen diski açılamaz veya kullanılamaz hale getiriyor. Birkaç sektör bile olsa diskin okuma yazma sorunları nedeniyle istediğiniz verilerin yedeğini dahi alamayabiliyorsunuz. Bu nedenle öncelikle bu sektörleri taramalı ve bir dosyaya kaydetmeli ve sonrasında da bozuk olarak işaretlenmelidir.

Bahsettiğimiz işlemler için badblocks ve fsck komutlarını kullanacağız.


Diskte bozuk sektör olup olmadığını sadece test etmek için:

sudo badblocks -sv /dev/sdb

Burada ben diskin tamamını taramak için sdb olarak belirttim fakat sizde sdc gibi 3. disk kullanıyor olabilirsiniz. Diskin sadece belirli bir bölümünü (birden fazla parçaya bölünmüş diskler için) taratmak için sdb1, sdb2, sdb3 gibi belirtebilirsiniz.

Yukarıda bahsedilen işlem sadece tarama işlemi yapacaktır. Eğer amacınız bu sektörleri tespit edip bahsettiğimiz gibi işaretlemek ise o zaman aşağıdaki komut ile sonucu dosyaya yazmalısınız.

sudo badblocks -sv /dev/sdb > /home/aydin/bozuk-sektorler

Böylece hem tarama hem de tarama sonucunun dosyaya yazdırılması işlemini yapmış olursunuz.

Son adım olarak tespit edilmiş sektörleri kullanılmaması için işaretleyen komutu uygulayacağız:

sudo fsck -l bozuk-sektorler /dev/sdb

NOT: badblocks işlemi disk boyutuna göre 6 saati geçebilmektedir. Ben testimi 500 gb bir disk üzerinde gerçekleştirdim ve yaklaşık 6 saat sürdü.

14 Temmuz 2014 Pazartesi