ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

ติดตั้งและใช้งาน CSF Firewall บน DirectAdmin
Home ติดตั้งและใช้งาน CSF Firewall บน DirectAdmin

ติดตั้งและใช้งาน CSF Firewall บน DirectAdmin

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

CSF เป็น Firewall ที่ใช้กันแพร่หลายในวงการโฮสติ้ง จุดเด่นคือมี Login Failure Daemon ที่เฝ้าดู Log ของบริการต่าง ๆ แล้วบล็อก IP ที่พยายามเดารหัสผ่านโดยอัตโนมัติ

สิ่งที่ต้องเตรียม

  • DirectAdmin บน Linux และสิทธิ์ root
  • ช่องทางสำรองเข้าเซิร์ฟเวอร์ เตรียมไว้ก่อนเสมอ
  • IP ของออฟฟิศที่ต้องการอนุญาตถาวร

ขั้นตอนที่ 1: ติดตั้ง

cd /usr/local/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

# ตรวจว่าเคอร์เนลรองรับครบ
perl /usr/local/csf/bin/csftest.pl

ผลควรแสดง RESULT: csf should function on this server หากมีโมดูลที่ขาด ให้ติดต่อผู้ให้บริการเซิร์ฟเวอร์

ติดตั้งส่วนเชื่อมต่อกับ DirectAdmin เพื่อจัดการผ่านหน้าเว็บได้

cd /usr/local/directadmin/plugins
wget https://download.configserver.com/csfinstaller.tgz
tar -xzf csfinstaller.tgz
sh csfinstaller.sh

ขั้นตอนที่ 2: อนุญาต IP ของตัวเองก่อนทำอย่างอื่น

ขั้นตอนนี้ต้องทำก่อนเสมอ เพื่อไม่ให้ถูกล็อกออกระหว่างตั้งค่า

# ดู IP ปัจจุบันของคุณ
who am i
w

# เพิ่มเข้ารายการอนุญาตถาวร
csf -a 203.0.113.55 'IP ออฟฟิศ'
csf -a 203.0.113.0/24 'วงออฟฟิศ'

# ตรวจรายการ
csf -l | grep ACCEPT | head

ขั้นตอนที่ 3: ตั้งพอร์ตที่เปิด

nano /etc/csf/csf.conf
# พอร์ตขาเข้า TCP
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222,3306"

# พอร์ตขาออก TCP
TCP_OUT = "20,21,22,25,43,53,80,110,113,443,587,993,995,2222"

# UDP
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"

พอร์ตสำคัญของ DirectAdmin

  • 2222 หน้าจัดการ DirectAdmin ขาดไม่ได้
  • 22 SSH
  • 80, 443 เว็บไซต์
  • 25, 465, 587 ส่งอีเมล
  • 110, 143, 993, 995 รับอีเมล
  • 20, 21 FTP พร้อมช่วง Passive ที่ตั้งใน ProFTPD

พิจารณาลบ 3306 ออกหากไม่ได้ให้เชื่อมต่อฐานข้อมูลจากภายนอก และจำกัด 2222 ให้เข้าได้เฉพาะจากออฟฟิศ

ขั้นตอนที่ 4: ทดสอบก่อนเปิดใช้จริง

CSF มีโหมดทดสอบที่ล้างกฎอัตโนมัติหลังเวลาที่กำหนด ซึ่งช่วยชีวิตเมื่อตั้งผิด

nano /etc/csf/csf.conf
TESTING = "1"
TESTING_INTERVAL = "5"
csf -r

เปิด Terminal อีกหน้าต่างแล้วทดสอบการเชื่อมต่อ

ssh [email protected]
curl -skI https://203.0.113.10:2222 | head -1

เมื่อมั่นใจแล้วจึงปิดโหมดทดสอบ

sed -i 's/^TESTING = "1"/TESTING = "0"/' /etc/csf/csf.conf
csf -r
csf -e

ขั้นตอนที่ 5: เปิด Login Failure Daemon

นี่คือส่วนที่มีค่าที่สุดของ CSF ตั้งใน csf.conf

LF_DAEMON = "1"

# จำนวนครั้งที่ยอมให้ล้มเหลวก่อนบล็อก
LF_SSHD = "5"
LF_FTPD = "10"
LF_SMTPAUTH = "10"
LF_POP3D = "10"
LF_IMAPD = "10"
LF_DIRECTADMIN = "5"

