Kategori arşivi: Siber Güvenlik

Linux ve windows sistemler için temel güvenlik önlemleri ile birlikte gelişmiş güvenlik önemlemleri alma ve optimizasyon hakkında türkçe yazılar ve daha fazlası

Wordpress İçin Zararlı Yazılım Yayan Web Siteleri

Warez tema, eklenti ve bilimum bileşeni ücretsiz olarak size sunduğunu söyleyerek, umut tacirliği yapan ve bol miktarda malware bulunduran ve yayan web siteleri aşağıdaki gibidir.

Bu web sitelerden asla ve asla içerik indirmeyiniz.

Güncelleme: 17 Temmuz 2020

downloadfreethemes.co
downloadfreethemes.space
downloadnulled.pw
freenulled.top
nulledzip.download
themesfreedownload.net
themesfreedownload.top
vestathemes.com
wpnull24.com
nulledfree.pw
2nulled.com
null5.top
xnulls.com
nulled.today
wpthemify.com
allwpworld.com

Fail2Ban Kullanarak Port Taramaların Tespit Edilip Engellenmesi

Güvenlik amacıyla her sisteme dahil ettiğimiz Fail2Ban uygulaması aracılığı ile Port taramalarını çok kolay bir şekilde tespit edebiliriz, buradaki olay şu

  • Aktif olmayan bir porta istek geliyor mu? geliyorsa ne yapılacak

Normalde kapalı portlara kimse ilişip gelmez ve istek atmaz. İşte bu noktada port taraması yapıldığını anlar gerekli aksiyonu basit bir şekilde alabiliriz.

Öncelikli yapacağımız /etc/fail2ban/filter.d yoluna yeni filtreyi tanımlamak ben bunu sizin için hem iptables hem ufw için vereceğim.

UFW

[Definition]
failregex = .*\[UFW BLOCK\] IN=.* SRC=<HOST>
ignoreregex =

IPTABLES

[Definition]
failregex = PORT DENIED: .* SRC=<HOST>  
ignoreregex =

Ardından tespit edildikten sonra ne yapılması gerektiğini seçiyoruz, bu noktada erişimlerini firewall üzerinden kesmeniz iyi olacaktır. Tanımlamayı /etc/fail2ban/action.d içerisine yapıyoruz.

UFW

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw deny in from <ip>
actionunban = ufw delete deny in from <ip>

IPTABLES

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = iptables -I INPUT -s <ip> -j DROP
actionunban = iptables -D INPUT -s <ip> -j DROP

İşlemden hemen sonra bu korumamızı aktif etmek için /etc/fail2ban yolunda yer alan jail.conf düzenliyoruz.

UFW için

[portscan]
enabled  = true
filter   = portscan
logpath  = /var/log/ufw.log
action   = ufw
maxretry = 3
bantime  = 900

IPTABLES için

[portscan]
enabled  = true
filter   = portscan
logpath  = /var/log/messages
action   = iptables
maxretry = 3
bantime  = 900

Linux Sunucularda Malware ve Rootkit Taraması Nasıl Yapılır?

Kötü amaçlı yazılımlar(malware) ve arka planda çalışan gizli uygulamalar(rootkit) tespiti için sistemde belirli aralıklarla tarama işlemleri gerçekleştirmek gerekir.

Taramalarda önceliğimiz ilk başta Lynis olabilir. Bunun için yapmamız gerekenler

wget https://downloads.cisofy.com/lynis/lynis-2.7.5.tar.gz
tar xvzf lynis-2.7.5.tar.gz

Dosyaları direk ana dizinde tutmak yerine /usr/local/share/ yolunda tutmak işimize yarayabilir.

mv lynis/ /usr/local/share/
ln -s /usr/local/share/lynis/lynis /usr/local/bin/lynis

Ardından güzel güzel ilk taramamızı lynis audit system ile yapalım.

lynis malware tarama, lynis aracı

Loglar ise /var/log/lynis.log adlı dosyada yer almaktadır. Tarama tamamlandığında dosyayı kontrol edebilirsiniz. Ayrıca bu dosyayı gene alanında uzman kişilere atarak hızlıca çözüm üretilmesini sağlayabilirsiniz.


Hemen ardından kullanabileceğimiz bir başka aracımız ise Chkrootkit, sisteme dahil etmesi oldukça basit olan bu araç hem ücretsiz hemde belirtileri tarama konusunda oldukça etkili.

apt-get install chkrootkit

Kurulum tamamlandıktan hemen sonra sudo chkrootkit komutu ile taramayı başlatabilirsiniz.

chkrootkit ile linux tarama, rootkit tarama araçları, rootkit nasıl taranır

Tarama sırasında bilinen bütün rootkitler ve malwareler için tarama yapılır.


Açık kaynak kodlu ClamAV ile sistemde virüs, malware ve trojen ile birlikte diğer kötücül programların tespiti yapılabilir.

 sudo apt-get install clamav

Kurulum tamamlandıktan sonra normalde freshclam komutu ile veritabanında güncelleme yapmamız gerekir. Ancak kurulumdan hemen sonra arka planda otomatik olarak bu işlem yapılacağı için bahsi geçen komutun kullanımını tamamen size bırakıyorum.

Belirli dizinlerin taranması için ise aşağıdaki komutu kullanabilirsiniz.

clamscan -r -i <dizin-adi>
clamav tarama sonucu, clamav dosya tarama

Bu araçların dışında kullanabileceğiniz bir kaç araç daha bulunmaktadır.

  • Rkhunter
  • LMD
  • ISPProtect

Fail2ban Tarafından Engellenen Bir Ip Engelinin Kaldırılması

