vehbiakdogan

Senior Sofware Developer

Linux

Baş Belası Botnet Saldırısı Ve Engellenmesi

merhaba arkadaşlar neredeyse bir haftadır baş etmeye çalıştığım genelde yurt dışından siteme ping atan bazı ip adresleri vardı. ilk başta işin küçük birşey olduğunu düşünerek sadece ip leri engelleyerek çözebileceğimi düşündüm.

Daha sonra ip adreslerini engellememe rağmen hiçbir değişme olmadı çünkü zararlı botlar sürekli ip değiştiriyormuş. Bunun için farklı farklı çözümler ürettim hepsinin ortak noktasını bulmam lazımdı.

Daha sonra Siteye giren ziyaretçilere bakınca zararlı botların internet explorer 5-6 tarayıcısından saldırı yaptıklarını gördüm ve explorer 5-6 tarayıcılarından girişi engelledim.

Şimdi sizlere web sitemize istediğimiz tarayıcıdan giriş nasıl engellenir onu göstereceğim.

Web sitesinde tarayıcı girişlerini kotrol etme

Bildiğiniz üzere tarayıcı bilgisini biz user_agent ile alıyoruz. evet bunun için öncelikle sitemizin kök dizininde bir .htacess dosyası oluşturuyoruz. eğer var ise açıyoruz ve
Aşağıdaki kodları içine yapıştırıyoruz.

RewriteCond %{HTTP_USER_AGENT} MSIE\ ([56])\.
RewriteRule .* - [F]

Bu Kod bizim i.e 5-6 tarayıcılarından sitemize girişi engelliyor. eğer test etmek isteyen olursa chrome mağazasında User-agent Switcher Eklentisini kullanarak test edebilirler.

Gelen botlara ait bilgiler aşağıdaki gibi oluyor genelde



