Category Archives: Linux OS

แก้ปัญหา Certbot ต่ออายุ SSL Certificate ไม่ได้

ช่วงแรกที่เริ่มใช้งาน Let’s Encrypt บน Ubuntu 20.04 เมื่อติดตั้ง certbot ไปแล้ว โปรแกรมก็จะทำการต่ออายุ ssl certificate ให้อัตโนมัติทุกๆสามเดือน ทำให้ผู้เขียนเกิดความชะล่าใจ ไม่ได้สนใจกับข้อความผิดพลาดที่แจ้ง เตือนบนคอนโซล จนในเวลาต่อมาเว็บไซต์เข้าใช้งานไม่ได้ จึงมาค้นหาสาเหตุ ตอนแรกก็คิดว่าตัวโปรแกรม certbot เองมีปัญหา พยายามติดตั้งใหม่อยู่หลายรอบก็ยังแก้ไขไม่ได้ จึงทดลองติดตั้งเซิร์ฟเวอร์ใหม่แล้วทำ renew ssl ก็ไม่ได้เหมือนกัน จนต้องเลิกใช้ Let’s Encrypt ไปนานเลย

Traceback (most recent call last):
File "/usr/bin/certbot", line 11, in <module>
load_entry_point('certbot==0.40.0', 'console_scripts', 'certbot')()
...
import OpenSSL
File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1571, in X509StoreFlags
NOTIFY_POLICY = _lib.X509_V_FLAG_NOTIFY_POLICY
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'

ตอนหลังมาพบว่าสาเหตุเกิดจากไลบรารี่ openssl บน python ต่างหากที่มีปัญหา ไม่ได้เป็นที่ certbot อย่างที่เข้าใจในตอนแรก วิธีแก้ไขทำดังนี้

# apt remove python3-pip
# wget https://bootstrap.pypa.io/get-pip.py
# python3 get-pip.py

จากนั้นรีบูทเครื่องเซิฟเวอร์ใหม่

# pip install pyopenssl –upgrade
# certbot –apache

เจอ Certbot ป่วนจนต้องย้ายเซิร์ฟเวอร์

ใช้งาน Certbot มานาน ก็ไม่เคยมีปัญหาอะไร แต่รอบนี้หนักมาก อยู่ๆก็เกิดอาการสร้างคีย์ใหม่ไม่ได้ พยายามลบออก แล้วติดตั้งใหม่หลายรอบก็ไม่ได้ ทำไปทำมา เล่นเอาเซิร์ฟเวอร์เดี้ยงไปเลย ต้องย้ายไปใช้เซิร์ฟเวอร์ตัวใหม่ กว่าจะย้ายฐานข้อมูลกลับมาหมดก็เล่นเอาคางเหลืองไปเลยครับ ต้องทำแบบ manual ทั้งหมด เพราะโปรแกรม phpmyadmin พังไปพร้อมกับ Apache รู้สึกเข็ดขยาดไม่กล้ากลับไปใช้อีกแล้ว คงต้องใช้เซิร์ฟเวอร์แบบ no ssl ไปสักพัก…

หากท่านใดเจอ certbot มีปัญหา ห้ามทดสอบลบ apache เพื่อติดตั้งใหม่เด็ดขาด ไม่งั้นโปรแกรมต่างๆที่ผูกอยู่กับ apache จะพังหมด ไม่ว่าจะเป็น MariaDB phpmyadmin หากต้องการจะทดสอบด้วยวิธีนี้จริงๆ ควรสำรองข้อมูลทั้งหมดไว้ เพื่อให้พร้อมที่จะติดตั้งกับเซิร์ฟเวอร์ตัวใหม่ได้ทันทีเท่านั้นครับ

ติดตั้ง Speedtest cli บน Ubuntu Raspberry Pi 4

เนื่องจากติดตั้ง Ubuntu 22.04 บนบอร์ด Raspberry Pi 4 เมื่อติดตั้งโอเอสเรียบร้อยไม่สามารถติดตั้งโปรแกรม speedtest แบบ command line ปรกติได้ จึงต้องไปดาวน์โหลดโปรแกรมจากเว็บ speedtest.net ด้วยตัวเอง

https://www.speedtest.net/apps/cli

แล้วเลือก Download for Linux->aarch64

เมื่อดาวน์โหลดเรียบร้อยเราจะได้ไฟล์ ookla-speedtest-1.1.1-linux-aarch64.tgz จากนั้นแตกไฟล์ด้วยคำสั่ง

$ tar xvzf ookla-speedtest-1.1.1-linux-aarch64.tgz
$ speedtest

Ubuntu Desktop 22.04 สำหรับ Raspberry Pi