Fail2Ban, web sunucularında bruce kuvvet girişimleriyle yetkisiz erişimi korumak için kullanılan bir araçtır. Bazen bu araç, gerçek giriş denemelerini yakalayabilir. Buda bize false positive olarak geri dönebilir ve ip adresimiz kara listeye girebilir.

Bu durumda aşağıdaki işlemleri gerçekleştirerek ip adresinizi kara listeden çıkartabilirsiniz.

Ip adresinin firewall(Güvenlik duvarı) tarafından engellenip engellenmediğine bakıyoruz.

iptables -L -n

Aynı zamanda Fail2ban‘da kullandığımız jaillere bakıyoruz. Engelini kaldıracağımız Ip adresini hangi jailde kullanacağımız önemli.

fail2ban-client status

Engelini kaldıracağımız jailin adını aldıktan sonra Ip adresi ile beraber Fail2Ban’a bildiriyoruz.

fail2ban-client set <JAIL> unbanip <IPADDRESS>

Örneğin SSH bağlantılarında yasaklı olan bir Ip adresini aşağıdaki gibi engelliler listesinden kaldırabiliriz.

fail2ban-client set ssh unbanip 1.1.1.1

Türkiye’de ki Linux Sistemler İçin Tor Bridge(köprü) Ayarları

Güvenlik ve gizlilik denildiği zaman adını sıkça duyduğunuz Tor Network’ü beraberinde pek çok gizlilik sorununu da habercisi olabiliyor. Konu ile ilgili detaylı araştırmaya aşağıdaki bağlantı aracılığı ile ulaşabilirsiniz.

https://turkeyblocks.org/2016/12/18/tor-blocked-in-turkey-vpn-ban/

Bu aşamada kullanıcıların tor düğümlerine bağlanmasının önüne güvenlik sebepleri ile geçildi. Tıpkı VPN bağlantılarının önüne geçilmesi gibi. Ancak kimi zaman tor trafiğine ihtiyacımız olduğu zamanlar oluyor. Bu durumda yapmamız gerekenler oldukça basittir.

Bir ISP e-posta trafiklerine karışamaz. Bu noktada Tor ve ekipmanlarını edinmek için VPN yada ek bir araca gerek duymadan tor browser veya tor uygulamasını direk olarak indirebileceğiz.

E-Posta Aracılığı İle Tor Browser İndirmek

Bu noktada yapmamız gereken popüler e-posta servisimiz aracılığı ile tor üzerinden dosyayı talep etmektir. Bunu yapmanın en kolay yolu gettor@torproject.org adresine boş bir e-posta göndermektir. Gönderdiğiniz e-postaya cevap olarak sizden hangi işletim sistemini kullandığınız konusunda bilgi isteyecek.

tor browser eposta cevap gorsel

Cevap olarak kullanacağımız işletim sistemini belirtiyoruz. Ben iş istasyonumda Windows kullandığım için direk olarak “windows” şeklinde gelen e-postayı cevapladım.

tor browser indirme linkleri eposta ile gorsel

Artık Tor tarayıcısını sisteminizde kullanabilirsiniz. Rehberimizin bu bölümü genel kullanım amacı ile Tor tarayıcısının nasıl indirilebileceğini göstermektedir.

E-Posta Aracılığı İle Tor Bridge(Köprü) Edinmek

Gelelim makalemizin en şıkır şıkır bölümüne, bildiğiniz gibi Tor düğümlerine bağlanmak istediğimiz andan itibaren handshake hataları ile boğuşmak zorunda kalıyoruz. Bu durumun önüne geçebilmek adına bağlantıların herhangi bir köprü ile karıştırılması gerekiyor. Biz bunun için obfs4 kullanacağız.

sudo apt install obfs4proxy

Sistemimize karıştırma işlemleri için kullanacağımız uygulamamızı dahil ediyoruz. 

Sisteminizde tor ve istatistik aracı yüklü değilse aşağıdaki şekilde sisteme ekliyoruz.

sudo apt install tor tor-arm

Kurulum işlemi tamamlandıktan sonra servis çalışmaya otomatik olarak başlayacak ancak hiçbir yere bağlanmayacaksınız. Çünkü engellemelerden dolayı düğümler çalışmayacak.

temsili tor baglanti sorunu

Köprüleme işlemi için bridges@bridges.torproject.org adresine içerisinde “get bridges” yazan bir e-posta gönderiyoruz. Cevap olarak ise bize köprüler rastgele bir şekilde geliyor.

e posta ile tor koprulerini talep etme

İhtiyacımız olan 2 tanesini alıyoruz. Şimdi sıra .torrc yapılandırmaya geldi.

nano .torrc

Daha önceden kopyaladığım. Tor Bridge(Köprü) bilgileri ile aşağıdaki yapılandırmayı oluşturuyoruz.

UseBridges 1

ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Bridge 52.56.208.52:8443 9EA107A1C4B09FB6E45B25A53861D2BAF296B604

Bridge 188.166.35.153:8443 84FF468500F497E3691E7F7A5469CEA71508FEEC

Yapılandırma dosyamız ile işimiz bittiyse, sıra geldi servislerin yeniden başlatılmasına

systemctl restart tor

Yeniden başlatma işlemini tamamladıktan sonra bağlantıların kurulup kurulmadığını anlayabilmek için aşağıdaki komutu veriyoruz.

tail -f /var/log/tor/log

Çıktısı aşağıdaki gibi gözüküyor ise bağlantı başarılı bir şekilde kurulmuş demektir.

Nov 16 12:53:21.000 [notice] Bootstrapped 0%: Starting
Nov 16 12:53:22.000 [notice] Bootstrapped 80%: Connecting to the Tor network
Nov 16 12:53:23.000 [notice] Bootstrapped 85%: Finishing handshake with first hop
Nov 16 12:53:24.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
Nov 16 12:53:24.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Nov 16 12:53:24.000 [notice] Bootstrapped 100%: Done

Bu aşamadan sonra istediğiniz gibi Tor network’ünü kullanabilirsiniz.

  • SOCKS Bağlantı noktası: 127.0.0.1:9050

Sunucu Üzerinde WebShell Tespit Etme Yöntemleri

Herkesin başına gelebilecek bir durum olan ve halk arasında “shell yedim, hacklendim, virüs bulaştı” şeklinde ifade edilen PHP web sitelerinin kabusu olan WebShell’lerinin nasıl tespit edilebileceğinden kısaca bahsedeceğim.

Genellikle hosting kullanan arkadaşlarımızın sık sık başına gelen bu olaylar kimi zaman can sıkıcı olabiliyor. Özellikle günümüzde Shell’ler aracılığı ile Link ekleme, Başka web sitelerine reklam amacıyla yönlendirme, Uzaktan içerik çağırma vb saldırılar gerçekleştirilmektedir.

Ancak aynı zamanda kullanılan yazılımlarda bulunan güvenlik açıklıklarıyla ve(veya) yanlış dosya ve(veya) klasör izinleri ile gene bu gizi kötücül yazılımlar sistemlere bulaşabiliyor. 

Dosyaların Taranması İşlemi

Manuel olarak aksiyon alamayacak durumda olanlar için bir takım araçlar kullanarak shell taraması yapabilirsiniz. Bütün dosyalarınızda tarama yapmanızı şiddetle öneririm. Shellboy projesi yardımıyla taramayı gerçekleştireceğiz.

wget https://github.com/c1982/shellboy/releases/download/v0.0.1-beta/shellboy_linux_amd64
./shellboy_linux_amd64 --directory=/home/public

Her hangi bir bulgu olması durumunda uygulama sizi uyaracaktır.

Dosya değişikliklerinin tespit edilmesi

Sistem üzerinde tespit ettiğiniz anormallikleri çözmek için anında işleme geçip sunucu üzerinde son değiştirilen dosyaları kontrol etmeniz gerekir. Bu bize direk Shell’in yolunu verebilir.

Son 7 güne ait php dosyalarında değişiklik yapılan dosya tespiti

find . -type f -name '*.php' -mtime -7

Dosya içerisinde uzak kaynak kontrolü

Kimi zaman sitenizde bir takım alanlar değiştirilmiş olabilir. Bunlar genellikle yönlendirme kodları veya dışarıdan getirilmiş içerikler olabilir. Bunun tespiti için

find . -type f -name '*.php' | xargs egrep -i "preg_replace *\((['|\"])(.).*[a-z]*e[^]* *," --color 

Orijinal Dosyalar ile Mevcut Dosyaların Kontrolü

Wordpress, Drupal, Magento vb hazır sistemler kullanıyorsanız. diff komutu aracılığı ile sisteminizde dosyalarını kontrol edebilirsiniz. 

diff -r wordpress/ /var/www/sites/ -x wp-content
  • -x den hemen sonra gelen klasör diff ile kontrol edilmeyecektir. Biz bu örneğimizde wp-content adlı klasöre bakılmaması gerektiğini söyledik.
  • -r ile klasör içinde ne kadar dosya ve klasör içeriyorsa değişiklik kontrolü için dahil edilmesini istedik

Yazma İzinli Klasörlerin Tespit Edilmesi

Kimi zaman sistemde dosyalarınızın izinleri karışmış olabilir, genelde en çok karşılaşılan bu durumu çözmek her ne kadar kolay olsa da tehlikelidir.

find . -type d -perm 0777

Görsel İçerik Görünümlü Web Shell’lerin Tespiti

Kimi zaman uploads klasörüne eklenmiş bir görsel içerik(jpeg, png, gif vb) bile sizin web sitenize etki eden bir shell olabilir. Bu yüzden mevcut görsellerimiz içerisinde bile tarama işlemi gerçekleştirmemiz gerekir.

find uploads -type f -iname '*.jpg' | xargs grep -i php

.htaccess Kontrolü

Kimi zaman saldırganlar web sitenizde bulunan dosyalara ekleme yaparak kancalama atakları yapabilir. Bu gibi durumlarda mevcut dosyalarınızın başına yada sonuna kötü amaçlı yazılım kodları eklenebilir.

find . -type f -name '\.htaccess' | xargs grep -i auto_prepend_file  
find . -type f -name '\.htaccess' | xargs grep -i auto_append_file

Şüpheli Kod Tespiti

Dosyaların içerisinde php’de kullanımı şüpheli olan kodlar olabilir. Bunları tespit etmemiz ve gerekeni yapmamız gerekebilir, wordpress veya drupal gibi hazır sistemler kullanıyorsanız sizi yanıltacak sonuçlar çıkartabilir.

find . -type f -name '*.php' | xargs egrep -i "(fsockopen|pfsockopen|stream\_socket\_client|exec|system|passthru|eval|base64_decode) *\("
  • fsockopen: DDos için kullanılabilir, uzak soket açmaya yarar
  • pfsockopen: uzak soket açar fsockopen ile aynıdır.
  • exec, system ve passthru: sunucuda komut çalıştırmaya yarar
  • stream_socket_client: Uzak bağlantı oluşturur.
  • Her ne kadar komutlar arasına eklememiş olsam da mail fonksiyonu da kullanılabilir. Özellikle spam e-posta gönderimi için oldukça popüler bir kullanımı vardır.