# ระยะเวลาที่บล็อก เป็นวินาที ใช้ 3600 คือหนึ่งชั่วโมง
LF_TRIGGER_PERM = "3600"

# บล็อกถาวรเมื่อถูกบล็อกซ้ำหลายครั้ง
LF_PERMBLOCK = "1"
LF_PERMBLOCK_COUNT = "4"
LF_PERMBLOCK_INTERVAL = "86400"
LF_PERMBLOCK_ALERT = "0"
csf -r
systemctl status lfd

ขั้นตอนที่ 6: ตั้งค่าการแจ้งเตือน

ค่าเริ่มต้นของ CSF ส่งอีเมลมากเกินไปจนคนเลิกอ่าน ปรับให้เหลือเฉพาะที่สำคัญ

LF_ALERT_TO = "[email protected]"

# ปิดการแจ้งเตือนที่มาถี่เกินไป
LF_EMAIL_ALERT = "0"
LF_PERMBLOCK_ALERT = "0"
LF_NETBLOCK_ALERT = "0"

# เก็บไว้เฉพาะที่สำคัญจริง
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"
LF_CONSOLE_EMAIL_ALERT = "1"

การแจ้งเตือนที่มีความหมายคือการล็อกอิน root สำเร็จและการใช้ su ซึ่งควรเกิดจากทีมงานเท่านั้น

ขั้นตอนที่ 7: จัดการ IP ที่ถูกบล็อก

# ดูรายการที่ถูกบล็อกชั่วคราว
csf -t

# ดูรายการบล็อกถาวร
csf -d | head -20

# ค้นหาว่า IP หนึ่งถูกบล็อกหรือไม่ และเพราะอะไร
csf -g 203.0.113.99

# ปลดบล็อก
csf -dr 203.0.113.99   # ลบจากรายการปฏิเสธ
csf -tr 203.0.113.99   # ลบจากรายการชั่วคราว

# บล็อกด้วยมือ
csf -d 198.51.100.50 'สแกนพอร์ต'

ดู Log เพื่อเข้าใจว่าเกิดอะไรขึ้น

tail -50 /var/log/lfd.log
grep 'Blocked' /var/log/lfd.log | tail -20
grep '203.0.113.99' /var/log/lfd.log

ขั้นตอนที่ 8: กู้เมื่อถูกล็อกออก

เข้าผ่าน Console ของผู้ให้บริการแล้ว

# ปิด CSF ชั่วคราว
csf -x

# หรือล้างกฎทั้งหมด
csf -f

# เพิ่ม IP ตัวเองแล้วเปิดใหม่
csf -a IP_ของคุณ
csf -e

หากเข้า Console ไม่ได้เลย ให้ติดต่อผู้ให้บริการขอเข้าโหมดกู้ระบบ

ป้องกันล่วงหน้าด้วยการเพิ่ม IP ของผู้ดูแลทุกคนเข้า /etc/csf/csf.allow ตั้งแต่ต้น และเปิด TESTING ทุกครั้งที่จะแก้กฎสำคัญ

ปัญหาที่พบบ่อย

ลูกค้าบ่นว่าเข้า FTP ไม่ได้เป็นบางครั้ง

ช่วงพอร์ต Passive ไม่ได้เปิดใน CSF ตรวจช่วงที่ ProFTPD ใช้แล้วเปิดให้ตรงกัน

grep -i passiveports /etc/proftpd.conf

IP ของตัวเองถูกบล็อกบ่อย

เพิ่มเข้า csf.allow ถาวร และตรวจว่าไม่มีโปรแกรมที่พยายามเชื่อมต่อด้วยรหัสผ่านเก่าซ้ำ ๆ เช่น โปรแกรมอีเมลที่ยังจำรหัสเดิม

lfd กิน CPU มาก

เกิดจากไฟล์ Log ขนาดใหญ่ ตรวจว่า logrotate ทำงานปกติ และปิดการตรวจสอบที่ไม่จำเป็น เช่น LF_DIRWATCH บนเซิร์ฟเวอร์ที่มีไฟล์จำนวนมาก

อีเมลแจ้งเตือนท่วม

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

ต้องการเซิร์ฟเวอร์ DirectAdmin ที่ตั้งค่าความปลอดภัยมาให้แล้ว ติดต่อ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security