วิธีตั้งค่า Cloudflare Tunnel (Argo Tunnel) สร้าง VPN แบบ Zero‑Trust บน Linux อย่างปลอดภัย

ที่มาภาพ: Unknown Source

วิธีตั้งค่า Cloudflare Tunnel (Argo Tunnel) สร้าง VPN แบบ Zero‑Trust บน Linux อย่างปลอดภัย

⚡ สรุป 30 วิ

Cloudflare Tunnel (หรือ Argo Tunnel) ช่วยให้เราสร้างการเชื่อมต่อแบบ **VPN Zero‑Trust** บน Linux โดยไม่ต้องเปิดพอร์ตสาธารณะบนไฟร์วอลล์ การใช้ Tunnel ทำให้ทราฟฟิกทั้งหมดผ่านเครือข่ายของ Cloudflare ซึ่งม…

ภาพรวม — Overview

Cloudflare Tunnel (หรือ Argo Tunnel) ช่วยให้เราสร้างการเชื่อมต่อแบบ VPN Zero‑Trust บน Linux โดยไม่ต้องเปิดพอร์ตสาธารณะบนไฟร์วอลล์ การใช้ Tunnel ทำให้ทราฟฟิกทั้งหมดผ่านเครือข่ายของ Cloudflare ซึ่งมีระบบป้องกัน DDoS และ WAF ให้ความปลอดภัยระดับสูง

  • Zero‑Trust หมายถึงการตรวจสอบทุกคำขอโดยไม่เชื่อถือว่าผู้ใช้หรืออุปกรณ์อยู่ในเครือข่ายภายใน
  • Tunnel ทำหน้าที่เป็น “reverse proxy” ที่ส่งข้อมูลจากเครื่อง Linux ไปยัง Cloudflare แล้วจึงกระจายต่อไปยังแอปพลิเคชันปลายทาง
  • การตั้งค่าจะทำผ่านไฟล์ `cloudflared` เพียงไม่กี่บรรทัด
**Tip: ก่อนเริ่มควรตรวจสอบว่าโดเมนของคุณอยู่ในบัญชี Cloudflare และเปิดบริการ “Zero‑Trust” ไว้แล้ว

สิ่งที่ต้องเตรียม — Prerequisites

การติดตั้ง Tunnel ไม่ซับซ้อน แต่จำเป็นต้องมีสิ่งต่อไปนี้เพื่อให้ขั้นตอนดำเนินได้ราบรื่น

  • เซิร์ฟเวอร์ Linux (Ubuntu 20.04+, Debian, CentOS ฯลฯ) พร้อม root หรือ sudo privileges
  • โดเมนที่ผูกกับ Cloudflare และสามารถเพิ่ม DNS record ได้
  • บัญชี Cloudflare ที่เปิด “Zero‑Trust” (หรือ Teams) แล้วสร้าง Access Application

ติดตั้ง Cloudflared — Install cloudflared

ขั้นตอนการติดตั้ง `cloudflared` มีให้เลือกสองวิธีหลัก คือ ผ่านแพ็กเกจของระบบ หรือโดยดาวน์โหลดไบนารีล่าสุด

  • **วิธีที่ 1: ใช้ apt (Ubuntu/Debian)
  • เพิ่ม repository ของ Cloudflare: `curl -L https://pkg.cloudflare.com/install.sh | sudo bash`
  • ติดตั้ง: `sudo apt-get install cloudflared`
  • **วิธีที่ 2: ดาวน์โหลดไบนารีโดยตรง
  • ตรวจสอบรุ่นล่าสุดจาก <https://github.com/cloudflare/cloudflared/releases>
  • ดาวน์โหลดและให้สิทธิ์ทำงาน: `chmod +x cloudflared && sudo mv cloudflared /usr/local/bin/`
  • ยืนยันการติดตั้งด้วยคำสั่ง `cloudflared --version`

สร้าง Tunnel — Create a Tunnel

หลังจากมี `cloudflared` แล้ว ขั้นตอนต่อไปคือสร้าง Tunnel และเชื่อมโยงกับโดเมนของเรา

  • **ขั้นที่ 1: ลงชื่อเข้าใช้ Cloudflare ผ่าน CLI

```bash cloudflared login ``` หน้าต่างเบราว์เซอร์จะเปิดให้เลือกโซน (zone) ที่ต้องการเชื่อมต่อ

  • **ขั้นที่ 2: สร้าง Tunnel ด้วยชื่อระบุ

```bash cloudflared tunnel create my-zero-trust-tunnel ``` คำสั่งนี้จะสร้างคีย์ส่วนตัวและให้ `Tunnel ID` กลับมา

  • **ขั้นที่ 3: บันทึกไฟล์กำหนดค่า (`config.yml`) ที่ตำแหน่ง `/etc/cloudflared/`

ตัวอย่างไฟล์:

```yaml tunnel: <TUNNEL_ID> credentials-file: /root/.cloudflared/<TUNNEL_ID>.json

ingress:

  • hostname: vpn.example.com

service: http://localhost:8080 # หรือบริการ VPN ของคุณ

  • service: http_status:404

```

ตั้งค่า Zero‑Trust — Configure Zero‑Trust

การเปิดใช้ Zero‑Trust ต้องกำหนดนโยบายการเข้าถึงและอายุของโทเค็น

  • เข้าเมนู Zero Trust > Access > Applications แล้วคลิก “Add an application”
  • เลือกประเภท “Self-hosted” และใส่ Hostname ที่ตั้งไว้ใน `config.yml` (เช่น `vpn.example.com`)
  • ตั้งค่า Session Duration, IP Ranges, หรือ Device Posture ตามความต้องการ
  • สร้าง Policy เพื่อกำหนดว่าใครสามารถเข้าถึง Tunnel ได้
  • ตัวเลือกหลัก: Email domain, Group, Service Token ฯลฯ
  • ควรกำหนดให้ผู้ใช้ผ่าน **Multi‑Factor Authentication (MFA) เสมอ
ตัวเลือกความปลอดภัยความยืดหยุ่น
Email domainปานกลาง (พึ่งพาโดเมน)สูง (ไม่ต้องจัดการกลุ่ม)
Group (Teams)สูง (ควบคุมได้ละเอียด)กลาง (ต้องตั้งค่า Teams)
Service Tokenสูงที่สุด (ใช้สำหรับเครื่อง)ต่ำ (จำกัดแค่ API)
**Warning: อย่าเปิด “Allow all users” ใน Policy หากไม่ได้กำหนด MFA – จะทำให้ Zero‑Trust สูญเสียประสิทธิภาพ

เริ่มต้น Tunnel เป็นบริการระบบ — Run as a Service

เพื่อให้ Tunnel ทำงานตลอด 24 ชั่วโมง ควรตั้งค่าเป็น systemd service

  • สร้างไฟล์ `/etc/systemd/system/cloudflared.service` ด้วยเนื้อหา:

```ini [Unit] Description=Cloudflare Tunnel After=network.target

[Service] Type=simple ExecStart=/usr/local/bin/cloudflared tunnel run my-zero-trust-tunnel Restart=on-failure RestartSec=5s

[Install] WantedBy=multi-user.target ```

  • เปิดและตรวจสอบสถานะ:

```bash sudo systemctl enable cloudflared sudo systemctl start cloudflared sudo systemctl status cloudflared ```

ทดสอบการเชื่อมต่อ — Test the Connection

หลังจาก Tunnel ทำงานแล้ว ให้ทำขั้นตอนตรวจสอบเพื่อยืนยันว่าการเข้าถึงเป็นไปตาม Zero‑Trust

  • เปิดเบราว์เซอร์และเข้า `https://vpn.example.com` จะต้องเจอหน้า login ของ Cloudflare Access
  • ล็อกอินด้วยบัญชีที่ได้รับอนุญาต ตรวจสอบว่า MFA ถูกเรียกใช้
  • หากเชื่อมต่อสำเร็จ ให้ตรวจดูว่าทราฟฟิกผ่านพอร์ตที่ตั้งค่า (เช่น 22, 443) หรือแอปพลิเคชัน VPN ที่เลือก
**Tip: ใช้คำสั่ง `curl -I https://vpn.example.com` จากเครื่องภายนอกเพื่อยืนยันว่า Header ของ Cloudflare ปรากฏอยู่

เคล็ดลับเพิ่มความปลอดภัย — Security Tips

แม้ Tunnel จะให้ระดับการป้องกันสูงแล้ว แต่ยังมีวิธีเสริมเพื่อทำให้ระบบ “Zero‑Trust” แรงขึ้น

  • เปิด Logpush ส่งบันทึก Cloudflare ไปยัง SIEM ขององค์กร เพื่อตรวจจับพฤติกรรมผิดปกติ
  • ใช้ Device Posture Checks ตรวจสอบว่าเครื่องผู้ใช้มีอัปเดตล่าสุด, มี AV ทำงาน หรือไม่ก่อนให้เข้าถึง
  • จำกัด IP Ranges ของผู้ที่สามารถสร้าง Tunnel (เช่น เฉพาะ IP ภายในองค์กร) ผ่านเมนู “Network > IP Access Rules”

สรุป — Summary

การตั้งค่า Cloudflare Tunnel บน Linux เพื่อสร้าง VPN Zero‑Trust ทำได้ในไม่กี่ขั้นตอนโดยใช้ `cloudflared` และฟีเจอร์ Access ของ Cloudflare

  • ติดตั้ง `cloudflared` ผ่านแพ็กเกจหรือไบนารี
  • สร้าง Tunnel, ตั้งค่า `config.yml`, แล้วเชื่อม DNS กับโดเมนของคุณ
  • กำหนด Policy ใน Zero‑Trust ให้ต้องใช้ MFA และตรวจสอบอุปกรณ์ (Device Posture)
  • รันเป็น systemd service เพื่อให้ทำงานต่อเนื่อง 24 ชั่วโมง
  • ตรวจสอบการเชื่อมต่อและเปิด Logpush เพื่อเฝ้าระวัง

**สิ่งที่ควรจำ: ใช้ Zero‑Trust อย่างเต็มรูปแบบต้องรวม MFA, Device Posture และการตรวจสอบบันทึกอย่างสม่ำเสมอ การทำตามขั้นตอนเหล่านี้จะให้ VPN ที่ปลอดภัยและง่ายต่อการจัดการบน Linux โดยไม่เปิดพอร์ตสาธารณะใด ๆ.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
วิธีตั้งค่า Cloudflare Tunnel (Argo Tunnel) สร้าง VPN แบบ Zero‑Trust บน Linux อย่างปลอดภัย
ผู้เขียน
กองบรรณาธิการ Thai Tech News
แหล่ง
บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
วันที่เผยแพร่
2 สิงหาคม 2569 เวลา 19:50

Related

บทความที่เกี่ยวข้อง

วิธีตั้งค่า GitLab CI/CD พร้อม Kubernetes สำหรับ Deployment Blue‑Green อย่างปลอดภัยGrowth
2 สิงหาคม 2569 เวลา 20:30

วิธีตั้งค่า GitLab CI/CD พร้อม Kubernetes สำหรับ Deployment Blue‑Green อย่างปลอดภัย

การทำ Deployment แบบ Blue‑Green บน Kubernetes ด้วย GitLab CI/CD ช่วยให้เราปล่อยฟีเจอร์ใหม่ได้โดยไม่มีเวลาหยุดทำงานของระบบ (**Zero‑Downtime**) และลดความเสี่ยงจากข้อผิดพลาดที่อาจเกิดขึ้นในขั้นตอนปล่อยเว…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ9 นาที
วิธีเปิดใช้งาน GitHub Advanced Security เพื่อสแกนหาช่องโหว่ในโค้ดอัตโนมัติบนรีโพซิทอรีอย่างปลอดภัยGrowth
2 สิงหาคม 2569 เวลา 19:00

วิธีเปิดใช้งาน GitHub Advanced Security เพื่อสแกนหาช่องโหว่ในโค้ดอัตโนมัติบนรีโพซิทอรีอย่างปลอดภัย

GitHub Advanced Security (GHAS) ให้คุณสแกนหาช่องโหว่ในโค้ดแบบอัตโนมัติโดยไม่ต้องออกจากแพลตฟอร์มเดิม การเปิดใช้งานที่ถูกต้องจะช่วยให้ทีมพัฒนาตรวจจับปัญหาได้เร็วและลดความเสี่ยงต่อการรั่วไหลของข้อมูล

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีตั้งค่าและใช้ Terraform บน macOS เพื่อบริหารโครงสร้างพื้นฐาน Multi‑Cloud อย่างปลอดภัยGrowth
2 สิงหาคม 2569 เวลา 11:30

วิธีตั้งค่าและใช้ Terraform บน macOS เพื่อบริหารโครงสร้างพื้นฐาน Multi‑Cloud อย่างปลอดภัย

Terraform เป็นเครื่องมือ Infrastructure‑as‑Code ที่ช่วยให้คุณสร้างและจัดการโครงสร้างพื้นฐานบนหลายคลาวด์ได้ด้วยไฟล์เดียว การใช้ Terraform บน macOS ทำให้ขั้นตอนตั้งค่าเร็วขึ้นและปลอดภัยกว่าเดิม

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธียกเครื่อง Kubernetes บน Azure Arc เพื่อบริหารแบบไฮบริดและรักษาความปลอดภัยอย่างต่อเนื่องGrowth
1 สิงหาคม 2569 เวลา 20:30

วิธียกเครื่อง Kubernetes บน Azure Arc เพื่อบริหารแบบไฮบริดและรักษาความปลอดภัยอย่างต่อเนื่อง

การใช้ Kubernetes บน Azure Arc ช่วยให้คุณขยายคลัสเตอร์จากศูนย์ข้อมูลหรือ edge ไปยังคลาวด์ได้แบบไฮบริด โดยไม่ต้องเปลี่ยนแปลงโครงสร้างเดิม อีกทั้ง Azure Arc ยังผสานเครื่องมือด้านความปลอดภัยและการจัดการอ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ9 นาที
คัดลอกลิงก์แล้ว!