Aramaları tek tek yapmak isterseniz aşağıdaki komutlardan faydalanabilirsiniz.

find . -type f -name '*.php' | xargs grep -l "eval *(" --color  
find . -type f -name '*.php' | xargs grep -l "base64_decode *(" --color  
find . -type f -name '*.php' | xargs grep -l "gzinflate *(" --color  
find . -type f -name '*.php' | xargs grep -l "eval *(str_rot13 *(base64_decode *(" --color
find . -type f -name '*.php' | xargs grep -l "stream_socket_client *(" --color  
find . -type f -name '*.php' | xargs grep -l "pfsockopen *(" --color  
find . -type f -name '*.php' | xargs grep -l "mail *(" --color  

Açık bağlantıların kontrolü

Sunucunuz da şüphelenmemiz gereken durumlardan bir tanesi de açık portlar ve servisler, sizin network kaynaklarınızı olumsuz yönde kullanıyor olabilir

netstat -na | grep -i LISTEN

Aynı zamanda sistem kaynaklarınızı kripto para kazımak için kullanabileceklerini unutmayın. Yukarıdaki bağlantı kontrolüne ek sunucunuzun CPU durumuna da bakmayı unutmayınız.

Terminalde SSL Geçerlilik Kontrolü Nasıl Yapılır?

Her zaman web sitelerine girerek SSL sürümlerine, detaylarına ve geçerlilik sürelerine bakma zahmetine ben katlanamıyordum işleri geciktirmekten başka bir işe yaramıyordu.

Testin bitmesi fazlasıyla uzun sürdüğünde çok uğraşıyorduk. Halbuki sistemde bulunan openssl ile kolay bir şekilde bilgileri alabiliyoruz.

Siteden SSL hakkında bilgiler tedarik edilir.

echo GET | openssl s_client -servername mertcangokgoz.com -connect mertcangokgoz.com:443 > cert.txt

Gerekli olan zaman kontrolü yapılacak değer alınır.

openssl x509 -in cert.txt -noout -enddate

Parrot Security OS Kurulumu

Bu makalede, Parrot Security‘nin bilgisayara adım adım nasıl yükleneceğini göstereceğim. Aslında, Parrot Security kurulumu çokda zor değil. Normal bir linux dağıtımını kurar gibi kolay bir şekilde kurabilirsiniz, verilerinizi kaybetmek istemiyorsanız sanal makine üzerine kurulumunuzu gerçekleştirebilirsiniz.

İlk olarak güncel ISO’yu Parrot Security OS‘un resmi sayfasından indiriyoruz. 64-Bit olan sürümü indirirseniz sizin için daha iyi olur.

İndirme işlemimiz tamamlandıktan sonra, Etcher veya herhangi bir araç ile USB belleğe yazdırıyoruz.

iso yazdirma parrot gorsel

ISO’yu boot ettiğimizde karşımıza kurulum ekranı çıkacak ilk ekrandan “Install” seçeneğini seçiyoruz.

kurulum ana ekran

Ardından bu ekranda “Standart Installer” seçeneğini seçip devam ediyoruz.

parrotos kurulum secim ekrani gorsel1

Ardından işletim sistemimizin dilini “Turkish” olarak seçiyoruz.

parrot os security dil secimi gorsel 2

Kullanılacak bölgeyi seçiyoruz.

parrot os security lokasyon secimi gorsel 3

Klavyemizi seçiyoruz. Bu aşamada Turkish Q seçmeyi unutmayın. Aksi durumda türkçe karakterlerde sorun yaşayacağınızı hatırlatırım.

parrotos security klavye secimi gorsel 4

Burada root kullanıcı parolasını ayarlayın ve ardından Continue’ye tıklayın. Kurulum bittikten sonra Parrot Security’e bu parola aracılığı ile giriş yapacaksınız.

parrotos security root parola tanimlama ve secimi gorsel 5

Sistemde kullanacağımız normal kullanıcımızın kullanıcı adını tanımlıyoruz.

parrotos security kullanici adi tanimlama ekrani gorsel 6

Oluşturduğumuz bu kullanıcının parolasını belirliyoruz.

parrotos security kullanici adi tanimlama ekrani parola tanimlama gorsel 7

Sistem saatimizi ayarlıyoruz. Türkiye’de kullanılan saat dilimi için Istanbul seçmeyi unutmayın.

parrotos security sistem saatini ayarlama gorsel 8

Ardından disk seçimi ve alan ayarlamalarına sıra geliyor. Biz burada LVM uyguluyoruz ilerleyen zamanda diskleri genişletmemiz gerekirse bize kolaylık sağlayacak.

parrotos disk yapilandirma gorsel9

Yapılandırmanın uygulanacağı diski seçiyoruz.

parrotos disk boyutu yapilandirma gorsel10

Yapılandırmanın diske hangi şekilde uygulanması gerektiğini seçiyoruz, ben direk olarak önerilen yöntemi uygulayıp geçtim. kendinize uygun bir bölümlemeyide yapabilirsiniz.

parrotos disk bolumleme grosel11

Yapılandırmamızın LVM olması için onayımızı veriyoruz.

parrotos disk bolme onay ekrani gorsel12

Diskin boyutunu ayarlıyoruz. Tüm alanı veriyoruz.

parrotos security os disk boyutu ayarlama lvm gorsel13

Ardından seçtiğimiz bu değişikliklerin disk üzerine uygulanmasını sağlamak için onay veriyoruz.

parrotos disk degisiklik onayi gorsel14

