ผมเจอปัญหาเรื่อง Clickjacking ก็เลยมา Blog ไว้สักหน่อย เพราะเป็นปัญหาซ้ำซ้อนซึ่งบางครั้งหลงลืม ผมใช้ Nginx เป็น reverse proxy ก็ตั้งค่า X-Frame-Options ให้ DENY ดูเหมือนว่าจะไม่มีปัญหาอะไร แต่พอตรวจสอบก็ยังเจอปัญหา ClickJacking Attacks อยู่เพราะ Express ยังไม่ได้แก้ เอ้อ…ใครจะไปคิดว่า developer ลืมเรื่องนี้ไป ก็เลยต้องมา patch โค้ดเอาเอง

Node.js มี module สารพัดประโยชน์อยู่ตัวนึงชื่อ Helmet เอาไว้ดัก Header โดยเฉพาะ วิธีการใช้ก็ง่ายมาก สั่ง download module มาก่อนเลย

npm helmet --save

จากนั้นแก้โค้ดเลยครับ เพิ่ม helmet ต่อท้าย express ได้เลย

สำหรับการตั้งค่าใน Web Server อื่นๆ ดูได้จากลิงค์นี้ครับ

ค่าย Elasticsearch ออกของเล่นมาใหม่มาหลายตัว เช่น Beats, Graph, Watcher เป็นต้น ครั้งนี้เราจะมาลองเล่น Beats กัน Beats เป็นแพลทฟอร์มส่งข้อมูลไปยัง Logstash หรือส่งไปยัง Eleastic Search แล้วเอา Kibana มาประมวลผลข้อมูลและสร้าง Dashboard ต่อได้

Beat มีเครื่องมือย่อยอีกหลายตัว

  • Topbeat ส่งข้อมูล CPU, memory, process และข้อมูล system อื่นๆ
  • Packetbeat ส่งข้อมูล web, database และ network protocols อื่นๆ
  • Filebeat ส่งข้อมูลในไฟล์ logs ใช้ร่วมกับ logstash ได้
  • Winlogbeat ส่ง event logs บน Windows


Continue reading

เนื่องจากมีคนถามเข้ามาบ่อยเรื่อง Font เพราะกังวลเรื่องลิขสิทธิ์ และเข้าใจว่ามีฟอนต์อยู่ในเครื่องตั้งแต่ตอนซื้อเครื่องคอมพิวเตอร์มา ไม่ทราบว่าละเมิดลิขสิทธิ์หรือเปล่า แต่อยากเอาไปใช้งาน บางรายมาขอให้ค้นหาข้อมูลเจ้าของฟอนต์กันเลยทีเดียว ครั้งนี้ ก็เลยถือโอกาสมาบล็อกไว้สักหน่อย

แหล่งดาวน์โหลดฟอนต์ภาษาไทย มี 3 แหล่ง

ถ้านึกออกจะทะยอยมาอัพเดทเพิ่มเติมครับ

เมื่อปีที่แล้วมี developer ท่านนึงคนชวนเล่น Gogs จำไม่ได้ว่าคุยเรื่องอะไรกัน แต่ก็น่าสนใจดี Gogs เป็น self-hosted Git Services เขียนด้วยภาษา Go ซึ่งเจ้าตัวนี้หน้าตาและฟังก์ชั่นหลายอย่างคล้ายกับ Github (เวอร์ชั่นเก่า) ใครเคยใช้ Github คงจะคุ้นเคย

สำหรับท่านที่อยากลอง Gogs สามารถติดตั้งได้หลายวิธีทั้งผ่าน binary, source และ package.io ครั้งนี้มาลองติดตั้งจาก package.io กันดูบ้าง เริ่มจากติดตั้ง repository กันก่อน และติดตั้ง Gogs อ้อ ผมใช้ Ubuntu 14.04 Server 64bits

Continue reading

หลายท่านอาจจะเคยพยายามค้นหาช่องโหว่ของ server บ้างก็พยายามหาจากการเปิด Port หรือหาจาก Server Infomation ที่ service นั้นๆ รายงานมาให้ จากนั้นก็ไปหารายละเอียดเพิ่มเติมจาก CVE report เพื่อให้ในการ hack หรือ patch หรือไป subscribe จาก CVE report มาเพื่อดูรายการ patch ซึ่งก็แล้วแต่ทางเลือกในการบริหารจัดการ

ครั้งนี้จะมาแนะนำเครื่องมือตรวจสอบช่องโหว่ของ Server ตัวนึงชื่อ Nessus เจ้า Nessus นี้มีมานานมากกกกก และเป็นเครื่องมือที่มีการพัฒนาที่รวดเร็วพอสมควร ปัจจุบันมีบริการแบบ Cloud Service ด้วย Nessus จะมีฐานข้อมูลของช่องโหว่ในระบบต่างๆ ของ Server ซึ่งคุณสามารถใช้ฐานข้อมูลนั้นมาช่วยในการ Scan และ Patch อ้อ สำหรับการ Patch จะเป็นคำแนะนำสั้นๆ ไม่มี Tutorial ให้อ่านจะต้องหาข้อมูลเพิ่มเติมจาก Software นั้นๆ นะครับ มาลงมือกันเลย

