การสร้าง Socks Tunnelling ด้วย SSH ใน Linux

ในระบบ Linux จะมีโปรแกรมสำหรับการรีโมทเข้าใช้งานเครื่องอื่นในระยะไกลได้ ซึ่งโปรแกรมยอดนิยมจะเป็น SSH นั่นเอง โดยตัวโปรแกรม SSH นั้นจะมี feature ให้เราสามารถสร้าง Socks Tunnelling ได้ เพื่อเราจะสามารถใช้งานอินเตอร์เน็ตได้อย่างปลอดภัยมากขึ้น หากเราต้องต่อใช้งานในเครือข่ายที่ไม่ปลอดภัย โดยเราจะสามารถสร้างได้ดังนี้ครับ

1. เรียกใช้ SSH เพื่อสร้าง Socks Tunnelling

$ ssh -D 9077 -f -C -q -N authapon@example.com

โดย พารามิเตอร์ต่าง ๆ มีความหมายดังนี้ครับ
-D คือ สร้าง Socks Tunnelling โดยใช้พอร์ตหมายเลข 9077
-f คือ ให้ทำการสร้างโปรเซสเพื่อทำงานเบื้องหลัง
-C คือ ให้ทำการบีบอัดข้อมูลก่อนส่ง เพื่อประหยัดแบนวิทด์
-q คือ ให้ทำงานแบบเงียบ ๆ ไม่มีการแจ้งข้อความใดใดระหว่างทำงาน
-N คือ การบอก SSH ว่าไม่มีคำสั่งใด ๆ เรียกทำงานอีกหลังการสร้าง Tunnel สำเร็จแล้ว authapon@example.com คือ ชื่อผู้ใช้และโฮสที่เราจะสร้าง Tunnel ไปหานั่นเองครับ

2. เรียกใช้ Browser ผ่าน Socks Tunnelling

หลังจากสร้าง Socks Tunneling แล้ว เราก็กำหนดค่าการใช้งาน Proxy ให้กับ Browser ที่เราเลือกใช้ โดยผมสมมุติว่าผมใช้ Google Chrome เป็น Internet Browser โดยผมจะทำการเรียกใช้งานผ่าน command line ดังนี้ครับ

$ google-chrome-stable --proxy-server="socks://localhost:9077"

เมื่อ Google Chrome ทำงานขึ้น ข้อมูลทั้งหมดที่เราเรียกใช้งานจะผ่าน SSH Tunnelling ไปยังโฮสที่เราติดต่อไปทั้งหมดโดยมีการเข้ารหัสข้อมูลทั้งหมด ซึ่งจะทำให้การใช้งานอินเตอร์เน็ตของเรามีความปลอดภัยมากขึ้นนั่นเองครับ