Ağ Güvenliği5 dk okuma

Proxy kimlik doğrulama: kullanıcı adı/parola ve IP beyaz liste

Bir proxy, bağlantının kimden geldiğini iki yolla doğrular: bağlantıyla gönderilen kullanıcı adı ve parolayla ya da bağlantının geldiği IP adresinin önceden tanımlı bir izin listesinde olmasıyla. İkisinin güçlü ve zayıf yanları birbirinin tersidir.

FİG. 01 — İstemci ile proxy arasındaki mesaj sırası

Kullanıcı adı ve parola, bilgiyi bilen herkesin her ağdan bağlanmasına izin verir; taşınabilirdir ama bilginin kendisi sızabilir. IP beyaz liste (allow-list) ise hiçbir gizli bilgi taşımaz, yalnızca belirli adreslerden gelen bağlantıları kabul eder; adresiniz değiştiğinde erişim kesilir, adresi başkalarıyla paylaşıyorsanız onlara da kapı açılır. Doğru seçim, nereden ve hangi yazılımla bağlandığınıza bağlıdır.

HTTP proxy’de kullanıcı adı ve parola nasıl gider?

Kimlik bilgisi olmadan gelen bir isteğe proxy 407 Proxy Authentication Required yanıtı verir ve Proxy-Authenticate başlığında hangi yöntemi beklediğini bildirir (RFC 9110 (yeni sekmede açılır)). İstemci isteği Proxy-Authorization başlığıyla tekrarlar. En yaygın yöntem olan Basic (RFC 7617 (yeni sekmede açılır)), KULLANICI:PAROLA dizesini Base64 ile kodlayıp gönderir. HTTPS isteklerinde bu başlık, TLS başlamadan önceki CONNECT isteğinde yer alır:

CONNECT ile Basic kimlik doğrulama
İstemci → proxy
CONNECT api.ipify.org:443 HTTP/1.1
Host: api.ipify.org:443

Proxy → istemci
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="proxy"

İstemci → proxy (ikinci deneme)
CONNECT api.ipify.org:443 HTTP/1.1
Host: api.ipify.org:443
Proxy-Authorization: Basic S1VMTEFOSUNJOlBBUk9MQQ==

Proxy → istemci
HTTP/1.1 200 Connection established
(bundan sonra TLS el sıkışması tünelin içinde başlar)

Birçok istemci ilk 407’yi beklemeden Basic başlığını doğrudan ilk istekte gönderir; curl --proxy-user varsayılan olarak böyle çalışır. Kurumsal ağlardaki proxy’ler Digest, NTLM veya Negotiate gibi başka yöntemler isteyebilir; curl bunlar için --proxy-digest, --proxy-ntlm ve uygun yöntemi kendisi seçen --proxy-anyauth seçeneklerini sunar.

Base64 şifreleme değildir

Base64 yalnızca bir kodlamadır; anahtarı yoktur ve herkes geri çevirebilir. S1VMTEFOSUNJOlBBUk9MQQ== dizesi tek komutla KULLANICI:PAROLA olur. Proxy bağlantısının kendisi TLS ile sarılmadıkça (HTTPS proxy) bu başlık sizinle proxy arasındaki hatta okunabilir. Hedef sitenin HTTPS ile korunması bu hattı kapsamaz.

Kodlama ve geri çevirme
printf 'KULLANICI:PAROLA' | base64
# S1VMTEFOSUNJOlBBUk9MQQ==

printf 'S1VMTEFOSUNJOlBBUk9MQQ==' | base64 -d
# KULLANICI:PAROLA

SOCKS5’te kullanıcı adı ve parola

SOCKS5’te istemci, el sıkışmanın başında desteklediği yöntemleri listeler; proxy kullanıcı adı ve parola yöntemini (02) seçerse RFC 1929 (yeni sekmede açılır) alt müzakeresi başlar. Kullanıcı adı ve parola birer uzunluk baytıyla, yani en fazla 255’er bayt olarak ve açık metin gönderilir. Proxy 00 dönerse doğrulama başarılıdır; başka her değerde bağlantıyı kapatır. Protokolün bayt düzeyindeki akışı SOCKS5 proxy nedir? rehberinde.

