Skip to content

Instantly share code, notes, and snippets.

@skarlcf
Created November 21, 2020 17:25
Show Gist options
  • Select an option

  • Save skarlcf/261c7c06ac90f3c78f7b1d6bd9619c45 to your computer and use it in GitHub Desktop.

Select an option

Save skarlcf/261c7c06ac90f3c78f7b1d6bd9619c45 to your computer and use it in GitHub Desktop.
Ruby script to get Amazon AWS Cloudfront IPs addresses and prepare nginx configuration (ngx_http_realip_module)
# frozen_string_literal: true
require 'bundler/inline'
require 'net/http'
gemfile do
source 'https://rubygems.org'
gem 'json'
gem 'pry'
end
AMAZON_IP_RANGES = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
puts "# Amazon AWS Cloudfront IPs from #{AMAZON_IP_RANGES}"
uri = URI(AMAZON_IP_RANGES)
res = Net::HTTP.get_response(uri)
raise(StandardError, "Can't get remote file") unless res.is_a?(Net::HTTPSuccess)
x = JSON.parse(res.body)
x['prefixes'].select { |e| e['service'] == 'CLOUDFRONT' }.map { |e| puts "set_real_ip_from #{e['ip_prefix']};" }
puts %{
# real_ip_header X-Forwarded-For;
# real_ip_recursive on;
}
@skarlcf

skarlcf commented Nov 21, 2020

Copy link
Copy Markdown
Author

Example result:

# Amazon AWS Cloudfront IPs from https://ip-ranges.amazonaws.com/ip-ranges.json
set_real_ip_from 120.52.22.96/27;
set_real_ip_from 205.251.249.0/24;
set_real_ip_from 180.163.57.128/26;
set_real_ip_from 204.246.168.0/22;
set_real_ip_from 205.251.252.0/23;
set_real_ip_from 54.192.0.0/16;
set_real_ip_from 204.246.173.0/24;
set_real_ip_from 54.230.200.0/21;
set_real_ip_from 120.253.240.192/26;
set_real_ip_from 116.129.226.128/26;
set_real_ip_from 99.86.0.0/16;
set_real_ip_from 205.251.200.0/21;
set_real_ip_from 223.71.71.128/25;
set_real_ip_from 13.32.0.0/15;
set_real_ip_from 120.253.245.128/26;
set_real_ip_from 13.224.0.0/14;
set_real_ip_from 70.132.0.0/18;
set_real_ip_from 210.51.40.0/24;
set_real_ip_from 13.249.0.0/16;
set_real_ip_from 205.251.208.0/20;
set_real_ip_from 65.9.128.0/18;
set_real_ip_from 58.254.138.0/25;
set_real_ip_from 54.230.208.0/20;
set_real_ip_from 116.129.226.0/25;
set_real_ip_from 52.222.128.0/17;
set_real_ip_from 64.252.128.0/18;
set_real_ip_from 205.251.254.0/24;
set_real_ip_from 54.230.224.0/19;
set_real_ip_from 71.152.0.0/17;
set_real_ip_from 216.137.32.0/19;
set_real_ip_from 204.246.172.0/24;
set_real_ip_from 120.52.39.128/27;
set_real_ip_from 118.193.97.64/26;
set_real_ip_from 223.71.71.96/27;
set_real_ip_from 130.176.0.0/16;
set_real_ip_from 54.240.128.0/18;
set_real_ip_from 205.251.250.0/23;
set_real_ip_from 180.163.57.0/25;
set_real_ip_from 52.46.0.0/18;
set_real_ip_from 223.71.11.0/27;
set_real_ip_from 52.82.128.0/19;
set_real_ip_from 54.230.0.0/17;
set_real_ip_from 54.230.128.0/18;
set_real_ip_from 54.239.128.0/18;
set_real_ip_from 36.103.232.128/26;
set_real_ip_from 52.84.0.0/15;
set_real_ip_from 111.51.66.0/24;
set_real_ip_from 143.204.0.0/16;
set_real_ip_from 144.220.0.0/16;
set_real_ip_from 120.52.153.192/26;
set_real_ip_from 119.147.182.0/25;
set_real_ip_from 120.232.236.0/25;
set_real_ip_from 54.182.0.0/16;
set_real_ip_from 58.254.138.128/26;
set_real_ip_from 120.253.245.192/27;
set_real_ip_from 54.239.192.0/19;
set_real_ip_from 120.52.12.64/26;
set_real_ip_from 99.84.0.0/16;
set_real_ip_from 52.124.128.0/17;
set_real_ip_from 204.246.164.0/22;
set_real_ip_from 13.35.0.0/16;
set_real_ip_from 204.246.174.0/23;
set_real_ip_from 36.103.232.0/25;
set_real_ip_from 119.147.182.128/26;
set_real_ip_from 118.193.97.128/25;
set_real_ip_from 120.232.236.128/26;
set_real_ip_from 204.246.176.0/20;
set_real_ip_from 65.8.0.0/16;
set_real_ip_from 65.9.0.0/17;
set_real_ip_from 120.253.241.160/27;
set_real_ip_from 64.252.64.0/18;
set_real_ip_from 13.113.196.64/26;
set_real_ip_from 13.113.203.0/24;
set_real_ip_from 52.199.127.192/26;
set_real_ip_from 13.124.199.0/24;
set_real_ip_from 3.35.130.128/25;
set_real_ip_from 52.78.247.128/26;
set_real_ip_from 13.233.177.192/26;
set_real_ip_from 15.207.13.128/25;
set_real_ip_from 15.207.213.128/25;
set_real_ip_from 52.66.194.128/26;
set_real_ip_from 13.228.69.0/24;
set_real_ip_from 52.220.191.0/26;
set_real_ip_from 13.210.67.128/26;
set_real_ip_from 13.54.63.128/26;
set_real_ip_from 99.79.169.0/24;
set_real_ip_from 18.192.142.0/23;
set_real_ip_from 35.158.136.0/24;
set_real_ip_from 52.57.254.0/24;
set_real_ip_from 13.48.32.0/24;
set_real_ip_from 18.200.212.0/23;
set_real_ip_from 52.212.248.0/26;
set_real_ip_from 3.10.17.128/25;
set_real_ip_from 3.11.53.0/24;
set_real_ip_from 52.56.127.0/25;
set_real_ip_from 15.188.184.0/24;
set_real_ip_from 52.47.139.0/24;
set_real_ip_from 18.229.220.192/26;
set_real_ip_from 54.233.255.128/26;
set_real_ip_from 3.231.2.0/25;
set_real_ip_from 3.234.232.224/27;
set_real_ip_from 3.236.169.192/26;
set_real_ip_from 3.236.48.0/23;
set_real_ip_from 34.195.252.0/24;
set_real_ip_from 34.226.14.0/24;
set_real_ip_from 13.59.250.0/26;
set_real_ip_from 18.216.170.128/25;
set_real_ip_from 3.128.93.0/24;
set_real_ip_from 3.134.215.0/24;
set_real_ip_from 52.15.127.128/26;
set_real_ip_from 52.52.191.128/26;
set_real_ip_from 34.216.51.0/25;
set_real_ip_from 34.223.12.224/27;
set_real_ip_from 34.223.80.192/26;
set_real_ip_from 35.162.63.192/26;
set_real_ip_from 35.167.191.128/26;
set_real_ip_from 44.227.178.0/24;
set_real_ip_from 44.234.108.128/25;
set_real_ip_from 44.234.90.252/30;

# real_ip_header X-Forwarded-For;
# real_ip_recursive on;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment