Network gezintilerimizi daha anonim yapmak ve yatıgımız reguest isteklerinde ip adresimizi gizlemek için socks5 && http proxy kullanılmaktadır. Bu yazımızda daha önce kurmuş oldugumuz WireGuard Server ve Client sunucularını da kullanarak kendi http / Socks5 Proxmizi oluşturacagız.
1 - Paket listelerinizi güncellemek ve Squid Proxy'yi yüklemek için aşağıdaki komutları root olmayan bir kullanıcı olarak çalıştırarak başlayın:
sudo apt update
sudo apt install squid
yazarak repositororimizi ekliyoruz. Sonrasında ise apt install squid
komutuyla servisimizin yükliyoruz.
Squid otomatik olarak bir arka plan hizmeti kuracak ve kurulduktan sonra başlayacaktır. Hizmetin düzgün çalışıp çalışmadığını kontrol edebilirsiniz:
systemctl status squid.service
Yüklemiş oldugumuz servisin durum bilgisini görüntülüyoruz.
[Interface]
Output
● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-12-15 21:45:15 UTC; 2min 11s ago
Varsayılan olarak Squid, hiçbir istemcinin bu sunucunun dışından kendisine bağlanmasına izin vermez. Bunu etkinleştirmek için, /etc/squid/squid.conf. nanoOnu veya favori metin düzenleyicinizde açın :
[/etc/squid/squid.conf]
. . .
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
include /etc/squid/conf.d/*
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
. . .
Bundan mevcut davranışı görebilirsiniz – localhos tizin veriliyor; diğer bağlantılar değildir. deny all Bu kuralların sırayla ayrıştırıldığını unutmayın; dolayısıyla kuralı bu yapılandırma bloğunun altında tutmak iyi bir fikirdir . Bu kuralı herkesin proxy sunucunuza bağlanmasını sağlayacak şekilde değiştirebilirsiniz allow all, ancak muhtemelen bunu yapmak istemezsiniz.
http_access allow localhostBunun yerine yukarıya kendi IP adresinizi içeren bir satır ekleyebilirsiniz :
[/etc/squid/squid.conf]
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
include /etc/squid/conf.d/*
# Example rule allowing access from your local networks.
acl localnet src your_ip_address
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access allow localhost
( HTTP | acl, )
acl, izin politikaları için yaygın olarak kullanılan bir terim olan Erişim Denetim Listesi anlamına gelir
( HTTP | localnet )
localnet bu durumda ACL'nizin adıdır.
( HTTP | scr )
src , bu ACL kapsamında isteğin kaynaklanacağı yerdir, yani IP adresiniz.
Http Server Yapılandırmasını tamamladık sonraki adımda Socs55 Servis yapılandırmasını yapacagız.
1. Dante Sunucusunu Kurun
Paket listelerinizi güncellemek ve Dante'yi yüklemek için aşağıdaki komutları root olmayan bir kullanıcı olarak çalıştırarak başlayın:
sudo apt update
sudo apt install dante-server
Dante ayrıca otomatik olarak bir arka plan hizmeti kuracak ve kurulduktan sonra başlayacaktır. Ancak, tüm özellikleri devre dışı bırakılmış olarak gönderildiğinden, ilk çalıştırıldığında bir hata mesajı vererek sorunsuz bir şekilde çıkmak üzere tasarlanmıştır. Bunu şu komutu kullanarak doğrulayabilirsiniz systemctl:
systemctl status danted.service
[Output]
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2021-12-15 21:48:22 UTC; 1min 45s ago
Docs: man:danted(8)
man:danted.conf(5)
Main PID: 14496 (code=exited, status=1/FAILURE)
Dec 15 21:48:21 proxies systemd[1]: Starting SOCKS (v4 and v5) proxy daemon (danted)...
Dec 15 21:48:22 proxies systemd[1]: Started SOCKS (v4 and v5) proxy daemon (danted).
Dec 15 21:48:22 proxies danted[14496]: Dec 15 21:48:22 (1639604902.102601) danted[14496]: warning: checkconfig(): no socks authentication methods enabled. This means all socks requests will be blocked after negotiation. Perhaps this is not intended?
Dante'nin hizmetlerini başarıyla başlatmak için bunları yapılandırma dosyasında etkinleştirmeniz gerekir. Dante'nin yapılandırma dosyası varsayılan olarak /etc/danted.conf. Bu dosyayı veya favori metin düzenleyicinizi kullanarak açarsanız nano, tümü devre dışı bırakılmış uzun bir yapılandırma seçenekleri listesi göreceksiniz.
Burada Varsayılan konfigurasyon dosyası üzerinde satır satır gezerek konfigurasyonları değiştirebilirsiniz fakaz biz dosyayı nediren yapılandıracagız.
sudo rm /etc/danted.conf
Artık dosyamız bir metin düzenleyiciyle açtığınızda, dosya yoksa otomatik olarak oluşturulur; bu nedenle nano veya vim leyicinizi kullanarak artık boş bir yapılandırma dosyası edinmelisiniz:
sudo nano /etc/danted.conf
[/etc/danted.conf]
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
# The listening network interface or address.
internal: 0.0.0.0 port=1080
# The proxying network interface or address.
external: eth0
# socks-rules determine what is proxied through the external interface.
socksmethod: username
# client-rules determine who can connect to the internal interface.
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
Burada Dikkat etmemiz gereken kısım Servisimizin The proxying network interface or address. kısmında daha önceki makalemizde belirtmiş olduğumuz wireguard servisimizin ethernet bacagını belirmek.
Artık, SOCKS için ortak bir kural olan, 1080 numaralı bağlantı noktasında çalışan, kullanılabilir bir SOCKS sunucu yapılandırmanız var. Ayrıca bu yapılandırma dosyasının geri kalanını satır satır da ayırabilirsiniz:
[logoutput]
logoutputDante'nin bu durumda normal sistem günlüğünü kullanarak bağlantıları nasıl günlüğe kaydedeceğini ifade eder
[user.privilegedroot]
user.privilegedrootDante'nin izinleri kontrol etmek için izinlere sahip olmasına izin verir
[user.unprivileged]
user.unprivilegeddaha ayrıntılı izinler verilmediğinde bu gereksiz olduğundan, sunucuya ayrıcalıksız bir kullanıcı olarak çalışması için herhangi bir izin vermez
[internal]
internalbağlantı ayrıntıları, hizmetin üzerinde çalıştığı bağlantı noktasını ve hangi IP adreslerinin bağlanabileceğini belirtir
[externaleth0]
externaleth0bağlantı ayrıntıları, çoğu sunucuda varsayılan olarak giden bağlantılar için kullanılan ağ arayüzünü belirtir
Faydalı bir konu olması dileğimle, azimli günler dilerim. (muhammet)