Ardından Parrot Security OS kurulumumuz başlıyor. Kurulum sistem özelliklerinize göre 30 dk kadar sürebilir.

parrotos security os disk kopyalama baslama islemi gorsel15

Yeni Güvenlik Başlığı: Feature Policy Genel Bakış

Kullanıcılar CSP’ye alışamadan yeni bir güvenlik başlığı karşınızda, Feature Policy bir sitenin, daha iyi güvenlik ve gizliliğini sağlamak amacıyla belirli tarayıcı özelliklerini ve API’lerini etkinleştirmesine veya devre dışı bırakmasına izin verir. Böylelikle hem güvenlik sağlanmış olur hemde GDPR kurallarına uyulmasında kolaylıklar sağlanır.

neon mistery

Feature Policy, site sahiplerinin belirli bir web platform özelliklerini kendi sayfalarında ve yerleştirilen sayfalarda(iframe) etkinleştirmesine ve/veya devre dışı bırakmasına izin vermek için oluşturulmaktadır.

Siteniz’de kullanabileceğiniz özellikler her ne kadar kısıtlanabilir olsa da, yerleştirilen sayfalarda(iframe) olarak eklediğiniz sitelerde sahip olabileceğiniz özellikleri de kısıtlayabileceksiniz.

HTTP başlıkları aracılığıyla bir Feature Policy kullanıcıya belirtebilirsiniz, size sunulan diğer güvenlik başlıklarının yanına Feature Policy eklemeyi unutmayarak işe başlayabilirsiniz.

Örnek

add_header Feature-Policy "accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'" always;

Gördüğünüz gibi yukarıdaki örnekte bahsi geçen özelliklerin sitemizde kullanılamayacağını belirttik. Bunlar dışında kullanabileceğiniz tam liste ise şu şekilde

  • midi
  • notifications
  • push
  • sync-xhr
  • speaker
  • vibrate
  • fullscreen

Bu liste değişebilir ve değişecektir, değişen özellikleri gözlemleyebilmek için bu bağlantıyı kullanabilirsiniz.

Denetleme Yönergeleri

  • *
  •  ‘self’
  •  ‘none’
  • URL Origin

*

İç ve dış ne kadar iframe varsa hepsine otomatik olarak izin verilen yönergedir.

'self'

Bu, geçerli sayfanın özelliği ile aynı içeriğe sahipse iframe’ler gibi iç içe geçmiş özelliklerinde kullanmasına izin verir, örneğin: kendi web sitenize kendinizden bir iframe vermek.

'none'

Bu özellik mevcut sayfa ve iframe’ler gibi iç içe geçmiş tarama içeriklerinin hepsinin devre dışı bırakılacağını belirtir.

URL Origin

Yanlızca belirtilen kaynaklardan gelen içeriklere izin verileceği anlamına gelmektedir. Örneğin: https://mertcangokgoz.com vb

Bu özelliği destekleyen tarayıcı listesi ise aşağıdaki gibidir. Gördüğünüz gibi sadece Chrome tarafından hali hazırda beta aşamasında desteklenmektedir. Hala geliştirilmekte olan bu özelliğe diğer tarayıcılarında geçmesi an meselesidir.

feature policy destekleyen tarayicilar

Firefox ve Edge gelmesi ile birlikte testlere hız verileceğini unutmamamız gerekiyor. Chrome desteklediği görülse de ön tanımlı olarak kapalı geldiğini de unutmadan hatırlatmak isterim. Aktif etmek için chrome://flags üzerinde “experimental web platform features” sekmesinin aktif hale getirilmesi gerekmektedir.


Chrome Platform
Chrome Draft Explainer
Google Developers

Kendinize Ait Bir Outline VPN Server Kurmak

Outline VPN, Jigsaw firması tarafından oluşturulan yeni açık kaynak kodlu VPN projesi’dir. OpenVPN’den çok daha basit olan Outline teknoloji olarak Shadowsocks proxy hizmetinden yararlanıyor, inanılmaz derecede hızlı, kurulumu kolay bir VPN deneyimi sunuyor.

Jigsaw Nedir?

Aslında Outline VPN, Alphabet firmasının çatısı altında bulunan bir firmadır. Bildiğiniz gibi Alphabet girişimleri destekler Jigsaw’da onlardan sadece bir tanesidir. Ana hatları ile Jigsaw’ın oluşturduğu, Outline VPN yalnızca güvenliği arttırmayı değil, aynı zamanda kurulumu da basitleştirmeyi amaçlamış.

Sistem yöneticisi olmasanız bile oldukça kolay bir şekilde kurabiliyorsunuz.

Outline VPN Server Nasıl Kurulur

Kuruluma başlamadan önce Jigsaw’ın mottosundan bahsetmem gerekiyor.

Gazetecilerin, araştırma konularına, kaynaklarla iletişim kurmasına ve haberleri raporlamak için bilgiye güvenli bir şekilde erişmeleri gerekiyor. Outline, haber kuruluşlarının kendi sunucularında sanal özel ağ (VPN) kurmasını kolaylaştırıyor. Bu, haber kuruluşlarına daha güvenli erişim sağlama ve iletişimini özel tutma imkânı verir.

Haydi şimdi kurulum zamanı makineniz mümkünse Debian 9 olsun. Ya da herhangi bir Ubuntu 16.04 makinede olabilir. Biz kurulumu olabildiğince minimal bir şekilde yapacağız. Ama adamlar yapıyı öyle bir kurmuş ki Outline Manager denen uygulamaya eninde bile olmasa sonunda ihtiyacımız oluyor.

