Shadowsocks v1.11.0 sürüme yükseltilerek güncellendi

Sunucu tarafında systemd servisinden "User", "Group" satırları çıkarıldı
pull/151/head
Orcun Serce 4 years ago
parent 1ac7b5f1a6
commit a105d795e8
  1. 49
      src/ag_guvenligi/shadowsocks.md

@ -8,18 +8,18 @@ Shadowsocks’u diğer proxy yöntemlerinden ayrıştıran bir nokta da TCP’ni
<!-- toc --> <!-- toc -->
## Basit bir sunucu istemci kurulumu ## Temel shadowsocks kurulumu
### Sunucu tarafında ### Sunucu kurulumu
Tercihinize bağlı olarak sunucunuzda bir shadowsocks yazılımını seçip çalıştırmanız gerekmektedir. Bu rehber shadowsocks-rust kurulumunu takip edecektir fakat json ayar dosyası neredeys tüm istemciler için benzer olacaktır. Tercihinize bağlı olarak sunucunuzda bir shadowsocks yazılımını seçip çalıştırmanız gerekmektedir. Bu rehber shadowsocks-rust kurulumunu takip edecektir fakat json ayar dosyası neredeyse tüm istemciler için benzer 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 göz gezdirin. Bu rehberin yazıldığı tarihteki en güncel sürüm v1.8.12'dir. Platformunuza göre yayınlanan bir kurulum dosyasını seçmeniz gerekmekte. Rehber GNU/Linux üzerinden ilerleyeceği için Gnu/Linux dağıtımları için derlenmiş olan dosya kullanılacaktır. [github/shadowsocks-rust](https://github.com/shadowsocks/shadowsocks-rust/releases/) adresinden en güncel yayınlanmış sürümü seçip detaylarına göz gezdirin. Bu rehberin yazıldığı tarihteki en güncel sürüm v1.11.0'dır. Platformunuza göre yayınlanan bir kurulum dosyasını seçmeniz gerekmektedir. Rehber GNU/Linux üzerinden ilerleyeceği için Gnu/Linux dağıtımları için derlenmiş olan dosya kullanılacaktır.
Karşınıza iki seçenek çıkacaktır: Glibc ve MUSL. Tercihimiz Glibc olacak lakin bir **GNU/Linux değil Busybox/Linux dağıtımı** kullanıyorsanız **MUSL** için derlenmiş halini seçmeniz gerekecektir. Karşınıza iki seçenek çıkacaktır: Glibc ve MUSL. Tercihimiz Glibc olacak lakin 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 sunucuda dosyayı açıp içindeki dört çalıştırılabilir dosyayı, komut dizinlerinden birine koyun. /usr/local/sbin/ dizinini tercih edilebilir çünkü bu dizinin amacı root yetkisi ile çalıştırılacak ama paket yöneticisi vasıtasıyla kurulmamış uygulamaları barındırmaktır. "shadowsocks-v1.11.0.x86_64-unknown-linux-gnu.tar.xz" dosyasını indirdikten sonra sunucuda dosyayı açıp içindeki dört çalıştırılabilir dosyayı, komut dizinlerinden birine koyun. /usr/local/sbin/ dizinini tercih edilebilir çünkü bu dizinin amacı root yetkisi ile çalıştırılacak, paket yöneticisi vasıtasıyla kurulmamış uygulamaları barındırmaktır.
*shadowsocks*ı debian, archlinux ve fedora depolarından, sırasıyla; `apt install shadowsocks`, `pacman -S shadowsocks` ve `dnf install python3-shadowsocks` komutlarıyla da sisteminize kurabilirsiniz. *shadowsocks*ı debian, archlinux ve fedora depolarından, sırasıyla; `apt install shadowsocks`, `pacman -S shadowsocks` ve `dnf install python3-shadowsocks` komutlarıyla da sisteminize kurabilirsiniz.
@ -30,20 +30,20 @@ Daha sonrasında /etc/ dizini altında shadowsocks-config.json adında bir dosya
"server":"<sunucunuzun ip adresi>", "server":"<sunucunuzun ip adresi>",
"server_port": 8388, "server_port": 8388,
"password":"<güvenli bir parola>", "password":"<güvenli bir parola>",
"method":"aes-256-gcm"
"timeout":300, "timeout":300,
"method":"aes-256-cfb"
} }
``` ```
- *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* 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. Örnek sunucumuzda önceki bölümde bahsedilen v2ray pluginini kullanıldığından 443 HTTPS portunu kullanılmakta. Böylece trafik HTTPS portuna akmak ile veri HTTPS trafiği gibi gözükmekte, dolayısıyla [DPI (derin paket incelemesi)](https://en.wikipedia.org/wiki/Deep_packet_inspection) yapan güvenlik duvarları tarafından shadowsocks takip edilememektedir. - *server_port* kalemi yazılımın kullanacağı IP adreslerinde dinlemesini istediğiniz portu belirttiğiniz yerdir, standart 8388 kullanılır. Örnek sunucumuzda önceki bölümde bahsedilen v2ray pluginini kullanıldığından 443 HTTPS portunu kullanılmakta. Böylece trafik HTTPS portuna akmak ile veri HTTPS trafiği gibi gözükmekte, dolayısıyla [DPI (derin paket incelemesi)](https://en.wikipedia.org/wiki/Deep_packet_inspection) yapan güvenlik duvarları tarafından shadowsocks tespit edilememektedir.
- _password_ parolanızı belirttiğiniz yer, basit bir şekilde çalıştığından ötürü güvenli bir parola kullanmanız şart. Bunun için [Zarola](https://zarola.oyd.org.tr) kullanmanızı hararetle öneririz. - *password* parolanızı belirttiğiniz yer, basit bir şekilde çalıştığından ötürü güvenli bir parola kullanmanız şart. Bunun için [Zarola](https://zarola.oyd.org.tr) kullanmanızı hararetle öneririz.
- _timeout_ bağlantı zaman aşımının belirlendiği ayar kalemi, 300 saniye makul bir süre. - *timeout* bağlantı zaman aşımının belirlendiği ayar kalemi, 300 saniye makul bir süre.
- _method_ şifreleme algoritmanız bu bölümde belirlenir, tercihimiz aes-256-cfb. Bu algoritma [256 bitlik bir anahtar kullanarak simetrik](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) blok şifreleme yapan bir algoritma. Genel ihtiyaçlara yetecek kadar hızlı ve şu an desteklenen en güçlü algoritma. - *method* şifreleme algoritmanız bu bölümde belirlenir, tercihimiz aes-256-gcm[^AES][^GCM]. Bu algoritma [256 bitlik bir anahtar kullanarak simetrik](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) blok şifreleme yapan bir algoritma. Genel ihtiyaçlara yetecek kadar hızlı ve şu an desteklenen en güçlü algoritma.
Bu dosyayı kaydettikten sonra servis yöneticinize bir servis yazmanız gerekmekte. Örneğin, kullanımı yaygın olan _systemd_ için, aşağıdaki satırları `/usr/lib/systemd/system/shadowsocks.service` adında bir dosyaya kaydederek bu servisi oluşturabilirsiniz: Bu dosyayı kaydettikten sonra servis yöneticinize bir servis yazmanız gerekmekte. Örneğin, kullanımı yaygın olan _systemd_ için, aşağıdaki satırları `/usr/lib/systemd/system/shadowsocks.service` adında bir dosyaya kaydederek bu servisi oluşturabilirsiniz:
@ -52,14 +52,12 @@ Bu dosyayı kaydettikten sonra servis yöneticinize bir servis yazmanız gerekme
After=network.target After=network.target
[Service] [Service]
Type=simple Type=simple
User=nobody
Group=nobody
ExecStart=/usr/local/sbin/ssserver -c /etc/shadowsocks-config.json ExecStart=/usr/local/sbin/ssserver -c /etc/shadowsocks-config.json
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
``` ```
`shadowsocks.service` dosyasını oluşturduktan sonra kullanabileceğiniz aşagıdaki üç satır, shadowsocks sunucunuz için, systemd'ye sırasıyla _baslat_/_durdur_/_yenidenBaşlat_/_etkinleştir_/_devreDışıBırak_ komutlarını verir: `shadowsocks.service` dosyasını oluşturduktan sonra kullanabileceğiniz aşagıdaki beş satır, shadowsocks sunucunuz için, systemd'ye sırasıyla _başlat_/_durdur_/_yenidenBaşlat_/_etkinleştir_/_devreDışıBırak_ komutlarını verir:
``` ```
systemctl start shadowsocks.service systemctl start shadowsocks.service
systemctl stop shadowsocks.service systemctl stop shadowsocks.service
@ -67,42 +65,42 @@ systemctl restart shadowsocks.service
systemctl enable shadowsocks.service systemctl enable shadowsocks.service
systemctl disable shadowsocks.service systemctl disable shadowsocks.service
``` ```
Bir _servisi etkinleştimek_ sistem başladığında servisin de otomatik olarak başlamasını sağlar. Bu ayarı kapatmak için de servisi _devreDışıBirak_ırız Bir servisi *etkinleştimek* sistem başladığında servisin de otomatik olarak başlamasını sağlar. Bu ayarı kapatmak için de servisi *devreDışıBırak*ırız
### İstemci Tarafında ### İstemci Tarafında
Teknik olarak sunucu tarafındaki ayarların aynısı istemci için de geçerli fakat ayar dosyasınun şu şekilde değiştirilmesi gerekli: Teknik olarak sunucu tarafındaki ayarların aynısı istemci için de geçerli, iki ek satırla beraber istemci ayar dosyasını şu şekilde oluşturuyoruz:
```json ```json
{ {
"server":"<sunucunuzun ip adresi>", "server":"<sunucunuzun ip adresi>",
"server_port": 8388, "server_port": 8388,
"local_address":"<istemcinizin ip adresi>",
"local_port": 1080,
"password":"<güvenli bir parola>", "password":"<güvenli bir parola>",
"method":"aes-256-gcm"
"timeout":300, "timeout":300,
"method":"aes-256-cfb" "local_address":"<istemcinizin ip adresi>",
"local_port": 1080,
} }
``` ```
- _local_address_ kalemi istemciniz üzerinde, sslocal'ın (shadowsocks istemcinizin) dinleyecegi, programlarinizi yönlendireceginiz yerel adresin seçildiği yer. - *local_address* kalemi istemciniz üzerinde, sslocal'ın (shadowsocks istemcinizin) dinleyeceği, programlarınızı yönlendireceğiniz yerel adresin seçildiği yer.
- _local_port_ kalemi, istemci olarak kullandığınız bilgisayarda, localhost’ta hangi port üzerinden socks5 yayını yapacağınının seçildiği yer. Bazı istemciler bu ayarı kullanmamakta (android istemcisi, 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. - *local_port* kalemi, istemci olarak kullandığınız bilgisayarda, seçilen yerel ip adresinde socks5 için dinlenecek portun seçildiği yer. Bazı istemciler bu ayarı kullanmamakta (android istemcisi, 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 dosyasını \(`/lib/systemd/system/shadowsocks-client.service`) şu sekilde düzenleyebilirsiniz: Son olarak da systemd servis dosyasını \(`/lib/systemd/system/shadowsocks-client.service`) şu sekilde düzenleyebilir; isterseniz `useradd --no-create-home --system shadowsocks` ile servisi çalıştırmak için bir sistem kullanıcısı oluşturabilirsiniz:
``` ```
[Unit] [Unit]
After=network.target After=network.target
[Service] [Service]
Type=simple Type=simple
User=nobody
Group=nobody
ExecStart=/usr/local/sbin/sslocal -c /etc/shadowsocks-config.json ExecStart=/usr/local/sbin/sslocal -c /etc/shadowsocks-config.json
User=shadowsocks
Group=shadowsocks
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
``` ```
`systemctl [<start>|<stop>|<restart>|<enable>|<disable>] shadowsocks.service` `systemctl [start|stop|restart|enable|disable] shadowsocks-client.service`
Komutlarını istemci tarafında da kullanabilirsiniz. Komutlarını istemci tarafında da kullanabilirsiniz.
Ve hepsi bu kadar! Artık socks5 destekleyen yazılımlarınızı shadowsocks proxy’si üzerinden internete, farklı bir noktadan çıkartabilirsiniz. Örnek olarak Firefox, Thunderbird ve Telegram uygulamaları üzerinde bu proxy’i kullanabilirsiniz. Ve hepsi bu kadar! Artık socks5 destekleyen yazılımlarınızı shadowsocks proxy’si üzerinden internete, farklı bir noktadan çıkartabilirsiniz. Örnek olarak Firefox, Thunderbird ve Telegram uygulamaları üzerinde bu proxy’i kullanabilirsiniz.
@ -116,3 +114,6 @@ Android temelli cihazlar üzerinde de shadowsocks kullanılabilir. Android VPN a
Shadowsocks belki Çin Halk Cumhuriyeti devleti tarafından erişimi engellenmeye çalışılan, önlem geliştirilen ve kısıtlanan bir yazılım 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. Shadowsocks belki Çin Halk Cumhuriyeti devleti tarafından erişimi engellenmeye çalışılan, önlem geliştirilen ve kısıtlanan bir yazılım 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 bulunmakta ve aktif kullanıcı sayısı ile güçlü bir proxy yazılımı olan Shadowsocks kitlesel gözetime karşı etkili bir araçtır. Güncelliğini farklı dil ve platformlarda koruyan ciddi bir geliştirici kitlesi bulunmakta ve aktif kullanıcı sayısı ile güçlü bir proxy yazılımı olan Shadowsocks kitlesel gözetime karşı etkili bir araçtır.
[^AES]: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard
[^GCM]: http://en.wikipedia.org/wiki/Galois/Counter_Mode

Loading…
Cancel
Save