Mete Duman | CodeWK https://codewk.com Sınırsız bilgi ve çok eğlenceli ! Fri, 05 Apr 2019 11:42:08 +0000 tr hourly 1 https://wordpress.org/?v=6.1.6 https://codewk.com/wp-content/uploads/2019/02/cropped-favicon-32x32.jpg Mete Duman | CodeWK https://codewk.com 32 32 10 Soruda Sızma Testleri (Pentesting) Nedir? https://codewk.com/10-soruda-sizma-testleri-pentesting-nedir/ https://codewk.com/10-soruda-sizma-testleri-pentesting-nedir/#respond Thu, 04 Apr 2019 11:37:29 +0000 https://codewk.com/?p=1707 Sızma Testi Nedir? Penetrasyon testleri günümüz bilgi güvenliği dünyasının en popüler konularından biridir. BGA tarafından verilen güvenlik eğitimlerinde, sızma testi hakkında oldukça fazla soru ile karşılaşılmaktadır. Bu sorulara referans cevaplar olması adına “10 Soruda Sızma Testi” konulu yazıyı hazırlamış bulunmaktayız. Pentest nedir? Neden yaptırmalıyım? Kime nasıl yaptırmalıyım? gibi sorulara cevap arıyoruz. Sizin de bu konu hakkında fikirleriniz varsa yorumlarınızla zenginleştirebilirsiniz.

Öncelikle “pentest” kavramından ne anladığınızı ve ne beklediğinizi bilmek size bu süreçte yardımcı olacaktır. Zira ne olduğunu bilmediğiniz bir servisi alarak sonradan bu muydu yani? Bu kadar parayı bu iş için mi verdim ya da bu sistemlere neden baktırmadım gibi sorular sormak durumunda kalabilirsiniz. Yazı boyunca pentest, penetrasyon testi, sızma testi şeklinde farklı ifadeler kullanılmıştır.

1- Sızma testi (Pentest) nedir? Vulnerability Assessment ve Risk Assesment kavramlarından farkı nedir?

Pentest Tanımı:

Belirlenen bilişim sistemlerindeki mantık hataları ve zafiyetleri tespit ederek, söz konusu güvenlik açıklıklarının kötü niyetli kişiler tarafından istismar edilmesini önlemek ve sistemleri daha güvenli hale getirmek maksadıyla, “yetkili” kişiler tarafından ve “yasal” olarak gerçekleştirilen güvenlik testleridir. Pentest çalışmalarındaki asıl amaç, zafiyeti tespit etmekten öte ilgili zafiyeti sisteme zarar vermeyecek şekilde istismar etmek ve yetkili erişimler elde etmektir.

Pentest Çeşitleri:

Pentest hedefe, vektöre, simüle edilecek saldırıya ve sisteme bağlı olarak üçe ayrılır.

  • İç Ağ (Internal) Sızma Testi: Bu sızma testi çeşidinde ilgili kurumun içeriye açık sistemleri üzerinden hangi verilere ve/veya sistemlere erişilebileceği sorusuna cevap aranmaktadır.
  • Dış Ağ (External) Sızma Testi: Bu sızma testi çeşidinde ilgili kurumun dışarıya açık sistemleri üzerinden hangi verilere ve/veya iç sistemlere erişilebileceği sorusuna cevap aranmaktadır.
  • Web Uygulama Sızma Testi: Dış Ağ Sızma Testleri ile aynı soruya cevap aranmaktadır ancak odak noktamız web uygulamalarıdır.

Pentest Yöntemleri:

Temel olarak kabul görmüş üç yöntem vardır:

  • Black Box: Bu yaklaşımda, başlangıçta güvenlik testi yapılacak sistemle ilgili bir bilgi yoktur. Tamamen bilinmeyen bir sistem ile ilgili bilgi toplanacak ve testler yapılacaktır. Bu yöntemde test ekibinin sistem ile ilgili bilgi düzeyi hiç olmadığından, yanlışlıkla sisteme zarar verme ihtimalleri de yüksektir. Bilgi toplama safhası oldukça zaman alır. Süre bakımından en uzun süren yaklaşım tarzıdır.
  • Gray Box: Bu yaklaşımda, sistem ile ilgili bilgiler mevcuttur. Örneğin; IP adres listesi, sunucu sistem ile ilgili versiyon bilgisi vb. Bilgiler güvenlik testi yapacak ekibe önceden sağlanır. Black Box yaklaşımına göre daha kısa zaman alır. Kontrolü ve testi istenen IP adresleri belli olduğundan sistemin, istem dışı zarar görme ihtimali de azalmış olur.
  • White Box: Beyaz kutu olarak ifade edilen bu yaklaşımda, güvenlik testi ekibi, sistemin kendisi ve arka planda çalışan ilave teknolojiler hakkında tam bilgi sahibidir. Black Box tekniğine göre kurum ve firmaya daha büyük fayda sağlar. Hata ve zafiyetleri bulmak kolaylaşacağından bunlara tedbir alınma süresi de azalacaktır. Sistemin zarar görme riski çok azdır ve maliyet olarak da en az maliyetli olandır.

