Daemon Process คืออะไร
Daemon (เดมอน) คือโปรเซสที่ทำงานในพื้นหลัง (Background) ไม่มีการโต้ตอบกับผู้ใช้โดยตรง เริ่มทำงานเมื่อระบบบูท (Boot) และสิ้นสุดเมื่อระบบปิด down ใน Linux/Unix ชื่อมักลงท้ายด้วย 'd' เช่น httpd, sshd, named, cron
บทบาทของ Daemon ในความปลอดภัยเครือข่าย
- การเฝ้าระวังเครือข่าย (Network Monitoring): Daemon เช่น
snort, suricata, zeekวิเคราะห์แพ็กเก็ตแบบเรียลไทม์ - Log Collection & Analysis:
rsyslogd, journald, filebeatรวบรวมและประมวลผลล็อก - Intrusion Detection/Prevention: Daemon IDS/IPS ตรวจจับและบล็อกการโจมตี
- Authentication Services:
sshd, radiusd, ldapdจัดการการยืนยันตัวตน - VPN/Tunnel Management:
openvpn, strongswan, wireguardจัดการการเชื่อมต่อเข้ารหัส - Firewall Rule Enforcement:
iptables/nftables daemon, firewalldบังคับใช้กฎไฟร์วอลล์
ขั้นตอนการสร้าง Daemon Process (Linux/Unix)
- Fork & Exit Parent:
fork()แล้ว parent process จบการทำงาน - Create New Session:
setsid() ทำให้เป็น session leader ใหม่ - Handle Signals: ตั้งค่า Signal handlers (SIGHUP, SIGTERM, SIGCHLD)
- Second Fork (Optional): ป้องกันการได้ controlling terminal
- Change Working Directory:
chdir("/")ป้องกัน filesystem busy - Close File Descriptors: ปิด stdin, stdout, stderr (redirect ไป /dev/null หรือไฟล์ล็อก)
- Set Umask:
umask(0)เพื่อควบคุม permission ไฟล์ที่สร้าง - Run Daemon Logic: วนลูปหลักทำงานจริง
การสื่อสารกับ Daemon
- Unix Domain Socket / TCP Socket: รองรับหลายโปรโตคอล (JSON-RPC, gRPC, REST)
- D-Bus: IPC มาตรฐานบน Linux Desktop/Server
- Signals: สั่ง reload config, shutdown, status
- Shared Memory / Files: แลกเปลี่ยนข้อมูลประสิทธิภาพสูง
Best Practices สำหรับ Security Daemon
- รันด้วยสิทธิ์ต่ำสุด (Least Privilege) - ไม่ใช่ root
- ใช้ Capabilities แทน root (Linux Capabilities)
- Chroot/Jail/Container isolation
- Audit logging ทุกการกระทำสำคัญ
- Auto-restart ด้วย systemd (Restart=on-failure)
- Health checks และ metrics endpoint (Prometheus)
- Code signing และ integrity verification
ตัวอย่าง Daemon ความปลอดภัยยอดนิยม
| Daemon | หน้าที่ |
|---|---|
| sshd | SSH Remote Access |
| firewalld/ufw | Host Firewall |
| fail2ban | Brute-force Protection |
| auditd | Security Auditing |
| ossec/wazuh-agent | HIDS/EDR Agent |
| chronyd/ntpd | Time Sync (สำคัญสำหรับ Kerberos, Logs) |