Posts Tagged ssh

  • SSH Tunnel -> SOCKS Proxy

    Posted in Administrator Skills, Users Skills - 30 September 2009 02:11:50
  • ออกนอกบ้านบ่อยๆ ใช้ WIFI รู้สึกการรับส่งข้อมูลไม่ปลอดภัย แล้วยิ่งเราต้องใช้ส่งข้อมูลที่สำคัญบ่อยๆ บางเว็บไซต์ไม่มีช่องทาง SSL มาให้ เลยกังวล วันนี้เลยจัดการตั้งท่อ

    My Laptop (A) —-> Locomotive Server (B) —–> Destination (C)

    SSH Tunnel Sequence

    • 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 เราจัดการอะไรไม่ได้อยู่แล้ว

    Node B

    • ปกติ ไม่ต้องตั้งค่าอะไรเพิ่มเติม แต่มีค่าที่เกี่ยวข้องในไฟล์ /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

    Node A

    • ผมใช้ 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 ต่อไป

    เสร็จแล้ว จบ. เท่านี้ เวลาอยู่ข้างนอกก็ต่อผ่านท่อก่อน ความเสี่ยงอยู่ที่ มีใคร Sniffing Data ที่เซิร์ฟเวอร์ไหมแทนที่จะเป็นจุดที่เราต่อ Wireless

  • Barcamp Shortnote

    Posted in Computer Science - 27 January 2008 23:01:17
  • รายละเอียดที่เก็บได้จาก Barcamp

    แนะนำให้อ่านของ [Link] อันนี้ก่อน เพราะค่อนข้างครอบคลุมประเด็นทีเดียว

    Making Magick with SSH by Joson Smith มาจาก Proven Corporation

    คนนี้เป็นมืออาชีพมากๆครับ คำสั่งต่างๆสามารถเขียนได้อย่างรวดเร็ว ทำงานอย่างเร็วในการเข้าถึงส่วนต่างๆ ไม่ว่าจะเป็น Presentation ที่ทำเป็น HTML ใช้โปรแกรม Compile เอา ไม่แน่ใจว่าใช้โปรแกรมอะไร กับ Swap Desktop ทราบภายหลังจากพี่ Sugree ว่า Features นี้มีอยู่ใน Ubuntu Version ใหม่แล้ว

    ประเด็นของ SSH ที่ไม่เคยรู้มาก่อน ก็เป็นพวกการทำ VPN ส่วน Port Forwarding เคยใช้มาก่อนหน้าแล้ว ถึงอย่างไรก็ตาม เทคนิคในการนำเสนอน่าติดตามมากทีเดียว SSH สามารถสร้างเป็น Tab เหมือน Firefox ได้ด้วย อันนี้เพิ่งรู้ แต่รู้สึกว่าใช้โปรแกรมที่ชื่อว่า screen เข้ามาช่วย

    Session นี้มีคำถามอยู่ แต่หมดเวลาพอดี ไม่ทันได้ถาม เสียดายมาก พอดีมีโครงการจะทำ MySQL Tunnel ระหว่างเครื่อง Web Server กับเครื่อง MySQL Server แต่ไม่แน่ใจในเรื่องของ Performance ว่าจะลดทอนอะไรอย่างไร

    Google Summer of Code by Sugree

    อันนี้พูดถึงโครงการของ Google ครับ ตอนแรกผมเข้าใจว่ามีแต่ Student เข้าร่วมได้เสียอีก แต่ปรากฏว่าสามารถเข้าร่วมได้ในบทบาทอื่น เช่น การเป็น Mentor หรือผ่าน Opensource Organization โดยปกติจะรับสมัครช่วงมีนาคม นับว่าเป็นโครงการที่ดี เดี๋ยจะลองสมัครไปเป็น Mentor ดู

    Ruby shared Host by Speedthai.com

    ผู้พัฒนา Shared Host รายแรกที่ สามารถใช้ภาษา Ruby ได้ เขาก็เป็นคนมาแนะนำ เขาแนะนำการใช้ FastCGI มีการ Setup ครั้งแรกที่ Setup ยาก เพียงครั้งเดียว แต่ว่าสามารถทำ Performance ได้ดีกว่า สามารถ Fork Process ของ Application Ruby ได้อัตโนมัติ รวมถึงการ Release หน่วยความจำ ตั้งเวลาไว้ เมื่อโปรแกรมไม่มีการใช้งาน เพื่อลดการใช้ Memory ตอน Demo เขาใช้ VHCS Control Panel มา Modified แต่มี Direct Admin ที่พอจะใช้งานได้อยู่บ้าง ส่วนตอนนี้กำลัง Create Control Panel สำหรับ Ruby อยู่ ชื่อว่า Redgem ที่ Sourceforge.net

    Open Social / Facebook อันนี้เสียดายไม่ได้เข้าฟัง

    Haskell Functional Programming อันนี้เข้าฟังช่วงแรกไม่ทัน เลยหลุด ฟังไม่เข้าใจเลย เลยหนีมาฟังห้องข้างๆแทน เรื่องของ Capacity Test แต่ว่าไม่มี Comments

    หลังจากนั้นฟังหัวข้อ SA กับ SpeedThai อีกครั้ง ตอนนี้เรารู้สึกเหมือนเรียนวิชา Requirement Engineering ใหม่อีกรอบ เพราะเป็นเนื้อหาวิชานั้นเลย เช่น วิธีการเก็บ Requirement รูปแบบต่างๆ จริงๆ มี Comments แต่ว่าหมดเวลาเสียก่อน คือ เรื่องของ Requirement Documents จะต้องวัดค่าได้ เพราะว่ามันจะควบคู่กับเอกสาร TOR ในการตีความตอนรับมอบงานของลูกค้า รวมถึงเอกสาร SRS Practice ของ IEEE 830-1998 ด้วย แล้วก็เรื่องวิธีการเก็บ Requirement ที่มีมุมมองความลึกแคบแตกต่างกัน เช่น การทำแบบสอบถาม จะได้ข้อมูลแบบกว้าง แต่การสัมภาษณ์จะได้ข้อมูลแบบลึก เวลาการ Interview จะต้องมีการกำหนดรูปแบบคำถาม ซึ่งระหว่างกลุ่ม Manager กับ Operation จะแตกต่างกัน รวมถึง เอกสาร SA หลายอย่าง สามารถแทนที่ได้ด้วย UML แล้ว หลายแผนภาพ เป็นแบบเก่า ที่ปัจจุบัน หนังสือเรียนมีอยู่ แต่ไม่ได้ใช้กันแล้ว

    Java Multithread

    อันนี้พูดเรื่อง Mahlee ว่าจะเอามาลองใช้งานดูบ้างอยู่ ถ้าหากว่าง มีคำถาม แต่ไมได้ถามออกไป เช่นการ Compare กับ Java Script Library ประเภทอื่นๆ

    L10N

    เรื่องของ Localization ตรงนี้ มีคำถาม แต่ไม่ทันได้ถาม เพราะหมดเวลาก่อน แต่ก็ได้ถามไปแล้วหลายคำถาม จริงๆติดประเด็นอยู่ว่า แล้วถ้าเราสร้างโปรแกรมขึ้นมาเอง เราจะ Generate ในส่วนของ Translation อะไรอย่างไร ให้มันสามารถ Code Readability กับ Transalation ablity พร้อมๆกัน ส่วนใหญ่เค้าแนะนำโปรแกรมบน Linux แต่เราถนัดแต่โปรแกรม poEdit บน Windows ซึ่ง ใช้ล่าสุดก็ยังมีปัญหากับภาษาไทยอยู่ สุดท้ายก็เลยไม่ได้ใช้ทำงานอะไรจริงๆจังๆเสียที

    Security Patterns

    อันนี้เป็นคนพูดเอง เน้นเชิง Discussion หน่อย เพราะว่าเตรียมตัวมาไม่ทัน ได้หลายๆคนมาช่วยไว้ ทำให้งานสามารถ Present ได้ครบเวลา ซึ่งติดตามได้จาก [Entry นี้]

    หลังจากนั้นเป็นอันหมด

    หัวข้อที่เหลือมีที่น่าสนใจอยู่หลายอันที่ไม่ได้เข้าฟัง อย่างเช่น งานวิจัยทางด้าน Biology กับคอมพิวเตอร์ อยากฟัง แต่ว่าหลุด Schedule ไป

    ถ้ามีโอกาสไปครั้งหน้า อาจจะพูดเรื่องของ Code Optimization (คือสนใจจะ Discussion แต่ไม่มีความรู้แฮะ) กับเรื่องของ MySQL HA/ Performance Tunning อะไรทำนองนั้น นอกเหนือจาก Security Patterns ที่ครั้งหน้าอาจจะมีอะไรน่าสนใจเพิ่มขึ้น ก็เป็นได้

  • authorized_keys and public key

    Posted in Knowledge - 27 February 2007 23:47:12
  • I found some problem when generate private key from Putty Keygen or Vandake SecureCRT that will generate public key in standard type and it cannot be use in authorized_keys file in Linux. So, this is the way to convert standard public key file type to be format that can add to authorized_keys

    1. Copy public key to Linux (Destination which you would like to automatically authentication)
    2. #ssh-keygen -t rsa -f publickeyfile -i
    3. copy STDOUT to authorized_keys
    4. Done