Vulnerability Assessment (Zafiyet/Açıklık Tarama):

Zafiyet taraması bir sistemdeki muhtemel tüm açıklıkların belirlenmesine yönelik tasarlanmış bir testtir. Bu yöntem için genellikle otomatize araçlar (Nessus, Nmap, Qualys vb) kullanılır. Zafiyet taramasında asıl amaç taranan sistemin anlık olarak genel güvenlik görüntüsünü almaktır. Muhtemel tüm güvenlik tehditlerine karşı bizi uyaran bu yöntem sonucu çıkan tüm bulgular ciddi bir tehdidi göstermeyebilir. Ancak bu da ciddiye alınmaması gerektiğini göstermez. Bizim için önemli olan çıkan bulgulardan hangilerinin sistemimiz için gerçek bir tehdit oluşturduğuna karar vermektir.

Bu yöntemde denetlenen diğer şey ise uyumluluk süreçleridir. Firmaların HIPAA, PCI, SOX vb. gibi dünyaca kabul edilmiş birçok uyumluluk standartlarına göre durumunu da inceler.

Risk Assessment:

Risk Assessment  kavramı tamamen farklı bir kavram olup Pentest ve Vulnerability Assessment kavramlarını kapsar. Zaman zaman “Technical Risk Assessment” tanımı kullanılarak “Vulnerability Assessment” kavramı kastedilmektedir.

2- Neden sızma testi yaptırmalıyız?

Sahip olduğunuz bilişim sistemlerindeki güvenlik zafiyetlerinin üçüncü bir göz tarafından kontrol edilmesi ve raporlanması proaktif güvenliğin ilk adımlarındandır. Çünkü siz ne kadar güvenliğe dikkat ederseniz edin saldırganların, sistemi istismar etmek için kullanacağı tekniklerin sınırı yoktur.

Hayal gücü ve bilgi seviyelerine göre ihtimaller değişmektedir. Bir şeylerin gözünüzden kaçma ihtimali vardır. Bu sebeplerden dolayı hackerlara yem olmadan kendi güvenliğinizi Beyaz şapkalı hackerlara test ettirmeniz yararınıza olacaktır. Ek olarak PCI, HIPAA gibi standartlar da Pentest yaptırmayı zorunlu kılmaktadır.

3- Sızma testi projesinin planı nasıl olmalıdır?

Yaptırılacak sızma testi çalışmasından olabildiğince çok verim alabilmek için her işte olduğu gibi burada da plan yapılması gerekmektedir. Pentest planınızı en azından aşağıdaki soruları cevaplayarak hazırlamanız gerçekleştirilecek testten üst düzeyde verim almanızı sağlayacaktır.

  • Sızma Testi’nin kapsamı ne olacak? (White Box, Gray Box, Black Box)
  • Ne çeşit bir sızma testi istiyorum? (Internal Pentest, External Pentest, Web Application Pentest)
  • Testleri kime yaptıracağım?
  • Ne kadar sıklıkla yaptıracağım?
  • Riskli sistem ve servisler kapsam dışı olmalı mı yoksa riski kabul edip sonucunu görmek ister miyim?
  • Pentest kapsamında DDOS testleri de gerçekleştirilecek mi?

4- Pentest firması seçimi konusunda nelere dikkat etmeliyim?

Pentest yaptıracağınız firmaya ne kadar güvenirseniz güvenin – aranızda muhakkak imzalı ve maddeleri açık bir NDA olmalı – siz yine de işinizi garantiye alma açısından firmanın yapacağı tüm işlemleri loglamanız yararınıza olacaktır. Peki bunu nasıl yaparsınız? Firmanın pentest yapacağı IP adres bilgilerini isteyerek bu IP adreslerinden gelecek tüm trafiği Snort, Tcpdump vb. trafik kaydı gerçekleştirebilen bir yazılım kullanarak loglayabilirsiniz. Özellikle web trafiğini -ki en kritik bilgiler burada çıkacaktır. Snort ile çok rahatlıkla sonradan incelendiğinde anlaşılacak şekilde trafik kaydettirilebilir. Bunun dışında dikkat etmeniz gereken konular şunlardır;

  • Firmada test yapacak çalışanların CV’lerini isteyin.
  • Varsa testi yapacak çalışanların konu ile ilgili teknik sertifikasyonlara (CEH, OSCP vb.) sahip olmasını tercih edin.
  • Testi yapacak çalışanların ilgili firmanın elemanı olmasına dikkat edin.
  • Firmanın daha önceki referansları ile iletişime geçerek bunlardan birkaçına memnuniyetlerini sorun.
  • Mümkünse firma seçimi öncesinde teknik kapasiteyi belirlemek için tuzak sistemler kurarak firmaların bu sistemlere saldırması ve sizin de bildiğiniz açıklığı bulmalarını isteyin.
  • Firmadan daha önce yaptığı testlerle ilgili örnek raporlar isteyin. Örnek bir sızma testi raporuna bu adresten ulaşabilirsiniz. https://www.slideshare.net/bgasecurity/szma-testleri-sonuc-raporu
  • Testlerin belirli IP adreslerinden yapılmasını ve bu IP adreslerinin size bildirilmesini talep edin.
  • Firmaya test için kullandıkları standartları sorun.
  • Firmanın test raporunda kullandığı tüm araçları da yazmasını isteyin.
  • Pentest teklifinin diğerlerine göre çok düşük olmamasına dikkat edin.
  • Sızma testi işi firmanın özel işi mi yoksa öylesine yaptığı bir iş mi? Bu sorgu size firmanın konu hakkında yetkinliğine dair ipuçları verecektir.

