Posts Tagged ssh tunnel
SSH Tunnel -> SOCKS Proxy
Posted in Administrator Skills, Users Skills - 30 September 2009 02:11:50- A —-> B = WIFI via SSH
- B —-> C = Normally Request
- A = Windows 7
- B = Ubuntu
- C = Unknown
- A เตรียม Putty.exe (Windows) หรือ SSH Client ใดๆ
- B เตรียม SSH Daemon
- C เราจัดการอะไรไม่ได้อยู่แล้ว
- ปกติ ไม่ต้องตั้งค่าอะไรเพิ่มเติม แต่มีค่าที่เกี่ยวข้องในไฟล์ /etc/sshd_config ดังนี้
- AllowTCPForwarding – yes (default : yes) ตั้งให้ยอมให้ส่งต่อ Packet ไปยังที่อื่น
- UsePAM – yes (ถ้าตั้ง Authenticated ไว้ อาจจะตั้งว่ามี User อะไร สามารถใช้ Secure Shell ได้บ้าง ด้วย AllowUser)
- AllowUsers – <username> (ตั้งให้ username นี้ๆ สามารถใช้ SSH ได้)
- ติดตั้งค่าเสร็จ อย่าลืม Reload Configuration
- อย่าลืมเปิด Port 22 (SSH Default Port) ถ้ามีการติดตั้ง Firewall เอาไว้
- ดูความเสี่ยงด้านความปลอดภัยได้ที่ ThaiCERT
- ผมใช้ SSH Client ซึ่งเป็น Opensource ชื่อว่า Putty
- ถ้าอยากสร้าง SSH Tunnel โดยไม่ต้องใส่รหัสผ่าน ดูเอกสารเพิ่มที่ JOMYUT.NET / HowtoConfig
- ที่โหนด A เราจะเปิด Local Port เอาไว้ อย่างเช่น ผมจะเปิด 127.0.0.1 พอร์ต 1080 ไว้ เมื่อมีการรับข้อมูลที่พอร์ตนี้ จะส่งต่อไปยัง SSH Tunnel ที่ Putty จะสร้างเอาไว้
- ที่ Network Setting ของ Firefox / IE จะตั้ง Proxy ในรูปแบบ SOCK5 Server ชี้มาที่ localhost พอร์ต 1080
- Firefox —–> localhost:1080 —–> Putty —–> sshserver:22 —-> Server Daemon —–> Requst Destination
- วิธีการรูปแบบที่ 1 พิมพ์ที่ Command Line (Ref)
putty -D <SOCK5 Port> username@ssh-server
- วิธีการที่ 2 เปิด Putty GUI ขึ้นมา
- ไปที่แถบ Tunnel ->
- ตั้ง Local Port เป็น 1080 (SOCKS5 Port) เพื่อรอรับข้อมูลจากบราวซ์เซอร์
- Destination Port ไม่ต้องใส่ แต่เปลี่ยน Default จาก Local เป็น Dynamic
- แถบ Connection ให้ใส่ข้อมูล Server ตามปกติ
- เมื่อ Login เสร็จ จะขึ้น Shell เหมือน Login เข้าไปที่ SSH Server
- ทดสอบตั้งค่า Firefox แล้วลองเข้ามาดู ว่าเข้าได้หรือเปล่า
- การปรับปรุงให้ใช้งานง่ายขึ้นเมื่อทดสอบแล้วใช้งานได้
- Parameter ทั้งหมด ให้เก็บเป็น session ไว้ ซึ่งตั้งได้ผ่าน Putty GUI
- เวลาเรียกใช้ เรียกใช้เป็น
putty -load "savesession"
- ตั้งหน้า TTY ว่า ไม่ต้องใช้ Terminal (notty) หรือ ผ่าน Command Line โดยการใช้
putty -N -D <SOCK5 Port> username@ssh-server
- สุดท้าย ถ้าใช้ Firefox หา Extension ชื่อ FoxyProxy มาใช้.
- ที่เซิร์ฟเวอร์ ถ้าอยากให้ปลอดภัยมากขึ้น ก็ตั้งค่าดังนี้
AllowTCPForwarding no Match group mysecureproxy AllowTCPForwarding yes
กรณีนี้ จะตั้งให้เฉพาะกลุ่มที่สามารถใช้ SSH Tunnel ไปยังโหนดปลายทางได้ ซึ่งเราต้องใช้คำสั่ง
groups -a -G mysecureproxy myusername
- เพิ่มเติมเข้าไปอีก ก็จับ User นี้ ลง Jailed Shell ต่อไป
ออกนอกบ้านบ่อยๆ ใช้ WIFI รู้สึกการรับส่งข้อมูลไม่ปลอดภัย แล้วยิ่งเราต้องใช้ส่งข้อมูลที่สำคัญบ่อยๆ บางเว็บไซต์ไม่มีช่องทาง SSL มาให้ เลยกังวล วันนี้เลยจัดการตั้งท่อ
My Laptop (A) —-> Locomotive Server (B) —–> Destination (C)
การเตรียมพร้อมอุปกรณ์
Node B
Node A
เสร็จแล้ว จบ. เท่านี้ เวลาอยู่ข้างนอกก็ต่อผ่านท่อก่อน ความเสี่ยงอยู่ที่ มีใคร Sniffing Data ที่เซิร์ฟเวอร์ไหมแทนที่จะเป็นจุดที่เราต่อ Wireless



