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.
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:
İ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.
printf 'KULLANICI:PAROLA' | base64
# S1VMTEFOSUNJOlBBUk9MQQ==
printf 'S1VMTEFOSUNJOlBBUk9MQQ==' | base64 -d
# KULLANICI:PAROLASOCKS5’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.
| Ölçüt | Kullanıcı adı / parola | IP beyaz liste |
|---|---|---|
| Neyi kanıtlar? | Bilginin bilindiğini | Bağlantının belirli bir adresten geldiğini |
| Ağ değişince | Çalışmaya devam eder | Erişim kesilir; liste güncellenmeli |
| Paylaşılan NAT arkasında | Yalnızca bilgiyi bilen bağlanır | Aynı genel adresi kullanan herkes bağlanabilir |
| Yazılım desteği | Proxy kimlik doğrulamasını desteklemeli | Ek destek gerekmez |
| Sızma yolu | Kod deposu, kayıt dosyası, komut geçmişi, ekran paylaşımı | Gizli bilgi yok; risk aynı ağı paylaşanlardır |
| Uygun ortam | Dizü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;
.envdosyasını.gitignoreiçine ekleyin. - Komut satırına dikkat edin.
curlkı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%25yazı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-Authorizationbaş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.
# Satır başındaki # işareti yorumdur
proxy = "http://PROXY_ADRESI:PORT"
proxy-user = "KULLANICI:PAROLA"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
| Belirti | Olası 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 407 | Paroladaki özel karakter kodlanmadı ya da beklenen yöntem Basic değil | Karakterleri URL kodlamasıyla yazın; Proxy-Authenticate başlığındaki yönteme bakın. |
Python’da Tunnel connection failed: 407 | HTTPS isteğinin CONNECT aşamasında doğrulama başarısız | Proxy URL’sindeki kullanıcı adı ve parolayı kontrol edin. |
| SOCKS5 bağlantısı el sıkışmadan sonra kapanıyor | RFC 1929 doğrulaması başarısız | Kimlik bilgilerini SOCKS5 Kontrol aracıyla sınayın. |
| Beyaz listeli bağlantı reddediliyor ya da zaman aşımına uğruyor | Genel IP adresiniz değişti | Gü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