IP beyaz liste nasıl çalışır?

Beyaz listede proxy, gelen TCP bağlantısının kaynak adresine bakar; adres listedeyse bağlantıyı kabul eder, değilse reddeder. Başlık, parola ya da ek bir el sıkışma yoktur. Bu yüzden proxy kimlik doğrulamasını hiç desteklemeyen yazılımlar da çalışır. Zayıf noktası, “bu adres” ile “bu kişi” arasındaki bağın sanıldığından gevşek olmasıdır:

  • Dinamik ev adresleri: Ev bağlantılarının genel IPv4 adresi modem yeniden başladığında ya da sağlayıcı adres yenilediğinde değişebilir. Adres değişince erişim kesilir ve liste güncellenmelidir.
  • Paylaşılan NAT: Ofis, okul, kafe veya site ağında herkes aynı genel adresle internete çıkar. Bu adresi listeye eklemek, o ağdaki herkese proxy’nizi açmak demektir.
  • Mobil operatör adresleri: Mobil veride genel IPv4 adresi çoğunlukla taşıyıcı sınıfı NAT ile çok sayıda abone arasında paylaşılır ve sık değişir; beyaz liste için uygun değildir. Ayrıntı: Mobil proxy ve CGNAT.
  • IPv6 geçici adresleri: Birçok işletim sistemi giden bağlantılarda belirli aralıklarla değişen geçici IPv6 adresleri kullanır; tek bir IPv6 adresini listeye eklemek bu yüzden kısa süre işe yarayabilir.
  • İdeal durum: Sabit genel adresi olan bir sunucu (VPS, şirket sunucusu). Adres değişmez ve yalnızca sizin kontrolünüzdedir.
İki yöntemin karşılaştırması.
ÖlçütKullanıcı adı / parolaIP beyaz liste
Neyi kanıtlar?Bilginin bilindiğiniBağlantının belirli bir adresten geldiğini
Ağ değişinceÇalışmaya devam ederErişim kesilir; liste güncellenmeli
Paylaşılan NAT arkasındaYalnızca bilgiyi bilen bağlanırAynı genel adresi kullanan herkes bağlanabilir
Yazılım desteğiProxy kimlik doğrulamasını desteklemeliEk destek gerekmez
Sızma yoluKod deposu, kayıt dosyası, komut geçmişi, ekran paylaşımıGizli bilgi yok; risk aynı ağı paylaşanlardır
Uygun ortamDizüstü bilgisayar, değişken ağlar, CI ortamıSabit IP’li sunucu

Bu sitedeki ürünlerde durum

Türkiye ISP ve Türkiye mobil paketlerinin sipariş formları müşteriden bir kullanıcı adı ve parola ister; bağlantı bu bilgilerle doğrulanır. IP beyaz liste ile yetkilendirme ise satıcı beyanına göre Mobil Proxy paketlerinde ve yurt dışı Rotating Mobil Proxy paketlerinde sunulur. Diğer ürünlerde bu yönteme güvenerek plan yapmayın; ihtiyacınız varsa satın almadan önce ürün sayfasını okuyun ve satıcıya sorun.

Kimlik bilgilerini güvenle saklamak

  • Kaynak koda yazmayın. Proxy adresini ve parolayı ortam değişkeninden veya bir gizli bilgi yöneticisinden okuyun; .env dosyasını .gitignore içine ekleyin.
  • Komut satırına dikkat edin. curl kılavuzunun da belirttiği gibi komut satırındaki parola, işlem listesinde kısa süre görünebilir ve kabuk geçmişine yazılır. Tekrarlanan işlerde izinleri kısıtlanmış bir yapılandırma dosyası kullanın.
  • Özel karakterleri kodlayın. Proxy URL’sindeki parolada @ varsa %40, : varsa %3A, / varsa %2F, # varsa %23, % varsa %25 yazın. Çoğu istemci bu kodlamayı bağlanmadan önce çözer.
  • Kayıtları temizleyin. Ayrıntılı (verbose) çıktılar ve hata ayıklama kayıtları Proxy-Authorization başlığını içerebilir; paylaşmadan önce bu satırları silin.
  • Erişimi ayırın. Mümkünse ekipler veya ortamlar için ayrı kimlik bilgileri kullanın; bir sızıntının etkisi küçülür.