Öne çıkan özellikler

  • Tüm sunucuyu kaplamaz Docker üzerinde koşar.
  • Tek bir komut ile çalışmaya başlar.
  • Güncelleştirmeleri otomatik olarak kendisi yapar.
  • Sunucu üzerinden başka uygulamalarda çalıştırabilirsiniz.

İlk önce makineye kurulumlara başlamadan docker kurmamız gerekiyor. Bunun için aşağıdaki yönergeleri takip edebilirsiniz.

apt install curl sudo
sudo curl -sS https://get.docker.com/ | sh

Kurulum tamamlandıktan hemen sonra aşağıdaki parametre yardımı ile kurulumun sunucu tarafında kurulumları tamamlıyoruz.

sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash

Gelelim bana göre en külfet kısma, burada makinemize Outline Manager adında tamamen electron ile yapılmış. Kurulumu kolay ama kaldırması zor bir uygulamayı sistemimize dahil ediyoruz.

İlk kez karşılaştığımızda aşağıdaki ekran bizi bekliyor.

outline vpn

Koşulları kabul ediyor musunuz? Kullanabilmeniz için etmeniz gerekiyor ama okumadan Ok demeyin yoksa aşağıdaki durumlara düşmeyin.

babani yalayacagiz kullanici sozlesmesi

Hee unutmadan, her şeyin bir bedeli vardır. Bu servisi kullanıyorsanız Jigsaw’a birtakım bilgilerinizi kullandıracaksınız. (Anonim olsa bile) Bunların tam listesine ulaşmak için tıklayın.

Okuma işleminiz bittiyse ve hala kurulumu tamamlamak istiyorsanız aşağıdaki yönergeleri takip etmeye devam edin. Uygulamada ana ekrandan hemen sonra sağlayıcıların olduğu bir ekran karşılar sizi bu ekranın en aşağısına ineceksiniz. Get Started demeniz gerekiyor.

outline vpn gorsel 2.PNG s

Kurulumda tamamlanan bir anahtarı girmemiz gerekiyor. Süslü parantez ile birlikte gireceğinizi unutmayın. Terminal ekranında yeşil yeşil olan satırlardan bahsediyorum.

outline vpn gorsel 3.PNG s

Hemen ardından uygulama makineye bağlanacak birkaç ufak ayarlama yapacak makineyi de ekranda göreceksiniz. Siz makinenize isim verebilirsiniz. Ben ön tanımlı olan neyse onu bıraktım. Get Connected butonunu görüyorsunuz ya heh işte ona tıklamanız gerekiyor.

outline vpn gorsel 4.PNG s

Tek tıklama ile beyfendi bağlantı kurmadığı için Connect This Device butonuna tıklamanızı isteyecek.

outline vpn gorsel 5.PNG s

Ardından size bir alan çıkacak bu alan size Outline Client uygulaması aracılığı ile bağlanmanızı sağlayacak bir anahtar sunacak bu anahtarı not alsanız iyi olur zira bağlantıyı bununla sağlayacaksınız.

outline vpn gorsel 6.PNG s

Bu anahtarın tam hali aşağıdaki gibi ve birtakım parametreleri içeriyor.

ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTppRUp1emFseDFia3k=@24.35.156.201:8493/?outline=1

Kurduğunuz makineye arkadaşlarınızı da dahil etmek isterseniz. Add Key yönergesini takip ederek bir anahtar oluşturun. Share butonuna basarak da aşağıdaki alana ulaşın.

outline vpn gorsel 7.PNG s

Sonuç olarak size arkadaşınıza paylaşa bilesiniz diye aşağıdaki gibi uzunca birkaç satır verecek. Arkadaşlarınıza bunu atarak gereken işlemleri yapmalarını sağlayabilirsiniz.

You’re invited to connect to my Outline server. Use it to access the open internet, no matter where you are. Follow the instructions on your invitation link below to download the Outline App and get connected.
https://s3.amazonaws.com/outline-vpn/index.html#/invite/ss%3A%2F%2FY2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTppc0NDSHJKNjNOSlE%3D%4024.35.156.201%3A9761%2F%3Foutline%3D1
-----
Having trouble accessing the invitation link?
Copy your access key: ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTppc0NDSHJKNjNOSlE=@24.35.156.201:9761/?outline=1
Follow our invitation instructions on GitHub: https://github.com/Jigsaw-Code/outline-client/blob/master/docs/invitation_instructions.md

Gelelim, elektron ile yazılmış ve makinenizin bağlanmasını sağlayacak olan client uygulamasında yapılacaklara aşağıdaki gibi bir ekran karşılayacak sizi. Yukarıdaki karikatüre dönüp tekrar bir göz atabilirsiniz.

outline client gorsel 1.PNG s

Ardından size yukarıda vermiş olduğu anahtarı kopyalıyoruz. Otomatik olarak ekranda siz kopyaladığınız anda belirecek zaten yapıştırmanıza gerek yok.

outline client gorsel 2.PNG s

Artık VPN bağlantımızı sağlayacak elektron ürünü uygulamamız. Başarılı bir şekilde yapılandırıldı ve artık bağlantı kurmaya hazır. Bu aşamada makineye birkaç kez bağlantı isteği atabilirsiniz. Çünkü ilk başta tek istek ile bağlandığını görmedim. Birkaç kez daha deneyebilirsiniz. Key hatası verecektir. Aldırış etmeden devam edin.

outline client gorsel 3.PNG s

Çok sayıda denemeden sonra hiçbir şekilde bağlantı kurulamaz ise Outline VPN sunucunuz da güvenlik duvarları ayarlarınızı kontrol edin. 1024 ile 65535 aralığındaki tüm portlara izin vermeyi unutmayın. Bunun port tarama ataklarına karşı sunucusu etkisiz kılabileceğini de unutmayın.

