วิธีการใช้งาน ADSL ร่วมกันกับข้างบ้าน

ใครใช้ ADSL หรือ ซื้อ Internet ไว้ใช้งานที่บ้านบ้าง ??? มีราคาตั้งแต่ 590 บาทต่อเดือน (ไม่รวม VAT) ขึ้นไป เมื่อมีแล้วก็ใช้งานได้รวดเร็วทันใจ … แต่คำถามคือ … ใช้งานคุ้มค่าหรือไม่ ??? แล้วจะดีไม๊ ถ้ารู้ว่า ยังใช้ไม่คุ้มค่า แล้วสามารถหารค่าใช้จ่ายร่วมกับข้างบ้านได้ หรือ กรณีบ้านเดียวกันนี่แหล่ะ แต่เป็นบ้านทรงสูงเช่น บ้านเป็นตึกหลายชั้น จะเดินสาย LAN ไปชั้นบนๆก็ไม่สะดวก ไม่สวยงาม สามารถใช้ Solution นี้ได้ (แบ่งสัดส่วนกันตามสะดวกใจ) โจทย์: บ้าน A พบว่า ตัวเองใช้งาน ADSL 10Mbps ไม่ค่อยคุ้ม เลยคุยกับบ้าน B ว่า แบ่งใช้งานกันไม๊ ? บ้าน B ก็พบว่า ตัวเองถ้าติดตั้ง ADSL ใหม่ก็ใช้ไม่คุ้มเช่นกัน จึงหาทางออกร่วมกัน บ้าน A และ B คั่นด้วยถนนหมู่บ้าน กว้าง 10 เมตร ไม่สามารถลากสาย LAN ข้ามมาได้ ส่วน ADSL Router ของ A อยู่กลางบ้าน และปล่อยสัญญาณ WiFi เต็มพิกัด ที่กลางบ้าน B วัดความแรง WiFi ของบ้าน A ได้ -88 dB แต่ถ้ามาที่หน้าบ้านของ B จะวัดได้ -65 dB ซึ่งพอจะไหว แนวคิด: จะใช้เทคนิค WiFi Repeater ด้วย ADSL Router ตัวเก่ารับสัญญาณ WiFi มาแล้วกระจายผ่าน LAN ส่งให้ ใช้ WiFi Router อีกตัว ทำหน้าที่เป็น Access Point อุปกรณ์ที่ใช้ และการตั้งค่า: บ้าน A: 3BB ADSL WiFi Router (Router IP: 192.168.1.1) ตั้ง SSID เป็น AHOME บ้าน B: 1. Xyzel NBG-419N ทำงานในโหมด WISP (Wireless Internet Service Provider) ทำหน้าที่รับสัญญาณ WiFi มากระจายผ่าน LAN (Router IP: 192.168.2.1) และเปิด DHCP Range 192.168.2.2 – 192.168.2.99 จากนั้น เสียบสาย LAN เข้าที่ Port 1 (ถ้าจะให้ตัว Router อยู่ภายในบ้าน ควรซื้อสาย Antenna ยาวสัก 3 เมตร ราคาประมาณ 199 บาท เพื่อให้เสาอากาศไปอยู่นอกบ้าน แล้วเชื่อมสายสัญญาณเข้ามาที่ตัว Router) 2. TP-Link TD-W8961ND เปลี่ยนเป็น Access Point Mode  (Router IP: 192.168.2.100) ตั้ง SSID เป็น BHOME ปิด DHCP Server แล้วเสียบสาย LAN เข้ามาที่ Port 1 ผลการทำงาน:  บ้าน B: เมื่อเชื่อมกับ BHOME จะได้สัญญาณความแรง -50dB ทั้งบ้าน สามารถทดสอบ Speed Test ได้ 7

Read More »

วิธีตรวจสอบเว็บไซต์ที่โดน Hack #16