สิ้นสุดการรอคอยเสียที สำหรับผู้ใช้งาน Raspberry Pi ที่ต้องการทำงานบน Ubuntu Desktop ที่สมบูรณ์แบบ ซึ่งในช่วงที่บอร์ด Raspberry Pi 4 เปิดตัวมาในช่วงแรกๆ ตอนนั้นเกือบทุกโอเอสไม่ว่าจะเป็น Raspberry Pi OS, Ubuntu 20.04 ยังเป็นเวอร์ชันเบต้าทำงานได้ไม่ราบรื่นเท่าที่ควร แต่เท่าที่ได้ทดลองใช้ Ubuntu Desktop 22.04 แล้วต้องบอกว่าข้อผิดพลาดเล็กๆน้อยๆถูกแก้ไขไปเกือบหมด และมีฟีตเจอร์ใหม่ๆที่น่าใช้งานเพิ่มเข้ามาอีกหลายอย่าง

บางท่านอาจจะสงสัยว่าทำไมต้องรอ Ubuntu Desktop 22.04 เหตุผลก็เพราะว่าท่านจะได้ใช้งานโปรแกรมเดสก์ทอปที่สมบูรณ์แบบไปพร้อมๆกับติดตั้งแอพพลิเคชันเซิร์ฟเวอร์ทั้งหลายแหล่ เพื่อพัฒนาโปรแกรมแบบ Client/Server ภายในเครื่องเดียวกันได้เลย โดยไม่ต้องไปยุ่งยากติดตั้งเซิร์ฟเวอร์เครื่องหนึ่ง และเดสก์ทอปที่ใช้งานประจำวันอีกเครื่อง จุดที่พบการปรับปรุงที่ชัดเจน

  • โปรแกรม Chromium จากเดิมที่เสียงกระตุก ขาดหาย เปิดยูทูปไม่สะดวก ใช้บราวเซอร์ Firefox ได้ตัวเดียว ซึ่ง extension บางอย่างใน Chromium ไม่มีใน Firefox เช่น Line Chat
  • โปรแกรม OpenVPN Client เรียกใช้งานสะดวกง่ายดาย โดยไม่ต้องไปติดตั้งโปรแกรมเพิ่ม
  • เชื่อมต่อกับอุปกรณ์บลูทูธได้สะดวกกว่าเดิม

Ubuntu Desktop 22.04 จะยอดเยี่ยมแค่ไหน ก็ขอเชิญท่านผู้อ่านไปทดสอบใช้งานกันดูนะครับ…

เปลี่ยน mirror sources.list บน Ubuntu 20.04

ต้นฉบับ cloud server ติดตั้งให้เป็น mirror ภายในของ cloud server เอง แต่รอบการอัพเดตซอฟต์แวร์ใหม่ค่อนข้างช้า จึงเปลี่ยน mirror อัพเดตเซิร์ฟเวอร์ใหม่ โดยแก้ไขที่ไฟล์ /etc/apt/sources.list ต้นฉบับเป็นไฟล์ที่ติดตั้งจาก USB Drive – ISO *** ก่อนแก้ไขควรแบ็คอัพไฟล์ต้นฉบับไว้ด้วย ***

#deb cdrom:[Ubuntu 20.04.2 LTS _Focal Fossa_ - Release amd64 (20210819.1)]/ focal main multiverse restricted universe

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://th.archive.ubuntu.com/ubuntu/ focal main restricted
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://th.archive.ubuntu.com/ubuntu/ focal-updates main restricted
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://th.archive.ubuntu.com/ubuntu/ focal universe
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal universe
deb http://th.archive.ubuntu.com/ubuntu/ focal-updates universe
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://th.archive.ubuntu.com/ubuntu/ focal multiverse
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://th.archive.ubuntu.com/ubuntu/ focal-updates multiverse
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://th.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://th.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://security.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu focal-security multiverse

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

ติดตั้งหน่วยความจำ Swap บน Ubuntu 20.04

หลังจากใช้งานเว็บเซิฟเวอร์ที่ติดตั้งบน DynamicDNS Home Server มาหลายปี พบปัญหาใหญ่ๆอยู่ 2 เรื่องคือ

1. ไฟฟ้าดับยาวนาน บางครั้งไฟดับหลายชั่วโมง จนแบตเตอรี่ของยูพีเอสเอาไม่อยู่
2. เน็ตบ้านเสีย ซึ่งก็นานๆจะเจอสักครั้ง แต่ที่สำคัญ ISP รีเซตไอพีทีไร เว็บล่มไปพักใหญ่

เลยคิดขยับขยายเว็บเซิร์ฟเวอร์ขึ้นไปบน Cloud Server พยายามหาข้อมูลอยู่หลายเจ้าทั้งในประเทศ และต่างประเทศจนพบที่ถูกใจ จากนั้นเริ่มขั้นตอนย้ายงานต่างๆบน Home Server ขึ้นไปบน Cloud Server

ช่วงแรกใช้งานส่วนต่างๆบนลีนุกซ์ที่ Cloud Server ตั้งค่า default มาให้ ซึ่งไม่ได้มีการติดตั้ง Swap เข้าไว้ ใช้งานด้วยหน่วยความจำหลักเพียงอย่างเดียว ปรากฏว่าเซิร์ฟเวอร์ทำงานไปได้ประมาณ 1 เดือน (โดยไม่มีการรีบูต) เซิร์ฟเวอร์ก็ใช้งานหน่วยความจำเพิ่มขึ้นๆ จนเซิร์ฟเวอร์ค้างไปเลย

