Skip to main content

How to forward the real client IP to a webserver NGINX behind a GCP Load Balancer

Purpose: We want to protect the origin server from being hit directly over the internet so we make sure only CDN/WAF connect to the backend also known as Origin Protection.

Scenario: 




CDN+WAF---->GCP Load Balancer --->VM Nginx


Solution:

Modify Nginx Configuration

...

location / { 
    allow 100.100.100.0/24; //Change with your CDN/WAF source IP that connects to the backend.
    deny all;
}

...

set_real_ip_from 1.1.1.1/32; // Change with your LB Public IP address
set_real_ip_from 130.211.0.0/22; // Private IP range for GCP Load Balancers
set_real_ip_from 35.191.0.0/16; //Private IP range for GCP Load Balancers
real_ip_header X-Forwarded-For; 
real_ip_recursive on;

...

Save and restart the services.

Check the Log

tail -f /var/log/nginx/access.log

tail -f /var/log/nginx/error.log


If there is client over the internet hit directly IP the load balancer, it will be blocked by Nginx (403 Forbidden)
you should see that the client source IP that is not whitelisted in the Nginx config will be denied as well.



References: 


Comments

Popular posts from this blog

Troubleshooting WAF, CDN, and Load balancer

 Troubleshooting issues involving a Web Application Firewall (WAF), Content Delivery Network (CDN), and Load Balancer (LB) can be complex. Here is a step-by-step guide, including testing methods and relevant commands to isolate problems at each level. ### Step 1: Check Basic Connectivity 1. **Ping the Website**:    ```sh    ping example.com    ``` 2. **Check DNS Resolution**:    ```sh    nslookup example.com    ``` ### Step 2: Verify Load Balancer 1. **Direct Access to Load Balancer**:    Modify `/etc/hosts` to bypass CDN and WAF, pointing directly to the load balancer’s IP.    ```sh    sudo nano /etc/hosts    ```    Add the line:    ```    LB_IP example.com    ```     2. **Test HTTP Response**:    ```sh    curl -I http://example.com    ```    Check headers and status code to verify the load bal...

Soal dan pembahasan LKSN ITNSA

Berikut adalah koleksi soal-soal ITNSA dan beberapa website yang memberikan pembahasan pada event perlombaaan LKS SMK Nasional bidang lomba IT Network Systems Administration. 2014 Palembang Di tahun ini ada 1 soal packet tracer. Di website dibawah ini diberikan juga cara pembahasannya. https://agussas.wordpress.com/2015/04/02/review-soal-lks-nasional-it-network-23-packet-tracer-challenge/ Semua soal:  https://www.dropbox.com/sh/l90zyke2ib5msgv/AAA3kPOFo-zEn4wPOW4a3iMwa?dl=0 dan https://drive.google.com/file/d/18lDhtMjAnPAhkfOJ6uFHsC5j6ycg3K4I/view Pembahasan juga dalam bentuk video di youtube:  https://www.youtube.com/watch?v=8QML594nQBU 2015 Banten Pembahasan:   https://www.youtube.com/watch?v=quDbpC2xSfQ Soal:  https://drive.google.com/file/d/1B09IYfdoGENBL3txSQodpptG1zdQxBWI/view 2016 Malang Soal:   https://drive.google.com/file/d/13-2bRtb5IXO9vxAhLfhghZbDXeUzD0FI/view Pembahasan:   https://www.youtube.com/watch?v=zmUSUZguH24 20...

LKS SMK Cloud Computing

 Lomba Kompetensi Siswa SMK merupakan salah satu kegiatan rutin yang dilakukan tiap tahun, mulai dari tingkat kota/kabupaten sampai Internasional (Asean, WorldSkills Competiton). Untuk kali ini akan membahas salah satu bidang yang belum terlalu lama yaitu cloud computing, tentu dunia cloud computing sudah lama beredar, dan AWS salah satu leadernya, untuk kegiatan kompetisi lomba cloud computing ini mulai dirintis sejak 2017 di worldskills abu dhabi, saat itu masih dalam proses demo, hingga pada tahun 2019 menjadi salah satu bidang resmi di worlskills kazan. AWS sendiri sebetulnya punya kegiatan kompetisi sendiri juga seperti Hackathon dan AWS Gaming Day. Pada blogpost ini akan berusaha mencari informasi tentang cloud computing kompetisi khususnya LKS SMK seperti kisi-kisi. Berikut adalah kurasi link-link yang bermanfaat untuk belajar,  terima kasih juga pada penulis di website-website berikut:  Kisi-kisi LKS di salah satu Provinsi https://github.com/stmj-dev/Soal-Dan-Kisi...