proxy.conf — curl yapılandırma dosyası
# Satır başındaki # işareti yorumdur
proxy = "http://PROXY_ADRESI:PORT"
proxy-user = "KULLANICI:PAROLA"
Dosyayı yalnızca size açık tutup curl ile kullanmak
chmod 600 proxy.conf
curl -K proxy.conf "https://api.ipify.org?format=json"

Parolayı değiştirmek ve eski bilgiyi kapatmak

Ekipten biri ayrıldığında, parola bir kayıt dosyasında ya da kod deposunda göründüğünde veya belirli aralıklarla kimlik bilgisini yenileyin. Sıra önemlidir: yeni bilgiyi oluşturun, uygulamalara dağıtın, çalıştığını doğrulayın, ardından eskisini kapatın. Bir depoya gönderilmiş parola, commit silinse bile ele geçmiş sayılmalıdır; geçmişi temizlemek yetmez, parolanın kendisini değiştirin. Proxy parolasının nasıl değiştirileceği ürüne ve müşteri paneline göre değişir; panelde bir seçenek göremiyorsanız destek kanalından sorun.

407 ve diğer hata belirtileri

Kimlik doğrulama hatalarında ilk bakılacak yerler.
BelirtiOlası nedenİlk kontrol
HTTP 407 ve Proxy-Authenticate başlığıKimlik bilgisi gönderilmedi ya da hatalıKullanıcı adı ve parolayı yeniden yazın; istemcinin proxy kimlik doğrulamasını desteklediğini doğrulayın.
Parola doğru olduğu hâlde 407Paroladaki özel karakter kodlanmadı ya da beklenen yöntem Basic değilKarakterleri URL kodlamasıyla yazın; Proxy-Authenticate başlığındaki yönteme bakın.
Python’da Tunnel connection failed: 407HTTPS isteğinin CONNECT aşamasında doğrulama başarısızProxy URL’sindeki kullanıcı adı ve parolayı kontrol edin.
SOCKS5 bağlantısı el sıkışmadan sonra kapanıyorRFC 1929 doğrulaması başarısızKimlik bilgilerini SOCKS5 Kontrol aracıyla sınayın.
Beyaz listeli bağlantı reddediliyor ya da zaman aşımına uğruyorGenel IP adresiniz değiştiGüncel adresinizi IP Sorgulama ile görün ve listeyi güncelleyin.

Ne zaman, hangisi?

  • Farklı ağlardan çalışıyorsanız (dizüstü, ev, seyahat, CI): kullanıcı adı ve parola.
  • Sabit IP’li bir sunucudan çalışıyorsanız ve ürün destekliyorsa: IP beyaz liste; parolayı yapılandırmada taşımazsınız.
  • Paylaşılan bir ağdaysanız (ofis, kafe, mobil veri): beyaz liste kullanmayın; ağdaki herkes yetkilendirilmiş olur.
  • Her durumda: sizinle proxy arasındaki hattın, proxy bağlantısı TLS ile sarılmadıkça şifresiz olduğunu unutmayın. Genel güvenlik önlemleri için Proxy kullanırken güvenlik rehberine bakın.

Sık sorulanlar

Akılda kalan sorular

02Okumaya devam

Devamını okuyun

03Konuyla bağlantılı

Ürünler ve araçlar

Ürün sayfaları paketleri ve fiyatları gösterir; araçlar ise elinizdeki bir proxy’yi ya da adresi sınamanız içindir.

Ürünler

Araçlar

  • SOCKS5 Kontrol

    SOCKS5 el sıkışmasını, kullanıcı adı / parola doğrulamasını ve çıkış adresini sınayın.

  • HTTP Proxy Kontrol

    HTTP proxy’nizin düz istekleri ve HTTPS tünelini (CONNECT) doğru taşıyıp taşımadığını ölçün.

  • IP Sorgulama

    Genel IP adresinizi, ağ sağlayıcınızı (ASN) ve ters DNS kaydınızı görün.