120.43.24.173 (1210 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )
27.150.239.126 (907 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
110.85.103.150 (884 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)
140.237.38.170 (508 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
110.85.126.156 (501 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.0.3705)
140.237.2.77 (475 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)
140.237.38.128 (454 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
110.85.115.221 (452 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )
220.161.169.139 (417 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.0.3705)
140.237.36.49 (394 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
193.201.224.184 (343 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
27.150.209.156 (339 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
220.161.168.89 (329 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
120.43.21.20 (312 Kere Girdi) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
.htaccessİşletim SistemleriLinuxPHPSorun Ve Çözümler

Linux Vim Text Editör Kurulumu

Merhaba arkadaşlar gelişmiş bir editör olan vim text editör kurulumunu anlatmak istiyorum.
Öncelikle terminalimizi açıyoruz (ctrl + shift + T)

Daha sonra vim -V Komutu ile vim editör yüklü mü kontrol ediyoruz.

Yüklü değil ise aşağıdaki gibi bir ekran gelmesi gerekiyor.

vim kontrol

Evet Gördüğünüz gibi vim editörün olmadığını ve nasıl yükleyeceğimizi anlatıyor.

Vim text editör kurulumu

Vim text editörün hangi paketlerde olduğunu öğrendik ve aşağıdaki kodu yazarak kuruluma başlıyoruz.

sudo apt-get install vim-gnome

kodu girdiğinizde şifrenizi isteyecek şifrenizi girdikten sonra aşağıdaki gibi onay ekranı gelecek
vim-yukleme
Daha Sonra (E) evet Diyeerek vim text editör kurulumunu gerşekleştirmiş olacaksınız.

Evet şimdi kullanmaya bakalım öncelikle ben masaüstünde bir deneme.txt dosyası oluşturdum bunun üzerinden gidelim.

vim deneme.txt

deneme.txt ile aynı dizindeyken yukarıdaki kod ile deneme.txt yi vim editör ile açıyoruz.

Editör kod ile çalışıyor buton falan olmadığı için biraz zorlanabilirsiniz.
Öncelikle açtığımız dosyaya veri yazabilmek için (i) Tuşunu basıyoruz. Ve (Altta insert) Yani veri girişi yapabilirsiniz diyecek daha sonra yazacaklarımızı yazıp esc tuşuna basıyoruz.

Evet kaydetmek istiyorsak eğer (shift + zz) yaparak kayıt işlemini gerçekleştiriyoruz.

Son olarak çıkış yapmak için ise (:q!) yazmamız yeterli.

toplayacak olursak
vim dosya_adi editörü açar.
i i tuşu insert yani veri girişini açar.
esc tuşu editör komutlarını çalıştırmamıza olanak sağlar.
shift +zz tuş kombinasyonu dosyayı kaydeder.
:q! Editörümüzü kapatır.

Basitçe editörün kullanımını anlattım. Editörün bu kadarla kalmadığını unutmayın 🙂

İşletim SistemleriLinux

Linux Ubuntu Python Kurulumu Ve Kullanımı

Linuxta python Kurulumu

Genellikle tüm linux sürümlerinde (ben ubuntu kullanıyorum) python kurulu olarak gelir.
pythonun kurulu olup olmadığına bakmak için hemen terminalimizi açıyoruz(ctrl + alt + t) ve ardından konsol ekranına
python -V yazarak mevcut python sürümünü öğreniyoruz.
Eğer Hata veriyosa demekki sistemimizde python kurulu değildir. O zaman python kurmaya başlayalım.

Öncelikle https://www.python.org/downloads/ Adresinden Pythonun son sürümünü indiriyoruz.

Eğer doğru indirme yaptıysanız uzantısı .tgz olan bir dosya indirmiş olmalısınız.
Bu sıkıştırılmış dosyayı açıyoruz ve içine giriyoruz. (terminal aracılığı ile içine giriniz)

Daha Sonra

./configure

make

make altinstall

Kodlarını yazarak Pythonu yüklemiş bulunuyoruz.
Evet şimdi Tekrar python -V Yazarsanız python yüklü olduğunu göreceksiniz.

Eğer Kurulumu Tamamlayamadıysanız Şu Yolu Deneyebilirsiniz
sudo apt-get install python3 Bu kod ile uzak sunucudan python dosyalarını sisteminize yükleyebilirsiniz.

Python İle Hello World (Merhaba Dünya) Diyelim

Madem python kurduk kurmuşken her programlama dilinde olduğu gibi pythonda da bir hello world (Merhaba dünya) diyelim. 🙂

Öncelikle python ile merhaba dünya yazalım

# -*- coding: utf-8 -*-
print "merhaba dünya ";


Evet Sıra Geldi kodumuzu derlemeye Öncelikle sayfamızı kaydediyoruz.
Ben Masaüstü/merhabaDunya.py olarak kaydettim.

Terminalimizi açıyoruz ve Dosyamızın bulunduğu klasöre geliyoruz. benimki Masaüstünde
Ve daha sonra python merhabaDunya.py yazarak. kodu derliyoruz ve ekran çıktımızı alıyoruz.

Linux pythonda merhaba dünya örneği

Gördüğünüz Gibi Derleyip çalıştırmış bulunuyoruz.

Ayrıca pythonu terminal üzerinde çalıştırmak için terminale python Yazabilirsiniz.

İyi Çalışmalar

İşletim SistemleriLinuxPython

Linux File System Komutları

Bölümde verilmiş bir ödev üzerine linux işletim sisteminde terminal aracılığıyla bazı uygulamalar yapacağız.
Öncelikle terminal nedir bundan bahsedeyim.

Terminal(Uçbirim) Nedir?

Karşılaştırma yapacak olursak windowsta cmd yani konsol ekranı gibi linuxta da terminal ekranı vardır. terminal ekranı geliştiriciler için olup sadece kod ile çalışmaktadır.
Bizde bugün sadece terminal ile işlem yapacağız.

Not: Ben Anlatımlarımı linux ubuntu üzerinden yapacağım.

Öncelikle Terminalimizi Açıyoruz.
Terminali açmayı bilmeyenler için (ctrl + alt + T) Kısayolu ile veya başlangıç ekranından terminal yazarak açıyoruz.

Evet Komutlarımızı Kullanmaya Başlayalım.

pwd: pwd komutu ile File System(Dosya sistemi) de nerede olduğumuzu buluruz.
Örnek:
linux pwd komutu kullanımı

cd: Cd Komutu ile dizinler arasında gezinme yapabiliriz cd komutunun birden çok parametresi vardır şimdi bunlara göz atalım.

  • cd Parametresiz olarak sadece cd yazarak hangi dizinde olursak olalım bizi ana dizine getirir.
    Örnek: cd_komutu Kullaımı

  • cd dizinAdi cd komutumuza bir dizini parametre olarak verirsek o dizine geçeriz.
    Bu Dizin Bir Dizin Yoluda Olabilir.
    Örneğin: cd komutu kullanımı  alt dizine geçmek
  • cd ~vehbiakdogan Bu şekil kullanım ise parametre olarak verilen kullanıcının ana dizinine geçer. Bunun için Root olmak gerekir. (Bunun için Örnek vermeyeceğim.)
  • cd .. cd komutuna .. parametre olarak verirsek bir üst dizine geçeriz.
    örnek:

    cdkomutu kullanımı
  • cd – cd fonksiyonumuza parametre olarak (-) tire verirsek geldiğimiz klasöre geri döneriz.
    Örnek: Linux cd - komutu

ls Komutu ls Komutu file systemde dosya ve dizinleri listelememizi sağlar ls komutununda parametreleri vardır.

  • ls -a -a parametresi gizli dosyalar dahil tüm dosyaları listelememizi sağlar.
  • ls -l -l parametresi Dizin ve dosyaları liste şeklinde listelememizi sağlar.
  • ls -F -F parametresi Dizin Ve dosyaları birbirinden ayırmak için dizinlerin sonuna (/) slash ekler.
  • ls -t -t parametresi Dosya ve dizinleri tarihine göre listeler
  • ls – i -i parametresi dosya ve dizinlerin i-node numaralarını listeler.

Dosya oluşturma komutu touch

touch komutu ile bulunduğumuz dizinde bir dosya oluşturabiliriz.
Eğer birden fazla dosya oluşturmak istiyorsak touch komutundan sonra arada boşluk bırakarak dosya isimlerini yazmamız yeterli.
Örnek:
Linux touch omutu

Örneği Açıklayacak olursak önce ls -l komutu ile dizinimizin içindeki dosya ve klasörleri listelettik.
daha sonra touch ile vehbi.txt ve akdogan.txt adında iki tane txt dosyası oluşturduk.
oluşup oluşmadığını kontrol etmek için tekrardan ls -l ile dizinin içeriğini listeledik.

Dosya Silme Komutu unlink

Oluşturmuş olduğumuz dosyaları unlink ile silebilirsiniz. (Sadece dosyaları dizinleri unlink ile silemezsiniz)
Örnek: linux unlink komu

Açıklamak gerekirse mantık oluşturma ile aynı önce sildik daha sonra silinmişmi diye bakmak için dizin içeiğini listeledik.

Dizin Oluşturma Komutu mkdir

mkdir komutu ile linux işletim sistemimizde dizin oluşturabiliriz.
Eğer iç içe diznler oluşturmak istiyorsak mkdir fonksiyonumuza parametre olarak -p parametresini eklememiz yeterli.
Örnek:
Linux mkdir komutu

Kodlarımız git gide uzuyor ama bu size karışık gelmesin oldukça basit 🙂
Örneğimizi anlatacak olursak;
Öncelikle dizin içeriğini listeledik.
Daha sonra vehbi adında bir dizin oluşturduk.
vehbi dizini oluşmuşmu diye bakmak için dizin içeriğini listeledik.
iç içe dizin oluşturmak için -p komutu kullanarak akdogan dizini içinde vehbi dizini oluşturduk.
akdogan dizini oluşmuşmu diye bakmak için dizin içeriğini listeledik.
akdogan dizini içine girdik
dizin içeriğini listeleyerek vehbi dizini oluşmuşmu diye kontrol ettik.

Dizin silme komutu rm,rmdir

rm komutu ile hem dizin hemde dosya silme işlemi yapabiliriz.
rm -r komutu ile içi doldu dizinleri recursive olarak silebiliriz.

Linuxta bir dosya içine veri yazmak Ve Veri Okumak

Dosya içine veri yazmak terminalde oldukça kolay arkadaşlar mantık şu
echo “ Yazılacak veri ” > dosya_adi
NOT: Eğer içine yazmak istediğimiz dosya mevcut değilse sistem tarafından otomatik oluşturulur.

Dosya okumak için ise cat komutu ile de verimizi terminal ekranında yazdırabiliriz.
cat komutuna -n parametresi eklersek dosyamızı satır numaraları ile birlikte yazar. (Bu genelde kod yazan arkadaşların işine yarar.)

Hemen Bir Örnek ile açıklayalım.
Örnek:
Linux Dosyaya Veri Yazma

Elimden geldiği kadar linux komutlarını anlatmaya çalıştım.
Bilmediğiniz anlamadığınız komutları sorabilirsiniz.

İşletim SistemleriLinux

Linux xampp için launcher Yapalım

linuxta xamppı çalıştırmak için terminali açıp sudo /opt/lampp/lampp start şeklinde kodlar yazıyoruz zaman sonra bu bize sıkıcı gelebiliyor arkadaşlar
Şimdi linux için bir başlangıç uygulaması yapalım ve xamppı artık buradan çalıştıralım.
Artık kodlarımızı yazmaya başlayabiliriz Öncelikle herzamanki gibi terminalimizi açalım ve sudo apt-get install python-glade2 kodunu Yazalım

daha sonra sudo apt-get install gksu yazarak launcher için gerekli gksu dosyalarını indirelim

Artık launcherimizi oluşturabiliriz.

sudo gedit /usr/share/applications/xampp-control-panel.desktop Yazarak launcher oluşturalım oluşturma başarılı ise karşımıza boş bir belge açılacaktır içine aşağıdaki kodları yazalım

[Desktop Entry]
Encoding=UTF-8
Name=Xampp Control Panel
Comment=Start or Stop XAMPP
Exec=gksudo python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py
Icon=/opt/lampp/htdocs/favicon.ico
Categories=Application;Development;Web
Version=1.0
Type=Application
Terminal=0

Daha Sonra oluşturduğumuz launcheri aktifleştirmek için sudo chmod +x /usr/share/applications/xampp-control-panel.desktop Kodunu yazalım

Evet şimdi bilgisayarımızı yeniden başlatalım ve artık başlangıç ekranına xampp-control-panel Yazarak xampp ı çalıştırabiliriz 🙂

İyi çalışmalar

İşletim SistemleriLinux

Linux xampp anaklasörü değiştirme

Merhaba arkadaşlar Linux kullananlar bilir XAMPP varsayılan web dizini olarak /opt/lampp/htdocs dizinini kullanır.

linux sistem dosyalarıda bu klasörlerde bulunduğu için dosya ekleme çıkarma gibi işlemler yaparken chmod ayarlarıyla oynamamız gerekir. bu işlem pek elverişli olmadığı için şimdi xampp web dizininin yolunu değiştirelim.

Öncelikle ctrl+alt+t tuş kombinasyonu ile uçbirim(terminal) artık ne diyosanız onu açın 🙂

Daha Sonra mkdir ~/public_html/ yazarak home dizininin altına public_html klasörü oluşturun

Ardından sudo ln -s ~/public_html/ /opt/lampp/htdocs/$USER Yazarak Oluşturduğunuz klasör ile eski webdizini arasında köprü oluşturun

Eğer işlemleri doğru yaptıysanız localhost/kullanici_adiniz/ şeklinde girdiğinizde oluşturduğunuz public_html dosyanıza erişmiş olacaksınız.

örnek verecek olursak benim kullanıcıadın vehbiakdogan olduğu için http://localhost/vehbiakdogan yazarak erişmiş bulunuyorum.

Eğer kullanıcı adınızı bilmiyorsanız terminale who yazarak kullanıcı adınızı öğrenebilirsiniz.

iyi çalışmalar

İşletim SistemleriLinuxSorun Ve Çözümler

Linux İçin Skype Kurulumu

Linux sürümünüze skype programını kurmak isterseniz aşağıdaki adımları takip ederek başarılı bir şekilde kurulum yapabilirsiniz.
Öncelikle ctrl+alt+t kısa yolu ile uç birimimizi açalım.

Daha sonra aşağıdaki kodumuzu çalıştıralım Ve yazılım depomuzu ekleyelim.
sudo add-apt-repository “deb http://archive.canonical.com/ $(lsb_release -sc) partner”

Ardından şu kodu çalıştıralım ve kuruluma başlayalım. ( Bu Adım Biraz Uzun Sürebilir)
sudo apt-get update && sudo apt-get install skype

Daha Sonra Başlangıç (Dash) Ekranından skype yazarak skype programımızı çalıştırabiliriz.

Linux

Linux için Google Chrome Kurulumu

Bugün linux işletim sistemimize google chrome kuracağız arkadaşlar öncelikle terminalimizi açıyoruz ve kodlarımızı yazmaya başlıyoruz 🙂
Terminal nasıl açılır bilmeyenler için başlangıçta terminal yazarak yada ctrl+alt+T kısa yolu ile terminali açabilirsiniz. terminal nedir diye sorarsanız bunu sanırım daha önceki yazılarımdada anlatmıştım Terminal bizim linuxda kodlarımızı yazdığımız kısım yani windowstaki uçbirim(cmd ekranı) diyebiliriz.

Şimdi Google Chromeyi kurmaya başlayalım
Google chromeyi sitesindende indirip kurabiliriz ama biz yazılımcı olduğumuz için kodla kuracağız.

 cd Download  

Download klasörüne geçiş yaptık Öncelikle 32bit iseniz:

 wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb  

64 bit iseniz

 wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb  

Yazarak google chrome kurulum dosyasını download klasörüne indiriyoruz

 sudo dpkg -i google-chrome*; sudo apt-get -f install  

Daha sonra kodu ile kurulumu yapıyoruz.
Ve Ardından Google Chromeyi başlatıyoruz

 google-chrome  

Google Chrome niz hayırlı olsun 🙂

İşletim SistemleriLinux

Ubuntu için sublime text kurulumu

Linux tabanlı işletim sistemi olan ubuntuya sublime text isimli metin düzenleyicisini kuracağız.
windows için yayınlanmış olan ve linux için sürümü bulunmayan bazı editörleri wine aracılığıyla yükleyebiliriz ama bununla uğraşmamak için biz sublime text yükleyeceğiz.
Kurulumu oldukça basit olan sublime text programımızın kurulumuna başlayalım


sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text

Kodlarımızda öncelikle sublime textin bulunduğu depoyu ekledik ardından eklediğimiz depoyı update ettik ve daha sonra sublime text programımızı indirdik.


Linux

Bazı Ubuntu komutları ve Ubuntuda kod yazmak

Bu yazımızda sizlerle ubuntuyu inceleyeceğiz. anlatıma başlamadan önce bana ubuntu ile ilgili her konuda yardım eden değerli Ömer KİREÇLİGÖL Abime teşekkür ediyorum.

Ubuntu Komut penceresi (Terminal)

windows işletim sistemi kullanan arkadaşlar bilir cmd yani komut penceremiz vardır özellikle konsol uygulamaları yazan arkadaşlar cmd ekranı ile çok haşırneşir olurlar neyse windowsta bulunan cmd nin linux taki karşılığı terminal oluyor ve terminali ctrl+alt+t tuşu ile veya gnome-terminal yazarak açabiliriz.

Terminalde kullandığımız bazı basit komutlar

bugün öğrendiğim birkaç komutu sizlerle paylaşmak istiyorum.

  • ls komutu ile içinde bulunduğumuz dizine ait dosya ve klasörleri listeletiriz. ls -l şeklinde kullanım yaparsak klasörlerin son değiştirilme tarihinide göstermiş oluruz.
  • cd komutu alt klasöre geçiş yaparız örneğin:
    ls -l ile klasörleri listelettik (Desktop,Downloads,…)
    cd Desktop ( Desktop Klasörünün İçine Girdik )
    ls -l (Desktop içinde olduğumuz için desktop içindeki klasör ve dosyaları listeler)
  • cd .. kodumuz ise üst dizine geçer
  • clear kodumuz ise terminal ekranını temizler

Bu Komutlar şimdilik işimizi Görecektir.

Ubuntuda c++ Kodu Yazmak

Ubuntuda c++ kodu yazmak ve kodu çalıştırmak için g++ kurmamız gerekmektedir bunun için terminalimizi açıyoruz ve içine aşağıdaki kodu yazıyoruz.

sudo apt-get install g++

daha sonra terminal ekranında şifreniz istenecektir şifremizi yazarak g++ derleyicimizi yüklemiş oluyoruz.
şimdi bir örnek kod yazalım

 #include <iostream>  
using namespace std;
int main()
{
cout<<"vehbi akdoğan "<<endl;
return 0;
}

kodumuzu masaüstüne vehbi.cpp şeklinde kaydedelim. evet şimdi tekrar terminale gidiyoruz ve programımızı derleyerek çalıştıralım .
derlemek için kodlarımızı yazalım
ls -l içinde bulunduğumuz dizindeki dosya ve klasörleri listeleyelim

Şimdi Kodlarımız masaüstünde olduğu için masaüstüne gidelim
cd Desktop Masaüstüne Geçiş Yaptık

Evet Kodlarımız Masaüstünde olduğu için tekrar ls -l yazarak listelememize gerek yok ama isteyenler listeletebilir ben listeletmeyeceğim.
Şimdi Kodumuzu g++ ile derleyelim
g++ deneme.cpp -o deneme Yazarak kodumuzu Derliyoruz
./deneme Yazarak derlenmiş kodumuzu çalıştırıyoruz kodumuzu çalıştırdığımızda ekranda vehbi akdogan yazacaktır

linux ubuntuda c++ kodu nasıl yazılır bu şekilde görmüş olduk

C++Linux