Server
- Windows 2008 R2 Enterprise 64-bit
- ในที่นี้ผู้เขียนใช้ WinSSHD สำหรับเปิดบริการ SSH Server port 22
- ที่สำคัญ Server ต้องติดตั้ง MySQL ให้เรียบร้อย
Client
- Windows 10 Enterprise 64-bit
- ใช้ PuTTY SSH Client ในการช่วยทำ tunnel port 22
- ในที่นี้ผู้เขียนใน dbForge Studio for MySQL เป็น MySQL Client
- เปิด PuTTY ขึ้นมา หน้าแรกมันจะเลือกเมนู Session ให้อยู่แล้วล่ะ ที่ Host name (or IP address) ใส่ให้เรียบร้อย ในที่นี้คือ 202.10.10.10 ส่วน port ก็ 22 อยู่แล้ว
- จากนั้นไปที่เมนู Tunnels ที่ Source port ในที่นี้ใส่เป็น 3308 , Destination เป็น localhost:3306 และคลิก Add
- หลักจากคลิก Add เราก็จะได้ดังภาพด้านล่างนี้ สุดท้ายก็ทำการเชื่อมต่อ Server โดย คลิก Open
- มันก็จะขึ้นหน้าให้ยืนยันตัวตน ก็ทำให้เรียบร้อย สมมุติในที่นี้ได้ยืนยันตัวตน และ PuTTY เราสามารถ remote ไปยัง server ได้เรียบร้อยแล้ว ให้เปิด PuTTY ค้างไว้นะ
- ขึ้นตอนต่อมา เปิด MySQL Client ในที่นี้เราใช้ dbForge Studio for MySQL
- host ใส่เป็น localhost
- port ใส่เป็น 3308
- ตามด้วย user และ password สำหรับ user MySQL บน Server
- ตั้งค่าแค่นี้ก็สามารถเชื่อมต่อ MySQL บน Server ผ่าน port 22 ได้เลยคับ
Add
- จะเห็นว่า ที่สำหรับคือ ตอนตั้งค่า Tunnel ใน PuTTY นะคับ
- ที่ผู้เขียนใส่ 3308 จริงๆ แล้วใส่เป็น 3306 หรือ port หมายเลขอะไรก็ได้ที่ client ไม่ได้เปิดใช้งานน่ะ
- ซึ่งในเครื่อง client ของผู้เขียนได้ทำการ เปิด 3306 ไว้ใช้ทดสอบระบบอยู่จริง ไม่สามารถใช้ 3306 เป็น source port ได้จริงเลี่ยงไปใช้ 3308 แทน ก็เท่านั้นคับ
- ซึ่งผุ้เขียนคิดว่า วิธีแบบนี้สามารถประยุกต์ ใช้ได้กับ service ตัวอื่นๆ บน server ได้ด้วย เช่น เราอยากเชื่อมต่อ SQL Server ผ่าน port 22 น่าจะได้เหมือนกันนะคับคิดว่า (ยังไม่ได้ลอง)
- และประยุกต์ใช้ได้กับ MySQL Client ตัวอื่นๆ ด้วยเพียงท่านใส่หมายเลข port เป็น 3308 และ host เป็น localhost ดังตัวอย่างนี้คับ
- ที่เราทำมาทั้งหมดนี้เพื่ออะไร เพื่อรอดผ่าน firewall ของ เครือข่ายไงคับ เพราะโดยส่วนมาก เค้าจะปิดหมดทุก port นะ ยกเว้น 80 หรือ 443 แต่ ส่วนมากก็ อนุโลม 22 พอได้อยู่ คับ มันปลอดภัยเหมือนกัน
Ref
- https://www.linode.com/docs/databases/mysql/securely-administer-mysql-with-an-ssh-tunnel