实践–iptables设置白名单只允许Cloudflare访问Docker容器

实践操作前,请参考下面文章

方法1: 批量添加 cloudflare ips-v4iptables 白名单

# 清空整个DOCKER-USER组
iptables -F DOCKER-USER

# 只允许cloudflare代理源站其他都DROP
for i in `curl https://www.cloudflare.com/ips-v4`;
    do iptables -I DOCKER-USER -p tcp -m multiport --dports http,https -s $i -j ACCEPT;
done

iptables -A DOCKER-USER -p tcp -m multiport --dports http,https -j DROP
iptables -A DOCKER-USER -j RETURN

# 显示刚设置的DOCKER-USER组规则
iptables  -nvL   DOCKER-USER

方法2: 使用 ipset 集合管理白名单,更加灵活

# 清空整个DOCKER-USER组
iptables -F DOCKER-USER

# 允许白名单IPSET集访问DOCKER-USER组,其他都 DROP
iptables -I DOCKER-USER -m set --match-set whitelist src -p tcp -j ACCEPT
iptables -A DOCKER-USER -p tcp -m multiport --dports http,https -j DROP
iptables -A DOCKER-USER -j RETURN
  • 需要预先建立 whitelist 白名单集合
apt install ipset -y                 # 先安装ipset软件

ipset create whitelist hash:net maxelem 1000000    # 白名单
ipset add  whitelist 172.17.0.0/24   # 增加一条ip段记录

for i in `curl https://www.cloudflare.com/ips-v4`;
    do ipset add  whitelist $i ; done

ipset list whitelist                 # 查看白名单
ipset destroy whitelist              # 销毁白名单

# 其他命令:  添加测试IP  白名单允许多端口  黑名单全 DROP
iptables -I DOCKER-USER -s 自己IP地址  -p tcp -m multiport --dport 80,443,8000,9000  -j ACCEPT
iptables -I DOCKER-USER -m set --match-set whitelist src -p tcp -m multiport --dport 80,443,8000,9000 -j ACCEPT
iptables -I DOCKER-USER -m set --match-set blacklist src -p tcp -j DROP

注意: ipset 白名单是保存在内存中,重启系统后丢失,会导致 iptables 恢复 DOCKER-USER 相关命令无效

# 重启前先备份 whitelist 白名单
ipset save whitelist -f whitelist.txt

# 重启服务器后,执行恢复 whitelist 白名单
ipset restore -f whitelist.txt

# 重新建立 DOCKER-USER 组规则
iptables -F DOCKER-USER
iptables -I DOCKER-USER -m set --match-set whitelist src -p tcp -j ACCEPT
iptables -A DOCKER-USER -p tcp -m multiport --dports http,https -j DROP
iptables -A DOCKER-USER -j RETURN

相关推荐: Linux 命令 dd 学习

dd if=/dev/YOUR-DEVICE conv=sync,noerror bs=64K | gzip -c > /home/portaj/macbook.img.gz gunzip -c /home/portaj/macbook.img.gz |…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论