Skip to content

Instantly share code, notes, and snippets.

@Naicigam28
Forked from dduvnjak/add_cloudflare_ips.sh
Last active August 30, 2022 12:56
Show Gist options
  • Save Naicigam28/9fd3103c2c448747e8a241ecc5e9f5da to your computer and use it in GitHub Desktop.
Save Naicigam28/9fd3103c2c448747e8a241ecc5e9f5da to your computer and use it in GitHub Desktop.
Add CloudFlare IPv4 and IPv6 addresses to an EC2 Security Group using awscli
#!/bin/bash
wget https://www.cloudflare.com/ips-v4
wget https://www.cloudflare.com/ips-v6
# set the security group ID
SG_ID="sg-000000000"
# iterate over the IP ranges in the downloaded file
# and allow access to ports 80 and 443
for p in $(cat ips-v4); do
aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges="[{CidrIp=$p,Description='Cloudflare'}]"
aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,IpRanges="[{CidrIp=$p,Description='Cloudflare'}]"
done
for p in $(cat ips-v6); do
aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,Ipv6Ranges="[{CidrIpv6=$p,Description='Cloudflare'}]"
aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,Ipv6Ranges="[{CidrIpv6=$p,Description='Cloudflare'}]"
done
rm ips-v4
rm ips-v6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment