ติดตั้ง openldap บน ubuntu 24.04
ติดตั้ง OpenLDAP บน Ubuntu 24.04
1: อัปเดตระบบ
root@ldapserv:~# apt update && sudo apt upgrade -y
2: ติดตั้ง OpenLDAP และเครื่องมือที่เกี่ยวข้อง
root@ldapserv:~# apt install slapd ldap-utils -y
ระบบจะติดตั้ง slapd (OpenLDAP server) และ ldap-utils (เครื่องมือ CLI)
>> ใน Ubuntu 24.04 อาจไม่มี prompt ให้กำหนดรหัสผ่านของ admin (cn=admin) ในระหว่างติดตั้ง
Configuring slapd
Please enter the password for the admin entry in your LDAP directory.
Administrator password: xxxxx
3: ตั้งค่ารหัสผ่านสำหรับ LDAP admin ด้วย dpkg-reconfigure
ตั้งค่า config สำหรับ OPENLDAP ใหม่
root@ldapserv:~# dpkg-reconfigure slapd
คำถามที่คุณจะเจอ:
1. Omit OpenLDAP server configuration? → เลือก No
2. DNS domain name: → เช่น example.com
3. Organization name: → เช่น Example Inc
4. Administrator password: → ตั้งรหัสผ่าน
5. Database backend to use: → เลือก MDB (ค่าเริ่มต้น)
6. Remove the database when slapd is purged? → No
7. Move old database? → Yes
หลังจากนั้นระบบจะตั้งค่าฐานข้อมูลให้ใหม่ทั้งหมด
root@ldapserv:~# netstat -lntp
Active Internet connections (only servers)
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 17736/slapd <–OPENLDAP
tcp6 0 0 :::22 :::* LISTEN 823/sshd: /usr/sbin
tcp6 0 0 :::389 :::* LISTEN 17736/slapd
4: ทดสอบ LDAP ด้วย ldapsearch ตัวอย่าง omtel.co.th
การ search ข้อมูลจาก LDAP server เช่น omtelldap.omtel.co.th จำเป็นต้องทราบ:
1.Base DN (จุดเริ่มต้นของ directory tree ที่จะค้นหา เช่น dc=omtel,dc=co,dc=th)
2.Credentials (ถ้าต้อง bind ด้วย user/password)
3.Port ที่ใช้ (ปกติ 389 สำหรับ LDAP หรือ 636 สำหรับ LDAPS)
4.Filter ที่ต้องการค้นหา เช่น (objectClass=person) หรือ (uid=someone)
root@ldapserv:~# ldapsearch -x -H ldap://localhost \
-D “cn=admin,dc=omtel,dc=co,dc=th” -w ‘LDAP Password’ \
-b “dc=omtel,dc=co,dc=th”
# extended LDIF
#
# LDAPv3
# base <dc=omtel,dc=co,dc=th> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# omtel.co.th
dn: dc=omtel,dc=co,dc=th
objectClass: top
objectClass: dcObject
objectClass: organization
o: omptelldap
dc: omtel
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
แบบนี้ถือว่าสำเร็จแล้ว!
การตอบกลับจาก ldapsearch ของคุณ:
•แสดงว่าเชื่อมต่อกับ LDAP server ได้สำเร็จ (result: 0 Success)
•มีการคืนค่า entry ของ dc=omtel,dc=co,dc=th ได้ 1 รายการ (root entry ของ directory tree)
•ไม่มี error ใด ๆ เช่น invalid credentials หรือ no such object
ขั้นตอนถัดไป (หากต้องการ):
5. หากต้องการ:
•สร้าง OU (organizationalUnit) เช่น People, Groups
•เพิ่มผู้ใช้ เช่น uid=tee,ou=People,…
ให้ใช้ไฟล์ .ldif เช่น:
ตัวอย่าง: add_base.ldif
dn: ou=People,dc=omtel,dc=co,dc=th
objectClass: organizationalUnit
ou: People
dn: uid=tee,ou=People,dc=omtel,dc=co,dc=th
objectClass: inetOrgPerson
cn: Naitinoi Sak
sn: Sak
uid: tee
userPassword: {SSHA} password
root@ldapserv:~# ldapadd -x -D “cn=admin,dc=omtel,dc=co,dc=th” -w ‘LDAP Password’ -f add_base.ldif
adding new entry “ou=People,dc=omtel,dc=co,dc=th”
adding new entry “uid=tee,ou=People,dc=omtel,dc=co,dc=th”
สามารถ Connect Test จากโปรแกรม LDAP Client Test เช่น
https://jxplorer.org/downloads/users.html
https://sourceforge.net/projects/ldapadmin/files/ldapadmin/1.8.3/
Ubuntu Netplan 24.04 Example- Proxmox
root@ldapserv:/etc/netplan# nano 50-cloud-init.yaml
network:
version: 2
ethernets:
ens18:
dhcp4: no
addresses:
– 192.168.100.30/24
routes:
– to: default
via: 192.168.100.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
root@ldapserv:/etc/netplan# netplan apply
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
root@ldapserv:/etc/netplan# sudo systemctl status openvswitch-switch
Unit openvswitch-switch.service could not be found.
root@ldapserv:/etc/netplan# apt install openvswitch-switch -y
[*] systemd-logind.service
ตั้งให้เริ่มทำงานอัตโนมัติทุกครั้งที่บูต:
root@ldapserv:/etc/netplan# systemctl enable openvswitch-switch
Synchronizing state of openvswitch-switch.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable openvswitch-switch
ติดตั้ง Kea DHCP Server บนเครื่อง Mac M1 (Apple Silicon) เพื่อแจก DHCP สำหรับเครือข่าย 192.168.1.0/24
teee@NP ~ % brew install kea
ตรวจสอบตำแหน่งไฟล์ config
teee@NP ~ % cd /opt/homebrew/etc/kea/
teee@NP kea % ls
kea-ctrl-agent.conf kea-dhcp-ddns.conf kea-dhcp4.conf kea-dhcp6.conf keactrl.conf
แก้ไขไฟล์ kea-dhcp4.conf
ให้กำหนดการแจก IP สำหรับ subnet 192.168.1.0/24 แบบนี้:
sudo nano /opt/homebrew/etc/kea/kea-dhcp4.conf
ใส่ config (หรือแก้ไขบล็อก subnet4 ให้เหมือนด้านล่าง):
{
“Dhcp4”: {
“interfaces-config”: {
“interfaces”: [ “en0” ] // หรือใส่ชื่อ interface ที่ต้องการ
},
“lease-database”: {
“type”: “memfile”,
“persist”: true,
“name”: “/opt/homebrew/var/kea/kea-leases4.csv”
},
“subnet4”: [
{
“id”: 1,
“subnet”: “192.168.1.0/24”,
“pools”: [
{
“pool”: “192.168.1.100 – 192.168.1.200”
}
],
“option-data”: [
{
“name”: “routers”,
“data”: “192.168.1.1”
},
{
“name”: “subnet-mask”,
“data”: “255.255.255.0”
},
{
“name”: “domain-name-servers”,
“data”: “8.8.8.8, 1.1.1.1”
}
]
}
],
“loggers”: [
{
“name”: “kea-dhcp4”,
“output_options”: [
{
“output”: “/opt/homebrew/var/log/kea/kea-dhcp4.log”
}
],
“severity”: “INFO”
“debuglevel”: 0
}
]
}
}
แก้ “interfaces”: [ “en0” ] ให้ตรงกับชื่อ network interface ของคุณ (รัน ifconfig เพื่อเช็ค เช่น en0, bridge100, หรือ utun0)
สร้างโฟลเดอร์สำหรับ log และ leases ถ้ายังไม่มี
teee@NP kea % sudo mkdir -p /opt/homebrew/var/log/kea
teee@NP kea % sudo mkdir -p /opt/homebrew/var/kea
teee@NP kea % sudo mkdir -p /opt/homebrew/var/kea
teee@NP kea % sudo touch /opt/homebrew/var/kea/kea-leases4.csv
teee@NP kea % sudo chown $(whoami) /opt/homebrew/var/kea/kea-leases4.csv
กำหนด Static IP ให้ Mac (เช่น 192.168.1.1)
ไปที่ System Settings > Network > เลือก interface ที่คุณจะใช้ (เช่น Wi-Fi หรือ USB Ethernet) แล้วตั้งเป็น Manual IP: 192.168.1.1 Subnet: 255.255.255.0
รัน Kea DHCP Server
teee@NP kea % /opt/homebrew/sbin/kea-dhcp4 -c /opt/homebrew/etc/kea/kea-dhcp4.conf
ตรวจสอบ log
teee@NP /opt % tail -f /opt/homebrew/var/log/kea/kea-dhcp4.log
ทดสอบจากอุปกรณ์ลูกข่าย
เชื่อมต่อสาย LAN จาก Mac ไปยังเครื่องลูกข่าย หรือผ่าน Ethernet adapter แล้วให้เครื่องลูกข่ายขอ IP ผ่าน DHCP — จะได้รับ IP ในช่วง 192.168.1.100 – 192.168.1.200
teee@NP kea % sudo /opt/homebrew/sbin/kea-dhcp4 -c /opt/homebrew/etc/kea/kea-dhcp4.conf
2025-05-19 13:13:04.137 INFO [kea-dhcp4.dhcp4/8221.0x208ce1f00] DHCP4_STARTING Kea DHCPv4 server version 2.6.2 (stable) starting
2025-05-19 13:13:04.140 INFO [kea-dhcp4.commands/8221.0x208ce1f00] COMMAND_RECEIVED Received command ‘config-set’
แปลว่า Kea DHCPv4 server ได้เริ่มต้นทำงานเรียบร้อยแล้วโดยไม่มี error
teee@NP /opt % sudo lsof -iUDP:67
Password:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kea-dhcp4 8221 root 12u IPv4 0x76203903121f674e 0t0 UDP 10.10.1.113:bootps
bootps = UDP/67 (DHCP Server)
วิธีการ STOP KEA
teee@NP /opt % ps aux | grep kea-dhcp4
teee 8652 0.0 0.0 410732512 1488 s000 S+ 1:20PM 0:00.01 grep kea-dhcp4
root 8221 0.0 0.1 410778736 6144 ?? S 1:13PM 0:00.09 /opt/homebrew/sbin/kea-dhcp4 -c /opt/homebrew/etc/kea/kea-dhcp4.conf
root 8220 0.0 0.0 410886720 3664 ?? S 1:13PM 0:00.02 sudo /opt/homebrew/sbin/kea-dhcp4 -c /opt/homebrew/etc/kea/kea-dhcp4.conf
Kill ด้วย PID:
teee@NP /opt % sudo kill 8221
teee@NP /opt % ps aux | grep kea-dhcp4
teee 8682 0.0 0.0 410724320 1392 s000 S+ 1:22PM 0:00.00 grep kea-dhcp4
tftpd on macbook m1
Check tftpd running
teee@NP ~ % netstat -na |grep \*.69
teee@NP ~ % apropos tftp
makewhatis: /opt/local/man: Not a directory
tftp(1) – trivial file transfer program
tftpd(8) – Internet Trivial File Transfer Protocol server
CURLOPT_TFTP_BLKSIZE(3) – TFTP block size
CURLOPT_TFTP_NO_OPTIONS(3) – send no TFTP options requests
tftp(1) – trivial file transfer program
tftpd(8) – Internet Trivial File Transfer Protocol server
Start tftpd
teee@NP ~ % sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Check tftpd start
teee@NP ~ % netstat -na |grep \*.69
udp4 0 0 *.69 *.*
udp6 0 0 *.69 *.*
Symlink the tftpboot folder
teee@NP ~ % cd /private
teee@NP /private % sudo rm -rf tftpboot
teee@NP / % mkdir /Users/teee/tftpboot
teee@NP / % sudo ln -s /Users/teee/tftpboot tftpboot
teee@NP / % sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
teee@NP / % sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Copy file into position
teee@NP / % cd /Users/teee/tftpboot
Stop tftpd
teee@NP ~ % sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
teee@NP ~ % netstat -na |grep \*.69
Linux ค้นหาไฟล์ที่เก่ากว่า 30 วันให้ลบออก
ใน Linux สามารถใช้คำสั่ง find เพื่อค้นหาและลบไฟล์ที่ เก่ากว่า 1 เดือน ได้ตามนี้
คำสั่ง:-
#find /path/to/folder -type f -mtime +30 -exec rm -f {} \;
/path/to/folder = โฟลเดอร์ที่คุณต้องการค้นหา (เช่น /var/log หรือ /mnt/backup)
-type f = เลือกเฉพาะไฟล์ (ไม่รวมโฟลเดอร์)
-mtime +30 = ไฟล์ที่ ถูกแก้ไขครั้งสุดท้ายมากกว่า 30 วัน (ประมาณ 1 เดือน)
-exec rm -f {} \; = ลบไฟล์ที่เจอทันที
ถ้าต้องการแค่ดูรายการไฟล์ (ไม่ลบ):
#find /path/to/folder -type f -mtime +30
Xsession: unable to start x session
Xsession: unable to start x session — “no /home/teee/.xsession” file no session manager , no windows manager ,and no terminal emulator found, abourting
ข้อความผิดพลาดนี้บอกว่า X ไม่สามารถเริ่มเซสชันได้เพราะ:
-
ไม่มีไฟล์
~/.xsession
-
ไม่มี session manager
-
ไม่มี window manager
-
ไม่มี terminal emulator
สาเหตุที่เป็นไปได้:
-
XFCE ยังไม่ได้ติดตั้งครบ
-
ไม่มี display manager หรือถูกตั้งค่าผิด
-
X11 พยายามเริ่มต้นจาก
.xsession
แต่ไม่มีการกำหนดค่า
วิธีแก้ไข
วิธีที่ 1: ตรวจสอบและติดตั้ง XFCE พร้อม X11 อย่างถูกต้อง
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg lightdm
ระหว่างการติดตั้ง ถ้ามีคำถามเรื่อง Display Manager ให้เลือก lightdm
วิธีที่ 2: ตรวจสอบว่ามี session ของ XFCE ใน /usr/share/xsessions
ls /usr/share/xsessions
ควรเห็นไฟล์ชื่อประมาณ:
-
xfce.desktop
วิธีที่ 3:ตรวจสอบว่าติดตั้ง terminal emulator ด้วย
เช่น xfce4-terminal
หรือ xterm
:
sudo apt install xfce4-terminal xterm
เสร็จแล้วลอง Reboot ดู
Debian แก้ไขคำสั่งบูต GRUB ชั่วคราวเพื่อเข้าผ่าน shell
เลือกบรรทัดแรก (Debian GNU/Linux) แล้วกด e เพื่อ “edit”
หาบรรทัดที่ขึ้นต้นว่า:
linux /boot/vmlinuz-… root=UUID=… ro quiet
ลบ quiet ออก และ เพิ่ม:
linux /boot/vmlinuz-… root=UUID=… ro systemd.unit=multi-user.target
กด Ctrl + X หรือ F10 เพื่อบูตด้วยค่าที่คุณแก้ไข
Debian เปิดเครื่องเจอแต่ loopback interface
อาจเป็นไปได้ว่า interface จะ down อยู่ ให้ใช้คำสั่งครวจสอบ
#ip link show
#ip link set enp0s3 up
#dhclient enp0s3
Ubuntu แก้ไข motd
ปิดระบบ dynamic MOTD (ให้แสดงแค่ /etc/motd)
sudo chmod -x /etc/update-motd.d/*
sudo nano /etc/motd
วิธีการใช้งาน scrcpy เพื่อ mirror หน้าจอ samsung s24 บนเครื่อง mac
#ที่มือถือให้ทำการเปิด Developer Mode
1. ไปที่ settings > About phone > Software information >
กดย้ำๆที่ Build number 7 ครั้ง มือถือจะแจ้งว่า Developer mode On
2. เลือก Settings > Security and privacy. กด ปิด Auto Blocker
3. ที่เครื่องมือถือจะมีป๊อปอัพเตือนว่ามีการเสียบสาย USB เข้ากับเครื่อง MAC. ให้เลือกใช้งานตามจุดประสงค์
4. ให้ทำการติดตั้งโปรแกรม scrcpy โดยจะติดตั้งผ่าน homebrew.
ถ้ายังไม่เคยติดตั้งใช้งาน homebrew ให้ไปติดตั้ง homebrew ก่อน
ติดตั้ง Homebrew บน Mac (ถ้ายังไม่มี)
# /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
5. จากนั้นติดตั้ง ADB และ scrcpy ผ่าน Homebrew
brew install android-platform-tools # สำหรับ ADB
brew install scrcpy # ติดตั้ง scrcpy
6.เชื่อมต่อ S24 เข้ากับ Mac ผ่าน USB-C Cable
•ใช้สายแท้ หรือสายที่รองรับ Data Transfer
•หลังเสียบ → บนมือถือจะขึ้น “Allow USB Debugging?” → กด Allow
7.ตรวจสอบว่า Mac เจอ S24 หรือไม่
พิมพ์ใน Terminal:
adb devices
ถ้าเจออุปกรณ์มือถือจะแจ้งว่า
List of devices attached
xxxxxxxxxxxx device
8. รัน scrcpy
teee@NP Programs % scrcpy
scrcpy 3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: –> (usb) RFCxxxxxxxx device SM_S921B
/opt/homebrew/Cellar/scrcpy/3.1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 106.3 MB/s (90640 bytes in 0.001s)
[server] INFO: Device: [samsung] samsung SM-XXXXX (Android 14)
INFO: Renderer: metal
INFO: Texture: 1080×2336
2025-03-17 15:31:22.355 scrcpy[37968:994087] +[IMKClient subclass]: chose IMKClient_Modern
2025-03-17 15:31:22.355 scrcpy[37968:994087] +[IMKInputSession subclass]: chose IMKInputSession_Modern