Category: Linux (OS, shell script, etc)

  • Byeๆ TLS1.0 TLS1.1

    ใช้ Firefox beta อยู่เลยจะได้รับ Feature อะไรใหม่ๆ อยู่เรื่อยๆ จนเมื่อ beta 73 กว่าๆ เริ่มเข้าเว็บบางเว็บในมหาวิทยาลัยไม่ได้ จะปรากฏหน้าดังนี้

    เว็บสามัญประจำบ้านแห่งหนึ่ง

    อ่านดูถึงได้รู้ว่าออ เค้าจะเลิก TLS1.0 และ TLS1.1 แล้วจริงประกาศไว้นานละว่าจะเลิกปีนี้!! สำหรับ Firefox จะเลิกในรุ่น 74 และ Chrome น่าจะรุ่น 81 ส่วน Microsoft และ Safari ก็จะปิดในครึ่งปีแรก ในปีนี้เช่นกัน

    https://www.techtalkthai.com/old-tls-protocol-has-been-dropped-by-all-major-browsers-in-2020/

    เอ้าเลยเช็คเว็บตัวเองสักหน่อยเริ่มจาก ทดสอบกับเว็บที่เคยได้ A+ ผลเป็นดังรูป

    ม่ายยย

    อัยย่ะละก๊ะ…. เหลือ B เพราะเปิด TLS1.0 และ TLS1.1 เอาไว้ ปิดให้ไว

    วิธีการคือ (สำหรับ Apache2)

    แก้ไขแฟ้ม /etc/apache/mod-enabled/ssl.conf หาข้อความว่า

     SSLProtocol All -SSLv3

    (บางคนอาจจะมี -SSLv2 ด้วยแต่ apache2 ไม่สนับสนุน SSLv2 โดยปริยาย (default) แล้ว) เปลี่ยนข้อความข้างต้นเป็น

    SSLProtocol All -SSLv3 -TLSv1 -TLSv1.1

    บันทึกแล้ว restart apache ให้เรียบร้อย เมื่อไปตรวจใหม่ได้ผลตามภาพ

    เย่ กลับมา A+ แล้ว จบขอให้สนุก

    เกี่ยวข้อง

    https://sysadmin.psu.ac.th/hardening-your-http-response-headers/

    https://sysadmin.psu.ac.th/เปลี่ยน-certificate/

  • การ Connect Navicat ผ่าน xampp-linux 7.3.12 บน Ubuntu 18.04

    1. Download ไฟล์ ntunnel_mysqli.php
      https://qrgo.page.link/6G6uX
    2. โยน File ชื่อว่า ntunnel_mysqli.php เข้าไปใน Server ที่ wwwroot
    3. ทดสอบโดยการเข้าเว็บบราว์เซอร์ ด้วย : 192.168.xxx.xxx/ntunnel_mysqli.php แล้วลอง login ดูว่าผ่านไหม ?
    4. เข้าไปที่โปรแกรม Navicat
    5. ไปที่เมนู Connection เลือกเอาเลยว่าต้องการ Connection แบบไหน

    6. ไปที่ General
    – Connection Name = ตั้งชื่ออะไรก็ได้
    – Host Name / IP Address = localhost
    – Port = 3306
    – User Name = root หรือ User ที่เรา Add ใน phpmyadmin
    – Password = Password ที่เรา Add ใน phpmyadmin

    7. ไปที่ HTTP
    – ติ๊กเลือก Use HTTP Tunnel
    – Tunnel URL : https://192.168.xxx.xxx/ntunnel_mysqli.php หรือ https://xxxx.com/ntunnel_mysqli.php

    8. Test Connection

    หาก Connect ไม่ผ่าน ให้เข้าไปแก้ไฟล์ my.cnf บรรทัดที่เขียนว่า skip-networking ให้ไป # ปิดใว้ แล้ว Restart Service ใหม่อีกครั้ง

    หมายเหตุ : ผมได้ทดสอบกับ xampp-linux 7.3.12 บน Ubuntu 18.04
    php 5.4 up มันจะใช้ mysqli เป็นส่วนใหญ่ เลยต้องใช้ ntunnel_mysqli

  • Open Google Calendar

    หลังจากครั้งก่อนได้แนะนำ extension สำหรับสร้างตารางนัดหมายบน Google Calendar ผ่านโปรแกรมเมล์ยอดนิยมตลอดกาล นั่นคือ Thunderbird นั่นเอง!!! อ่านได้ที่ Thunderbird Return วันนี้ก็จะมาเล่าถึง Extension อีกตัวทำงานอย่างเดียวกันแต่รอบนี้ไม่ต้องทำอะไรให้วุ่นวาย extension ชื่อเหมือนบทความคือ Open Google Calendar ขอข้ามวิธีติดตั้งเลยละกัน ติดตั้งเหมือน extension ตัวเก่ากลับไปอ่านบทความก่อนหน้าได้นะครับ

    เมื่อติดตั้งเสร็จแล้วจะมีปุ่มเพิ่มขึ้นมาที่มุมบนขวาดังรูป

    คลิกที่ Open Google Calendar แล้ว Sign In เข้าระบบให้เรียบร้อย จะได้ดังภาพ.

    Google Calendar

    สามารถเพิ่มอีเว้นท์อีไม่เว้นท์ได้เหมือนเปิดเว็บ กรั่กๆ ง่ายกว่าวิธีเก่า พอสมควรแก่การใช้งานบนเครื่องที่เราใช้คนเดียว!! ย้ำคนเดียว เพราะยังหาวิธี sign out ไม่เจอ 555

    วันนี้สั้นๆ แค่นี้ครับ จบขอให้สนุก…

  • Windows Subsystem for Linux in Windows 10 – (Installation Scripts)

    บทความนี้แนะนำวิธีการติดตั้ง Windows Subsystem for Linux ด้วย Installation Scripts เพื่อติดตั้ง Ubuntu 18.04 LTS ลงใน Windows 10 version 1903

    การรัน Installation Scripts ที่เป็น PowerShell จำเป็นต้องเปิดอนุญาตรัน script (ตั้งค่า execution policy มีขั้นตอนตรงจุดนี้ ดังนี้
    1.คลิก Start หรือ ไอคอน Search
    2.พิมพ์คำว่า PowerShell คลิกขวาเพื่อเลือก Run as administrator
    3.พิมพ์คำสั่งนี้

    Set-ExecutionPolicy RemoteSigned

    4.พิมพ์ A แล้วกด Enter

    ถัดไป เราก็จะดาวน์โหลดไฟล์ 2 ไฟล์เลือกว่าจะวางไฟล์ไว้ที่ Downloads ด้วยคำสั่งต่อไปนี้

    cd $ENV:HOMEDRIVE\$ENV:HOMEPATH\Downloads

    ดาวน์โหลดไฟล์ที่ 1

    Invoke-WebRequest ftp.psu.ac.th/pub/psu-installer/windows/step1_enable_wsl.ps1 -OutFile step1_enable_wsl.ps1

    ดาวน์โหลดไฟล์ที่ 2

    Invoke-WebRequest ftp.psu.ac.th/pub/psu-installer/windows/step2_install_wsl.ps1 -OutFile step2_install_wsl.ps1

    เมื่อได้ไฟล์แล้ว ก็มาทำคำสั่งนี้กัน คำสั่งเพื่อเปิดใช้ (enable) Windows Subsystem for Linux

    & ".\step1_enable_wsl.ps1"

    หลังจากทำคำสั่งนี้ Windows จะสั่งให้เรา restart 1 ครั้ง
    Do you want to restart the computer to complete this operation now?
    พิมพ์ Y และกด Enter

    เมื่อ Windows restart เสร็จแล้ว ตอนนี้ก็มาถึงขั้นตอนติดตั้ง ubuntu 18.04 LTS ลงใน WSL

    เปิด PowerShell ตั้งค่า execution policy

    Set-ExecutionPolicy RemoteSigned

    พิมพ์ A แล้วกด Enter

    พิมพ์คำสั่งเหล่านี้

    cd $ENV:HOMEDRIVE\$ENV:HOMEPATH\Downloads
    & ".\step2_install_wsl.ps1"

    หลังจากทำคำสั่งนี้ หน้าต่าง WSL ก็จะเปิดขึ้นมา รอสักครู่ใหญ่ ๆ ก็จะมีคำถามให้ตั้ง username อันแรก พร้อมตั้ง password แล้วจะได้ Ubuntu 18.04 พร้อมใช้งาน

    สุดท้าย ให้เราออกจาก WSL console ด้วยคำสั่ง exit และ ปิดหน้าต่าง PowerShell

    เมื่อมาถึงตรงนี้ เราก็ได้ Windows Subsystem for Linux ซึ่งเรียกใช้งานด้วยคำสั่ง wsl

    วิธีเรียกใช้งาน WSL
    1.คลิก Start หรือ ไอคอน Search
    2.พิมพ์คำว่า wsl แล้วเลือก Open หรือ Run as administrator (ต้องการสิทธิ)

    จบเรื่องแรก การติดตั้ง WSL ด้วย Installation Scripts

    เรื่องที่สองในบทความนี้ หากเราต้องการให้ทุกครั้งที่ Windows เปิดขึ้นมาแล้วสั่งให้ service sshd ทำงานทันที เพื่อให้เราใช้คำสั่ง ssh เข้ามายัง Ubuntu ใน Windows ได้

    ผมก็ได้เขียน shell script installsshd.sh นี้ไว้ ซึ่งรันที่ WSL นะครับ

    วิธีใช้ shell script นี้ ทำดังนี้

    1.เปิด WSL ด้วยสิทธิ Run as administrator

    2.เมื่ออยู่ในหน้าต่าง WSL ให้ขอสิทธิเป็น root ด้วยคำสั่งนี้

    sudo su -

    ใส่ password ให้ถูกต้อง

    ดาวน์โหลดไฟล์ installsshd.sh ด้วยคำสั่งนี้

    wget http://ftp.psu.ac.th/pub/psu-installer/windows/installsshd.sh

    สั่งรัน shell script ดังนี้

    bash installsshd.sh

    เมื่อ shell script ทำงาน จะมีการถอน openssh และติดตั้งใหม่เพื่อให้ใช้ server ssh key ที่ถูกต้อง และสร้าง task name ชื่อ sshd ไว้ใน Task Schedule ของ Windows 10

    ทดสอบ ssh จากเครื่องในเน็ตเวิร์คเข้าไปยัง Ubuntu ใน Windows 10

    References

  • ติดตั้ง FOG Project แบบใช้ Proxy DHCP

    บทความนี้เป็นตอนต่อจาก “ติดตั้ง FOG Project บน Ubuntu 18.04 Server” หลังจาก แตกไฟล์ มาเสร็จแล้ว มาดูขั้นตอนติดตั้ง

    sudo  ./installfog.sh

    เลือก 2

    กด Y และ Enter

    กด N และ Enter

    ตัวอย่าง จะติดตั้ง fog server ให้ใช้ IP 10.0.100.254 และ ตอบ N ทุกคำถาม Would you like … ตรงนี้ ซึ่งจะเกี่ยวข้องกับ DHCP server ว่า จะติดตั้งลงใน fog server มั้ย

    ตรวจสอบ พร้อมแล้ว ก็กด Y และ Enter

    สำหรับ Ubuntu 18.04 นั้น ถ้าเราติดตั้ง MySQL ไม่จำเป็นต้องตั้ง password เราก็ใช้คำสั่ง mysql เพื่อเข้าไปทำงานได้ ก็ต่อเมื่อ เราเป็น user ที่เป็น sudo จึงไม่ต้องตั้ง password แต่จะตั้งก็ได้ ไม่ผิด

    ใกล้เสร็จแล้ว ให้ไปที่หน้าเว็บ http://fog_server_ip/fog/management เพื่อตั้งค่า database

    แล้วกลับมาทำการตั้งค่าต่อ กด Enter

    สังเกต มีคำว่า Skipped ที่บรรทัด DHCP Server

    เสร็จกระบวนการติดตั้ง fog server

    ถัดไปจะติดตั้ง dnsmasq เพื่อเป็น Proxy DHCP ไปติดต่อกับ DHCP server ของตึก

    ทำตาม link นี้ https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq

    พิมพ์คำสั่งเพื่อติดตั้ง ดังนี้

    sudo  apt  install  dnsmasq  -y

    เสร็จแล้ว ไปหาเครื่องที่สามารถใช้งานแบบ กราฟิก GUI เพื่อ copy ข้อความหลาย ๆ บรรทัดได้ เช่น เปิด bash ใน Windows แล้วใช้คำสั่ง ssh เข้าไปยัง fog server IP ดังนี้

    ssh  mama@10.0.100.254

    จะทำให้สะดวกกว่า คีย์เอง ทีละบรรทัด

    สร้างไฟล์ชื่อ fog.conf ไว้ภายในไดเรกทอรี /etc/dnsmasq.d ใส่ข้อความ ดังนี้

    ข้อความที่จะให้ copy ไป paste คือ

    # Don't function as a DNS server:
    port=0
    
    # Log lots of extra information about DHCP transactions.
    log-dhcp
    
    # Set the root directory for files available via FTP.
    tftp-root=/tftpboot
    
    # The boot filename, Server name, Server Ip Address
    dhcp-boot=undionly.kpxe,,10.0.100.254
    
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    dhcp-no-override
    
    # inspect the vendor class string and match the text to set the tag
    dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    dhcp-vendorclass=UEFI,PXEClient:Arch:00007
    dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    
    # Set the boot file name based on the matching tag from the vendor class (above)
    dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,10.0.100.254
    dhcp-boot=net:UEFI,ipxe.efi,,10.0.100.254
    dhcp-boot=net:UEFI64,ipxe.efi,,10.0.100.254
    
    # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    pxe-prompt="Booting FOG Client", 1
    
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    pxe-service=X86PC, "Boot to FOG", undionly.kpxe
    pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi
    pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi
    
    dhcp-range=10.0.100.254,proxy
    

    ให้แทนที่ 10.0.100.254 ด้วย fog server IP ของคุณ แล้ว save ออกมาจากการแก้ไขไฟล์ แล้ว ตรวจสอบด้วยการรัน service ดูว่า ทำงานได้ ไม่ error

    รันคำสั่งดังนี้

    sudo  systemctl  restart  dnsmasq.service

    ตรวจสอบ status

    sudo  systemctl  status  dnsmasq.service

    กด q ออก

    ถ้ามี error ให้ตรวจสอบว่า ในไดเรกทอรี /etc/dnsmasq.d มีไฟล์คอนฟิกสักไฟล์ที่มีคำว่า bind-interfaces อยู่ข้างในมั้ย ถ้าไม่มีก็สร้างไฟล์ชื่อ etc.conf และมี 1 บรรทัดใส่คำว่า bind-interfaces และ save แล้ว รีสตาร์ท dnsmasq ก็น่าจะใช้งานได้

    แล้วตั้งค่าให้ dnsmasq ทำงานเมื่อเปิดเครื่อง

    รันคำสั่ง

    sudo  systemctl  enable  dnsmasq.service

    ออกจาก ssh และ reboot fog server เพื่อดูว่า service dnsmasq เรียบร้อย

    เมื่อ boot Windows 7 จะเห็นว่า มันจะไปขอ DHCP IP จาก 10.0.100.1 ในที่นี้คือ DHCP server ของตึก (router) และมันจะรู้ด้วยว่า fog server คือ 10.0.100.254

    ตัวอย่าง ใน LAN configuration ก็จะมีข้อมูลบอกว่า DHCP Server ที่แจก IP มาให้ Windows คือ 10.0.100.1

    เมื่อดูใน /var/log/syslog ของเครื่อง fog server จะเห็น service dnsmasq ทำงาน

    ต่อไปเป็นการใช้งาน เพื่อทดสอบว่า กระบวนการติดตั้ง fog server ใช้งานแบบ proxy DHCP ทำงานได้จริง

    เลือกรายการ Quick Registration and Inventory เพื่อลงทะเบียนแบบ manual ทีละเครื่อง

    แล้วกลับมาอีกรอบ คราวนี้ก็เลือก Boot from hard disk เมื่อเข้า Windows ได้แล้วลองไปตรวจสอบ IP

    หน้าต่าง login ก็ใส่ค่า default username คือ fog และ password คือ password

    ต่อไปมาดูในหน้าเว็บ ของ fog จะเห็นว่า มีเครื่องที่เรากด ลงทะเบียน เข้ามาแล้ว

    ต่อไป เราจะไปหน้าเว็บเพจ images เพื่อสร้างชื่อ image ว่า windows7 ก่อนที่จะ cloning ได้

    กดเลือก Create New Image

    ตั้งค่าเลือก Operating System เป็นชนิด Windows 7 – (5)

    และใช้ค่า default แล้วกด Add (วันหลังค่อยลองเปลี่ยนใช้แบบอื่น ๆ)

    เราต้องผูก image เข้ากับ host ให้คลิกเข้าไปที่ชื่อ host ในตัวอย่างคือ 080027888888

    ผูก host นี้กับ Image ชื่อ windows7 ที่เราสร้างไว้

    ส่วนที่เหลือ เป็นค่า default แล้วกด Update

    กลับมาที่หน้าเว็บเพจ Host จะเห็นว่ามี Assigned Image เข้ามาแล้ว ให้คลิก Capture

    หน้านี้จะเด้งขึ้นมา เป็นค่า default ทั้งหมด แล้วกด Task

    จะได้หน้าต่างบอกว่า กำหนด Task แล้ว

    ไปที่เมนู Tasks จะเห็นรายการว่า กำลังรอให้เรา cloning ต้นฉบับ

    เราก็ไปเปิดเครื่อง Windows ต้นฉบับที่จะเก็บ

    มันก็จะขึ้นมาเรื่อย ๆ แบบนี้ จนได้หน้าต่างว่า กำลังใช้ Partclone ในการ cloning

    ก็รอจนเสร็จ

    ขอให้สนุก

  • ติดตั้ง FOG Project แบบมี DHCP Server ด้วย

    บทความนี้เป็นตอนต่อจาก “ติดตั้ง FOG Project บน Ubuntu 18.04 Server” หลังจาก แตกไฟล์ มาเสร็จแล้ว มาดูขั้นตอนติดตั้ง

    sudo  ./installfog.sh

    เลือก 2

    กด Y และ Enter

    กด N และ Enter

    ตัวอย่าง จะติดตั้ง fog server ให้ใช้ IP 10.0.100.208 และ ตรงนี้ จะเกี่ยวข้องกับ DHCP server ว่า จะติดตั้งลงใน fog server มั้ย ในตัวอย่าง คือ router address ที่ใช้คือ 10.0.100.1 และเป็น DNS server ด้วย

    ตรงนี้ สำหรับ FOG รุ่น 1.5.6 ขึ้นไป จะมีเพิ่มมาให้ตั้งชื่อ hostname ถ้าไม่ต้องการตั้งก็กด Enter

    ตรวจสอบ พร้อมแล้ว ก็กด Y และ Enter

    สำหรับ Ubuntu 18.04 นั้น ถ้าเราติดตั้ง MySQL ไม่จำเป็นต้องตั้ง password เราก็ใช้คำสั่ง mysql เพื่อเข้าไปทำงานได้ ก็ต่อเมื่อ เราเป็น user ที่เป็น sudo จึงไม่ต้องตั้ง password แต่จะตั้งก็ได้ ไม่ผิด

    ใกล้เสร็จแล้ว ให้ไปที่หน้าเว็บ http://fog_server_ip/fog/management เพื่อตั้งค่า database

    แล้วกลับมาทำการตั้งค่าต่อ กด Enter

    สังเกต มีคำว่า OK ที่บรรทัด DHCP Server

    เสร็จกระบวนการติดตั้ง fog server

    ทดสอบเปิดเครื่อง Windows 7 ดูว่า ได้ DHCP IP จาก fog server ในที่นี้คือ 10.0.100.208

    ต่อไปเป็นการใช้งาน เพื่อทดสอบว่า กระบวนการติดตั้ง fog server ใช้งานแบบมี DHCP Server ด้วยทำงานได้จริง

    เลือกรายการ Quick Registration and Inventory เพื่อลงทะเบียนแบบ manual ทีละเครื่อง

    แล้วกลับมาอีกรอบ คราวนี้ก็เลือก Boot from hard disk เมื่อเข้า Windows ได้แล้วลองไปตรวจสอบ IP

    หน้าต่าง login ก็ใส่ค่า default username คือ fog และ password คือ password

    ต่อไปมาดูในหน้าเว็บ ของ fog จะเห็นว่า มีเครื่องที่เรากด ลงทะเบียน เข้ามาแล้ว

    ต่อไป เราจะไปหน้าเว็บเพจ images เพื่อสร้าง image ตั้งชื่อว่า windows7 ก่อนที่จะ cloning ได้

    กดเลือก Create New Image

    ตั้งค่าเลือก Operating System เป็นชนิด Windows 7 – (5)

    และใช้ค่า default แล้วกด Add (วันหลังค่อยลองเปลี่ยนใช้แบบอื่น ๆ)

    เราต้องผูก image เข้ากับ host ให้คลิกเข้าไปที่ชื่อ host ในตัวอย่างคือ 080027888888

    ผูก host นี้กับ Image ชื่อ windows7 ที่เราสร้างไว้

    ส่วนที่เหลือ เป็นค่า default แล้วกด Update

    กลับมาที่หน้าเว็บเพจ Host เลือก List All Hosts จะเห็นว่ามี Assigned Image เข้ามาแล้ว ให้คลิก Capture

    หน้านี้จะเด้งขึ้นมา เป็นค่า default ทั้งหมด แล้วกด Task

    จะได้หน้าต่างบอกว่า กำหนด Task แล้ว

    ไปที่เมนู Tasks จะเห็นรายการว่า กำลังรอให้เรา cloning ต้นฉบับ

    เราก็ไปเปิดเครื่อง Windows ต้นฉบับที่จะเก็บ

    มันก็จะขึ้นมาเรื่อย ๆ แบบนี้ จนได้หน้าต่างว่า กำลังใช้ Partclone ในการ cloning

    ก็รอจนเสร็จ

    คำแนะนำเพิ่มเติมเกี่ยวกับการปรับแต่งไฟล์ /etc/dhcp/dhcpd.conf ที่สร้างขึ้นในขณะติดตั้ง FOG Project
    เมื่อใช้คำสั่งดู log ดังนี้

    tail  -f  /var/log/syslog

    เพื่อไม่ให้เกิด log บรรทัดที่มีข้อความว่า “not authoritative for subnet“ ก็ให้แก้ไขไฟล์นี้โดยเพิ่มบรรทัดว่า

    authoritative; 

    ไว้ภายใน subnet {
    }

    คำสั่งใช้ editor ชื่อ vi หรือ nano แล้วแต่ถนัด

    sudo  vi( or nano)  /etc/dhcp/dhcpd.conf

    แล้ว restart service

    sudo systemctl restart isc-dhcp-server.service

    ขอให้สนุก

  • ติดตั้ง FOG Project บน Ubuntu 18.04 Server

    FOG Project A free open-source network computer cloning and management solution

    บทความนี้เป็นคำแนะนำ การติดตั้ง FOG Project บน Ubuntu 18.04 Server และบอกเล่าถึงวิธีการเลือกตั้งค่าในขั้นตอนติดตั้ง แยกบทความออกเป็น 2 บทความ

    หลังจากเรามี Ubuntu 18.04 Server พร้อมแล้ว

    สร้างไดเรกทอรีชื่อ fog

    mkdir fog
    cd fog

    ดาวน์โหลดไฟล์

    wget https://github.com/FOGProject/fogproject/archive/1.5.7.tar.gz

    แตกไฟล์

    tar -xzvf 1.5.7.tar.gz

    หลังจาก แตกไฟล์ มาเสร็จแล้ว เข้าไปไดเรกทอรี

    cd fogproject-1.5.7/
    cd bin/

    ต่อไปก็มาดูขั้นตอนติดตั้ง

    sudo  ./installfog.sh

    ในหน้าจอการติดตั้งจะมีคำถามให้ตอบ Y หรือ N ไปเรื่อย ๆ ซึ่ง เราจะต้องเลือกว่าจะใช้งาน fogproject แบบใด ระหว่าง 2 แบบนี้

    แบบที่ 1
    ติดตั้ง FOG Project แบบมี DHCP Server ด้วย เหมาะสำหรับห้องคอมพิวเตอร์ที่ผู้ดูแลจัดการ network และ IP ของ Windows ได้เอง หรือ เหมาะสำหรับผู้ที่ต้องการจะตั้ง DHCP SERVER เพื่อให้บริการ IP แก่ Windows ด้วยตนเอง

    แบบที่ 2
    ติดตั้ง FOG Project แบบใช้ Proxy DHCP เหมาะสำหรับห้องคอมพิวเตอร์ที่ผู้ดูแลไม่ได้จัดการ network และ Windows จะได้รับ IP จาก DHCP Server ของ network หรือ ไม่สามารถตั้ง DHCP Server ขึ้นมาใช้งานเองได้

    วิธีลบ FOG อย่างสมบูรณ์
    หากต้องการย้อนการทำงาน กลับไปเริ่มต้นขั้นตอนติดตั้งใหม่ ให้ทำคำสั่งนี้

    delete fog database

    sudo mv /opt/fog/.fogsettings /opt/fog/fogsettings-firstInstall
    sudo userdel fogproject
    sudo rm /etc/systemd/system/multiuser.target.wants/FOGImageReplicator.service
    sudo rm /etc/systemd/system/multiuser.target.wants/FOGMulticastManager.service 
    sudo rm /etc/systemd/system/multi-user.target.wants/FOGScheduler.service 
    sudo mysql
    drop database fog;
    quit

    Remove files

    sudo rm -rf /var/www/fog
    sudo rm -rf /var/www/html/fog
    sudo rm -rf /opt/fog
    sudo rm -rf /tftpboot
    sudo rm -rf /images #Warning, this line deletes any existing images.

    ทำขั้นตอนติดตั้งใหม่

    sudo  ./installfog.sh

    หวังว่าจะเป็นประโยชน์

  • Windows Subsystem for Linux in Windows 10

    แนะนำวิธีติดตั้ง Windows Subsystem for Linux ใน Windows 10 รุ่น 1903 และวิธีเปิด sshd service อัตโนมัติ

    ขั้นตอน
    1.เปิด Featured Windows Subsystem for Linux ให้ไปที่ Control Panel เลือก Program เลือก Turn Windows features on or off ทำเครื่องหมายเพื่อเลือก Windows Subsystem for Linux รอสักครู่ จากนั้นจะมีคำสั่งให้ reboot เพื่อเริ่มใช้งานได้

    Open Control Panel
    Select Program
    Select Turn Windows features on or off
    Check Windows Subsystem for Linux
    Next, reboot Windows

    2.เปิด Microsoft Store App ใส่คำว่า ubuntu ในช่อง search เลือก Ubuntu 18.04 LTS App คลิก Get ถาม Sign in with Microsoft ให้ตอบ No, thanks จากนั้นรอ

    Open Microsoft Store
    Select Ubuntu 18.04 LTS App
    Get
    Answer with “No, thanks”
    On downloading

    3.เปิด Ubuntu 18.04 LTS ที่ปุ่ม Windows Start ให้คีย์คำว่า ubuntu แล้วเลือก Run ad administrator จะใช้เวลาสักครู่ แล้วจะให้เราตั้ง username และ password ที่ไม่จำเป็นต้องเหมือนกับ username ที่ sign in เข้า Windows

    Open Ubuntu with Run as administrator
    First time Installing

    4.เปิดอนุญาตให้มีการเชื่อมต่อผ่าน sshd ในครั้งแรกที่คีย์คำสั่งว่า
    sudo service ssh start

    Allow ssh in Windows Firewall

    5.ให้ถอนโปรแกรม openssh-server เพราะว่า Ubuntu ที่ได้มาไม่มี host key

    sudo apt remove openssh-server
    Remove sshd

    6.แล้วจะติดตั้งใหม่จะได้ ssh host key

    sudo apt install openssh-server
    Install sshd with new host key

    เปิด sshd service ด้วยคำสั่ง

    sudo service ssh start

    และทดสอบว่า บริการ sshd ทำงานได้แล้วด้วยคำสั่ง

    ssh john@127.0.0.1

    ให้เปลี่ยนคำว่า john เป็นชื่อ username ที่ใช้งาน
    จะพบว่าครั้งแรกนี้ จะเข้าไม่ได้ Permission denied (publickey)

    Permission denied

    7.เราจะตั้งค่าให้ใช้ password ได้ด้วยนอกจากใช้ public key

    sudo sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config
    Allow using password

    เปิด sshd service อีกครั้ง ด้วยคำสั่ง
    sudo service ssh restart
    และทดสอบอีกครั้งว่า บริการ sshd ทำงานได้แล้วด้วยคำสั่ง
    ssh john@127.0.0.1
    ให้เปลี่ยนคำว่า john เป็นชื่อ username ที่ใช้งาน
    ในรอบนี้ เราจะใส่ password ได้แล้ว หลังจากสำเร็จ ก็ใช้คำสั่ง exit ออกมา

    sshd is OK

    เมื่อมาถึงตรงนี้ เราได้ทำให้บริการ sshd พร้อมใช้งานใน Windows ของเราแล้ว

    ต่อไปเป็นการตั้งค่าให้บริการ sshd ทำงานทันทีที่เปิด Windows
    คีย์คำสั่งเหล่านี้

    echo "sudo /usr/sbin/service ssh start" > /mnt/c/startssh.sh

    และ

    echo "%sudo ALL = NOPASSWD: /usr/sbin/service ssh start" | sudo tee /etc/sudoers.d/custom

    (ตรงนี้อาจมีถาม password ของ username ที่กำลังใช้งานที่มีสิทธิใช้คำสั่ง sudo)
    และคำสั่งนี้

    sudo chmod 0440 /etc/sudoers.d/custom

    เสร็จแล้วคีย์คำสั่ง exit เพื่อปิดหน้าต่าง

    To prepare a task for Task Schdule

    คำเตือน: หากคีย์ข้อความในคำสั่งตกหล่น จะต้องกลับไปติดตั้ง Ubuntu ใหม่โดยการ Uninstall แล้ว Install ใหม่

    เราจะไปตั้งค่าให้ startssh.sh ทำงานด้วย Task Schedule
    เปิด Task Scheduler เลือก Run as administrator เลือก Task Scheduler Library ดูด้านขวา เลือกคำสั่ง Create Task

    Open Task Schedule
    Select Create Task

    แท็บแรกคือ General ตั้ง Name ว่า startssh เลือก Run whether user is logged on or not เลือก Run with highest privileges ที่ช่อง Configure for เลือก Windows 10

    General Tab

    แท็บสองคือ triggers เลือก New ที่ช่อง Begin the task เลือก At startup ที่ช่อง Advanced Settings ด้านล่าง เลือก Enabled

    Triggers Tab

    แท็บสามคือ Actions เลือก New ที่ช่อง Action เลือก Start a program ที่ช่อง Program/script ใส่คำว่า bash และที่ช่อง Add arguments ใส่ข้อความ /mnt/c/startssh.sh

    Action Tab

    จะมี pop up window ถาม username กับ password ที่จะรัน Task นี้ ก็ใส่ให้ถูก แล้วปิดหน้าต่าง Task Schedule

    Enter password

    เมื่อมาถึงตรงนี้ เราก็ได้ตั้งค่าให้ Start sshd เมื่อ Windows Start เสร็จแล้ว

    ทดสอบโดยการ reboot Windows เพื่อดูว่า Task Schedule ทำ task ขื่อ startssh ให้อัตโนมัติสำเร็จหรือไม่ โดยการทดสอบ ssh เข้าจาก PC อีกเครื่อง สมมติว่า เครื่อง Windows มี IP 192.168.6.221

    ssh john@192.168.6.221

    หลังจากตอบ Yes แล้วใส่ password ผ่าน ก็ให้พิมพ์คำสั่ง exit เป็นอันเสร็จสิ้นการทดสอบ
    หากได้ข้อความประมาณว่า ssh: connect to host 192.168.6.221 port 22: Resource temporarily unavailable ก็ต้องกลับไปตรวจสอบว่า ทำไมจึงเปิดบริการ sshd ไม่สำเร็จ ลองเช็ค Windows Firewall

    ต่อไปเป็นการนำ ssh key (id_rsa.pub) จากเครื่อง server ไปฝากไว้ที่ Windows Subsystem for Linux เพื่อเป็น publickey ใช้แทนการใส่ password เมื่อเราจะส่งคำสั่งเข้าไปจัดการ Windows ผ่านทาง Windows Subsystem for Linux เช่น reboot Windows เป็นต้น

    ตรวจสอบที่ server จะต้องมีไฟล์ id_rsa.pub ใน ~/.ssh/ ถ้ายังไม่ได้สร้าง key ก็ให้ใช้คำสั่งนี้

    ssh-keygen -t rsa
    directory ~/.ssh

    ส่ง ssh key ด้วยคำสั่งนี้

    ssh-copy-id -i ~/.ssh/id_rsa.pub john@192.168.6.221

    ให้แทนที่ john ด้วย username ที่ใช้ และเปลี่ยน IP เป็นที่ใช้

    Send ssh key

    ถ้าทำสำเร็จ ทดสอบด้วยคำสั่ง ssh john@192.168.6.221 จะเข้าได้โดยไม่มีถาม password
    ให้ออกจาก ssh นั้นด้วยคำสั่ง exit

    Testing

    ขั้นสุดท้ายทดสอบสั่ง reboot Windows ด้วยคำสั่ง เขียนติดกันเป็นบรรทัดเดียว

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no john@192.168.6.221 "/mnt/c/Windows/system32/shutdown.exe -r -f -t 0"
    Now we can manage Windows from remote

    วิธีที่ได้นำเสนอนี้ จะนำไปเป็นส่วนหนึ่งในการควบคุม Windows PC ในห้องบริการคอมพิวเตอร์ ซึ่งเราจะประยุกต์ให้เป็นการติดตั้งผ่าน shell script ไม่ต้องคีย์ทีละคำสั่ง

  • ปิดช่องโหว่เหลือค้าง

    • หลังจากไม่ได้ตรวจสอบช่องโหว่มานาน วันนี้ Nessus ทำใหม่แล้วลองสแกนซักหน่อย
    Nessus Scan Report
    • ซึ่งจะพบว่ามี Medium สองรายการ คือ Browsable Web Directory และ WordPress User Enumeration โดย
      • Browsable Web Directory คือ สามารถเข้าถึงรายการใน directory ได้ เช่น ชื่อไฟล์ มีไฟล์อะไรบ้าง ขนาดเท่าไหร่ เป็นต้น เมื่อตรวจสอบก็พบว่าเป็น directory ที่ผู้ใช้ไม่จำเป็นต้องเข้าถึง
      • WordPress User Enumeration คือ สามารถเข้าถึง username ได้ว่ามี user อะไรบ้าง

    ปิด Directory Browsing

    ทำได้ 2 วิธีคือ

    • แก้ไขแฟ้ม config ของ site ที่ต้องการปิด โดยทั่วไปแฟ้มจะอยู่ที่ /etc/apache2/site-enabled/site.conf โดย site.conf คือชื่อไฟล์ที่ต้องการ โดยเพิ่มในส่วนของ Directory ของไซต์นั้น ตัวอย่างเป็น /var/www/html/aaeee ให้ทำการแก้ไขหรือเพิ่มข้อความตามตัวอย่าง ส่วนสำคัญคือ Options ต้องไม่มีคำว่า Indexes เมื่อแก้ไขเสร็จ ให้ reload หรือ restart apache2 ด้วยคำสั่ง sudo systemctl reload apache2 หรือ sudo systemctl restart apache2
    <Directory /var/www/html/aaeee>
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    • สำหรับวิธีที่สองนี้ ต้องมีการระบุ AllowOverride All ในแฟ้มของไซต์ ด้วยจึงจะใช้งานได้ (หากแก้ไขไฟล์ไซต์ของ apache2 ต้อง reload หรือ restart ด้วย) เช่น
    <Directory /var/www/html/aaeee>
            AllowOverride All
    </Directory>
    • สร้างแฟ้ม .htaccess เอาไว้ใน Directory (จากตัวอย่างนี้คือ /var/www/html/aaeee) ที่ต้องการ โดยเพิ่มข้อความข้างล่างนี้วิธีนี้ มีผลทันทีไม่ต้อง reload หรือ restart apache2
    Options -Indexes

    ปิด WordPress User Enumeration

    • ในไซต์ของ WordPress จะมีแฟ้ม .htaccess อยู่ให้เพิ่มข้อความต่อไปนี้ลงไป โดย yoursite.name คือชื่อเว็บไซต์
    #user enumeration
    RewriteCond %{QUERY_STRING} ^author=([0-9]*)
    RewriteRule .* https://yoursite.name/? [L,R=302]
    • เมื่อทำสองอย่างแล้วให้ nessus เข้าตรวจสอบอีกครั้ง
    Nessus Scan Report
    • เย่….หายไปละ
    • จบขอให้สนุก