5- Pentest yapan firmadan sonuç olarak neler beklemeliyim?

  • Yöneticilere ve teknik çalışanlara özel iki farklı rapor
  • Raporların okunabilir ve anlaşılır olması
  • Testler esnasında keşfedilen kritik seviye güvenlik açıklıklarının anında bildirilmesi
  • Pentest raporunun şifreli bir şekilde iletilmesi
  • Keşfedilen güvenlik açıklarının nasıl kapatılacağı konusunda çözüm önerilerinin sunulması

6- Pentest sonrası nasıl bir yol izlemeliyim?

Pentest yaptırmak ne kadar önemliyse, sonuçlarını değerlendirip aksiyon almak çok daha önemlidir. Maalesef ki yaygın olarak yapılan yanlış sadece Pentest yapıp/yaptırıp raporu incelemek ve çok acil açıkları kapatmak şeklinde oluyor. Pentest sonrası açıklıkların kapatılmaması ve bir sonraki pentest çalışmasında aynı açıklıkların tekrar çıkması sıklıkla karşılaşılan bir durumdur. Gerçekleştirilen çalışmanın katma değerinin yüksek olması için en azından aşağıdaki maddelerin uygulanması önerilmektedir:

  • Pentest raporlarının üst yönetimle paylaşılıp yönetim desteğinin alınması
  • Sonuçlarının basit açıklıklar olarak değil, bir risk haritası kapsamında yönetime sunulması (bu açıklık hackerlar tarafından değerlendirilirse şu kadar kaybımız olur vb çıkarımlarda bulunularak)
  • Raporu detaylıca inceleyip her bir açıklığın kimin ilgi alanına girdiğinin belirlenmesi
  • Sistem yöneticileri ve yazılım geliştiricilerle toplantı gerçekleştirilip sonuçların paylaşılması.
  • Açıklıkların kapatılmasının takibi.
  • Bir sonraki pentestin tarihinin belirlenmesi

7- Türkiye’de Pentest yapan hangi firmalar var?

Türkiye’ de bu alanda sektör hızla gelişmektedir. Ayrıca kurumsal firmaların yanında kişisel olarak sızma testi yapan kişiler de bulunmaktadır. Ancak bu konuda Pentest yaptıracağınız kişiyi net olarak tanımıyorsanız, kişi yerine bir firma tercih etmeniz güvenliğiniz açısından daha sağlıklı olacaktır.

8- Pentest konusunda kendimi geliştirmek için izlemem gereken yol haritası nasıl olmalıdır?

Pentest konusunda kendinizi geliştirmek için öncelikle bu alana meraklı bir yapınızın olması gerekmektedir. İçinizde bilişim konularına karşı ciddi merak hissi ve sistemleri bozmaktan korkmadan kurcalayan bir düşünce yapınızın olması yolun başında sizi ön sıraya taşıyacaktır. Aksi halde işiniz biraz zor demektir. Çünkü “Pentester” olmak demek başkalarının düşünemediğini düşünmek, yapamadığını yapmak ve farklı olmak demektir.

Bu işin en kolay öğrenimi bireysel çalışmalar, kendi kendinize deneyerek öğrenmeye çalışmak, yanılmak sonra tekrar yanılmak ve doğrusunu öğrenmektir. Eğitimler bu konuda destekçi olabilir. Sizin 5-6 ayda katedeceğiniz yolu bir iki haftada size aktarabilir ama hiçbir zaman sizi tam anlamıyla yetiştirmez, “sadece” yol gösterici olur. Pentest konularının konuşulduğu güvenlik listelerine üyelik de sizi hazır bilgi kaynaklarına doğrudan ulaştıracak bir yöntemdir ve gündemi takip etmenizi sağlar.

Örnek; https://codewk.com

Bunun yanında Linux işletim sisteminin kullanımı hakkında tecrübe ve temel ağ güvenliği konularında bilgi sahibi olmak, Pentest konusunda sizi 1 adım öne çıkaracaktır. Bu işi ciddi anlamda yapmak istiyorsanız bu iki konuda ne kadar bilgi ve tecrübe sahibi olursanız rakiplerinize karşı o kadar fark atabilirsiniz demektir.