Continue reading

แนะนำว่าให้ตั้งรหัสผ่านให้ยากเข้าไว้ ให้ยาวเข้าไว้ มีตัวอักษรเล็กใหญ่ มีเครื่องหมายสัญลักษณ์ ฯลฯ คำถามคือทำไปทำไม จำก็ยาก แถมห้ามจดแปะไว้ที่จออีกต่างหาก ทำไม ทำไม ทำไม ทำไมต้องทำให้ชีวิตลำบากด้วย เอ่อ… ผมว่าหลายคนอาจจะเคยเจอสถานการณ์แบบนี้ แหม… ก็อยากจะบอกว่าการเจาะรหัสผ่านมันง่ายมากๆ เครื่อง PC ธรรมดาๆ ใช้เวลาไม่ถึงวินาทีก็สามารถเจาะรหัสผ่านกันได้แล้ว วิธีการแบบธรรมดาๆ ที่ชอบใช้กันคือ Brute force โดยอาศัยฐานข้อมูลรหัสผ่านและการผสมอักษรเพื่อให้ได้ชุดรหัสผ่านแล้วค่อยๆ ยิงทดสอบไปเรื่อยๆ หากผู้ใช้ตั้งรหัสผ่านง่าย การเจาะก็จะทำได้ในเวลาอันสั้น

เทคนิคการเจาะแบบนี้ยังใช้ได้จนถึงปัจจุบัน เจาะได้ทุกช่องทางที่ใช้ username, password ไม่ว่าจะเป็น Desktop, Server, Web Application ใช้ได้หมด แตกต่างแค่ช่องทางและวิธีการเชื่อมต่อเท่านั้น สำนักด้านความปลอดภัยต่างก็ออกแนวทางการตั้งรหัสผ่านมาหลายแบบ ส่วนใหญ่ก็ให้ตั้งรหัสผ่านให้ยากเข้าไว้ ให้ยาวเข้าไว้ มีตัวอักษรเล็กใหญ่ มีเครื่องหมายสัญลักษณ์ ฯลฯ หรือ Password ยอดแย่ประจำปี เอ้ามาลองดูกันว่าตั้งง่ายตั้งยากใช้เวลาต่างกันหรือไม่

Continue reading

ผมมีโอกาสได้กลับมาดูเรื่อง Security ในรอบหลายปี ก็เลยคิดว่าน่าจะเขียนเนื้อหาอะไรเกี่ยวกับ Security บ้าง เนื้อหาก็คงหนีไม่พ้นเรื่องวิธีการที่ทำบ่อยและเครื่องมือที่ใช้ประจำ เนื้อหาจะไม่อิงมาตรฐานด้าน Security มากนัก คิดว่าเอาประสบการณ์มาแลกเปลี่ยนกัน สำหรับเนื้อหาเกี่ยวกับ Security ติดตามอ่านได้ที่ Tag Security ครับ

วิธีการทำให้ Linux Server ปลอดภัยนั้นมีหลายอย่างที่ต้องคำนึงถึง จะต้องวางแผนก่อนว่าเครื่อง Server นี้ให้บริการ Service อะไร ซอฟต์แวร์ที่ต้องใช้มีอะไนบ้าง ใครเป็นผู้ใช้บ้าง เข้าถึงเครื่อง Server ได้ทางไหนบ้าง เป็นต้น ดังนั้นการ Hardening จะเริ่มตั้งแต่ตอนติดตั้ง Linux กันเลย สิ่งที่ผมทำเป็นประจำคือ

  • แบ่ง partition แยกตามความต้องการของการใช้ service นั้นๆ
  • สั่ง encrypt partition ที่ต้องการ
  • ติดตั้ง service ที่ต้องใช้เท่านั้น และใช้ ssh สำหรับ remote เท่านั้น
  • ตั้งรหัสผ่านสำหรับผู้ใช้ให้ยากเข้าไว้ ตัวเล็ก ตัวใหญ่ ตัวเลข สัญลักษณ์ ความยาวมากกว่า 8 ตัวอักษร
  • ตั้งค่าเวลากับ ntp server


Continue reading

Raspberry Pi 3 Model B เปิดตัวและวางจำหน่ายในหลายประเทศแล้ว ครั้งนี้จะมาแนะนำ Raspberry Pi 3 ว่ามีอะไรเปลี่ยนแปลงไปบ้าง สำหรับรุ่น 3 นี้มีการเปลี่ยนแปลงหลายอย่างทั้ง Architechture ของ Chip ขนาดของ Memory มี Wireless และ Bluetooth 4.1 รองรับ Bluetooth Low Energy มาให้ด้วย

ก่อนอื่นมาดู spec กันก่อน

  • A 1.2GHz 64-bit quad-core ARM Cortex-A53 CPU
  • 802.11n Wireless LAN
  • Bluetooth 4.1
  • Bluetooth Low Energy (BLE)

ส่วนที่เหมือนกับรุ่น 2

  • 4 USB ports
  • 40 GPIO pins
  • Full HDMI port
  • Ethernet port
  • Combined 3.5mm audio jack and composite video
  • Camera interface (CSI)
  • Display interface (DSI)
  • Micro SD card slot (แบบเสียบ)
  • VideoCore IV 3D graphics core


Continue reading

เนื่องจากมีคำถามเข้ามาผ่านทาง Facebook แฟนเพจ thaiopensource เรื่องการต่อ Webcam 2 ตัวพร้อมกับทำ Video Streaming ผ่าน MJPG-streamer ก็เลยหากล้อง Webcam มาลองให้ครับ ในกรณีนี้ผมมี Webcam 1 ตัว กับ Raspberry Pi Camera Module อีก 1 ตัว

แนวคิดคือให้ MJPG-streamer ทำงานคนละ port ตามจำนวนของกล้อง

  • Webcam จะถูก Stream ออก port 9000
  • Raspberry Pi Camera Module จะถูก Stream ออก port 9100


Continue reading

เนื่องจากมีมหากาพย์ที่เป็นเรื่องราวกันมาอย่างต่อเนื่องและยาวนานเกี่ยวกับ Software License (สัญญาอนุญาตซอฟต์แวร์) ซึ่งมีอยู่หลายตัว หลายค่าย หลายแบบ ซึ่ง License แต่ละตัวก็ไม่เหมือนกัน การทำความเข้าใจในบริบทของภาษากฎหมาย ที่ใช้คำทางการ อ่านแล้วต้องตีความกันไปมาทำให้ ผู้ใช้หรือผู้พัฒนาไม่ค่อยเข้าใจมากนัก ซึ่งโดยส่วนใหญ่ก็ไม่ได้อยากจะทำความเข้าใจกันสักเท่าไร เพียงแค่ว่า เลือกกดปุ่ม I Agree แล้วก็จบกัน ก็เลยคิดว่าน่าจะกลับมาเขียนเกี่ยวกับเรื่องนี้บ้าง

ผู้ประกอบการธุรกิจซอฟต์แวร์ส่วนใหญ่มักจะเข้าใจว่า 4 Freedom ของ Free Software คือตัวแทน License ของ Open Source Software ซึ่งในความจริงแล้ว 4 Freedom ของ Free Software เป็นนิยามและสิ่งที่บ่งบอกว่า Free Software ต้องเป็นอย่างนี้ และใช้ License ของ Free Software หรือ License ที่เข้ากันได้ จึงจะเรียกได้ว่าเป็น Free Software

ซึ่ง Open Source Software ไม่ได้เป็น Free Software ซะทีเดียวจะต้องดู License ว่าเข้ากันได้หรือไม่ด้วย Open Source Initative (OSI) ได้ประกาศรายชื่อ License ที่ได้รับการรับรองว่าเป็น Open Source License ไว้แล้ว สิ่งที่ OSI เอามาวัดว่า License นั้นเข้าข่ายเป็น Open Source License หรือไม่นั้น คือ Open Source Definition นั่นเอง License ที่ OSI รับรองไปแล้วนั้น ในรายละเอียดจะไม่เหมือนกัน ก็ต้องดูและทำความเข้าในเป็นรายตัวไป

เขียนมาหลายบรรทัดแล้วยังไม่เข้าหัวข้อเรื่องที่ตั้งไว้สักที เอาเป็นว่าหากท่านอ่าน License ภาษาอังกฤษสำนวนกฏหมายได้เข้าใจอย่างดีเยี่ยม ก็ถือว่าท่านมีความรู้ด้านกฏหมายและด้านซอฟต์แวร์เลยทีเดียว สำหรับท่านที่อ่าน License แล้วยังมึนๆ งงๆ ก็ขอนำเสนอเว็บไซต์อธิบาย Software License แบบเข้าใจง่ายๆ ในไม่กี่บรรทัดมาฝากกัน

เว็บแรกชื่อ choose a license เหมาะกับผู้ต้องการเลือก Open Source License เพื่อนำไปใช้กับ Software ของตัวเองหรืออยากทำความเข้าใจในรายละเอียดของ License นั้นๆ อย่างรวดเร็ว

เว็บที่สองชื่อ tl;dr legal เป็นบริการแบบ Software Licenses in Plain English ตามชื่อเลยครับ เว็ยนี้จะมีคำอธิบายสั้นๆ เข้าใจง่ายเกี่ยวกับ License นั้นๆ โดยแบ่งเป็นส่วนๆ อธิบายสิ่งที่คุณสามารถทำได้ ทำไม่ได้ และต้องทำ เข้าใจง่ายมากๆ

ลองเข้าไปศึกษาดูครับ แล้วจะรู้ว่าเข้าใจ Software License ง่ายนิดเดียวจริงๆ