หลังจากนั้นจึงติดตั้งหน่วยความจำ Swap เพิ่มเข้าไปในระบบ เพื่อให้การทำงานของเว็บเซิร์ฟเวอร์ราบรื่นขึ้น คำสั่งสำหรับติดตั้งหน่วยความจำ Swap มีดังนี้

sudo -i <password>
dd if=/dev/zero of=/swap.img bs=2048 count=1M
chmod 600 /swap.img
mkswap /swap.img
swapon /swap.img
cat /proc/swaps

จากนั้นเพิ่มการโหลดหน่วยความจำ Swap เข้าไปในไฟล์ /etc/fstab

/swap.img swap swap defaults 0 0

หมายเลขไอพีเปลี่ยน pihole รวน

บังเอิญมีเหตุจำเป็นต้องเปลี่ยนหมายเลขไอพีวงแลนภายในบ้าน แต่พอเปลี่ยนไปแล้วเจ้าโปรแกรม pihole ในเครื่อง Raspberry Pi รวนอย่างหนัก จนต้องเริ่มกระบวนการติดตั้งใหม่ สำหรับขั้นตอนแรกก็ต้องลบตัวเก่าออกไปก่อนดังนี้

$ sudo pihole uninstall

เริ่มติดตั้งใหม่

$ sudo curl -sSL https://install.pi-hole.net | bash

โปรแกรม pihole สามารถติดตั้งได้บนลีนุกซ์ Raspbian, Debian, Ubuntu, Fedora และ CentOS สำหรับผมนอกจากจะใช้ pihole เป็น DNS Server แล้วยังใช้เป็น DHCP Server ด้วย เพราะเร้าเตอร์ตัวเก่าจัดการเรื่องการจ่ายไอพีให้เครื่องลูกข่ายไม่ดีเท่าที่ควร

Opera – สุดยอดเว็บบราวเซอร์

วันนี้ขอแนะนำเว็บบราวเซอร์ที่บางท่านอาจไม่รู้จัก หรือบางท่านอาจเคยได้ยินชื่อ แต่ไม่เคยใช้งาน โปรแกรมเว็บบราวเซอร์ Opera พัฒนาโดยบริษัท Opera Software ประเทศนอร์เวย์ เปิดตัวเมื่อประมาณปี พ.ศ. 2539 หลังจากนั้นก็มีพัฒนาการมาอย่างต่อเนื่องบนโลกอินเตอร์เน็ต จุดเด่นของ Opera คือ มีคุณสมบัติพื้นฐานของเว็บบราวเซอร์ครบครัน ทำงานได้รวดเร็ว และมีให้เลือกใช้งานครบทุกโอเอส

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

สำหรับ Opera เป็นบราวเซอร์บนลีนุกซ์ที่สามารถซิงค์บุ๊กมาร์กได้ ทำงานรวดเร็ว ปลอดภัย และสามารถเรียกติดตั้งได้จาก Software Center ของลีนุกซ์ Ubuntu ได้เลย

Continue reading

ติดตั้ง OpenVPN บนลีนุกซ์ Ubuntu 20.04.3

เคยพยายามติดตั้งโปรแกรม OpenVPN Server บนลีนุกซ์ Ubuntu เวอร์ชัน 16 และ 18 ก็ยังติดตั้งไม่สำเร็จซักที จนมาถึง Ubuntu 20.04.3 นี้ เพิ่งจะติดตั้ง และใช้งานได้สมบูรณ์ คำสั่งติดตั้งบน Terminal ดังนี้

$ wget https://git.io/vpn -O openvpn-ubuntu-install.sh
$ chmod -v +x openvpn-ubuntu-install.sh
$ sudo ./openvpn-ubuntu-install.sh
$ sudo systemctl status openvpn-server@server.service

สำหรับตัวเลือก Which protocol … ตั้งค่าเป็น 2) TCP
ค่า Which DNS … เลือกเป็น 1) Current system resolvers
จากนั้นรีบูตเครื่องลีนุกซ์เซิร์ฟเวอร์

เมื่อติดตั้งโปรแกรมบนเครื่องเซิร์ฟเวอร์เรียบร้อย ขั้นต่อไปก็ติดตั้ง OpenVPN Client บนเครื่องลูก ซึ่งมีให้เลือกเกือบทุกโอเอส สำหรับ OpenVPN Client บน Windows 10 เมื่อดาวน์โหลดและติดตั้งโปรแกรมเรียบร้อยก็สามารถอิมพอร์ตไฟล์ VPN Config ใช้งานได้เลย โดยเมื่อเราเชื่อมต่อไปที่เครื่องเซิร์ฟเวอร์เรียบร้อยก็จะได้ไอคอน OpenVPN เป็นสีเขียว หากลากเม้าส์ไปชี้ที่ไอคอน Network Connection ก็จะพบ Connection แสดงขึ้นมาเป็น 2 Connection ดังรูปด้านล่าง

Continue reading