9- Pentest için hangi yazılımlar kullanılır?

Açık kod ve ticari yazılımlar olmak üzere iki çeşit kullanılır.

Açık Kod Pentest Yazılımları:

  • Nmap
  • Nessus
  • Metasploit
  • Inguma
  • Hping
  • Webscarab
  • John the Ripper
  • W3af

…bunlardan bazılarıdır. Açık kodlu olarak bilinen çoğu Pentest yazılımı Kali Linux dağıtımı ile birlikte kurulu olarak gelmektedir.

Ticari Pentest Yazılımları:

  • Immunity Canvas
  • Core Impact
  • HP Webinspect
  • Saint Ssecurity Scanner

Bu araçların yanında araçlar kadar önemli olan “Pentest Metodolojileri” vardır. Bunların da araçlar kadar iyi bilinmesi ve kullanılması gerekir. Bunlar;

  • OWASP Guide
  • NIST
  • ISSAF
  • OSTTM

10- Pentest konusunda hangi eğitimler vardır?

BGA Security Bilgi Güvenliği Akademisi Güncel Eğitim Takvimi sayfamız üzerinden güncel eğitimleri inceleyebilirsiniz.  Siber Güvenlik Eğitim Takvimi: https://www.bgasecurity.com/egitim-takvimi/

  • SANS Pentest Eğitimleri https://www.sans.org/curricula/penetration-testing
  • Ec-Council Pentest eğitimleri http://www.penetration-testing.com
]]>
https://codewk.com/10-soruda-sizma-testleri-pentesting-nedir/feed/ 0
Windows Sunucu Güvenliği (VDS) https://codewk.com/windows-sunucu-guvenligi-vds/ https://codewk.com/windows-sunucu-guvenligi-vds/#respond Fri, 15 Mar 2019 10:25:54 +0000 https://codewk.com/?p=1600 Virtual Dedicated Server – VDS Nedir?
Windows Sunucu Güvenliği

Virtual Hosting’in bir diğer başlığı olan VDS, Virtual Dedicated Server teriminin baş harflerinden oluşmaktadır. VDS’in her ne kadar Türkçe’de net bir karşılığı olmasa da Paylaşımlı Ayrılmış Özel Sunucu olarak tanımlanabilir.

Son dönemin en popüler bulut sunucu hizmetlerinden biri olan VDS; kullanıcılarına kendi web uygulamalarını geliştirmeleri, dağıtmaları ve barındırmaları için kullanabilecekleri bir sanal sunucuyu kiralama imkânı verir. Yani VDS hosting’i tercih eden bir kullanıcı belirli bir alanı kiraladığı zaman, o alan o kullanıcının dışında herkes için kullanıma kapalıdır ve kullanıcı kendi isteklerine göre alanını dilediği gibi kullanabilir.

Peki VDS Güveliği nasıl sağlanır ?

Windows Sunucu Güvenliği

Öncelikle otomatik güncelleştirme özelliklerini aktif edin, mümkünse SSCM kullanın.

Hiyerarşiyi takip edecek listeler oluşturun. (excel vb)

Mümkünse sunucuları yerel modda kullanmaya özen gösterin.

Sunucuları mümkünse Active Directory üzerine aktarın.

Sunucular arasında iletişim kurulacaksa Ipsec gibi VPN teknolojileri kullanın.

Parola güvenliğini sağlamak amacı ile 90 günde bir parola değiştirmeye zorlayın.

Parola uzunluklarını minimum 12 karekter olacak şekilde ayarlayınSunucularda 15 dakikada 2 kez geçersiz parola denemesi yapılırsa hesabı devre dışı bırakın.

Logon eventlerini belirli aralıklarla takip edin.

Ataklara karşı koymak için sunuculara EMET kurulumunu gerçekleştirin.

.Sunucular üzerinde kullanılan 3.parti yazılımların güvenlik güncelleştirmelerini mutlaka gerçekleştirin.

Anti-virüs uygulamaları kullanımına özen gösterin. (Kaspersky, Sophos, Eset vb)

Sistemde yüklü olan antivirüs uygulaması ile belirli aralıklarla tarama işlemi gerçekleştirin.

Sistemde günlük tutmayı aktif hale getirin.

Güvenlik duvarı kullanımına özen gösterin, ihtiyacınız olmasa bile güvenlik duvarını açın (Tabiki kullanıma ve amaca bağlı olarak ! )

Kullanılmayan portlara erişimleri kalıcı olarak kapatın.

Sunucuda kullanılmayan bütün özellikleri devre dışı bırakın (yazıcı sunucusu, yazıcı paylaşımı, dosya paylaşımı).

Tüm İnternet tarayıcılarını kaldırın veya devre dışı bırakın. (Yine Kullanım amacınıza bağlı olarak !)

Kimlik avı saldırılarına karşı korumak için sunucudaki tüm e-posta istemcilerini kaldırın.

