Category: Operating System

  • pGina fork 3.9.9.12 configuration

    pGina 3.9.9.12 ส่ง RADIUS accounting ได้ และทำ option Remove account and profile after logout ได้ และ ปุ่ม Shutdown ก็ log off user ให้ด้วย (โดยตั้งค่าที่ Local Machine Plugin จะมีให้ ติ๊ก เลือก Notification เพิ่มมาอีกอัน) นอกจากนี้ก็มีเพิ่ม plugins อีกหลายตัว พร้อมแก้บั๊ก ที่น่าสนใจคือ scripting plugin ทำให้ customize ได้มากขี้น แต่ผู้เขียนบทความนี้ยังไม่ได้ลอง

    เวอร์ชั่น 3.9.9.12 ดาวน์โหลดได้จาก http://mutonufoai.github.io/pgina/index.html

    การตั้งค่าสำหรับทำเป็น Windows Authentication ในเครื่องคอมที่เป็น Windows 10 ผมได้ทำ screen capture มาเฉพาะที่ผมได้ใช้งาน ซึ่งก็คือ Local Machine, RADIUS plugin ดังนี้

    หน้าแรกคือแท็บ General จะแสดงให้เห็นว่าโปรแกรมพร้อมทำงาน ให้ดูที่ข้อความที่แสดงเป็นสีเขียวใต้ข้อความ pGina Service status

    pGina แท็บ General

    และตัวเลือกที่ผมเลือกใช้คือ Use original username to unlock computer คือหากหลุดไปที่หน้า screen saver ก็ปลดได้ด้วย username ที่ login นั้น

    แท็บถัดไปคือ แท็บ Plugin Selection อันแรกที่จะใช้คือ Local Machine คือ user ที่สร้างขึ้นภายใน Windows นั่นเอง สังเกตจะมีตัวเลือกที่ Authentication, Gateway และ Notification (เพิ่มมาใหม่) และที่ใช้อีกอันคือ RADIUS Plugin

    pGina แท็บ Plugin

    จากนั้นให้เลือก Local Machine แล้วให้คลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูปข้างล่างนี้

    Configure Local Machine

    ผมจะใช้ค่าตัวเลือก Remove account and profile after logout เพื่อที่ไม่ต้องเก็บ user profile ที่เป็น user จาก user database ภายนอก เช่น จาก RADIUS server เป็นต้น และ หากต้องการให้ user นั้นมีสิทธิมากกว่า User ทั่วไป ก็ตั้ง Mandatory Group เช่น ตั้งเป็น Administrators หรือ ใส่ชื่อกลุ่ม Guests ไว้ เมื่อเวลาผู้ใช้ login ก็จะมีสิทธิแค่ Guest ติดตั้งโปรแกรมเพิ่มไม่ได้ เป็นต้น

    เราจะไม่ใช้ option Remove account and profile after logout ก็ได้โดยให้เก็บ user account ไว้ ก็จะทำให้การเข้าใช้งาน login ในครั้งต่อไปเร็วขึ้น เพราะไม่ต้องเสียเวลาสร้าง user profile ใหม่ แต่ก็ต้องเตรียม disk ไว้ให้ใหญ่เพียงพอ หรือ ทำรอบ cloning ใหม่ให้เร็วขึ้น

    ต่อไปก็มาถึงตั้งค่า RADIUS plugin หลังจากเลือก Authentication และ Notification แล้วจากนั้นคลิกปุ่ม Configure จะได้ค่าดีฟอลต์รวมกับที่แก้ไขแล้ว ดังรูป

    ผมจะเลือกใช้และใส่ค่าต่าง ๆ เหล่านี้ครับ

    เลือก Enable Authentication เพื่อสอบถาม username/password

    เลือก Enable Accounting เพื่อส่งข้อมูลบันทึกค่า Acct-Status-Type ไปยัง RADIUS Server

    แล้วระบุ Server IP และ Shared Secret ที่จะต้องตรงกันกับที่ระบุอยู่ใน config ที่ RADIUS server เช่น FreeRADIUS จะอยู่ในไฟล์ clients.conf เป็นต้น

    เลือก Called-Station-ID ด้วย หากต้องการเลข MAC Address เก็บด้วยนอกจากเก็บ IP

    พบว่าจำเป็นต้องเลือก Accounting Options หัวข้อ Send Interim Updates เพื่อให้มีการส่งค่า accounting ได้ (โดยใช้ค่า Send update every 900 seconds ตามที่เป็นค่าดีฟอลต์)

    แล้วระบุ IP Address Suggestion เช่น 192.168.1. หมายถึงระบุว่าจะใช้ข้อมูลของ network นี้ เพราะว่าในเครื่องอาจมีการติดตั้งซอฟต์แวร์ที่จำลอง network interface เพิ่มขึ้นมาอีกอัน เป็นต้น

    ส่วนค่าอื่น ๆ ปล่อยไว้ตามเดิม

    ตรวจดูแท็บ Order มีค่าดีฟอลต์ดังรูป

    ผลลัพธ์ของ radius accounting log ที่ไว้ตรวจสอบ ดังรูป

    เพิ่มเติมเนื้อหา

    คัดลอกเนื้อหามาจากเพจเดิม เรื่อง การตั้งค่า pGina และ FreeRADIUS เพื่อส่งค่า RADIUS Accounting ไปยัง Firewall ของมหาวิทยาลัย

    FreeRADIUS Version 2.2.8 แก้ไขไฟล์ /etc/freeradius/proxy.conf
    FreeRADIUS Version 3.0.16 แก้ไขไฟล์ /etc/freeradius/3.0/proxy.conf
    อาจด้วยคำสั่ง vi หรือ nano ตามชอบ

    เพื่อให้มีค่า realm NULL (ประมาณบรรทัดที่ 672) ที่กำหนดค่า Accounting Port เพียงอย่างเดียวส่งไปยังเครื่อง Firewall

    pgina06
    รูปก่อนแก้ไข

    pgina07
    รูปหลังแก้ไข

    ในรูปตัวอย่างเครื่อง Firewall คือ radius.hatyai.psu.ac.th และต้องรู้ค่า secret ที่ตั้งเพื่อใช้สำหรับเครื่อง FreeRADIUS และ Firewall ในที่นี้คือ yoursecret (อันนี้ต้องมีการติดต่อกับ network administrator ของมหาวิทยาลัยเพื่อร่วมกันตั้งค่านี้)

    และแก้ไขอีกแฟ้มคือ

    FreeRADIUS Version 2.2.8 แก้ไขที่แฟ้ม /etc/freeradius/sites-available/default
    FreeRADIUS Version 3.0.16 แก้ไขที่แฟ้ม /etc/freeradius/3.0/sites-available/default

    ประมาณบรรทัดที่ 325 Pre-accounting ใน module ชื่อ preacct

    preacct {
                   preprocess
                   เพิ่ม
    }

    หากยังไม่มีบรรทัดเหล่านี้ ให้เพิ่มด้วยต่อท้ายบรรทัด preprocess

    # append update for pGina no attribute Framed-IP-Address
    if (NAS-IP-Address != 127.0.0.1) {
           update request {
                 Framed-IP-Address = "%{NAS-IP-Address}"
           }
    }

    แล้ว restart FreeRADIUS ใหม่

    pgina08
    รูปแสดงคำสั่งในการ restart

    sudo service freeradius stop
    sudo service freeradius start

    จากนั้นรอให้ทางฝั่งผู้ดูแล Firewall ตั้งค่าโปรแกรมที่ดึงข้อมูลที่ FreeRADIUS ของเราส่งไปนำไปใส่ใน Firewall Rule อนุญาตเครื่องไคลเอ็นต์ไม่ต้อง login ซ้ำ

    ขั้นตอนข้างล่างนี้ ใช้ในขณะทดสอบ option เรื่อง Remove account and profile after logout

    การลบ Windows user account และ profile ที่สร้างโดย pGina

    1.เปิด Computer Management เพื่อเข้าไปลบ user account (ต้อง log off แล้วเท่านั้นจึงลบได้) คลิกขวาปุ่ม Start เลือก Computer Management

    จะได้หน้าต่าง 

    รายการที่มีคำว่า pGina created ค้างอยู่ ผลมาจากการไม่ได้เลือก option Remove  account and profile after logout

    2.เปิด System and Security เพื่อเข้าไปลบ user profile ชื่อ Account unknown

    โดยคลิกปุ่ม Start พิมพ์คำว่า advanc แล้วเลือก View advanced system settings

    คลิกเลือก Advanced system settings ได้หน้าต่างมีหลายส่วน ให้คลิก Setting ในส่วน User Profiles

    คลิกที่ Account unknown แล้วคลิก Delete

  • Fully Shut Down Windows 10

    ทดสอบ Windows 10 รุ่น 1803 พบว่า หากเราจะให้เป็นการ shutdown ที่สมบูรณ์ ไม่ใช่การ shutdown แบบ hibernate แล้วละก็เราจะต้องเปิด command line แบบ Run as Administrator แล้วทำ 2 คำสั่งนี้

    powercfg.exe   /hibernate off
    shutdown  /s  /t  0

    การทำ shutdown ที่สมบูรณ์ เมื่อเราต้องการจะบูตด้วยแผ่นCD SystemRescueCd (หรือ USB boot เป็น Linux) แล้วต้องการจะใช้คำสั่ง ntfs-3g เพื่อ mount แบบ Read Write ได้สำเร็จ เช่น ntfs-3g  /dev/sda1  /mnt/custom เป็นต้น

    การทำ shutdown ที่ไม่สมบูรณ์ เมื่อใช้คำสั่ง ntfs-3g เพื่อ mount แบบ Read Write จะได้ข้อความแจ้งเตือนว่า ทำไม่ได้ และถูกบังคับให้เป็นการ mount แบบ Read-Only แทน
    Windows is hibernated. 

    References:
    How to disable and re-enable hibernation on a computer that is running Windows
    https://support.microsoft.com/en-us/help/920730/how-to-disable-and-re-enable-hibernation-on-a-computer-that-is-running

  • อย่าเชื่อเครื่องมือมากเกินไป …

    เมื่อเดือนมีนาคม 2561 ผมได้ทำการทดสอบเครื่องมือเจาะระบบ “N”  (ใช้ทดสอบว่าระบบเป้าหมายมีช่องโหว่ใดให้โจมตีบ้าง) ภายใต้ภาระกิจ “Honeypot” เพื่อทดสอบว่า เครื่องมือดังกล่าว สามารถรับรองความปลอดภัยของระบบปฏิบัติการของเครื่องเซิร์ฟเวอร์ ก่อนที่จะอนุญาตให้เข้าถึงได้จากอินเตอร์เน็ตได้หรือไม่

    *** การทดลองนี้อยู่ในสภาวะควบคุมที่รัดกุม เป็นระบบที่สร้างขึ้นมา แยกออกจากระบบอื่นที่อาจจะได้รับผลกระทบ และเป็นการทดลองเพื่อวัดความสามารถของเครื่องมือ ไม่ได้มุ่งโจมตีผู้ใด หรือระบบใด ***

    วิธีการทดสอบ

    จัดให้มีเครื่องทดสอบ ชื่อ honeypot.in.psu.ac.th อยู่บน VM และใช้เครื่องมือเจาะระบบ “N” ตรวจสอบ 2 ครั้ง โดยครั้งแรก (Baseline 01) เป็นการติดตั้งระบบปฏิบัติการ Ubuntu 16.04 LTS แบบ Default และ Update ให้เป็นปัจจุบันที่สุด แล้วรีบแจ้งให้ “N” ตรวจสอบ ครั้งที่ 2 (Baseline 02) ทำการติดตั้ง Web Server, PHP, MySQL และติดตั้งช่องโหว่อย่างง่ายที่พัฒนาขึ้นเอง (https://github.com/nagarindkx/honeypot) ลงไป โดยภาพรวมดังภาพที่ 1 แล้วรีบแจ้งให้ “N” ตรวจสอบ

    ภาพที่1: ภาพรวมของ Honeypot

    honeypot.in.psu.ac.th ประกอบด้วยโครงสร้างไฟล์ ดังภาพที่ 2

    ภาพที่ 2: โครงสร้างไฟล์ของ honeypot

    เมื่อคลิก Login with SQL Injection Vulnerable  จะได้ภาพที่ 3 ซึ่งจะส่งไปที่ไฟล์ badform.html โดยในฟอร์มนี้จะมีช่องโหว่ SQL Injection ทำให้สามารถเข้าเป็น admin ได้โดยลองใส่ username/password ดังนี้

    ภาพที่ 3: http://honeypot.in.psu.ac.th/badform.html

    ซึ่งจะได้ผลว่า สามารถเข้าเป็น admin ได้โดยไม่ต้องทราบรหัสผ่านที่แท้จริง แต่อาศัยการเขียน SQL Statement ที่ไม่รัดกุม และไม่ตรวจสอบ Input ก่อน ดังภาพที่ 4

    ภาพที่ 4: ช่องโหว่ SQL Injection

    เมื่อคลิก  Simple Non Persistent XSS   จะได้ภาพที่ 5  ซึ่งจะส่งไปยัง simple.php โดยจะเห็นได้ว่า สามารถใส่ชื่อ นามสกุล ลงไปใน URL ได้เลย ผ่านตัวแปร name  (ต้องลองใช้กับ FireFox ถ้าเป็น Google Chrome จะมี XSS Auditor ไม่ได้รับผลกระทบ)

    ภาพที่ 5: ช่องโหว่ Non Persistent XSS

     

    ช่องโหว่นี้ ทำให้ Hacker นำเว็บไซต์นี้ไป ดักเอา Cookie Session ของผู้อื่น หรือ Session HiJacking ดังภาพที่ 6
    ด้วย URL นี้
    http://honeypot.in.psu.ac.th/simple.php?name=%3Cscript%3Ealert(escape(document.cookie))%3C/script%3E

    ภาพที่ 6: Session HiJacking

    หรือ เปลี่ยนเปลี่ยน URL ที่ “Click to Download” ไห้ยังเว็บไซต์ที่ต้องการได้ เช่นเป็น hacked.com เป็นต้น ดังภาพที่ 7 ด้วย URL นี้
    http://honeypot.in.psu.ac.th/simple.php?name=%3Cscript%3Ewindow.onload=function()%20{%20var%20link=document.getElementsByTagName(%22a%22);%20link[0].href=%27http://hacked.com%27}%3C/script%3E

    ภาพที่ 7: HTML Injection

    เมื่อคลิก Login to Test Permanent XSS จะได้ภาพที่ 8  ซึ่งจะส่งไปยัง goodlogin.php

    ภาพที่ 8:ช่องโหว่ Persistent XSS

    ซึ่ง เป็น Form ที่ป้องกัน SQL Injection และ ไม่ยอมรับ username/password ว่าง หากไม่ทราบรหัสผ่านจริงๆ ก็จะเข้าไม่ได้ ดังภาพที่ 9

    ภาพที่ 9: กรณี Login ไม่สำเร็จ

    หาก Login เป็น user1 สำเร็จ จะสามารถเปลี่ยน Display Name ได้ ดังภาพที่ 10
    ทดลองด้วย

    username: user1
    password: user1123**

    ภาพที่ 10: user1 เมื่อ Login สำเร็จ สามารถเปลี่ยน Display Name ได้

    หาก user1 ต้องการดัก Session HiJack จาก Admin สามารถทำได้โดย แก้ Display Name ดังนี้

    <a href=”#” onclick=alert(escape(document.cookie))>User1</a>

    เมื่อกดปุ่ม Update จะได้ภาพที่ 11

    ภาพที่ 11: user1 วาง Session HiJacking สำเร็จ

    เมื่อ admin เข้ามาในระบบ ด้วย

    username: admin
    password: admin123**

    จะได้ภาพที่ 12

    ภาพที่ 12: admin จะมองเห็นรายชื่อ users ทั้งหมด ในที่จะเห็น user1 ที่มี display name ของตนเองเป็น Link

    เมื่อ admin ติดกับดัก ลองคลิก link ที่เขียนโดย user1 ก็จะเปิดเผย (และสามารถส่ง session กลับไปให้ user1 ได้หลายวิธี) ก็จะได้ผลดังภาพที่ 13

    ภาพที่ 13: แสดง Session ของ Admin ซึ่งในช่วงเวลานั้นๆ user1 สามารถเข้ามาเป็น admin ได้โดยไม่ต้องทราบรหัสผ่านของ admin

    *** และ มี Backdoor ที่อยู่ใน /uploads/ ไฟล์ image.php ที่ ไม่ได้แสดงใน index.php หน้าแรก ซึ่งจะสามารถส่งคำสั่งเข้าไปให้ Execute ได้ เช่น ls -l ดังภาพที่ 14 หรือ แม้แต่ wget ไฟล์จากภายนอกมาไว้ในนี้ได้ เพื่อสร้าง Backdoor ในที่ต่างๆ ซึ่งเรียกว่า Remote Code Execution

    ภาพที่ 14: Backdoor ใน /uploads/image.php ที่ไม่ได้อยู่ใน index.php หน้าแรกของ honeypot

    ผลการทดสอบ

    จากผลการทดสอบด้วย “N” เมื่อ Mon, 12 Mar 2018 13:57:16 ICT ผลดังภาพที่ 15

    ภาพที่ 15: แสดงรายการช่องโหว่ “N”  ตรวจพบ ประกอบด้วย 1 High, 5 Medium Risk

    ผลการทดสอบสามารถสรุปเป็นตารางได้ ดังตารางที่ 1

    ตารางที่ 1: แสดงผลเปรียบเทียบสิ่งที่ honeypot วางไว้ กับสิ่งที่ “N” ตรวจพบ ตามตำแหน่งไฟล์ต่างๆ

    ตำแหน่งไฟล์Honeypot วาง“N” ตรวจพบ
    badform.htmlSQL Injectionยอมรับได้
    – Web Application Potentially Vulnerable to Clickjacking (เป็น Form ที่ยอมให้เว็บอื่นเอาไปใส่ใน iframe ได้)
    login.phpJavaScript Injectionเป็น False Positive
    เพราะ Login Fail

    – CGI Generic SQL Injection (blind)
    – CGI Generic XSS (quick test)
    – CGI Generic Cookie Injection Scripting
    – CGI Generic XSS (comprehensive test)
    – CGI Generic HTML Injections (quick test)
    ยอมรับได้
    – Web Application Potentially Vulnerable to Clickjacking (เป็น Form ที่ยอมให้เว็บอื่นเอาไปใส่ใน iframe ได้)


    ไม่เข้าไปตรวจ JavaScript Injection เพราะไม่ได้ตรวจสอบ SQL Injection จากหน้า badform.html
    simple.phpNon-Persistent XSSยอมรับได้
    – CGI Generic XSS (quick test)
    – CGI Generic Cookie Injection Scripting
    – CGI Generic XSS (comprehensive test)
    – CGI Generic HTML Injections (quick test)
    goodlogin.phpเป็น False Positive เพราะ Login Fail
    – CGI Generic SQL Injection (blind)

    ยอมรับได้
    – Web Application Potentially Vulnerable to Clickjacking (เป็น Form ที่ยอมให้เว็บอื่นเอาไปใส่ใน iframe ได้)
    home.phpPersistent XSSไม่เข้าไปตรวจ เพราะไม่สามารถเดารหัสผ่านที่ถูกต้องได้
    /uploads/image.phpBackdoor (Remote Code Execution)ไม่เข้าไปตรวจ เพราะไม่มี Link จากหน้าแรก

    สรุปผลการทดสอบ

    1. น่าตกใจ ที่ “N” ไม่สามารถตรวจพบ SQL Injection ได้ในหน้า badform.html
    2. “N” ตรวจพบ XSS ในหลายรูปแบบในหน้า simple.php ซึ่งนับว่าดี
    3. “N” ตรวจสอบได้เฉพาะ URL ที่สามารถติดตามไปจากหน้าแรกได้เท่านั้น จะเห็นได้ว่า ไม่สาามารถเข้าไปตรวจสอบ home.php ซึ่งต้องเดารหัสผ่านให้ได้ก่อน และ /uploads/image.php ซึ่งไม่มีการเรียกจากหน้าแรก ซึ่งโดยทางปฏิบัติ Hacker เมื่อเจาะเข้ามาวางไฟล์ได้แล้ว จะเอา URL นั้นไปโพสต์ประกาศในกลุ่ม หรือ บนหน้าเว็บไซต์อื่นๆ เช่น zone-h.org เป็นต้น ทำให้ เราตรวจด้วย “N” ยังไงก็ไม่เจอ แต่ Google ตรวจเจอเพราะไปตรวจสอบเว็บไซต์ของกลุ่ม Hacker อีกที
    4. “N” ทำงานเป็นลำดับ ดังนั้น เมื่อ ไม่ตรวจพบ SQL Injection ในหน้า badform.html ก็ไม่ตรวจ JavaScript Injection ในหน้า login.php
    5. “N” เตือนเรื่องสามารถนำ Form ไปอยู่ใน iframe ของเว็บไซต์อื่นๆได้ ซึ่งนับว่าดี

    อภิปรายผลการทดสอบ

    การมีเครื่องมือในการเจาะระบบอย่าง “N” เป็นเรื่องดี ทำให้สามารถลดงานของผู้ดูแลระบบได้ อย่างน้อยก็เรื่องการตรวจสอบ Version ของ OS, Software ที่ใช้ ว่าได้รับผลกระทบต่อช่องโหว่ที่สำคัญ ซึ่งจะประกาศเป็นเลข CVE เอาไว้แล้ว ทำให้ตรวจสอบภาพรวมๆได้ และตรวจสอบได้ตาม Signature ที่บริษัทเค้ากำหนดมาเท่านั้น

    อย่างไรก็ตาม ในทางปฏบัติ “N” หรือ เครื่องมืออื่นๆที่ทำงานแบบ Outside-In อย่างนี้ จะไม่มีทางตรวจสอบ ช่องโหว่ ที่อยู่ “ภายใน” เครื่องได้ หากแต่ การตรวจสอบ Log File และ การตรวจสอบเครื่องเซิร์ฟเวอร์จากภายใน จึงเป็นสิ่งจำเป็นอย่างยิ่ง นอกจากจะทำให้เราตรวจพบช่องโหว่ต่างๆก่อนจะโดนรายงาน แล้ว ยังเป็น การสะสมความรู้ซึ่งสำคัญยิ่่งกว่า เพราะเราจะได้ทำการ ป้องกัน ก่อนที่จะต้องมาตามแก้ไข อย่างเช่นในปัจจุบัน

  • การสร้างฟอร์มกรอกข้อมูลใน Word

    เราอาจจะสร้างฟอร์มเพื่อส่งให้ผู้อื่นกรอกเอกสาร ตามฟอร์มที่เราออกแบบไว้ โดยจะต้องไปเรียกใช้ Develper ที่แถบ Ribbon โดยไปที่เมนู File –> Options –> Customize Ribbon เลือก Develper ดังรูป

    จะเห็นว่ามีแถบ Developer ปรากฏอยู่

    เรามาเริ่มสร้างฟอร์มกัน ในที่นี้จะสร้างฟอร์มเล็ก ๆ ดังรูป

    จากนั้นคลิกแถบ Developer แต่ละ Control ที่จะนำมาใช้ แต่ละตัวทำหน้าที่อะไรบ้าง

    • หมายเลข 1 เป็นข้อความที่สามารถจัดรูปแบบได้
    • หมายเลข 2 เป็นข้อความที่กรอกอิสระ
    • หมายเลข 3 เป็นการแทรกรูปภาพ
    • หมายเลข 4 เป็นฟิลด์รายการที่มีตัวเลือก สามารถเลือกได้
    • หมายเลข 5 เป็นการแทรกฟิลด์แบบมีตัวเลือก เช่นเดียวกับหมายเลข 4
    • หมายเลข 6 เป็นรูปแบบวันที่ให้เลือก

     

    จากนั้นเมื่อเรารู้จักหน้าที่ของแต่ละ Control แล้ว เราก็เลือกใช้ให้ตรงกับความต้องการ โดยในส่วนของตำแหน่ง เราจะใช้ Combo box เมื่อคลิก Combo box  1 ครั้งให้ไปเลือกที่ Properties จากนั้นจะปรากฏดังรูป

    เมื่อเรียบร้อยแล้วจะได้ดังรูป

    เพื่อป้องกันการแก้ไขข้อความหัวข้อ คือให้กรอกได้เฉพาะข้อมูลที่มีช่องให้กรอกเท่านั้น โดยไปที่แถบ Developer –> Restrict Editing จะแสดงดังรูป

    จากนั้นที่ข้อ 2 ให้ติ๊กเลือกและกำหนดเป็น Filling in forms เพื่อป้องกันการแก้ไขข้อความ แล้วคลิกปุ่ม “Yes, Start Enforcing Protection” จะแสดง Dialog ดังรูป

    ระบุ Password ที่จะใช้ป้องกันการแก้ไขข้อความ จากนั้นคลกปุ่ม “OK” จากนั้นลองไปคลิกที่หัวข้อจะไม่สามารถแก้ไขข้อความได้ จะแก้ไข/กรอกได้เฉพาะที่ให้กรอกข้อมูลนั้น

     

     

     

     

     

     

  • สร้าง Barcode แบบง่ายๆ ด้วย Word

    ถ้าพูดถึงการสร้าง Barcode ในปัจจุบันก็จะมีมากมายหลายวิธี แล้วแต่เราจะเลือกใช้ แต่สำหรับ Blog นี้ผู้เขียนจะขอแนะนำการสร้าง Barcode แบบง่ายๆ ใช้เวลาไม่นาน โดยที่เราไม่ต้องเพิ่มโปรแกรมเสริม หรือใช้โปรแกรมอื่นๆ เข้ามาช่วยเลย ขอแค่มี Microsoft Word version 2013 หรือ 2016 ในเครื่อง … เท่านี้ก็เพียงพอแล้ว 🙂

     

    มาทำความรู้จัก ระบบบาร์โค้ด (Barcode System) กันหน่อย 

    ระบบบาร์โค้ด หมายถึงการใช้สัญลักษณ์บาร์โค้ดบ่งชี้ไปยังข้อมูลตัวเลขหรือตัวอักษร และประยุกต์ต่อยอด โดยการนำตัวเลขหรือตัวอักษรเหล่านั้นบ่งชี้ไปยังสิ่งต่างๆ เช่น สินค้า (Product), วันหมดอายุ (Expiration date), บุคคล (Person), URL Website เป็นต้น ซึ่งจะมี 2 ประเภทหลักคือ 1 Dimension และแบบ 2 Dimension

     

    *สำหรับคำสั่งในการสร้างบาร์โค้ด DISPLAYBARCODE ใน Blog นี้ที่เราจะพูดถึงนั้น จะรองรับบาร์โค้ดแบบต่างๆ ดังนี้ QR, CODE128, CODE39, JPPOST, EAN, JAN, UPC, ITF14, NW7, CASE

     

    ขั้นตอนที่ 1 : เปิดโปรแกรม Word ขึ้นมา

     

     

     

     

     

     

     

     

     

     

     

    ขั้นตอนที่ 2 : กดปุ่ม Ctrl + F9 จากนั้นเราก็จะเห็นวงเล็กปิดเปิดเพิ่มเข้ามาใน Word ของเรา

     

     

     

     

     

     

     

     

     

     

     

    ขั้นตอนที่ 3 : พิมพ์คำสั่งตาม DISPLAYBARCODE ลงไปในวงเล็บ ตัวอย่างคำสั่งเช่น

    DISPLAYBARCODE “https://sis.psu.ac.th” QR \q 3

     

     

     

     

     

     

     

     

    ขั้นตอนที่ 4 : จากนั้นคลิก Alt + F9 เพื่อดูผลลัพธ์ แท่น แท๊นนน เท่านี้ก็เสร็จเรียบร้อย

     

     

     

     

     

     

     

     

     

     

     

    *ขออธิบายความหมายของแต่ละส่วนในคำสั่งสักนิดนึง เพื่อให้ผู้ใช้ได้เข้าใจง่ายขึ้น สำหรับส่วนแรก

     

    DISPLAYBARCODE   — คือคำสั่งที่เราจะใช้

    “https://sis.psu.ac.th” — เป็นข้อมูลที่เราจะใส่ในบาร์โค้ด ให้ใส่ไว้ภายในเครื่องหมาย ” ”

    QR — เป็นคำสั่งที่ระบุว่าสร้างบาร์โค้ดแบบ QR หากต้องการแบบอื่นเช่น CODE128 ก็เปลี่ยนได้

    โดยให้อิงตามรหัสบาร์โค้ดที่รองรับ

    \q 3  — เป็นการกำหนด Error correction level สำหรับใน QR code เท่านั้น

    หมายเหตุ : ระดับการแก้ไขข้อผิดพลาดของข้อมูล (Error Correction Level) คือ ความสามารถในการกู้คืนข้อมูลที่เสียหาย สามารถกำหนดได้ 4 ระดับ ดังนี้ L=7%, M=15%, Q=25%, H=30% ซึ่งการกำหนดในระดับที่สูงขึ้นจะมีผลทำให้ขนาดของ QR Code เพิ่มขึ้น

     

    เป็นยังไงกันบ้างเอ่ย ง่ายๆ ไม่กี่ขั้นตอนเองใช่มั้ย สำหรับ Blog นี้ผู้เขียนก็จะนำเสนอแบบสั้นๆ ง่ายๆ แต่หากผู้ใช้ท่านไหนต้องการศึกษาแบบละเอียด อย่างลึกซึ้งในส่วนอื่นๆเพิ่มเติมก็สามารถศึกษาเพิ่มเติมหรือดู syntax ได้ที่ MSDN.MICORSOFT

    เจอกันใหม่รอบ TOR หน้าเน้อผู้อ่านทุกคน แฮ่ …

    ขอขอบคุณแหล่งข้อมูลอ้างอิง

    • https://msdn.microsoft.com/en-us/library/hh745901%28v=office.12%29.aspx?f=255&MSPPError=-2147217396
    • https://www.scandit.com/types-barcodes-choosing-right-barcode/
  • ระวังการใช้งานบนเครื่องที่ยังเป็น Windows XP จะถูกติดตั้ง Key Logger ระบาดในมหาวิทยาลัย

    ช่วง 2-3 วันนี้ ระบบ PSU Webmail ตรวจพบว่า มีบัญชีผู้ใช้อย่างน้อย 3 ราย ถูกใช้งานจากสิงคโปร์ และตุรกี  แล้วส่ง email ออกไปเป็นจำนวนมาก ระบบตรวจจับได้ จึงทำการ Force Reset Password ของระบบ PSU Email บัญชีผู้ใช้ดังกล่าวอัตโนมัติ

    IP ที่ใช้งาน PSU Webmail ดังภาพด้านบน ตรวจสอบแล้ว พบว่า มาจาก

    • 202.189.89.116 จากเครือข่ายของ Twentieth Century Fox ที่ ตุรกี
    • 206.189.89.212 จากเครือข่ายของ Twentieth Century Fox ที่ สิงคโปร์
    • 128.199.202.189 จากเครือข่ายของ DigitalOcean ที่สิงคโปร์

    ส่งอีเมลจำนวน 4 ฉบับ ถึง 800 emails ภายใน 1 นาที ดังภาพ

    ในการตรวจสอบเชิงลึกต่อไป พบว่า IP  206.189.89.116 ยังพยายาม Login ไปยังบัญชีผู้ใช้ 2 ใน 3 ข้างต้นอีกด้วย จึงสันนิษฐาน ว่า น่าจะเป็นคนร้ายกลุ่มเดียวกัน เพียงแต่สลับแหล่งที่เข้าใช้ PSU Webmail ไปมา

    จากการลงพื้นที่ ไปดูที่เครื่องผู้ใช้ พบว่า มีพฤติกรรมที่เหมือนกัน คือ

    1. ยืนยันว่า ไม่เคยคลิกเปิด email ที่ต้องสงสัยจริง ๆ (เอ่อ ใครก็จะพูดเช่นนั้น เอาว่าไม่มีหลักฐาน ก็ไม่สามารถสรุปได้ว่าไม่จริง)
    2. *** มีการใช้คอมพิวเตอร์ส่วนกลาง *** ซึ่งหนึ่งในนั้น จะเป็น Windows XP และมีโปรแกรมเถื่อนเป็นจำนวนมาก

    จึงขอตั้งข้อสังเกตว่า ถ้าผู้ใช้ยืนยันว่า ไม่ได้คลิก email หลอกลวงแน่ ๆ และยืนยันว่า ไม่ถูกหลอกแน่ ๆ เป็นจริง ก็น่าจะเป็นเพราะพฤติกรรมการใช้คอมพิวเตอร์ส่วนกลาง ที่เป็น Windows XP ซึ่งเป็นไปได้อีกว่า คงจะมี Key Logger หรือ โปรแกรมดักจับการพิมพ์บน Keyboard แล้วส่งไปให้คนร้าย

     

    ในภาพใหญ่ของมหาวิทยาลัยสงขลานครินทร์ ยังมีเครื่องรุ่นเก่าที่ยังใช้ Windows XP อยู่ แถมยังใช้โปรแกรมเถื่อนที่อาจจะติดมาจากร้าน หรือ คนในออฟฟิซเองเอามาติดตั้งอยู่ หากสามารถ Enforce ให้เปลี่ยนได้ น่าจะลดปัญหาพวกนี้ได้

     

    กำลังหาหลักฐานที่หนักแน่นพอ เพื่อนำเสนอผู้ใหญ่ต่อไปครับ

     

  • ปัญหาในการลืมรหัสผ่านจะหมดไปด้วย … LastPass

    blog ที่ 3 สำหรับปีนี้ ทางเราขอนำเสนอ แทน แท่น แท๊นนนน Extension ที่ชื่อว่า “LastPass” นั่นเอง

    ส่วนเสริมตัวนี้จะช่วยให้ปัญหาการลืม Password ที่เข้าเว็บต่างๆ ทั้งร้อยแปดพันเก้า ที่เราเข้าใช้งานหมดไป
    ในปัจจุบันนี้ต้องยอมรับอย่างนึงว่า เว็บไซต์ที่เราใช้บริการทั้งหลายทั้งมวลนั้นมีมากมายหลากหลายเหลือเกิน

    ทั้งงานเอย social เอย หรือแม้แต่จะเป็น ฐานข้อมูลในการเก็บข้อมูลต่างๆ ทั้งหมดเหล่านี้ล้วนจะต้องมีการสร้าง

    account เพื่อเข้าไปใช้งานทั้งสิ้น และสิ่งนึงที่เราจะเจอบ่อยๆ ก็คือ website นี้ รหัสผ่านอะไรแล้วน้ออออ !! 55+

    อะ ไม่พูดพร่ำทำเพลงมากมาย ไปดูเจ้าตัว Extension “LastPass” กันเถิดดดด …..

    1. ติดตั้ง Extension ผ่านลิงค์นี้ได้เลย คลิก  จากนั้นเริ่มต้นสร้างบัญชี เพื่อเข้าใช้งาน

    ปล…จากนั้นต่อไปในอนาคตเราก็จะปล่อยให้ LastPass ช่วยเราจำในส่วนที่เหลืออื่นๆไง

     

     

     

     

     

     

     

     

     

     

     

     

    2.โดยให้ตั้งรหัสผ่านตามเงื่อนไขที่กำหนด (อันนี้เพื่อความปลอดภัยนั่นแหละ)

     

     

     

     

     

     

     

     

     

     

    3. เมื่อเราตั้งรหัสผ่านตรงตามเงื่อนความปลอดภัยที่กำหนด ก็จะพบกับหน้าจอตามรูป จากนั้น คลิก “NEXT” โลดดด

     

     

     

     

     

     

     

     

     

     

    4. เมื่อดำเนินการครบตามขั้นตอนแล้ว ก็จะพบกับหน้าตาเจ้า LastPass เรียบๆ ดูแล้วใช้งานง่าย ไม่ยากๆ

     

     

     

     

     

     

     

     

     

     

    5. คราวนี้เราก็มาจัดการเพิ่มข้อมูล ที่เราต้องการให้เจ้า LastPass ช่วยเราจำกันเถอะ โดยสามารถคลิกเลือก

    ในส่วนเมนูด้านซ้ายของหน้าจอ หรือจะเลือกจาก Icon ด้านล่างมุมขวาของหน้าจอก็ได้เช่นเดียวกัน

     

     

     

     

     

     

     

     

     

     

    6. ตัวอย่างเช่น สร้างข้อมูลรายละเอียดของเว็บที่เราเข้าใช้งานเป็นประจำ Gmail เป็นต้น จากขั้นตอนที่ 5

    เมื่อคลิก เพิ่มเว็บไซต์ ก็จะพบกับหน้าจอประมาณนี้นะ เมื่อใส่รายละเอียดครบถ้วนแล้ว ก็กด “บันทึก” ได้เลย

     

     

     

     

     

     

     

     

     

     

    7.  จากนั้นระบบก็จะบันทึกข้อมูลเว็บไซต์ Gmail ของเราเอาไว้ เราก็ทำแบบนี้ไปเรื่อยๆ จนครบทุกเว็บที่เราอยาก

    ให้เจ้า LastPass ช่วยจำ เพียงเท่านี้ก็เรียบร้อย ปัญหาการลืมรหัสผ่านเข้าเว็บต่างๆ ที่มีมากมายก่ายกองของเรา

    ก็จะหมดไป

    ** ปล… แต่ต้องไม่ลืมรหัสผ่านที่ใช้เข้า LastPass ตัวนี้น๊าาาา 555+

     

     

     

     

     

     

     

     

     

     

    8. สำหรับความปลอดภัยอื่นๆ เราก็สามารถเข้าไปดู ไปตั้งค่าได้ โดยเลือกผ่านเมนู การตั้งค่าบัญชี ซึ่งก็จะมีทั้งแบบ

    ฟรี และหากต้องการที่ปลอดภัยมากขึ้นไปอีกระดับก็ต้องเป็นแบบ premium กันแหละ แนะนำว่าลองเล่น ลองคลิกๆ

    ศึกษาเพิ่มเติมกันได้นะ

     

     

     

     

     

     

     

     

     

     

     

    สุดท้ายทางผู้เขียนหวังว่า อย่างน้อย ๆ เจ้าตัว Extension LastPass ตัวนี้ จะเป็นผู้ช่วยที่มีประโยชน์อีกตัวนึงสำหรับ

    ผู้อ่านทุกคน อย่างน้อยๆ หากจดในกระดาษแล้วหาย ก็เปลี่ยนมาให้ LastPass ช่วยจำกันเถิด แฮ่ …..

     

    ขอบคุณ แหล่งข้อมูลอ้างอิง : https://www.lastpass.com/how-lastpass-works

  • How to install PSU SSL VPN Client ubuntu 18.04

    • เปิด terminal
    • เริ่มด้วยการติดตั้งโปรแกรมที่จำเป็น
      sudo apt install -y openfortivpn
    • สร้างแฟ้ม /home/username/fortivpn.config มีข้อความว่า
      host = vpn2.psu.ac.th
      port = 443
      username = PSU Passport Username
      password = PSU Passport Password
      trusted-cert = 34df1a6bd3705782fd17152de0c4fe0b3e7f31302cbdcf737b113c17a5b9ff09
    • สั่งรันคำสั่ง
      sudo openfortivpn -c fortivpn.config
    • ได้ข้อความประมาณว่า
    • แปลว่าเชื่อมต่อได้แล้ว หากต้องการยกเลิกการเชื่อมต่อให้กด ctrl-c จะได้ข้อความประมาณว่า
    • แปลว่ายกเลิกการเชื่อมต่อแล้ว
    • ต้องเปิด terminal ที่รันคำสั่ง openfortivpn ไว้ตลอดเวลาที่เชื่อมต่อห้ามปิด
    • จบสไตล์คอมมานไลน์ ….

    หากอยากได้ง่ายกว่านี้

    • ติดตั้งโปรแกรม OpenFortiGUI โหลดที่ https://hadler.me/linux/openfortigui/ โดยเลือกโปรแกรมสำหรับ Ubuntu 18.04
    • โหลดมาแล้วติดตั้งด้วยคำสั่ง
      sudo dpkg -i openfortigui_0.6.2-1_bionic_amd64.deb
    • จะมี error message มากมาย ให้ต่อด้วยคำสั่ง
      sudo apt -f -y install
    • เริ่มใช้งานเปิดโปรแกรม openFortiGUI โดยกดที่ปุ่ม Show Applications เลือก openFortiGUI
    • จะได้หน้าต่าง
    • คลิกปุ่ม Add เลือก VPN จะได้
    • กรอกข้อความตามรูป ช่อง username และ password ก็ใส่ PSU Passport ลงไปเสร็จแล้วกด Save
    • ได้ดังรูป
    • เลือก PSU แล้วคลิก Connect ได้ผลดังรูป
    • คลิก x เพื่อปิดหน้าต่างสังเกตว่าจะมีรูป  ที่มุมบนขวา หากจะยกเลิกการเชื่อมต่อ คลิกขวาที่  เลือก PSU เพื่อ dissconnect
    • จบขอให้สนุก…

    ***  จากที่ลองทดสอบพบว่า เมื่อเชื่อมต่อ AIS 4G จะไม่สามารถใช้วิธี OpenFortiGUI ได้ แต่ใช้วิธีคอมมานไลน์ได้ครับ

  • Ubuntu server 18.04 config static IP with ifupdown not netplan

    เดิมก่อนหน้า server 18.04 จะออกมาให้ใช้งานกันนั้น จะเป็น server 16.04 เราตั้งค่า (config) static IP ให้กับ server ด้วยไฟล์นี้ /etc/network/interfaces ซึ่งก็คือ package ชื่อ ifupdown และ DNS resolver ที่ใช้ก็คือ resolvconf

    แต่ใน server 18.04 นี้ เปลี่ยนไปใช้ package ชื่อ netplan แก้ไขที่ไฟล์ /etc/netplan/01-netcfg.yaml และใช้ DNS resolver คือ systemd-resolve ซึ่งจะ connect สอบถามชื่อ DNS จาก internal DNS ที่ IP 127.0.0.53 (ตรวจดูด้วยคำสั่ง cat /etc/resolv.conf)

    (ย้ำ) บทความนี้ไม่ได้บอกเล่าให้ทุกคนต้องทำแบบนี้ เพียงแต่หากท่านมีงานเฉพาะอย่างที่ต้องการใช้แบบก่อนหน้านี้

    หลังจากติดตั้ง Ubuntu server เสร็จ

    1.แก้ไขไฟล์ /etc/default/grub ดังนี้

    sudo nano /etc/default/grub

    เพิ่มบรรทัดนี้

    GRUB_CMDLINE_LINUX="netcfg/do_not_use_netplan=true"

    หรือหากต้องการใช้ชื่อ interface เป็น ethX เช่น eth0 เป็นต้น ก็ให้เพิ่มบรรทัดแบบนี้

    GRUB_CMDLINE_LINUX="net.ifnames=0 netcfg/do_not_use_netplan=true"

    ทำการ Save และ ออก

    2.ทำคำสั่งนี้เพื่อ update grub

    sudo update-grub

    3.ติดตั้ง ifupdown package

    sudo apt install ifupdown

    4.ติดตั้ง resolvconf package

    sudo apt install resolvconf

    5.รีบูต server

    เมื่อ login กลับเข้าไปใน command prompt สั่ง ping www.google.com สำเร็จ ก็แสดงว่าใช้งานได้ (เซิร์ฟเวอร์นี้ต้องได้รับอนุญาตออกเน็ตด้วยนะ) หรือไม่ก็ใช้คำสั่งตรวจสอบชื่อโดเมน ดังนี้ host www.google.com ก็จะต้องได้รับ output ที่แสดงว่าสำเร็จ

    สำหรับวิธีการตั้งค่าแบบ netplan ก็มีเว็บเพจที่เขียนไว้มากพอสมควร เช่น Ubuntu Bionic: Netplan posted by Joshua Powers on 1 December 2017 [ https://insights.ubuntu.com/2017/12/01/ubuntu-bionic-netplan ] ลองทำความเข้าใจรูปแบบใหม่นี้ได้เลย

    Output ของค่า default เมื่อติดตั้ง Ubuntu server 18.04 เสร็จใหม่ ๆ (/etc/resolv.conf, /etc/network/interfaces และ /etc/netplan/01-netcfg.yaml)

    Output ของไฟล์ที่ใช้ในการตั้งค่า static IP เมื่อใช้ ifupdown package (/etc/resolv.conf และ /etc/network/interfaces)

    References:
    Disable netplan on Ubuntu 17.10 Posted on January 10, 2018 by ruchi [ http://www.ubuntugeek.com/disable-netplan-on-ubuntu-17-10.html ]
    Predictable Network Interface Names [ https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ ]