Cryptology Academy · บทเรียน

เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต

เชี่ยวชาญการส่งต่อพอร์ตภายในเครื่อง ระยะไกล และแบบไดนามิก พร้อมทำความเข้าใจการใช้งานที่ถูกต้องและการใช้งานที่มีความเสี่ยงด้านความปลอดภัย

บทเรียน 3 จาก 413 ขั้นตอน

เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

แนวคิดการส่งต่อพอร์ตภายในเครื่อง

การส่งต่อพอร์ตภายในเครื่อง (ssh -L local_port:destination_host:destination_port user@ssh_server) จะผูกพอร์ตหนึ่งเข้ากับเครื่องภายในเครื่องของคุณ ข้อมูลที่ส่งไปยังพอร์ตภายในเครื่องนั้นจะเดินทางผ่านการเชื่อมต่อ SSH ที่เข้ารหัสไปยังเซิร์ฟเวอร์ SSH จากนั้นเซิร์ฟเวอร์จะเชื่อมต่อไปยังปลายทาง แอปพลิเคชันภายในเครื่องของคุณจึงสื่อสารกับ localhost ขณะที่ SSH ส่งข้อมูลไปยังปลายทางระยะไกลอย่างปลอดภัย

กรณีใช้งานการส่งต่อภายในเครื่อง: การเข้าถึงฐานข้อมูล

กรณีใช้งานทั่วไปของการส่งต่อพอร์ตภายในเครื่องคือการเข้าถึงฐานข้อมูลภายในที่อยู่หลังไฟร์วอลล์ เมื่อใช้ ssh -L 5432:db.internal:5432 user@bastion ไคลเอนต์ PostgreSQL ภายในเครื่องของคุณจะเชื่อมต่อกับ localhost:5432 โฮสต์ตัวกลางจะส่งต่อข้อมูลนี้ไปยังเซิร์ฟเวอร์ฐานข้อมูลภายใน ซึ่งโดยปกติไม่สามารถเข้าถึงได้จากอินเทอร์เน็ต

แนวคิดการส่งต่อพอร์ตระยะไกล

การส่งต่อพอร์ตระยะไกล (ssh -R remote_port:local_host:local_port user@ssh_server) จะผูกพอร์ตหนึ่งเข้ากับเซิร์ฟเวอร์ SSH ระยะไกล เมื่อไคลเอนต์ภายนอกเชื่อมต่อกับพอร์ตระยะไกลนั้น ข้อมูลจะไหลย้อนกลับผ่านช่องสัญญาณ SSH ไปยังเครื่องภายในเครื่องของคุณ วิธีนี้ช่วยให้คุณเปิดเผยบริการที่กำลังทำงานอยู่ภายในเครื่องออกสู่ภายนอกผ่านเซิร์ฟเวอร์ที่เชื่อมต่ออินเทอร์เน็ต

กรณีใช้งานการส่งต่อระยะไกล: อยู่หลัง NAT

การส่งต่อระยะไกลมีประโยชน์เป็นพิเศษเมื่อเครื่องของคุณอยู่หลัง NAT และไม่สามารถรับการเชื่อมต่อขาเข้าได้โดยตรง ด้วยการสร้างช่องสัญญาณย้อนกลับไปยังเซิร์ฟเวอร์สาธารณะ คุณจะอนุญาตให้ไคลเอนต์ภายนอกเข้าถึงบริการภายในเครื่องผ่านเซิร์ฟเวอร์สาธารณะได้ เทคนิคนี้ยังใช้โดยเครื่องมือเข้าถึงระยะไกลและระบบจัดการอุปกรณ์ IoT บางประเภท

การส่งต่อพอร์ตแบบไดนามิก: พร็อกซี SOCKS5

การส่งต่อพอร์ตแบบไดนามิก (ssh -D local_port user@ssh_server) จะสร้างพร็อกซี SOCKS5 บนเครื่องภายในเครื่องของคุณ แอปพลิเคชันใด ๆ ที่รองรับ SOCKS5 สามารถกำหนดเส้นทางข้อมูลผ่านพร็อกซีนี้ ซึ่งจะปรากฏว่ามาจากเซิร์ฟเวอร์ SSH วิธีนี้จะกำหนดเส้นทางการท่องเว็บของคุณผ่านเครือข่ายระยะไกลอย่างมีประสิทธิผล และมีประโยชน์สำหรับการเข้าถึงทรัพยากรที่จำกัดตามภูมิภาคหรือหลีกเลี่ยงตัวกรองเครือข่ายภายในเครื่อง

ช่องสัญญาณย้อนกลับและผลกระทบด้านความปลอดภัย

ช่องสัญญาณย้อนกลับมีประสิทธิภาพสูง แต่ก็นำมาซึ่งความเสี่ยงด้านความปลอดภัย หากเซิร์ฟเวอร์อนุญาตให้ใช้ GatewayPorts พอร์ตที่ส่งต่อระยะไกลจะเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ ไม่ใช่เฉพาะจาก localhost ผู้โจมตีที่ยึดครองเครื่องซึ่งมีช่องสัญญาณย้อนกลับอาจเข้าถึงบริการภายในได้ องค์กรควรเฝ้าติดตามช่องสัญญาณย้อนกลับที่ไม่ได้รับอนุญาตและจำกัด GatewayPorts ในการกำหนดค่า SSH

การควบคุมช่องสัญญาณของเซิร์ฟเวอร์ SSH

การกำหนดค่าเซิร์ฟเวอร์ SSH จะควบคุมความสามารถในการสร้างช่องสัญญาณ AllowTcpForwarding ควบคุมว่าจะอนุญาตให้ส่งต่อพอร์ตภายในเครื่องและพอร์ตระยะไกลหรือไม่ AllowStreamLocalForwarding ควบคุมการส่งต่อซ็อกเก็ต Unix การตั้งค่าทั้งสองเป็น no จะปิดใช้งานการสร้างช่องสัญญาณสำหรับผู้ใช้ทั้งหมด และคุณยังสามารถจำกัดการตั้งค่าเหล่านี้เป็นรายผู้ใช้หรือรายกลุ่มได้ การปิดใช้การส่งต่อที่ไม่จำเป็นจะช่วยลดพื้นที่โจมตี

SSH ในฐานะ VPN ที่ใช้อุปกรณ์ tun

SSH รองรับการสร้างอินเทอร์เฟซเครือข่าย tun สำหรับการสร้างช่องสัญญาณ IP ทั้งหมด (ssh -w) วิธีนี้ทำให้ SSH ทำหน้าที่เป็น VPN ขนาดเล็ก โดยส่งแพ็กเก็ต IP ทั้งหมดผ่านช่องสัญญาณ ไม่ใช่เพียงการเชื่อมต่อ TCP เฉพาะรายการ ต้องเปิดใช้งาน PermitTunnel บนเซิร์ฟเวอร์ แม้จะมีประสิทธิภาพน้อยกว่าซอฟต์แวร์ VPN โดยเฉพาะ แต่วิธีนี้ไม่ต้องใช้ซอฟต์แวร์เพิ่มเติมและใช้โครงสร้างพื้นฐาน SSH ที่มีอยู่แล้ว

การมัลติเพล็กซ์การเชื่อมต่อ

การมัลติเพล็กซ์การเชื่อมต่อ SSH (การตั้งค่า ControlMaster และ ControlPath) นำการเชื่อมต่อ SSH ที่มีอยู่กลับมาใช้กับเซสชันใหม่ วิธีนี้ช่วยเพิ่มความเร็วให้การเชื่อมต่อครั้งถัดไปไปยังเครื่องเดียวกันได้อย่างมาก ซึ่งมีประโยชน์เป็นพิเศษในสภาพแวดล้อมที่ทำงานด้วยสคริปต์ นอกจากนี้ ยังสามารถทำให้อุโมงค์ทำงานต่อเนื่องผ่านการเชื่อมต่อ SSH หลายครั้งได้โดยใช้การเชื่อมต่อร่วมกัน

การตรวจจับอุโมงค์ SSH

ผู้ดูแลระบบเครือข่ายสามารถตรวจจับการทำอุโมงค์ SSH ได้จากรูปแบบการรับส่งข้อมูลที่ผิดปกติ เช่น การเชื่อมต่อ TCP ที่คงอยู่นานบนพอร์ต 22 ปริมาณข้อมูลที่สูงเกินคาดสำหรับการเชื่อมต่อที่ควรรับส่งเพียงข้อมูลจากเทอร์มินัล หรือการเชื่อมต่อไปยังปลายทางที่มีความละเอียดอ่อนซึ่งเป็นที่รู้จักหลังจากสร้างการเชื่อมต่อแล้ว การตรวจสอบแพ็กเก็ตเชิงลึกไม่สามารถมองเห็นเนื้อหาของ SSH ได้ แต่การวิเคราะห์เมทาดาทาสามารถระบุพฤติกรรมการทำอุโมงค์ที่น่าสงสัยได้

แนวทางปฏิบัติที่ดีที่สุดในการตั้งค่าอุโมงค์

สำหรับการใช้งานที่ได้รับอนุญาต โปรดบันทึกอุโมงค์ทั้งหมดและวัตถุประสงค์ของอุโมงค์ ใช้ -N (ไม่มีคำสั่ง) กับอุโมงค์เพื่อหลีกเลี่ยงการเปิดอินเทอร์เฟซคำสั่งโดยไม่จำเป็น และใช้ -f (ทำงานเบื้องหลัง) เพื่อให้ทำงานโดยไม่บล็อกเทอร์มินัลของคุณ สำหรับอุโมงค์ที่ต้องทำงานต่อเนื่อง ให้ใช้ AutoSSH หรือการเปิดใช้งานซ็อกเก็ตด้วย systemd ซึ่งจะเริ่มอุโมงค์ใหม่โดยอัตโนมัติหากการเชื่อมต่อขาดหาย

การส่งต่อพอร์ตภายในเครื่องกับระยะไกล

คุณต้องการเปิดให้เซิร์ฟเวอร์สำหรับการพัฒนาภายในเครื่องของคุณ (ทำงานอยู่บนพอร์ต 3000) เข้าถึงได้จากอินเทอร์เน็ตผ่านเซิร์ฟเวอร์ SSH สาธารณะ คุณควรใช้การส่งต่อประเภทใด

ทบทวนการทำอุโมงค์ SSH

สรุปการทำอุโมงค์ SSH: การส่งต่อภายในเครื่อง (-L) ช่วยให้เข้าถึงบริการภายในจากเครื่องของคุณได้อย่างปลอดภัย การส่งต่อระยะไกล (-R) เปิดให้เข้าถึงบริการภายในเครื่องผ่านเซิร์ฟเวอร์สาธารณะ การส่งต่อแบบไดนามิก (-D) สร้างพร็อกซี SOCKS5 สำหรับกำหนดเส้นทางข้อมูลระดับแอปพลิเคชัน การส่งต่อ tun เปิดใช้งาน VPN แบบ IP เต็มรูปแบบ และ AllowTcpForwarding บนเซิร์ฟเวอร์จะควบคุมความสามารถเหล่านี้

เริ่มต้นได้ฟรี

เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
67
บทเรียน
261

คำถามที่พบบ่อย

บทเรียน “เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต”

เชี่ยวชาญการส่งต่อพอร์ตภายในเครื่อง ระยะไกล และแบบไดนามิก พร้อมทำความเข้าใจการใช้งานที่ถูกต้องและการใช้งานที่มีความเสี่ยงด้านความปลอดภัย คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การจับมือ SSH และการยืนยันตัวตนด้วยกุญแจโฮสต์
  2. การยืนยันตัวตนด้วยกุญแจสาธารณะและการส่งต่อเอเจนต์
  3. เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต
  4. การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ
← กลับไปที่ Cryptology Academy