Web sunucusu üzerinde kullanılacak bütün web sitelerinde TLS kullanımına özen gösterin.

Yedekleme için en az iki DNS sunucusu ve komut isteminden nslookup kullanarak çift onay ad çözümlemesi yapılandırın.

Sunucunun, istediğiniz adla birlikte DNS’de geçerli bir A kaydının yanı sıra geriye doğru aramalar için bir PTR kaydının olduğundan emin olun.

Sunucuda eğer IPv6 kullanılmayacaksa interface üzerinden kalıcı olarak devre dışı bırakın.

ihtiyacınız olan her şeyin kurulu olduğundan emin olun.

İhtiyacınız olmayan her şeyi kaldırın. Sunucunun saldırı yüzeyini gereksiz yere arttırmayın.

Sunucuda varsayılan olarak yüklü gelen uygulamaları kaldırın.

Windows oturum açmalarını ve kerberos güvenliğine dayalı çeşitli diğer işlevler tamamen aksayacağından dolayı NTP kullanımına özen gösterin.

Powershell ve SSH gibi diğer uzaktan erişim mekanizmaları eğer kullanılacaksa sadece VPN üzerinden kullanılacak şekilde ayarlayın.

Şifrelenmemiş protokolleri kullanmayın(telnet, FTP).

Mümkünse dosya yükleme işlemlerini SFTP üzerinden gerçekleştirin.

2008 ve 2003 gibi eski sürümlerde bulunan servisleri özellikle kontrol edin, gerekli olmayanları kapatın.

Önemli servisleri otomatik olarak başlayacak şekilde ayarlayın.

Kurtarma konsoluna otomatik yönetimsel oturum açmayı devre dışı bırak.

Alternatif medyadan izinsiz olarak önyükleme yapılmasını önlemek için aygıt önyükleme sırasını yapılandırın.

Misafir hesaplarını devre dışı bırak.

“everyone” olarak geçen izinleri gerekmedikçe asla kullanmayın.

Anonim SID ve Ad çeviri özelliğini devre dışı bırak.

Kullanılmayan kullanıcı hesaplarını derhal devre dışı bırakın veya silin.

Ncacn_ip_tcp kaldırın.

TCP / IP üzerinden NetBIOS’u devre dışı bırak.

Herhangi bir paylaşımın anonim olarak erişilmesine izin vermeyin.

Yerel Sistemin NTLM için bilgisayar kimliğini kullanmasına izin ver.

LAN Manager kimlik doğrulama seviyesini sadece NTLMv2’ye izin vermek ve LM ile NTLM’yi reddetmek için ayarlayın.

NTFS veya BitLocker ile yerleşik dosya şifrelemesini etkinleştirin.

Windows Server 2016/2012/2008/2003 lisans anahtalarınızı mutlaka girin.

Gereksiz tüm yürütülebilir dosyaları ve kayıt defteri aracılığı ile kaldırın.

Fiziksel sunucu güvenliğinizi mutlaka tamamlayın.

Windows Sunucu Güvenliği

Bu konumuzun da sonuna geldik umarım paylaşılan bilgiler işinize yarar.. Buradan diğer Yazılarıma da bakabilirsiniz. Bir sonraki konumda görüşmek üzere. 🙂

]]>
https://codewk.com/windows-sunucu-guvenligi-vds/feed/ 0
Linux Sunucularda PHP.ini Düzenleme Ve Güvenlik https://codewk.com/linux-sunucularda-php-ini-duzenleme-ve-guvenlik/ https://codewk.com/linux-sunucularda-php-ini-duzenleme-ve-guvenlik/#respond Fri, 08 Mar 2019 21:33:05 +0000 https://codewk.com/?p=1559 PHP Nedir ?

Bir Sunucuda PHP uzantılı dosyaların çalıştırılabilmesi için gerekli olan yazılımlar/paketler yüklendikten sonra projenize bağlı olarak bazı değişiklikler yapmanız gerekebilir. Örneğin web sitenizde bir dosya yükleme alanı varsa buradan yüklenecek dosya boyutunu izinler dosyasından değiştirmeniz gerekebilir.

İşte bu ve bunun gibi önemli PHP ayarların barındırıldığı özel ayar dosyası php.ini dosyasıdır.

PHP.ini Dosyası nasıl düzenlenir ?

Bu makalede yer alan php.ini düzenlemesini tüm Linux VPS sunucularda gerçekleştirebilirsiniz.

cPanel, Directadmin, Plesk sunucular için php.ini yolu şu şekildedir ;

 /usr/local/lib/php.ini 

Eğer php.ini yolunuzu öğrenmek isterseniz şu komutu ssh üzerinden çaılştırmanız gerekiyor ;

$ php -i | grep php.ini

Yukarıda Gördüğünüz gibi yol ekrana gelecektir.

php.ini dosyamızı nano editör ile açalım ;

nano -w /usr/local/lib/php.ini

PHP.ini içerisinde istediğiniz değerleri bularak sunucu kaynaklarımıza veya scriptinizin ihtiyacı oranında yükseltelim ve kaydedelim.

