กำลังโหลด...
การตั้งค่า Firewall สำหรับ Web Server Kloxo บน AlmaLinux 9
บทความและข่าวสาร

การตั้งค่า Firewall สำหรับ Web Server Kloxo บน AlmaLinux 9

Chalothorn Kosakul 9 กันยายน 2569 4 ครั้ง

การตั้งค่า Firewall สำหรับ Web Server Kloxo บน AlmaLinux 9

การตั้งค่า Firewall เป็นขั้นตอนสำคัญหลังจากติดตั้ง Web Server เพื่อควบคุมการเชื่อมต่อจากภายนอก และลดความเสี่ยงจากการเปิด Port ที่ไม่จำเป็น

บทความนี้รวบรวม Port ที่ใช้งานทั่วไปสำหรับ Server ที่ติดตั้ง Kloxo บน AlmaLinux 9 ครอบคลุม Web Server, SSH, FTP, DNS, Mail Server และ Kloxo Control Panel

Port ที่ใช้งาน

ServiceProtocolPortรายละเอียด
SSHTCP22Remote Server Administration
HTTPTCP80Web Server
HTTPSTCP443Secure Web Server
FTP DataTCP20FTP Data
FTPTCP21FTP Connection
Passive FTPTCP30000-50000FTP Passive Mode
DNSTCP / UDP53DNS Server
SMTPTCP25รับ-ส่งอีเมลระหว่าง Mail Server
SMTPSTCP465SMTP ผ่าน SSL/TLS
SubmissionTCP587ส่งอีเมลจาก Mail Client
POP3TCP110รับอีเมลผ่าน POP3
POP3STCP995POP3 ผ่าน SSL/TLS
IMAPTCP143รับอีเมลผ่าน IMAP
IMAPSTCP993IMAP ผ่าน SSL/TLS
Kloxo PanelTCP7777Kloxo Control Panel
Kloxo SSLTCP7778Kloxo Control Panel ผ่าน SSL

1. เปิดใช้งาน Firewall

เปิดใช้งาน firewalld และกำหนดให้เริ่มทำงานอัตโนมัติเมื่อเปิด Server

systemctl enable --now firewalld
systemctl status firewalld

2. เปิด Port สำหรับ SSH

SSH ใช้สำหรับ Remote เข้ามาบริหารจัดการ Server โดยค่าเริ่มต้นใช้ Port 22

firewall-cmd --permanent --add-port=22/tcp

หรือสามารถใช้ Service ที่มีอยู่ใน firewalld ได้

firewall-cmd --permanent --add-service=ssh

3. เปิด Port สำหรับ Web Server

เปิด Port สำหรับ HTTP และ HTTPS

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

Port 80 ใช้สำหรับ HTTP ส่วน Port 443 ใช้สำหรับ HTTPS ซึ่งมีการเข้ารหัสข้อมูลด้วย SSL/TLS

4. เปิด Port สำหรับ FTP

เปิด FTP Port 20 และ 21

firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp

สำหรับ Passive FTP สามารถกำหนดช่วง Port เพิ่มเติม เช่น

firewall-cmd --permanent --add-port=30000-50000/tcp

ข้อควรระวัง: ช่วง Passive Port ที่กำหนดใน FTP Server เช่น Pure-FTPd ต้องตรงกับช่วงที่เปิดใน Firewall ไม่เช่นนั้นอาจเกิดอาการ Login FTP ได้ แต่ไม่สามารถแสดงรายการไฟล์ Upload หรือ Download ได้

5. เปิด Port สำหรับ DNS Server

หาก Server ทำหน้าที่เป็น DNS Server หรือ Nameserver ให้เปิด Port 53 ทั้ง TCP และ UDP

firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp

6. เปิด Port สำหรับ Mail Server

สำหรับ Server ที่ให้บริการรับและส่งอีเมล ควรเปิด Port ที่เกี่ยวข้องกับ SMTP, POP3 และ IMAP

SMTP

firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=465/tcp
firewall-cmd --permanent --add-port=587/tcp
  • Port 25 ใช้สำหรับการรับ-ส่งอีเมลระหว่าง Mail Server
  • Port 465 ใช้ SMTP ผ่าน SSL/TLS
  • Port 587 ใช้สำหรับ Mail Client ส่งอีเมลผ่าน Submission Service

POP3

firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=995/tcp

