"Firewall"
- GCP VM 的 SSH 與 RDP 改走 IAP 的實測紀錄:盤點、救援入口、IAP 規則與 IAM、停用舊規則驗證、OS Login 啟用與移除外部 IP
要把 GCP 專案裡對 0.0.0.0/0 開放 22 與 3389 port 的預設規則換成只放行 IAP,想照一次實跑過的順序做、看每一步沒做或換一種做法的結果時讀;也用在停用舊規則之後連不上、OS Login 啟用後有人登不進去,或拿掉外部 IP 之後要確認出站走了 Cloud NAT 的時候
- 源站防火牆只放行 Cloudflare 位址的實測紀錄:firewalld、Docker 發佈的連接埠、DOCKER-USER、nftables 表與出站 DNS
要在 Linux 主機上設定只放行 Cloudflare 位址的防火牆、確認 Docker 發佈的連接埠有沒有繞過 firewalld、在 DOCKER-USER、StrictForwardPorts 與 nftables 表之間選一種限制容器的來源、或限制出站 DNS 時,查 Oracle Linux 10 上實際跑過的指令、輸出,以及規則在重新載入、dockerd 重啟與重開機之後還在不在
- GCP VM 的 SSH 與 RDP 管理通道:從預設的全開規則改走 IAP TCP forwarding
GCP 預設網路自帶的防火牆規則與它們留下的暴露面、IAP TCP forwarding 的連線路徑與日常連線指令、切換到 IAP 的順序為什麼這樣排、IAP 通道連不上時的依層判讀,以及 IAM 授權範圍、OS Login 的啟用條件與工作階段的結束、拿掉外部 IP 之後的出站路徑、Organization Policy、階層式防火牆、稽核紀錄與 Security Command Center 的 OPEN_SSH_PORT finding 在 GCP 上的處理
- ufw 主機上 Docker 發佈連接埠的實測紀錄:ufw 規則的效果、DOCKER-USER 規則的存續與 after.rules、IPv6 的 docker-proxy、compose 內建 DNS 的出站路徑
在 Ubuntu 的 ufw 主機上用 Docker 發佈連接埠、想只放行 Cloudflare 的位址、或想限制容器送出的 DNS 查詢時,查 ufw 規則對發佈連接埠的效果、DOCKER-USER 規則在 reload 與重開機之後還在不在、IPv6 那一份發佈由誰接收,以及 compose 容器的 DNS 封包從哪裡送出
- Podman 與 rootless Docker 發佈連接埠的實測紀錄:rootful Podman 在 ufw 與 firewalld 上的轉送路徑、rootless Docker 與 rootless Podman 由主機程式接收的連接埠與容器看到的來源位址
用 Podman 或 rootless 模式的 Docker 發佈連接埠、想知道 ufw 或 firewalld 的規則管不管得到、或想在容器裡拿到連線的真實來源位址時,查 rootful Podman 在 ufw 與 firewalld 上的不同結果、rootless 模式接收連線的路徑,以及容器看到的來源位址
- Cloudflare 回源的實測紀錄:Oracle Cloud NSG 只放行 Cloudflare 位址與規則數上限、回源的來源位址、Authenticated Origin Pulls、Worker 偽造 CF-Connecting-IP 與 Tunnel 的出站連接埠
源站要放在 Cloudflare 後面、想確認只放行 Cloudflare 位址的雲端防火牆放不放得下整份清單、回源實際用哪些位址、Authenticated Origin Pulls 怎麼驗證、Cloudflare Worker 能不能穿過這道防火牆並偽造 CF-Connecting-IP、或 Tunnel 要開哪些出站連接埠時,查 Oracle Cloud 與 Cloudflare 免費方案上實際跑過的指令與輸出
- CDN 後面的源站主機防火牆:只放行 CDN 來源的位置與套用時機、Docker 發佈連接埠的封包路徑、出站 DNS 的限制與地理封鎖
網站放在 CDN(例如 Cloudflare)後面時,源站主機的入站與出站限制:請求避開 CDN 直連源站的成因、來源限制放在雲端防火牆、主機防火牆或 CDN 端驗證的差別、只放行 CDN 位址的套用時機、Docker 發佈的連接埠繞過 ufw 與 firewalld 的路徑與各種限制寫法、CDN 位址送來的請求為什麼不等於 CDN 替自己的網域轉送、出站 DNS 限制的效果與漏洞、地理封鎖放在 CDN 邊緣的理由
- Network Tag(GCP 網路標籤)
GCP 防火牆規則套不到某台 VM、新建的 VM 連不上,或要決定防火牆規則用 tag 還是服務帳號選 VM 時,查 network tag 怎麼讓防火牆規則選出要套用的 VM
- DNAT(目的位址轉換)
容器發佈的連接埠沒被主機防火牆擋下、port forwarding 的限制規則要寫在位址轉換之前還是之後、或要比對位址轉換之前的連接埠時,查 DNAT 改寫封包目的地的時間點與它對防火牆規則的影響
- conntrack(連線追蹤)
防火牆規則寫了 established、related 或 ctorigdstport、有狀態防火牆為什麼不必寫回程規則、改了規則卻像沒生效、或位址轉換之後要比對原本的位址時,查 Linux 核心記錄連線狀態的表與它在規則裡的用法
- DOCKER-USER(Docker 留給使用者的轉送規則鏈)
要在 Docker 發佈的連接埠上加來源限制、寫進 DOCKER-USER 的規則在防火牆重新載入或重開機之後不見、或規則擋到了容器自己往外的連線時,查這條鏈在轉送路徑上的位置、比對原始連接埠的寫法與規則的存續條件
- Userland Proxy(使用者空間的連接埠轉送程式)
ss 列出 docker-proxy、rootlesskit 或 rootlessport 聽著容器發佈的連接埠、主機防火牆的入站規則對容器的連接埠有效、或容器的存取紀錄只看得到閘道位址而沒有真實來源時,查這類轉送程式接收連線的路徑與它換掉來源位址的代價