Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 17771|Yanıt: 1

[Web] nginx kullanıcının gerçek IP adresini elde eder

[Bağlantıyı kopyala]
Yayınlandı 19.05.2018 11:38:55 | | | |
Bazı arayüzlerimizde kullanıcı bilgisinde değişiklikler oluyor ve bu arayüzler sadece erişim tarafının bizi ayarlamasına izin veriyor, bu yüzden nginx'te bir IP beyaz listemiz var.

Erişim tarafının çıkış IP'si ile donatılmıştır.

İşte nginx erişimimizden kayıtlar.



nginx bizim $remote_addr'imizi gerçek IP olarak alır, ancak aslında $http_X_Forwarded_For kullanıcının gerçek IP'sidir, $remote_addr ise f5'in özel ağ adresidir (kullanıcı -->f5 --> nginx), bu yüzden nginx yanlış isim alır ve arayüzü ayarlayan kullanıcı her zaman 403 olur.

Çözüm:

HTTP modülünde plus


set_real_ip_from 10.10.10.122; nginx'e RealIP'nin değerini oradan almasını söyle
real_ip_header X-Real-IP; RealIP değerini saklayan değişkenin adı

Kutu!

Burada nginx raporuna şunu ekledikten sonra başlıyoruz:

nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26




Bu yüzden realip modülünü ekleyip nginx'i yeniden derliyoruz


1、CD /usr/local/nginx-1.6.3
2、./configure --prefix=/usr/cmcc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
3、make && make install

İpuçları:
1. set_real_ip_from, güvenilir ön proxy'nin elde ettiği gerçek kullanıcı IP'sini ifade eder

2. real_ip_header, alınan mesajın HTTP kısmının alındığı önceki proxy iletiminin kullanıcı IP'sini ifade eder

3. real_ip_recursive Kullanıcı IP'si alınana kadar (varsayılan kapalı) özyinelemeli olarak dışlanma mı yapılacak

İlk olarak, varsayılan olarak X-Real-IP olan bir http başlık adı belirt real_ip_header.

(1) Eğer 1 IP varsa, göndericinin IP'sinin set_real_ip_from tarafından belirlenen güvenilir IP listesinde olup olmadığını kontrol eder. Eğer güvenilirse, bu X-Real-IP'deki IP değerinin kullanıcının gerçek IP değeri olduğunu ve önceki ajan tarafından anlatıldığını düşünür, bu yüzden bu değeri kendi $remote_addr değişkenine atar; Eğer güvenilmezse, işlem görülmez ve $remote_addr hâlâ gönderenin IP adresi olur.

(2) Örneğin, X-Real-Ip birden fazla IP değerine sahipse, önceki proxy şu şekilde ayarlanır: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Elde ettiğiniz şey bir IP dizisi, yani real_ip_recursive değeri şu anda çok önemli. nginx, IP listesinde set_real_ip_from güven listesindeki IP'leri sağdan sola karşılaştıracak. Eğer real_ip_recursive hatalıysa, en sağdaki IP güvenilir IP olarak bulunduğunda, bir sonraki IP'nin (sağdaki ikinci) kullanıcının gerçek IP'si olduğu düşünülür. real_ip_recursive açıksa, güvenilmeyen bir IP bulana kadar sağdan sola karşılaştırılır. Sonra IP değerini $remote_addr'a da kopyalayın.

Kaynaklar:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html





Önceki:Discuz site haritaları otomatik olarak oluşturulur
Önümüzdeki:Web sitelerine IP erişimini engellemek için Alibaba Cloud yük dengeleme kullanın
Yayınlandı 18.06.2018 14:57:50 |
Bak, nginx gerçek IP'yi alıyor
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com