Ama benden size ufak bir tavsiye. Gizlilik ihtiyacınız varsa bu uygulamayı kesinlikle kullanmayın. Bu kadar zahmetle uğraşmak yerine burada yer alan ucuz VPN hizmetlerine göz atabilirsiniz.

Shadowsocks Proxy Kurulumu

Shadowsocks, ağ sansürünü geçmek ve belirli web sitelerinde ve web protokollerinde engellemeleri aşmak için kullanılan hafif bir SOCKS5 web proxy aracıdır. Diğer proxy yazılımlarından farklı olarak Shadowsocks trafiği, izleme araçlarında farklılık oluşturmaz ve aynı zamanda kendini gizleyebilecek şekilde tasarlanmıştır. Shadowsocks üzerinden geçen veriler, güvenlik ve gizlilik için ayrıca şifrelenir.

Kurulumu oldukça kolay olan Shadowsocks proxy aracını sistemimiz, Her zaman ki gibi docker ile dahil edeceğiz. Böylelikle sistemi sadece proxy amacıyla kullanmış olmayacağız. İstersek farklı portlar ile farklı uygulamalar çalıştırabileceğiz.

Bu iş için gene DigitalOcean’ı kullanacağız eğer yeni iseniz bir hesap açarak işe başlayın. Bu işlem sırasında bağlantımı kullandığınız taktirde. Yaptığınız ilk ödemede extra 10-25 dolar arası bakiye kazanacağınızı da unutmayın.

Gelelim bu güzelim uygulamanın kurulumuna kurulumu Docker aracılığı ile yapacağımız için sistemimize docker kurulumunu yapmamız gerekiyor. Bunun için aşağıdaki parametreyi kullanabilirsiniz.

sudo curl -sS https://get.docker.com/ | sh

Kurulum tamamlandıktan sonra hazır ayarlanmış. Docker imajını indiriyoruz.

docker pull shadowsocks/shadowsocks-libev

İmajı indirmemiz internet hızına göre değişiklik gösterecektir. Türkiye üzerinde herhangi bir datacenter da kurulum yaparsanız. Bu işlemin uzun süreceğini hatırlatırım zira yurt dışından gelen bağlantılar tüm ülke üzerindeki switchleri geziyor.(garip…)

İndirdiğimiz imajı parametreler ile başlatalım. Burada önemli olan 2 nokta bulunuyor. Ben sizin için bu alanları doldurup bir örnek hazırladım. Bu örnek içerisinde PASSWORD alanı proxy adresine bağlanacağınız parolayı belirliyor. 443 ise bağlantı sağlayacağınız portu belirliyor. Bu portu kafanıza göre verebilirsiniz. Ancak şifreli kanallarda kullanılan portları seçmeniz sizin için daha iyi olacaktır.

docker run -e PASSWORD=a18ea766bd6bc573 -p443:8388 -p443:8388/udp -d --restart always shadowsocks/shadowsocks-libev

İşlem sonlandığında docker ps -a komutu ile sistemin çalışıp çalışmadığını gözlemleyebilirsiniz. Shadowsocks proxy çalıştığından emin olduğumuza göre sıra geldi gerekli istemci ile sistem üzerinde bağlantı sağlamaya bunun için pek çok araç var.

shadowsocks clients download page

Ben windows tarafındaki istemcisini kullanacağım. Bunun içinde C# ile yazılmış olan aracı yani shadowsocks-windows uygulamasını indiriyorum. Kullandığım ayarlar da aşağıdaki gibi sizlere örnek olsun.

shadowsocks windows login.PNG s

Özellikle uygulamada dolu olması gereken 4 alan bulunmaktadır.

  • Server addr
  • Server port
  • Password
  • Encryption

Bunun dışındaki alanlar opsiyon olup doldurmanıza gerek yok. Ayarları kayıt ettikten sonrada uygulama tepsiye küçülecek buradan gerekli ayarlamaları(uygulamanın aktif yada pasif olması durumunu) daha sonrasında yapabilirsiniz.

Ön tanımlı olarak PAC modun da çalışmaktadır.

Obfsproxy Kullanarak OpenVPN Trafiğinin Gizlenmesi

Bu makalede anonimliğe, güvenliğe ve internete erişim özgürlüğüne karşı çıkan hükümetler tarafından uygulanan yaptırımlara karşı OpenVPN hizmetini sürdürmeye çalışacağız. Bunu yapmak için iki yöntemimiz bulunuyor. Her iki yöntem de, VPN bağlantılarının engellenmesini tanımlayan ve yaptırım uygulanması aşamasında sistemi etkinleştiren “derin paket denetimi (DPI)” olarak bilinen gelişmiş gözetim teknolojisinin saptırılması amacı ile kullanılmasından kaynaklanmaktadır. OpenVPN bağlantıları protokolün hızı, güvenliği ve internet kullanıcıları arasında yüksek popülerliği nedeniyle öncelikli hedeftir.

1649

Obfsproxy, şifrelenmiş bir yapı içinde OpenVPN paketlerini gizler ve derin paket incelemesinde kullanılacak olan “find and block” etkinliklerine karşı dirençli bir hale getirilir. Gelecekte herhangi bir noktada, OpenVPN‘in tespit ve engelleme işlemleri için daha fazla bağışıklık sağlanmasında protokol bazında değişiklik yapılması da gerekecektir. O zamana kadar DPI’dan kurtulmak için bu talimatları kullanabilirsiniz.

Unutmayınız ki bu yöntemler mükemmel değildir. Yeterli bir zamana sahip olduklarında, tanımlayamadığı veya şifresini çözemediği her şeyi bulabilir ve engelleyebilirler. Sunucu IP adreslerini ve anahtarlarını düzenli olarak değiştirerek, ulusal güvenlik duvarlarında gizlenmiş bir şekilde OpenVPN‘e karşı etkisiz olacaktır.

Obfsproxy için OpenVPN Sisteminin Yapılandırılması

Obfsproxy sunucu ve internet arasında oturacak. İstemcilerden gelen paketler şifresi çözülür ve openVPN sunucusuna yönlendirilir. Giden paketler, ağdaki herhangi bir gözetleme aracısına rastgele anlamsız gibi görünen, şifrelenecek ve istemcilere gönderilecektir.

Tanıdık host sağlayıcılarını kullanarak bir proxy sunucu oluşturmamız gerekiyor. DigitalOcean’ı ziyaret ederek ve bir hesap açarak işe başlayın. Bu işlem sırasında bağlantımı kullandığınız taktirde. Yaptığınız ilk ödemede extra 10-25 dolar arası bakiye kazanacaksınız.

Açtığınız hesapta en düşük özelliklerde bir makina açacağız. İşletim sistemi olarak Debian 9 kullanacağız.

apt-get install obfsproxy iptables-persistent

Ardından güvenlik duvarı kardeşimiz için kuralları gireceğiz. Hangi portu kullanacağınızı belirlediyseniz başlayalım. Ben tamamen keyfi bir şekilde 43256 portundan trafiği döndüreceğim için seçimimi bu yönde yapıyorum.

iptables -A INPUT -p tcp --dport 43256 -j ACCEPT
dpkg-reconfigure iptables-persistent

Tabi bu noktadan sonra makina açık hedef haline geleceği için mümkünse firewall kurallarını kendi ip aralığınıza göre tahsis edin. Sabit Ip adresine sahipseniz mümkünse tek ip adresinin bağlantılarını kabul edecek şekilde ayarlayın. Böylece aktif port tarama ataklarına ve tekrarlama saldırılarına karşı koruma sağlayın.

Ardından proxy hizmetinin devamlı açık kalmasını sağlamak amacı ile yeni bir session oluşturalım.

screen -S obfsproxy

Ardından geçerli vpn sunucusundan gelecek olan istekleri kabul etmek ve bağlantıları açmak için aşağıdaki gibi süreci başlatın.

obfsproxy  obfs2 --dest=127.0.0.1:443 --shared-secret=b2e3b923d190c8de99b2716019fc9cd7 server 0.0.0.0:43256

Obfsproxy için başlattığınız session işleminden çıkarmak için Ctrl + a tuş kombinasyonunu kullanın ve ardından klavyenizdeki d tuşuna basın. Süreci sonlandırmak için Ctrl + C tuş kombinasyonlarını kullanabilirsiniz. Ardından exit komutu ile de geçerli terminali sonlandırabilirsiniz.

Burada tanımladığımız ilk port VPN trafiğinin üzerinden akacağı port 43256 ise proxy bağlantımızın akacağı port. Ayarları kendi sağlayıcınıza göre düzenlemeyi unutmayın. Ayrıca bu işlemlerde sadece TCP bağlantıları geçerli olacağını hatırlatırım. UDP üzerinden çalışan herhangi bir VPN servisine obfsproxy tanımlaması yapamazsınız.

Kullanıcı tarafında yapılacaklar

Server tarafında yapacağımız işlemler sonlandı. Sıra geldi bağlantıyı kuracak Client tarafının ayarlamalarına.

Elinizdeki mevcut VPN yapılandırma dosyasında aşağıdaki satırları remote den hemen sonra ekliyorsunuz. Mevcut bağlantı noktasını ise yukarıda bizim tanımladığımız obfsproxy portunu veriyorsunuz.

socks-proxy-retry
socks-proxy  443

Konfigürasyon dosyamız sonunda aşağıdaki gibi oluyor. Her iki servise de kolaylıkla bağlanabiliyoruz.

remote 1.2.3.4 43256
socks-proxy-retry
socks-proxy  443

Her şey tamamsa bağlantınızı sağlayın.

obfsproxy obfs2  --shared-secret=b2e3b923d190c8de99b2716019fc9cd7 socks :443

Bu yaptığımız işlemde hız sorunu meydana gelebilir. Hal böyle alınca internet yavaşlamaları görebilirsiniz. Benim size tavsiyem OpenVPN servisini de aynı VPS üzerinde tutmaktır. Makinaya OpenVPN servisini bu makale ile kurabilirsiniz. Böyle bir durumda yukarıdaki ayarlamalar aynen geçerli olup kısmına 127.0.0.1 girmeniz gerekmektedir.

Ayrıca windows sistem üzerinde obfsproxy ile bağlantı sağlayabilmek için ilk önce sisteminize python kurmalı ve daha sonra paket yöneticisi aracılığı ile obfsproxy kurulumu gerçekleştirmek zorunda kalacağınızı unutmayın.

pip install obfsproxy

obfsproxy windows installs

Daha sonra direk olarak bağlantı işlemini OpenVPN aracılığı ile gerçekleştirin. Bağlantı gerçekleştiğinde durum mesajları görünür. Bu mesajları daha sonra tekrar kontrol etmeniz gerekiyorsa OpenVPN menüsündeki View Log’e tıklayabilirsiniz. OpenVPN sunucunuzun, trafiği Obfsproxy yoluyla proxy edilmek suretiyle bağlandı.