Server โดยปกติมักจะมีบริการมาตรฐานอยู่สองสามอย่างที่หลุดพ้น Firewall ออกมา เช่น 80, 443, 22 เมื่อต้องการเข้าไปใช้บริการอื่นที่เปิด port พิเศษก็ต้องใช้วิธีพิเศษกันหน่อย โดยการขุดอุโมงผ่าน port มาตรฐานเข้าไป เครื่องมือที่ต้องใช้ก็มีอยู่แค่อย่างเดียว ssh ให้ sshd ยอมให้ต่ออุโมงโดยกำหนดในไฟล์ sshd_config ถ้าเป็น FreeBSD, Linux หาได้ที่ /etc/ssh/sshd_config แต่ OSX ดันวางไว้ต่างจากที่อื่นหน่อย /etc/sshd_config เลย จากนั้นก็ขุดอุโมงด้วยคำสั่ง Option ต่างๆ ที่ใช้ด้านบนคือ -p [port] สำหรับบอกว่าจะต่อไปที่เครื่องเป้าหมายที่ port ไหน ไม่จำเป็นต้องใส่ default คือ 22 -g สำหรับให้เครื่องอื่นต่อผ่านเข้าไปได้ด้วย ถ้าไม่ใส่ ssh จะ bind เข้า ip 127.0.0.1 ทำให้เข้าจากเครื่องอื่นไม่ได้ -L [local_port]:[target_host]:[target_port] [...]
SSH Tunneling via Apache
อุปกรณ์ที่มี Apache web server ที่ติด mod_proxy และ mod_proxy_connect หรือ Web proxy server อะไรก็ได้ที่รองรับคำสั่ง CONNECT Proxytunnel SSH client เริ่มจากตั้งค่าให้ Apache ก่อน โดยกำหนดให้ Apache เป็น Forward Proxy ServerName blah.com ProxyRequests On ProxyVia On AllowCONNECT 22 80 443 563 Order allow,deny Allow from all ProxyRequests เพื่อให้ Apache ทำตัวเป็น ForwardProxy เอา request เรียกไปที่เครื่องอื่นต่อได้ ProxyVia เพื่อให้ Apache แปะไปที่ request ที่เรียกต่อไปด้วยว่า [...]
Automatic ssh authenticate
วันนี้ willwill ถามในห้อง #ubuntu-th ว่าทำยังไงให้เข้าไปในเซิร์ฟเวอร์ได้โดยไม่ต้องพิมพ์รหัสผ่าน ก็คุ้นๆว่าเคยทำเมื่อปีที่แล้ว แต่ลืมไปแล้วค้นๆ ในบล๊อกก็เคยทำจริงด้วยแต่ไม่ได้เขียนวิธีไว้วันนี้เลยขุดค้นใหม่ (แต่ willwill เจอวิธีไปก่อนและ แต่คนละเว็บ) เอามาเขียนเก็บกันลืมในนี้อีกที ขั้นแรกล๊อกอินเข้าไปที่เซิร์ฟเวอร์ผ่าน ssh แล้วสร้าง key มาก่อนด้วยคำสั่งssh-keygen -t rsaโดยด้านหลังสุดอาจเป็น rsa หรือ dsa ก็ได้แล้วแต่วิธีที่จะใช้เข้ารหัส จากนั้นมันจะถามคำถามมามากมายรวมทั้งให้ใส่รหัสอีกทีรวมทั้งไฟล์ที่จะไว้เก็บ key นี้ด้วย สุดท้ายแล้วจะได้ไฟล์ออกมาสองไฟล์ คือไฟล์ที่เราใส่ชื่อเข้าไปกับ อีกอันที่มี .pub (คิดว่าเป็นไฟล์ที่เก็บ public key) ออกมา คัดลอกข้อมูลในไฟล์ .pub ลงไฟล์ ~/.ssh/authorized_keyscat host.pub >> ~/.ssh/authorized_keys เอาไฟล์ที่ได้ออกมาอีกไฟล์ส่งกลับมาที่เครื่องส่วนตัว แล้วเก็บไว้ที่ ~/.ssh เหมือนกัน ครั้งต่อไปที่เข้าเซิร์ฟเวอร์ก็ไม่ต้องใส่รหัสผ่านอีกต่อไปและ ช่วงนี้มานั่งนึกๆ ดูรู้สึกที่ทำงานมาหนึ่งปีกว่า ส่วนที่จำได้ส่วนใหญ่แล้วเกี่ยวกับงานมันก็จะถูกเขียนอยู่ในบล๊อกนี้แหละ ก็เลยอยากให้คนอื่นเขียนๆ ไว้บ้าง เอ๊ะ หรือว่าให้พี่สร้างบล๊อกของแต่ละคนในที่ทำงานไว้ดี เวลาทำไรก็ให้ทุกคนจดไว้ในนั้น [...]