After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,88 @@ |
||||
## Shadowsocks nedir? |
||||
|
||||
Shadowsocks socks5 protokolünü temel alan bir proxy uygulamasıdır. 2012’de Çin Halk Cumhuriyeti’nin ünlü güvenlik duvarını aşabilmek için Python dilinde geliştirilmiştir. İlerleyen zamanlarda farklı dil ve platformlarda da sunucu ve istemcileri yazılmıştır, en popülerleri shadowsocks-rust, shadowsocks-libev ve go-shadowsocks2 yazılımlarıdır. Linux, BSD türevleri, MacOS, ve Windows işletim sistemleri için Qt5 temelli bir istemcisi vardır (shadowsocks-qt5), ayrıca Android, iOS ve Windows için özel yazılmış istemcileri de bulunmaktadır. Hâlâ orjinal python sunucu/istemcisi pip paket yöneticisi ile kurulabilmektedir. Akan veriyi şifrelemek için AES ve ChaCha algoritmalarını kullanmaktadır, ayrıca bu algoritmaların üzerine AEAD yani İlişkili Verilerle Kimlik Doğrulamalı Şifreleme yapmaktadır. Bu sayede veri hem şifreli hem de kimliği doğrulanmış şekilde taşınmaktadır. Shadowsocks’u diğer proxy yöntemlerinden ayrıştıran bir nokta da TCP’nin yanında UDP trafiğini de taşıyabilmesidir. Ek olarak standart bir eklenti sistemi de bulunmaktadır ve v2ray en popüler eklentilerden biridir, kullanım amacı akan verinin şeklini gizlemektir, bu plugin sayesinde akan trafik HTTP, HTTPS veya QUIC protokollerini taklit edebilir. |
||||
|
||||
## Basit bir sunucu istemci kurulumu |
||||
|
||||
### Sunucu tarafında |
||||
|
||||
Tercihinize bağlı bir sunucu yazılımı seçip çalıştırabilmeniz gerekmektedir. Ben shadowsocks-rust sunucusunu kullanmayı tercih edeceğim ama ayar json dosyası neredeyse bütün istemciler için aynı olacaktır. |
||||
|
||||
[github/shadowsocks-rust](https://github.com/shadowsocks/shadowsocks-rust/releases/) adresinden en güncel yayınlanmış sürümü seçip detaylarına bakıyorum. Bu belge yazılırkenki en güncel sürüm v1.8.12 olarak yayınlanmıştı. Platformunuza göre yayınlanan bir dosyayı seçmeniz gerekmekte, ben Gnu/Linux dağıtımları için derlenmiş olan halini indireceğim. Önümde iki seçenek var, Glibc ve MUSL. Ben Glibc için derlenmiş pakedi seçeceğim, eğer bir Gnu/Linux değil Busybox/Linux dağıtımı kullanıyorsanız MUSL için derlenmiş halini seçmeniz gerekecektir. |
||||
|
||||
shadowsocks-v1.8.12.x86_64-unknown-linux-gnu.tar.xz dosyasını indirdikten sonra evimdeki sunucumda açıyorum ve içindeki dört çalıştırılabilir dosyayı, komut dizinlerimden birine koyuyorum. Ben /usr/local/sbin/ dizinini tercih ediyorum çünkü bu dizinin amacı root yetkisi ile çalıştırılacak ama paket yöneticisi vasıtasıyla kurulmamış uygulamaları barındırmaktır. |
||||
|
||||
Daha sonrasında /etc/ dizini altında shadowsocks-config.json adında bir dosya oluşturup içine şunları yazıyorum. |
||||
|
||||
```json |
||||
{ |
||||
"server":"<sunucunuzun ip adresi>", |
||||
"server_port": 8388, |
||||
"password":"<güvenli bir parola>", |
||||
"timeout":300, |
||||
"method":"aes-256-gcm" |
||||
} |
||||
``` |
||||
|
||||
- *server* kalemi shadowsocks’un dinleyeceği, sunucunuzun IP adresini seçmenizi sağlar. Tek ağ kontrolcüsü olan cihazlarda tek bir IP olacağından işiniz kolay olacaktır. Eğer birden fazla ağ kontrolcünüz varsa hangisinde çalışmasını istediğinize siz karar vermelisiniz, yahut 0.0.0.0 yazarak bütün ip adreslerinizi dinlemesini sağlayabilirsiniz. |
||||
|
||||
- _server_port_ kalemi yazılımın kullanacağı IP adreslerinde dinlemesini istediğiniz portu belirttiğiniz yerdir, standart 8388 kullanılır. Ben kendi sunucumda daha önce bahsettiğim v2ray pluginini kullandığımdan 443 HTTPS portunu kullanmaktayım. Böylece trafik HTTPS portuna akmakta, veri HTTPS trafiği gibi gözükmekte, dolayısıyla DPI (derin paket incelemesi) yapan güvenlik duvarları tarafından shadowsocks takip edilememektedir. |
||||
|
||||
- _password_ parolanızı belirttiğiniz yer, basit bir şekilde çalıştığından ötürü güvenli bir parola kullanmanız şart. |
||||
|
||||
- _timeout_ bağlantı zaman aşımını belirttiğiniz ayar kalemi, 300 saniye makul bir süre. |
||||
|
||||
- _method_ şifreleme algoritmanızı seçtiğiniz yer, ben aes-256-gcm kullanıyorum, bu algoritma 256bitlik bir anahtar kullanarak simetrik blok şifreleme yapan bir algoritma ve ihtiyacımı karşılayacak kadar hızlı ve şu an desteklenen en güçlü algoritma. |
||||
|
||||
Bu dosyayı kaydettikten sonra servis yöneticinize bir servis yazmanız gerekmekte. Bu kısmı sizin tercihinize bırakıyorum, lakin ben systemd kullandığımdan basit bir servis yazdım. |
||||
|
||||
``` |
||||
[Unit] |
||||
After=network.target |
||||
[Service] |
||||
Type=simple |
||||
User=nobody |
||||
Group=nobody |
||||
ExecStart=/usr/local/sbin/ssserver -c /etc/shadowsocks-config.json |
||||
[Install] |
||||
WantedBy=multi-user.target |
||||
``` |
||||
|
||||
Daha sonrasında bu servisi aktif hale getirip başlangıçta çalışacak şekilde ayarladım. Ve sunucum çalışır durumda. |
||||
|
||||
### İstemci Tarafında |
||||
|
||||
Aslında sunucu tarafındaki ayarların aynısını yaptım, neredeyse her şey aynı, lakin ayar dosyamı şu şekilde değiştirdim. |
||||
|
||||
```json |
||||
{ |
||||
"server":"<sunucunuzun ip adresi>", |
||||
"server_port": 8388, |
||||
"local_address":"<istemcinizin ip adresi>", |
||||
"local_port": 1080, |
||||
"password":"<güvenli bir parola>", |
||||
"timeout":300, |
||||
"method":"aes-256-gcm" |
||||
} |
||||
``` |
||||
|
||||
- _local_address_ kalemi istemciniz üzerinde, sslocal'ın (shadowsocks istemcinizin) dinleyecegi, programlarinizi yönlendireceginiz yerel adresi seçtiginiz yer. |
||||
- _local_port_ kalemi, istemci olarak kullandığınız bilgisayarda, localhost’ta hangi port üzerinden socks5 yayını yapacağını seçtiğimiz yer. Bazı istemciler bu ayarı kullanmamakta (android istemcisi mesela android’in kendi VPN altyapısını kullandığından yerel bir socks5 bağlantısı yerine tüm trafiği yönetebilmekte) lakin shadowsocks-rust istemcisi ve diğer bir çok istemci bu ayarı kullanıyor. |
||||
|
||||
Son olarak da systemd servis dosyamı şu şekilde güncelledim. |
||||
|
||||
``` |
||||
[Unit] |
||||
After=network.target |
||||
[Service] |
||||
Type=simple |
||||
User=nobody |
||||
Group=nobody |
||||
ExecStart=/usr/local/sbin/sslocal -c /etc/shadowsocks-config.json |
||||
[Install] |
||||
WantedBy=multi-user.target |
||||
``` |
||||
|
||||
Ve bu kadar! Artık socks5 destekleyen yazılımlarınızı shadowsocks proxy’si üzerinden internete, farklı bir noktadan çıkartabilirsiniz. Ben kendi bilgisayarımda Firefox, Thunderbird ve Telegram uygulamaları üzerinde bu proxy’i kullanmaktayım. Eğer bütün trafiğinizi shadowsocks üzerinden yönlendirmek istiyorsanız iptables ve redsocks uygulamaları ile bunu sağlayabilirsiniz. Android temelli telefonum üzerinde de shadowsocks kullanmaktayım ve sürekli VPN modu aktif şekilde ayarladım, bu sayede telefonumdan geçen bütün trafik kendi sunucum üzerinden internete çıkmakta, tanımadığım ağlara bağlandığımda iletişimim takip edilememekte ve bütün trafiğim tek bir IP adresine doğru gidiyor gözükmekte. |
||||
|
||||
Shadowsocks belki Çin Halk Cumhuriyeti devleti tarafından erişimi engellenmeye çalışılan, önlem geliştirilen ve kısıtlanan bir yazılım ve protokol olabilir, ancak aktif geliştirici kitlesi, eklentileri ve genel basitliği ile sadece Çin vatandaşları tarafından değil aynı zamanda diğer bütün dünya vatandaşları tarafından da tercih edilesi bir noktaya gelmiştir. Güncelliğini farklı dil ve platformlarda koruyan ciddi bir geliştirici kitlesi ve aktif kullanıcı kitlesi ile güçlü bir proxy yazılımı olan Shadowsocks umarım sizin de ilginizi çekmiştir. |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 170 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 36 KiB |
@ -0,0 +1,73 @@ |
||||
# Protonmail ile GPG Kullanımı |
||||
|
||||
## Protonmail Nedir? |
||||
|
||||
[Protonmail](https://protonmail.com) şifreli bir e-posta hizmetidir. Güvenlik rehberinin detaylıca incelediği şifreli e-posta hizmet sağlayıcıları arasında Protonmail'i ayıran özellik GPG şifrelemenin hizmetin temelinde olmasıdır. Bu Protonmail kullanıcılarının Protonmail dışındak diğer e-posta adreslerine GPG şifreli e-posta atabilmelerini ve diğer e-posta adreslerinden GPG şifreli e-posta alıp tarayıcıdan okuyabilmelerine imkan veriyor. Bu bakımdan Protonmail kullanıcıları uçtan uca şifrelemeye sadece Protonmail kullanıcıları arasında değil tüm GPG kullanıcıları arasında sahip oluyorlar. |
||||
|
||||
Protonmail kullanmak elde edebileceğiniz en güvenli GPG kurulumu değildir. Protonmail'e her girdiğinizde tarayıcınıza gelen javascript kodunu doğrulamanız mümkün değildir. Protonmail'in istemcileri de ne yazık ki hala özgür değil. Bunun tek istisnası smtp ile Protonmail hesabınıza bağlanmanızı sağlayan [köprü(bridge)](https://protonmail.com/bridge) yazılımı. Her ne kadar Protonmail size yukarıdaki gerekçeler ile en iyi sonucu vermeyecek de olsa, pek çok Protonmail kullanıcısı ile çokça tehdit modeline yeterli güvenli yazışma yapmak ve gerekirse diğer GPG kullanıcıları ile yazışmanız çok kolay. Karar size kalmış. |
||||
|
||||
## Protonmail'e GPG ile E-posta Atmak |
||||
|
||||
GPG şifrelemesi yapmak için ilk gereken şey yazışacağınız Protonmail adresine ait anahtarı elde etmek. Bunun için; |
||||
|
||||
* Yazıştığınız kişiden anahtarını e-posta ekine koymasını isteyebilirsiniz. Bu durumda gelen anahtarı import edip hiç sorun çekmeden kullanmaya başlayabilirsiniz. |
||||
|
||||
* E-posta şifreli ise arkanıza yaslanıp şifreli cevap verebilirsiniz. Keza Enigmail otomatik olarak şifreli gelen e-postanın anahtarını bulacaktır. |
||||
|
||||
* Protonmail anahtar sunucusundan ilgili anahtarı çekebilirsiniz. |
||||
|
||||
### Protonmail Anahtar Sunucusundan Anahtar Çekmek |
||||
|
||||
Anahtar sunucuları GPG kullanımının temel araçlarından biri. Bir firhist olan bu sunuculardan Protonmail'de sadece kendi anahtarlarını içerecek şekilde bir tane bulunduruyor. Protonmail'in sunucusu diğer sunucularla eşitlenmediğinden sadece bu sunucuya tam Protonmail adresi ile istek atarak cevap almanız mümkün. |
||||
|
||||
Uçbirimde: |
||||
|
||||
`gpg --search --keyserver hkps://api.protonmail.ch [aradığınız adres]` |
||||
|
||||
şeklinde arama yapabilirsiniz. Adresi doğru girdi iseniz bir tane anahtar size önerilecektir. 1'e basıp ilgili anahtarı indirebilirsiniz. |
||||
|
||||
Şayet Thunderbird/Enigmail ikilisini kullanacaksanız birden fazla imkanınız bulunuyor. Bunlardan ilki, özellikle Protonmail adresleri ile sıkça yazışacaksanız, Protonmail anahtarsunucusunu Enigmail'in ayarlarından anahtar sunucuları listesine eklemektir. Bunu yapmanın güzel tarafı Enigmail şayet anahtarını bilmediği bir Protonmail adresi görür ise bunun anahtarını otomatik olarak indirip şifreleme seçeneğini açacaktır. |
||||
|
||||
![alt-text](enigmail_ayarlar.png "Enigmail ayarlarına Protonail sunucunu eklemek") |
||||
|
||||
Şayet e-posta yazma ekranında hızlıca bunu yapmaya karar verirseniz, Enigmail sekmesinden anahtar yönetimi (key management) kısmına tıklayıp anahtar sunucusu (keyserver) kısmına Protonmail'in sunucu adresini girip doğrudan arama yapma seçeneğini seçebilirsiniz. |
||||
|
||||
![alt-text](enigmail_yonetim.png "Enigmail anahtar yönetimi") |
||||
|
||||
Şayet e-postanızı göndermeden önce şifreleme seçeneğini açarsanız, Enigmail anahtarı olmayan Protonmail adresinin anahtarını göstermenizi sizden isteyecektir. Bu noktada eksik anahtarları indir (download missing keys) seçeneğini tıklayıp anahtar yönetimi sayfasından bir üstteki adımı takip ederek işleminizi bitirebilirsiniz. |
||||
|
||||
![alt-text](enigmail_gonderim.png "Enigmail eksik anahtar paneli") |
||||
|
||||
Tebrikler, bir Protonmail kullanıcısına tek seçeneklerinin Protonmail olmadığını göstermiş oldunuz. Protonmail'e atacağınız e-postaların ekine açık anahtarınızı eklemeniz veya e-postayı şifreli atmanız durumunda Protonmail sadece **web** istemcisinden otomatik olarak şifreli yanıt atacaktır. Android ve OS istemcilerde sorun çıktığı görülmüştür. Hali ile yazıştığınız kişiyi bu konuda bilgilendirmeniz önerilir. Sizin açık anahtarınızı Protonmail hesaplarında sizin adınıza eklemeleri gereklidir sorunsuz bir iletişim için. |
||||
|
||||
## Protonmail'den Diğer Adreslere GPG Şifreli E-posta Atmak |
||||
|
||||
Protonmail'den GPG kullanan bir başka adrese şifreli e-posta atmak için öncelikli olarak ilgili e-postanın açık anahtarını yazışmak istediğiniz kişinin adına rehberinize eklemeniz gerekli. |
||||
|
||||
Şayet GPG kullanan kişi size ilk mesajı imzalı ve açık anahtarı ekli attıysa "Bu ileti, henüz güvenilmeyen bir genel anahtar tarafından imzalanmıştır." ibaresi çıkacak ve yanında güven anahtarı düğmesi olacaktır. Bu özetle kişinin anahtarını kendi anahtarınızla imzalamanız ve otomatik olarak kişinin açık anahtarının adına eklenmesi ile gelecek yazışmaları otomatik olarak GPG şifreli yapacaktır. |
||||
|
||||
Şayet gelen e-posta şifreli veya imzalı değilse ya da siz ilk şifreli e-postayı atacaksanız öncelikle rehberinizden şifreleme yapmak istediğiniz kişinin paneline gelin ve küçük dişli şekliyle ifade edilen gelişmiş ayarları açın. |
||||
|
||||
![alt-text](proton_kisi.png) |
||||
|
||||
Daha sonra açılan ayarlardan anahtar yükle seçeneğini seçerek ilgili kişinin anahtar dosyasını yükleyin ve şifrele ve imzala düğmesini aktif hale getirin. |
||||
|
||||
![alt-txt](proton_kisi_ayar.png) |
||||
|
||||
Bundan sonra kişiye atacağınız e-postalar kişinin GPG anahtarı ile şifrelenecek ve imzalanacaktır. |
||||
|
||||
## Gelişmiş Seçenekler |
||||
|
||||
Protonmail çeşitli GPG işlemlerini yapmak için kullanıcılarına seçenekler sunmaktadır. Bunlar arasında: |
||||
|
||||
* Gönderiye açık anahtar eklemek |
||||
* Gönderiyi imzalamak |
||||
* Her gönderiye açık anahtar eklemek |
||||
|
||||
### Gönderiye Açık Anahtar Eklemek ve İmzalamak |
||||
|
||||
Protonmail'den bir dış adrese yazışma yaparken yeni ileti ekranının konu başlığından sonraki satırında sağ taraftaki ok işaretinden açılan menü aracılığı ile ilgili iletiyi imzalayabilir ve açık anahtarınızı iletiye ekleyebilirsiniz. Bu yazdığınız kişi GPG kullanıyor ise sizden gelen e-postanın değiştirilmediğini bilebilir ve size atacağı cevabı kolaylıkla şifreleyebilir. |
||||
|
||||
### Her Gönderiye Açık Anahtar eklemek ve İmzalamak |
||||
|
||||
Bunun için Protonmail hesabınızın ayarlarına girip güvenlik sekmesinin altında bulunan "Harici PGP ayarları" bölümünden imzalama ve açık anahtar ekleme seçeneklerini etkinleştirin. Aynı bölümde "Adres Doğrulama" seçeneğini de göreceksiniz. Bu ayar ile iletişimde olduğunuz GPG kullanıcılarının anahtarlarını imzalama seçeneğine kavuşursunuz. Bu hem protonmail'in doğru anahtarı size sunduğuna güven duymadan anahtar doğrulaması yapmanızı sağlar hem de konuştuğunuz harici GPG kullanıcıları ile güven ilişkinizi sağlar. |