Skip to content

Instantly share code, notes, and snippets.

@vitorarantes
Last active June 27, 2025 09:39
Show Gist options
  • Save vitorarantes/4b43f696acdd9799a02db9f61e17bfce to your computer and use it in GitHub Desktop.
Save vitorarantes/4b43f696acdd9799a02db9f61e17bfce to your computer and use it in GitHub Desktop.
iptables-docker-cloudflare-only.sh
# !/bin/bash
######################
# DOCKER MODE RULES: #
######################
# ===> CLOUDFLARE-ONLY
iptables -D DOCKER-USER -p tcp -m multiport --dports 80,443 -j cloudflare-only
iptables -F cloudflare-only
iptables -N cloudflare-only
# filter cloudflare requests
iptables -I DOCKER-USER -p tcp -m multiport --dports 80,443 -j cloudflare-only
# https://www.cloudflare.com/ips
for i in `curl https://www.cloudflare.com/ips-v4`; do
iptables -A cloudflare-only -s $i -j RETURN;
done
iptables -A cloudflare-only -s 192.168.0.0/16 -j RETURN
iptables -A cloudflare-only -s 172.16.0.0/12 -j RETURN
iptables -A cloudflare-only -s 10.0.0.0/8 -j RETURN
# log and discard network packets
iptables -A cloudflare-only -j LOG --log-prefix "IPTABLES_CLOUDFLARE_ONLY"
iptables -A cloudflare-only -j DROP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment