INTEGRITY Dokumentace

Proxy

Můžete přeposílat HTTP a síť provoz do Gateway pro účely protokolování a filtrování. Gateway umí proxovat jak odchozí provoz, tak provoz směřující k prostředkům připojeným přes Cloudflare Tunnel, tunel GRE (Generic Routing Encapsulation) nebo tunel IPsec. Když se uživatel připojí k proxy Gateway, Gateway přijme spojení a naváže nové, samostatné spojení s origin serverem.

Proxy Gateway je vyžadována k filtrování HTTP a síťového provozu prostřednictvím Cloudflare One Client v režimu Traffic a DNS. Pokud chcete proxovat HTTP provoz bez nasazení Cloudflare One Client, můžete nakonfigurovat Soubory PAC na vašich zařízeních.

Algoritmus proxy

Gateway používá Algoritmus Happy Eyeballs, což zkouší připojení IPv4 a IPv6 s postupným záložním přechodem a použije tu rodinu adres, která odpoví jako první, aby provoz proxovalo v tomto pořadí:

  1. Prohlížeč uživatele zahájí navázání TCP spojení odesláním segmentu TCP SYN Gateway.
  2. Gateway odešle segment SYN na origin server.
  3. Pokud origin server odešle zpět segment SYN-ACK, Gateway naváže samostatná TCP připojení mezi uživatelem a Gateway a mezi Gateway a origin serverem.
  4. Gateway kontroluje a filtruje provoz přijatý od uživatele.
  5. Pokud provoz projde kontrolou, Gateway jej obousměrně přeposílá mezi uživatelem a origin serverem.
flowchart TD
    %% Accessibility
    accTitle: How Gateway proxy works
    accDescr: Flowchart describing how the Gateway proxy uses the Happy Eyeballs algorithm to establish TCP connections and proxy user traffic.

    %% Flowchart
    A[User's device sends TCP SYN to Gateway] --> B[Gateway sends TCP SYN to origin server]
    B --> C{{Origin server responds with TCP SYN-ACK?}}
    C -->|Yes| E[TCP handshakes completed]
    C -->|No| D[Connection fails]
    E --> F{{Connection allowed?}}
    F -->|Allow policy| G[Gateway proxies traffic bidirectionally]
    F -->|Block policy| H[Connection blocked by firewall policies]

    %% Styling
    style D stroke:#D50000
    style G stroke:#00C853
    style H stroke:#D50000

Podporované protokoly

Gateway podporuje proxy pro provoz TCP, UDP a ICMP.

TCP

Pokud je proxy zapnutá, Gateway vždy přeposílá provoz TCP.

Pokusy o TCP připojení ve výchozím nastavení vyprší po 30 sekundách a nečinná připojení se odpojí po 8 hodinách.

UDP

UDP proxy přeposílá UDP provoz, jako je VoIP, interní požadavky DNS, a aplikace typu thick client.

HTTP/3 používá protokol QUIC přes UDP. Chcete-li provoz HTTP/3 kontrolovat, zapněte dešifrování TLS i proxy UDP. Gateway pak spojení HTTP/3 zachytí a připojí se ke zdrojovému serveru přes HTTP/2. V opačném případě provoz HTTP/3 kontrolu obejde. Další informace o chování specifickém pro jednotlivé prohlížeče najdete v Kontrola HTTP/3.

ICMP (Internet Control Message Protocol)

Proxy ICMP umožňuje, aby se provoz ICMP dostal do vaší privátní sítě přes Gateway. To by uživateli Cloudflare One Client umožnilo například spouštět diagnostické příkazy, jako je ping a traceroute na interní IP adresu serveru.

Povolit ICMP provoz přes cloudflared

Chcete-li používat proxy ICMP s Cloudflare Tunnel, možná budete muset nakonfigurovat cloudflared hostitele, aby povolil provoz ICMP přes cloudflared.

  1. Zajistěte, aby ping_group_range zahrnuje ID skupiny (GID) uživatele, který spouští cloudflared:

    a. Najděte uživatele, kterému patří cloudflared proces:

    ps -aux | grep cloudflared
    johndoe         407  0.8  1.7 1259904 35296 ?       Ssl  21:02   0:00 /usr/bin/cloudflared --no-autoupdate tunnel run --token eyJhI...

    b. Získejte ID skupiny pro cloudflared uživatel:

    id -g johndoe
    10001

    c. Určete ID skupin, které mají povoleno používat ICMP:

    sudo sysctl net.ipv4.ping_group_range
    net.ipv4.ping_group_range= 0 10000

    d. Buď přidejte uživatele do skupiny v tomto rozsahu, nebo rozsah upravte tak, aby zahrnoval skupinu, ve které se uživatel již nachází. Chcete-li aktualizovat ping_group_range:

    echo 0 10001 | sudo tee /proc/sys/net/ipv4/ping_group_range

    e. Pokud potřebujete, aby se změna projevila i u již spuštěného procesu, musíte restartovat cloudflared. Aby změna zůstala zachována i po restartu, aktualizujte systcl parametry:

    echo "net.ipv4.ping_group_range = 0 10001" | sudo tee -a /etc/sysctl.d/99-cloudflared.conf
  2. Pokud používáte více síťových rozhraní (například eth0 a eth1), nakonfigurujte cloudflared k použití externího rozhraní přístupného z internetu:

    cloudflared tunnel run --icmpv4-src <IP of primary interface>

Ve svém prostředí upravte ping_group_range parametr tak, aby obsahoval ID skupiny (GID) uživatele, který spouští cloudflared.

Ve výchozím nastavení cloudflared kontejner Docker se spouští jako uživatel s názvem nonroot uvnitř kontejneru. nonroot je konkrétní uživatel, který existuje v základní image které používáme, a jeho ID skupiny je pevně nastaveno na 65532.

Zapnutí proxy Gateway

Přepínač proxy Gateway se vztahuje pouze na provoz ze zařízení s Cloudflare One Client. Gateway vždy proxuje provoz odeslaný pomocí Soubory PAC nebo Browser Isolation bez ohledu na toto nastavení.

  1. V Cloudflare dashboard, přejděte na Zero Trust > Zásady provozu > Nastavení provozu.
  2. V Nastavení proxy a kontroly, zapněte Povolit předávání provozu přes Secure Web Gateway.
  3. Vyberte TCP.
  4. (Volitelné) V závislosti na vašem případu použití můžete vybrat UDP a/nebo ICMP.