Misaliperver: Proxy Nedir, Squid İle Proxy Kurulumu


Merhaba umarım mutlusunuz ve sağlığınız yerindedir.

Vekil sunucu hedefteki sunucuya -mışmışız gibi bağlanmamızı sağlayan sunuculardır.  
Bir sunucuya sahibiz ve ismi STUN olsun diyelim. Bire bir bağlantı attığımızı düşündüğümüzde sunucunun gördüğü ip'nin 46.14.144.109 olduğu ve bununda bizim router adresimiz olduğunu düşünebiliriz. (Aradaki NAT'ları düşünmeyin :) )


201.2.240.12 ip adresli bir proxy sunucusu kurmuş olalım ve onun üzerinden istek atıyor olalım. Artık STUN server'ımız bizim ip'mizi 201.2.240.12 olarak görecektir.
Neden VPN değilde proxy server diye bir soru soracak olursanız, bunun kesin bir cevabını veremem sizlere. VPN benim tercih edeceğim yöntem olacaktır ama bazen müşterinizin veya hizmet almak istediğiniz servisin VPN ile ilgili bir stack'i olmayabilir, yahut mevcut vpn'ı internaldaki bütün sistemlere erişim sağladığı için sizi dahil etmek istemeyebilir. Haliyle daha güvensiz olduğunu kabul edebileceğimiz proxy yöntemine başvurulabilir. 

Proxy serverınızı cloud ortamda dışa kapalı-sadece internaldan erişilebilir veya on-premiste sadece belirli iplere izin veren bir kurgu ile çalıştırabilirsiniz.

En basit kurulum (ubuntu kurulumu);

sudo apt update
sudo apt install squid
Conf dosyasında biraz değişiklik yapalım;

sudo vi /etc/squid/squid.conf
sudo tail -f /var/log/squid/access.log
**/*/access.log
http_port 8001           //değiştir
http_access allow all    //değiştir
#http_access deny all    //değiştir
forwarded_for delete     //dosyanın bir yerine ekle
proxy portunu 8001 yaparız, http access heryerden erişime açarız, http header'daki forward yazısını siler proxy engelleyen yazılımların önüne geçebiliriz.

Proxy isteğinde paket başlığında proxy yapacağımız ibaresi proxy adrese iletilir. Normal şartlarda bunun bir proxy olduğunu ifade ederek istek atılır hedef bilgisayara, yine aynı paket başlığında. Burada forwarded_for delete yaparak, proxy-hedef sunucu arasındaki iletişimde bu bilginin paylaşılmasını engellemiş oluruz.


Şimdi dönelim bilgisayarımıza terminalden curl isteği atacağız diyelim; 

export http_proxy=http://201.2.240.12:8001
curl stun.example.com

Peki her http isteğinin proxy'den geçmesini ister misiniz? Zannetmiyorum, o yüzden environment olarak shelinize bu değeri eklemek yerine kullandığınız dildeki http agent'ınıza proxy bildirimi yaparak kullanabilirsiniz.
 

Bir sonraki yazımızda görüşmek üzere. Belki yarın belki yazın...

Yorumlar