ShellShock หรือในอีกชื่อคือ Bashdoor (เลียนเสียง Backdoor) ซะงั้น เป็นช่องโหว่ใน Shell ที่ใช้กันทั่วไปในตระกูล *NIX ทั้ง UNIX, Linux รวมถึง Mac OS X[1] ด้วย โดยอาศัยความสามารถในการเขียน Function ใส่ใน Environment Variable ได้ โดยไม่มีการตรวจสอบข้อมูลที่แถมมาทำให้สามารถแทรกคำสั่งของระบบปฏิบัติการได้ ช่องโหว่นี้เริ่มประกาศเป็น CVE-2014-6271[2] โดย Bash Shell ที่ได้รับผลกระทบเริ่มตั้งแต่รุ่น 1.14.0 ถึง 4.3 ย้อนกลับไปตั้งแต่ปี 1999 กันเลยทีเดียว !!  มีผลกระทบกับ CGI-base Web Server (ได้แก่ Apache), OpenSSH Server, DHCP Clients และ Qmail Server โดยเป็น Bug ตาม CWE 78[3] Improper Sanitization of Special Elements used in an OS Command (‘OS Command Injection’) วิธีตรวจสอบ Bash Version ใช้คำสั่ง bash –version หากพบว่า ต่ำกว่า 4.3 ก็ให้ลองคำสั่งต่อไปนี้ env x='() { :;}; echo Vulnerable’ bash -c ‘echo Hello World’ ถ้าตอบมาว่า Vulnerable Hello World ก็แสดงว่า เป็นเครื่องนี้มีช่องโหว่ครับ อธิบายเพิ่มเติม 1. คำสั่งในการสร้าง Environment Variable คือ env x=’ … ‘ โดยในที่นี้จะมีตัวแปร x เป็น Environment Variable 2. ต่อมา ในตัวแปร x สามารถสร้าง Function ได้ ในรูปแบบ env x='() { :;};’ ภายใน { } จะใส่คำสั่งอะไรก็ได้ แต่ในตัวอย่างนี้ เครื่องหมาย : มีความหมายเหมือนกับ true อะไรทำนองนั้น 3. ปัญหาอยู่ตรงที่ว่า Bash Shell ที่มีปัญหา ไม่ได้ตรวจสอบว่า Environment Variable ที่สร้างแบบ Function นี้ สิ้นสุดแค่การสร้าง function ทำให้สามารถแทรกคำสั่งเพิ่มเติมได้ หลังเครื่องหมาย ; env x='() { :;}; echo Vulnerable’ ลองใช้คำสั่ง env x='() { :;}; cat /etc/passwd’ จะแสดงตัวแปร Environment Variable ทั้งหมด และพบตัวแปร x มีค่าเป็น function อยู่ แต่จะยังไม่มีอะไรเกิดขึ้น 4. แต่เมื่อมีการเรียก Bash Shell ทำงาน ด้วยคำสั่ง env x='() { :;}; echo Vulnerable’ bash -c ‘echo Hello World’ ก็จะเป็นการเรียกคำสั่งในตัวแปร x ออกมาด้วยนั่นเอง กรณีผลกระทบของ DHCP Client คือ ถ้าเครื่อง DHCP Server ตัวอย่างเช่น dnsmasq[4] สามารถตั้งค่า dhcp-option-force ซึ่งจะส่งคำสั่งไปยัง

Read More »

วิธีติดตั้ง Window Manager แบบน้อยที่สุดบน Ubuntu Server

เนื่องจากต้องการสร้าง VirtualBox ขนาดเล็กสุดๆเพื่อใช้เตรียมทำ Workshop แต่จะไม่สะดวกสำหรับผู้อบรมที่ไม่คล่องเรื่องคำสั่งบน Linux มากนัก อยากให้ Copy-Paste ได้บ้าง จึงต้องหาวิธีลง Window Manager ให้พอใช้ได้ เริ่มต้นจากติดตั้ง ubuntu server version ที่ต้องการ จะใช้พื้นที่ประมาณ 890 MB คราวนี้เลือก Window Manager ที่เล็กที่สุดแต่ใช้งานง่าย นั่นคือ LXDE หรือ lubuntu-desktop ปัญหาอยู่ที่ว่า ถ้าลงแบบ Default มันจะลากเอาสิ่งที่ไม่ต้องการมามากมาย ทำให้ขนาดที่ใช้ขยายจาก 890 MB ไปถึง 2.5 GB ซึ่งใหญ่เกินไป จึงไปค้นหาวิธีดูพบว่าให้ทำดังนี้ 1. sudo apt-get install –no-install-recommends lubuntu-desktop 2. เมื่อติดตั้งเสร็จ ให้ reboot เครื่องหนึ่งรอบ ก็จะเข้าสู่ lubuntu แบบน้อยที่สุด ใช้พื้นที่ไปเพียง 1.3 GB 3. ปัญหาต่อมา หากใช้บน VirtualBox ก็จะติดปัญหาเรื่อง Screen Resolution ที่บีบบังคับไม่ให้เปลี่ยนแปลงได้ง่ายๆ จึงต้อง ติดตั้ง Guest Additions ลงไป แต่ เนื่องจากเป็นการลงแบบเล็กที่สุด จึงไม่ติดตั้งพวก Build Tools มาด้วย จึงต้องใช้คำสั่งนี้ก่อน sudo apt-get install build-essential 4. จากนั้น จึงติดตั้ง Guest Additions ต่อไป แล้วปรับ Screen Resultion ได้ตามต้องการ

Read More »

วิธีใช้ Google Sheets ลบผู้ใช้จำนวนมากบน GAFE

[บทความนี้ สำหรับผู้ที่มี Admin Privilege ขึ้นไป] ต่อจากบทความ วิธีใช้ Google Sheets เปลี่ยนแปลงข้อมูลผู้ใช้จำนวนมากบน GAFE เมื่อต้องการลบผู้ใช้จำนวนมาก ก็ทำเหมือนเดิม แต่เปลี่ยน Script นิดหน่อยดังนี้ สร้าง Google Apps Scripts ใน Google Sheets นี้ ด้วยเมนู Tools > Script Editor … จากนั้นเลือก Blank Project แล้วกดปุ่ม Close ตั้งชื่อโปรเจค UpdateUser แล้วใส่โค๊ดดังนี้ (ปรับค่า firstRow และ lastRow ให้เหมาะสมตามต้องการ) นอกนั้นเหมือนเดิม หวังว่าจะเป็นประโยชน์ครับ

Read More »

วิธีใช้ Google Sheets เปลี่ยนแปลงข้อมูลผู้ใช้จำนวนมากบน GAFE

[บทความนี้ สำหรับผู้ที่มี Admin Privilege ขึ้นไป] วิธีใช้ Google Sheets สร้าง Account ใหม่ลงใน Sub Organization ของ GAFE เมื่อต้องการแก้ไขข้อมูลของผู้ใช้จำนวนมาก ได้แก่ ตั้งรหัสผ่านใหม่ ไม่บังคับให้เปลี่ยนรหัสผ่านในครั้งแรกที่เข้าระบบ ย้าย Organization Unit ไปอยู่ภายใต้ /Students ใน Admin Console ของ Google Apps จะมีเครื่องมือ Users เพื่อใช้ในการจัดการผู้ใช้ แต่เครื่องมือที่มีอยู่ มีข้อจำกัด คือ ไม่สามารถเขียนเงื่อนไขในการกรองเอาเฉพาะ Email Address ของผู้ใช้ที่ต้องการได้ ดังนั้นจึงต้องใช้วิธีการ Download Users ทั้งหมดออกมาก่อน เลือก Download all users … แล้วกดปุ่ม OK จะได้ไฟล์ UserData-psu.ac.th-20141110.csv (ชื่ออาจจะแตกต่างกันไปในแต่ละโดเมน) ให้ Save ไว้ในเครื่องคอมพิวเตอร์ก่อน แล้ว Upload ไปเก็บไว้บน Google Drive แล้วเปิดด้วย Google Sheets จากนั้นเลือกคอลัมน์ A แล้วคลิกขวาเลือก Copy ไปใส่ใน Google Sheets ใหม่ ใน Google Sheets ใหม่ ให้ Edit > Paste ข้อมูลมาลงไว้ในคอลัมน์ A เช่นกัน จากนั้นในคอลัมน์ B2 ใส่สูตรว่า (นักศึกษาของมหาวิทยาลัยจะใช้ Login เป็นรหัสนักศึกษาซึ่งเป็นตัวเลขทั้งหมด จำนวน 7 หรือ 10 หลัก ตามด้วย @psu.ac.th) ดังนี้ ) จากนั้นให้ Copy สูตรดังกล่าวไปในคอลัมน์ B ทั้งหมด จะทำให้ ชื่อบัญชีของนักศึกษาเท่านั้นที่จะมีค่าเป็น Y ส่วนบุคลากรจะมีค่าเป็น N หลังจากนั้นให้ Filter โดยเลือกเฉพาะคอลัมน์ B ที่มีค่าเป็น Y ก็จะได้นักศึกษาทั้งหมด  แล้วทำการเลือกข้อมูลที่ได้ Copy เอาไว้แล้วสร้าง Google Sheets ใหม่อีกอันหนึ่ง ตั้งชื่อว่า Udate Users แล้วเอาข้อมูลดังกล่าวมาใส่ในคอลัมน์ A จากนั้นสร้าง B เป็น Organization Unit Path ที่ต้องการ แล้วสร้าง C เป็น Password ที่ต้องการตั้ง และ D เป็น Status ต่อไป เป็นขั้นตอนการเขียน Google Apps Script สร้าง Google Apps Scripts ใน Google Sheets นี้ ด้วยเมนู Tools > Script Editor … จากนั้นเลือก Blank Project แล้วกดปุ่ม Close ตั้งชื่อโปรเจค UpdateUser แล้วใส่โค๊ดดังนี้ (ปรับค่า firstRow และ lastRow ให้เหมาะสมตามต้องการ) ถ้าลอง Run เลย จะเจอ Error อย่างนี้ คลิก Continue -> Accept -> Dismiss เพราะยังไม่ได้ Enable API ไว้ เนื่องจากการสร้าง Account ต้องใช้สิทธิ์ของ Admin ขึ้นไป และต้องใช้ Admin SDK Directory

Read More »