revisions of isolation-check
Some checks failed
Runner Isolation Check / isolation-test (push) Failing after 1m44s

This commit is contained in:
Doc
2025-10-06 18:04:08 -04:00
parent 870f6a4273
commit baf66654fa
2 changed files with 66 additions and 2 deletions

View File

@@ -0,0 +1,63 @@
#!/bin/env bash
# docker network create \
# --driver bridge \
# --subnet 172.25.0.0/16 \
# --gateway 172.25.0.1 \
# --ipv6=false \
# isolated-net
#
# # --ipv6 \
# # --subnet fd00:25::/64
# # --gateway fd00:25::1
ISOLATEDPREFIX=172.25.0
ISOLATEDSUFFIX=.0
ISOLATEDSEGMENT=16
ISOLATEDNETv6=fd00:25::/64
DOCKERZONE=docker
HOMEZONE=home
FWCMD=$(which firewall-cmd)
# Decide if rules should persist after reboot/reload. "--permanent" or ""
MKPERMANENT=
LANSUBNETS="10.0.0.0/8 192.168.1.0/24"
# IPv4
# Allow traffic to own subnet by default
RULE="rule family=\"ipv4\" source address=\"${ISOLATEDPREFIX}${ISOLATEDSUFFIX}/${ISOLATEDSEGMENT}\" destination address=\"${ISOLATEDPREFIX}${ISOLATEDSUFFIX}/${ISOLATEDSEGMENT}\" accept"
$FWCMD $MKPERMANENT --zone=$DOCKERZONE --add-rich-rule="$RULE"
# Deny all other traffic to docker zone
RULE="rule family=\"ipv4\" source address=\"${ISOLATEDPREFIX}${ISOLATEDSUFFIX}/${ISOLATEDSEGMENT}\" drop"
$FWCMD $MKPERMANENT --zone=$DOCKERZONE --add-rich-rule="$RULE"
# Deny isolated segment to lan
for addr in $LANSUBNETS ; do
RULE="rule family=\"ipv4\" source address=\"${ISOLATEDPREFIX}${ISOLATEDSUFFIX}/${ISOLATEDSEGMENT}\" destination address=\"$addr\" drop"
$FWCMD $MKPERMANENT --zone=$HOMEZONE --add-rich-rule="$RULE"
done
# IPv6
# Dont bother allowing intra-subnet traffic for IPv6
# Deny IPv6 traffic to docker zone
RULE="rule family=\"ipv6\" source address=\"${ISOLATEDNETv6}\" drop"
$FWCMD $MKPERMANENT --zone=$DOCKERZONE --add-rich-rule="$RULE"
# Deny isolated ipv6 segment to LAN ipv6
for addr in $LAN6SUBNETS ; do
RULE="rule family=\"ipv4\" source address=\"${ISOLATEDPREFIX}${ISOLATEDSUFFIX}/${ISOLATEDSEGMENT}\" destination address=\"$addr\" drop"
$FWCMD $MKPERMANENT --zone=$HOMEZONE --add-rich-rule="$RULE"
done
$FWCMD --reload

View File

@@ -65,8 +65,9 @@ jobs:
- name: Check external IP - name: Check external IP
run: | run: |
echo "--- Checking external IP (https://ifconfig.me)" echo "--- Checking external IP (https://ifconfig.me)"
for addr in https://ifconfig.me ; do for ignore in errors ; do
curl $addr curl -4 icanhazip.com
curl -6 icanhazip.com
done done
- name: Outbound reachability sanity check - name: Outbound reachability sanity check