Ardından apache veya nginx kullanıyorsanız nginx servisini ayarlarımızın yapılandırılması için son olarak baştan başlatıyoruz ;

service httpd restart & service httpd restart

Tebrikler Artık Linux Sunucularda PHP.ini düzenleyebiliyorsunuz. 🙂

Linux Sunucularda Güvenlik

1. Kernel

İlk olarak Kernel Sürümünüzü Güncel Tutmanız sizi bir çok sistem açığından koruyacaktır.

Peki Kernel Nasıl Güncellenir ?

Bu site üzerinden en güncel kernel sürümünü indirin.

Arşivden çıkarma işlemi

$ unzx -v linux-4.19.tar.xz
ya da
$ xz -d -v linux-4.19.tar.xz

Yapılandırma ayarlarları

$ cd linux-4.19
 $ cp -v /boot/config-$(uname -r) .config

Örnek çıktı:

'/boot/config-4.15.0-30-generic' -> '.config'

Gerekli geliştirici araçları yükleme

$ sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev

Kernel’i Yapılandırma

Kaynak kodların olduğu yerde aşağıdaki komuntlardan gerekli olanı yazıyoruz:

  • $ make menuconfig — Grafiksel arayüz ile yapılandırma
  • $ make xconfig — KDE Masaüstü ortamları için ideal yapılandırma
  • $ make gconfig — Gnome Masaüstü ortamları için ideal yapılandırma

Örnek komut kullanım şekli:
$ make menuconfig

Eğer make komutu bulunamadı hatası gelirse “sudo apt-get install make” ile indirmeniz gerekmekte !

Kernel’i Derleme

Sıkıştırılmış kernel imajını derlemek için alttaki komutu yazın:
$ make

Derleme hızını arttırmak için -j ile birden fazla çekirdek kullanabiliriz:
## use 4 core/thread ##
$ make -j 4
## get thread or cpu core count using nproc command ##
$ make -j $(nproc)

Kernel Modüllerini Yükleme

Alttaki komutla kernel modüllerini yüklüyoruz:

$ sudo make modules_install

Kernel’i Yükleme

Kernel derleme işlemi de bittiğine göre artık kernel yüklene bilir:
$ sudo make install

Bu yükleme işlemi alttakileri /boot dizinine yükleyecektir:

  • initramfs-4.19.img
  • System.map-4.19
  • vmlinuz-4.19

Grub Yapılandırmasını Güncelleme

Grub2 yükleyicisinin yapılandırma ayarlarını yapmamız gerekmekte.

Bu komutlar isteğe bağlıdır. make install işlemi bu işlemleri zaten yapmış olacaktır. Yine de vermekte fayda var:
$ sudo update-initramfs -c -k 4.19
$ sudo update-grub

İşlemi Sonlandırma

Sistemi yeniden başlatma komutunu giriyoruz:
# reboot
Yeniden başlatıldıktan sonra, Linux Kernel Versiyon’unu kontrol ediyoruz:
$ uname -mrs

Örnek çıktımız:

Linux 4.19 x86_64

2. PHP “Disable Functions”

PHP.ini Düzenlemeyi göstermiştik en başta hatırlarsınız. Şimdi ise PHP.ini içerisindeki Disable Function yani “Kapalı Fonksiyonlar” için bazı değerler gireceğiz. Bunun sebebi ise Sistemdeki User’lerin erişimini kısıtlayarak saldırıları minimum’a indirmek.

Örnek Kod ;

disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

3. SSH Port’unu Değiştirmek

SSH portunu değiştirmek sunucu güvenliği için gerekli bir işlemdir.Kurulum sonrası varsayılan olarak gelen 22 portu veya sık kullanılan SSH portları sürekli bot’lar tarafından taranmaktadır.Sunucunuzun hacklenmemesi için bilindik ya da varsayılan portları kullanmamanızı tavsiye ederim.

nano /etc/ssh/sshd_config

komutu ile SSH ayarlarının bulunduğu dosyayı açıyoruz. Bu dosya içerisinde aşağıdaki şekilde portu belirten bir bilgi olacaktır.

sshport

Buradaki #Port 22 olan bölümü unutmayacağınız bir port ile değiştirebilirsiniz.Yeni gireceğiniz portun sürekli kullanılan ya da bilindik bir port olmamasına dikkat ediniz. Değişikliği yaptıktan sonra CTRL+X ve sonrasında Y tuş kombinasyonu ile dosyayı kaydedip çıkış yapabilirsiniz.Yapmış olduğunuz port ayarının aktif olabilmesi için son olarak sshd servisine restart atmanız gerekiyor.

/etc/init.d/sshd restart

4.Python ve Perl Güvenliği

Son zamanlarda cgi-telnet scriptleri ile sunuculara sızmaya çalışan ve ln ile hedef sitenin içerisine müdahale eden mudavimlerle dolu sanal ortam maalesefki . bu konuda aşağıdaki işlemleri uygulayarak kalıcı çözüm oluşturabilirsiniz.

nano /etc/httpd/conf/httpd.conf

Komutu ile apache konfigurasyon dosyasına erisim sağlayarak akabinde aşağıdaki satırı bulun ( kismi olarak bulunabilir addhandler diye aratabilirsiniz )

AddHandler cgi-script .cgi .pl .plx .ppl .perl

Daha sonra bu komutun başına bir sharp işareti ekleyerek etkisiz hale getiriniz.

Örn : # AddHandler cgi-script .cgi .pl .plx .ppl .perl

Daha sonra Perl Kütüphanesine erişimi engellemek için ;

chmod 710 /usr/bin/perl 

komutunu ssh üzerinde çalıştırınız . en son olarak apache ‘yi restart ediyoruz.

 /etc/init.d/httpd restart

Aynı işlemi Plesk için aşağıdaki komutlar ile gerçekleştirebilirsiniz.

chmod 700 /usr/bin/perl
 /etc/init.d/httpd restart & service apache restart

Artık Cgi-Telnet erişimi kapanmıştır. Bazı Cgi-Telnet bağlantıları python ile çalışmaktadır aynı işlemleri python kütüphanesi için yapabilirsiniz.

5. Veri Akışını kesmek

Kötü amaçlı kullanımlar için, örneğin basit icmp saldırılar için en güvenli yol sunucuyu dışarıdan ping’e kapatmaktır. Pingi kapatmak ddos saldırılarından bizi korumaz, yalnızca isteklere kapatır. Bunun sunucumuza veya site erişimlerine bir zararı yoktur hatta faydası vardır.

Ping i kapatmak için ssh ile login olduktan sonra nano komutu ile aşağıdaki kısıma erişiyoruz;

nano /etc/sysctl.conf

Daha sonra aşağıdaki komutu en alt satıra ekliyoruz, kaydedip çıkıyoruz;

net.ipv4.icmp_echo_ignore_all=1

Değişiklikleri uygulamak için aşağıdaki komutu çalıştırıyoruz;

sysctl -p

Farklı bir bilgisayardan alan adımızı veya ip adresimizi pinglediğimizde zaman aşımına uğrayacaktır.

Yeniden ping erişimine açmak istersek aşağıdaki komutu çalıştırıyoruz;

nano /etc/sysctl.conf

En aşağıda eklediğimiz satırı siliyoruz ve kaydedip çıkıyoruz.

Değişikliği uygulamak için aşağıdaki komutu çalıştırıyoruz.

sysctl -p

İşlemimiz bu kadar.

6. Fail2Ban

Fail2ban belirli servislere ait log dosyalarını takip ederek başarısız login girişimlerini tespit eder ve bu denemeler belirli bir sayıya ulaştığı zaman ilgili aktivitenin kaynak IP’si için Iptables’a bir drop kuralı ekler. Sisteminizde iptables yoksa ya da iptables kullanmak istemiyorsanız aynı şeyi tcpwrapper ile de yapabilir ve ilgili IP adresini hosts.deny dosyasına ekler. Ancak bu durum sadece tcpwrapper kullanan (örn: sshd) servisler için geçerlidir. Mesela apache tcpwrapper kullanmaz bu nedenle apache için iptables kullanmanız gerekir.

Fail2ban ile reject edilen IP adresleri için öntanımlı olarak 5 dakikalık bir ban süresi bulunmaktadır. Ban süresi dolan IP adresleri için girilen drop kuralları (ya da hosts.deny girdileri) sistemden kaldırılır. Sonuç olarak ban durumu kalıcı değildir ve süre sonunda ilgili IP adresleri tekrardan erişim sağlayabilirler.

Bunun yanı sıra, Fail2ban, banlanan ipleri mail yolu ile raporlayabilir; böylece sunucudaki aktivite ile ilgili bilgi edinebilirsiniz.

Bu kısa bilgilendirmeden sonra kurulum ve yapılandırma kısmına geçebiliriz.

Kurulumu kaynak koddan yapıyorum. Bu nedenle şimdi “/usr/local/src/” dizinine geçerek son “http://sourceforge.net/projects/fail2ban/files/” adresinden fail2ban’ın son sürümünü download edelim.

(Şu an son sürüm 0.8.4’tür. Siz download etmeden önce kontrol edin.)

# cd /usr/local/src # http://downloads.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2?use_mirror=ignum 

Şimdi tar.bz2 dosyasını açıp kurulumu yapmak için fail2ban dizinine geçiyoruz.

# tar xjvf fail2ban-0.8.4.tar.bz2 # cd fail2ban-0.8.4 

Kurulum aşağıdaki gibi setup.py scripti üzerinden yapılmaktadır.

# python setup.py install 

Yükleme işlemi bittikten sonra fail2ban binary dosyaları /usr/bin dizinine, yapılandırma dosyaları ise /etc/fail2ban dizinine konulur.
Ancak yapılandırmaya başlamadan önce fail2ban’ı sisteme servis olarak ekleyelim.

# cp /usr/local/src/fail2ban-0.8.4/files/redhat-initd /etc/init.d/fail2ban # chmod 755 /etc/init.d/fail2ban # chkconfig --add fail2ban # chkconfig fail2ban on 

Şimdi fail2ban’ı start edelim. (Ön tanımlı ayarlarda herhangi bir servis için ban özelliği aktif değildir.)

service fail2ban start 

Böylelikle Fail2Ban Kurulumumuzu tamamlamış oluyoruz.

7. Bash Güvenlik Açığı

Linux sistemleri etkileyen , heartbleed ten daha tehlikeli gözüken yeni bir açık bulundu , en kısa sürede bash’i güncellemelisiniz ,açıktan etkilenip etkilenmediğinizi anlamak için terminal de aşağıdaki komutu çalıştırınız.

# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

Eğer çıktısı aşağıdaki gibi ise acilen yama yapmalısınız.

vulnerable
this is a test

Eğer komutu çalıştırdığınızda aşağıdaki sonucu görüyor iseniz Sizin korkacak bir şeyinizi yok demektir.

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test

8. Cloudflare

Cloudflare web performansını arttıran ve web sitenizin güvenliğini arttırmaya yarayan bir hizmettir. Cloudflare free planı sayesinde CloudFlare CDN, SSL, DDoS koruması gibi birçok özelliği ücretsiz olarak kullanabiliyorsunuz. Cloudflare’in genel özelliklerinden bahsettikten sonra gelelim bu özelliklerin ne işe yaradığına:

1. CDN Nedir?

cloudflare-cdn-haritasi

CDN’nin açılımı Content Delivery Network olup Türkçe anlamı İçerik Dağıtım Ağı’dır. CDN’nin amacı kullanıcılara sitenin en hızlı şekilde ulaştırılmasıdır.
Peki CDN nasıl çalışıyor?
CDN dünyanın birçok yerine dağıtılmış sunucuların bir alt yapısıdır. Bu yapıda kullanıcı hangi ülkedeyse o ülkeye en yakın sunucuya ulaşıyor. Bu sayede kullanıcı uzaktaki sunucuya bağlanıp zaman kaybetmiyor. Bu yüzden hızlandırma açısından önemli bir özellik.
Ayrıca sitenizin hızlı açılması SEO açısından da çok faydalıdır.

2. DDoS Koruması Nedir?

ddos-saldirisi

DDoS saldırganlar sizin sunucunuza çok sayıda PC üzerinden istekler gönderir ve sunucuyu meşgul ederler. Bu şekilde sunucu yoğunluktan yanıt veremez olur ve sunucunuz çöker. İşte Cloudflare sitenize yapılan DDoS saldırılarını bir noktaya kadar önleyebiliyor.
Cloudflare DDoS’u nasıl engelliyor?
Sitenize gelen trafik önce Clodflare sunucusuna erişiyor ve sistem burada saldırgan davranışlarını tespit ederek sitenize ulaşmasını engelliyor.

3. SSL Sertifikası nedir?, Ne işe yarar?

SSL internet üzerinde bilgi aktarımı sırasında bilgininin gizlilik ve güvenliğini saplamak için yapılmış bir güvenlik protokolüdür. Bu SSL sertifikasını sitenin https ile başlaması ve yeşil kilit bulundurmasıyla anlayabiliriz. Siz de Cloudflare ile sitenize SSL sertifikası ekleyebilirsiniz.

4. Trafik analizi

Sitenizin analizi için genelde Google Analytics gibi araçlar kullanılıyor. Ancak Javascript ve pixel tracking yöntemleriyle elde edilemeyen kullanıcıları Cloudflare ile görebilirsiniz.

5. Önbellekleme

Sunucunuz tarafından dinamik şekilde oluşturulmayan sayfaları otomatik olarak tanır, bu sayfaları kendi sunucularında önbellekleyerek hem sunucunuzdaki trafiğinizi azaltır hem de sayfa yükleme sürelerinizi azaltır.

6. Spam Yorum Koruma

CloudFlare sitenize gelen spam yorum sayısını en aza indirgemek için üçüncü parti birçok uygulamadan yararlanır.

7. Dosya Optimizasyonu

Cloudflare Javascipt, CSS gibi dosyalarınızı sıkıştırarak sitenizi daha hızlı açılmasını sağlıyor.

8. Her Zaman Online

Eğer sunucunuz çökerse CloudFlare sitenizin önbelleğe alınmış halini servis ediyor. Bu sayede sitenize giren kullanıcılar hata sayfası almayacak sitenizi görüntüleyebilecek.

Evet arkadaşlar umarım hazırladıgım makaleyi beğenmişsinizdir.Başka makalelerde görüşmek üzere..

]]>
https://codewk.com/linux-sunucularda-php-ini-duzenleme-ve-guvenlik/feed/ 0