IMAP

firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --permanent --add-port=993/tcp

สำหรับการใช้งานจริงควรเลือกใช้การเชื่อมต่อที่มีการเข้ารหัส เช่น IMAPS Port 993 และ POP3S Port 995

7. เปิด Port สำหรับ Kloxo Control Panel

firewall-cmd --permanent --add-port=7777/tcp
firewall-cmd --permanent --add-port=7778/tcp

Control Panel เป็นส่วนที่มีสิทธิ์ในการจัดการ Server สูง จึงควรใช้การเชื่อมต่อแบบ HTTPS และตั้งรหัสผ่านที่มีความปลอดภัย

8. Reload Firewall

หลังจากกำหนด Port ทั้งหมดแล้ว ให้ Reload Firewall เพื่อใช้งานค่าที่ตั้งไว้

firewall-cmd --reload

ตรวจสอบ Port ที่เปิดอยู่

firewall-cmd --list-ports

หรือดูรายละเอียดทั้งหมด

firewall-cmd --list-all

คำสั่งรวมสำหรับ Copy / Paste

หากต้องการตั้งค่า Port ทั้งหมดในครั้งเดียว สามารถใช้ชุดคำสั่งต่อไปนี้ได้

# ==========================================
# Firewall สำหรับ Web Server + Kloxo
# AlmaLinux / Rocky Linux
# ==========================================

# SSH
firewall-cmd --permanent --add-port=22/tcp

# HTTP / HTTPS
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

# FTP
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-50000/tcp

# DNS
firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp

# SMTP
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=465/tcp
firewall-cmd --permanent --add-port=587/tcp

# POP3
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=995/tcp

# IMAP
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --permanent --add-port=993/tcp

# Kloxo
firewall-cmd --permanent --add-port=7777/tcp
firewall-cmd --permanent --add-port=7778/tcp

# Apply
firewall-cmd --reload

# Check
firewall-cmd --list-all

9. ตรวจสอบ Service ที่กำลังใช้งาน Port

การเปิด Port ใน Firewall ไม่ได้หมายความว่า Service นั้นกำลังทำงานอยู่ จึงควรตรวจสอบว่า Server มี Process ที่ Listen อยู่บน Port ที่ต้องการจริง

ss -tulpn

หากต้องการตรวจสอบเฉพาะ Port ที่เกี่ยวข้องกับ Web Server สามารถใช้คำสั่ง

ss -tulpn | grep -E ':(20|21|22|25|53|80|110|143|443|465|587|993|995|7777|7778)\b'

ตัวอย่างเช่น หาก Firewall เปิด Port 80 แล้ว แต่ Apache, Nginx หรือ Web Server ตัวอื่นไม่ได้ Listen อยู่ที่ Port 80 เว็บไซต์ก็ยังไม่สามารถเข้าใช้งานได้

10. ตรวจสอบสถานะ Firewall

สามารถตรวจสอบว่า firewalld กำลังทำงานอยู่หรือไม่ด้วยคำสั่ง

firewall-cmd --state

ถ้าทำงานปกติควรแสดงผล

running

สรุป Port สำหรับ Web Server

SSH
22/TCP

WEB
80/TCP
443/TCP

FTP
20/TCP
21/TCP
30000-50000/TCP

DNS
53/TCP
53/UDP

SMTP
25/TCP
465/TCP
587/TCP

POP3
110/TCP
995/TCP

IMAP
143/TCP
993/TCP

KLOXO
7777/TCP
7778/TCP

ข้อควรระวังด้านความปลอดภัย

ไม่ควรเปิด Port ทั้งหมดตั้งแต่ 1-65535 หากไม่มีความจำเป็น เพราะทุก Port ที่เปิดเพิ่ม คือช่องทางที่ระบบภายนอกสามารถเข้าถึง Server ได้เพิ่มขึ้น

นอกจากนี้ไม่ควรเปิด MySQL หรือ MariaDB Port 3306 ออกสู่ Internet โดยตรง หากฐานข้อมูลใช้งานเฉพาะภายใน Web Server

แนวทางที่เหมาะสมคือ เปิดเฉพาะ Port ของ Service ที่ใช้งานจริง และปิด Service ที่ไม่ได้ใช้งาน เพื่อลดพื้นผิวการโจมตีและเพิ่มความปลอดภัยให้กับ Server