ข้ามไปยังเนื้อหาหลัก

เซิร์ฟเวอร์เฉพาะ: เคล็ดลับความปลอดภัย Linux

คู่มือนี้ถูกสร้างขึ้นด้วยผลิตภัณฑ์ดังต่อไปนี้:

(รายละเอียดอาจแตกต่างกันไปตามผลิตภัณฑ์จากผู้ให้บริการต่างๆ แต่แนวคิดหลักยังคงเหมือนเดิม)

บทนำ

คู่มือนี้มีเคล็ดลับและคำแนะนำเกี่ยวกับวิธีทำให้เซิร์ฟเวอร์ Linux ของคุณปลอดภัยมากขึ้น โดยเฉพาะอย่างยิ่งเมื่อเซิร์ฟเวอร์ต้องเข้าถึงจากภายนอก การป้องกันพื้นฐานจากการเข้าถึงที่ไม่พึงประสงค์จึงเป็นสิ่งที่แนะนำอย่างยิ่งและไม่ควรมองข้าม

ข้อมูล

โปรดทราบว่าคำแนะนำเหล่านี้ไม่ใช่ข้อมูลครบถ้วน และข้อมูลเชิงลึกเพิ่มเติมสามารถหาได้ในส่วนอื่น ๆ ของเอกสาร ZAP (เช่น 2FA (SSH))

เคล็ดลับ

วิธีที่ง่ายที่สุดในการปกป้องเซิร์ฟเวอร์ของคุณเหมือนกันเสมอ ไม่ว่าจะเป็นเซิร์ฟเวอร์ประเภทใด: ใช้รหัสผ่านที่ปลอดภัย อัปเดตบริการของคุณอย่างสม่ำเสมอ และโดยทั่วไปให้ระวังว่าคุณจะติดตั้งบริการอะไรและทำตามคู่มือไหน

การรักษาความปลอดภัย SSH

SSH (Secure Shell) คือบริการที่ช่วยให้คุณเข้าถึงคอนโซลเซิร์ฟเวอร์จากระยะไกลเพื่อรันคำสั่งบนเซิร์ฟเวอร์ ดูวิธีตั้งค่า SSH บนเซิร์ฟเวอร์ของคุณได้ที่: การเข้าถึงเบื้องต้น (SSH)

โดยค่าเริ่มต้น SSH จะใช้การล็อกอินด้วยรหัสผ่าน แต่มีข้อเสียใหญ่คือการพิสูจน์ตัวตนสามารถถูกเจาะผ่านการโจมตีแบบ brute force ได้ง่าย โดยเฉพาะถ้าคุณใช้รหัสผ่านที่ง่ายเกินไปสำหรับการล็อกอิน SSH ดังนั้นถ้าคุณเลือกใช้วิธีรหัสผ่าน โปรดใช้รหัสผ่านที่ ปลอดภัย

เพื่อปกป้องเซิร์ฟเวอร์ของคุณจากการเข้าถึง SSH ที่ไม่พึงประสงค์มากขึ้น คุณควรเปิดใช้งานการพิสูจน์ตัวตนผ่าน SSH keys เท่านั้น และปิดการล็อกอินด้วยรหัสผ่าน ดูคู่มือ SSH Key ที่อธิบายวิธีสร้างและเพิ่ม SSH keys

การตั้งค่าพอร์ตของบริการของคุณ

บริการพอร์ต
SSH22
FTP21
Mail25
DNS53
HTTP80
HTTPS443

บริการอย่าง SSH หรือ FTP จะใช้พอร์ตเดียวกันโดยค่าเริ่มต้น (บางส่วนแสดงในตารางด้านบน) หากผู้ไม่หวังดีภายนอกต้องการโจมตี brute force บริการ SSH ของคุณ พวกเขาต้องรู้ก่อนว่าพอร์ตไหนใช้สำหรับ SSH ถ้าคุณไม่เปลี่ยนพอร์ตเหล่านี้ พอร์ต 22 และ 21 จะเป็นเป้าหมายหลักสำหรับการรันคำสั่งบนเซิร์ฟเวอร์หรือเข้าถึงไฟล์ผ่าน FTP

เพื่อป้องกันสิ่งนี้ เราแนะนำให้ตั้งค่าพอร์ตของบริการมาตรฐานเป็นพอร์ตที่กำหนดเอง ในส่วนถัดไปของคู่มือนี้คุณจะได้เรียนรู้วิธีทำ

อันตราย

พอร์ตที่คุณเลือกต้องอยู่ระหว่าง 1024 ถึง 65536 และไม่ควรเป็นพอร์ตที่ถูกใช้งานอยู่แล้ว!

คุณสามารถใช้คำสั่ง cat /etc/services เพื่อแสดงพอร์ตมาตรฐานบางส่วน เพื่อป้องกันการเลือกพอร์ตที่ถูกใช้งานแล้ว

พอร์ต SSH

เพื่อเปลี่ยนพอร์ต SSH คุณต้องแก้ไขไฟล์คอนฟิก ซึ่งโดยปกติจะอยู่ที่ /etc/ssh/sshd_config แต่ถ้าไม่เจอที่นั่น ให้ใช้คำสั่งนี้ค้นหา

find / -name "sshd_config" 2>/dev/null

เปิดไฟล์ด้วย nano (ในฐานะ root หรือใช้ sudo)

sudo nano /etc/ssh/sshd_config

เพิ่มพอร์ตที่ต้องการหลังคำว่า Port ถ้า Port ถูกคอมเมนต์ไว้ (เช่น #Port 22) ให้ลบ "#" ออกแล้วแทนที่ 22 ด้วยพอร์ตที่คุณต้องการ จากนั้นบันทึกไฟล์ (ใน Nano กด Ctrl + o) และปิดไฟล์ (Ctrl + x)

Port sshd

ตอนนี้ต้องรีสตาร์ทบริการ SSH เพื่อให้การเปลี่ยนแปลงมีผล

# ตัวอย่างบน Ubuntu/Debian/CentOS
sudo systemctl restart sshd

พอร์ต FTP

ถ้าคุณติดตั้งบริการ FTP เช่น proFTPd คุณก็สามารถเปลี่ยนพอร์ตได้ง่าย ๆ โดยแก้ไขไฟล์คอนฟิก ขั้นตอนจะคล้ายกับ SSH

ค้นหาไฟล์คอนฟิก proftpd.conf

find / -name "proftpd.conf" 2>/dev/null

ไฟล์นี้โดยปกติจะอยู่ที่ /etc/proftpd.conf (CentOS) หรือ /etc/proftpd/proftpd.conf (Ubuntu, Debian)
เปิดไฟล์ด้วย nano แล้วลบ "#" หน้า port ออก และใส่พอร์ตที่ต้องการ โปรดระวังไม่ใส่พอร์ตที่ไม่ถูกต้องตามคำแนะนำด้านบน

เคล็ดลับ

ใช้ Ctrl + W เพื่อค้นหาใน nano

nano /etc/proftpd/proftpd.conf

Port proftpd

การใช้ไฟร์วอลล์

หลักการของการเข้าถึงเซิร์ฟเวอร์จากภายนอกคือ ต้องเปิดพอร์ตเพื่อให้เซิร์ฟเวอร์เข้าถึงได้ สำหรับ SSH โดย ค่าเริ่มต้น คือพอร์ต 22/TCP (ดูวิธีเปลี่ยนพอร์ตด้านบน)

ปัญหาคือพอร์ตนี้จะเปิดให้ทุกคนเข้าถึงได้ ไม่ว่าจะเป็นใคร อยู่ที่ไหน หรือมีเจตนาอะไร นี่คือช่องโหว่ด้านความปลอดภัยอย่างมาก เพราะผู้ไม่หวังดีอาจโจมตีด้วยการส่งคำขอล็อกอินจำนวนมากเพื่อหาคำผ่านที่ถูกต้อง (ถ้าคุณยังเปิดล็อกอินด้วยรหัสผ่าน) หรือพยายามทำให้เครือข่ายเซิร์ฟเวอร์ล่มด้วยการโจมตีแบบ flooding (เช่น DDoS) ซึ่งเกิดขึ้นบ่อย

เพื่อบรรเทาปัญหาเหล่านี้ คุณสามารถตั้งกฎไฟร์วอลล์เพื่อจำกัดการเข้าถึงพอร์ตที่เปิดอยู่

มีวิธีหลัก ๆ สองแบบให้เลือกใช้:

  • IPTables: ไฟร์วอลล์ Linux แบบดั้งเดิม มีตัวเลือกเยอะ แต่ใช้งานซับซ้อนกว่า
  • UFW: อินเทอร์เฟซที่ง่ายกว่า IPTables สำหรับใช้งานคำสั่งพื้นฐาน แต่มีข้อจำกัดมากกว่า

สุดท้ายแล้วขึ้นอยู่กับคุณว่าจะเลือกใช้วิธีไหน ขึ้นกับการใช้งาน บางครั้งคุณอาจต้องการความยืดหยุ่นของ IPTables แต่บางครั้ง UFW ก็เพียงพอแล้ว (เช่น แค่เปิด/ปิดพอร์ต ซึ่งยังดีกว่าไม่ทำอะไรเลย!)

IPTables

ในส่วนนี้ คุณจะใช้ IPTables สร้างกฎจำกัดจำนวนการเชื่อมต่อที่เป็นไปได้ คำอธิบายคำสั่งแต่ละบรรทัดอยู่ใต้โค้ดบล็อก

โปรดทราบว่ากฎนี้จะทำงานเฉพาะกับ พอร์ต 22 (ค่าหลัง --dport) และคำสั่งสำหรับบริการอื่นต้องปรับเปลี่ยนตาม

บันทึก

คำสั่งต่อไปนี้อาจไม่ทำงานกับทุกดิสโทร Linux แต่จะใช้ได้กับดิสโทรยอดนิยมส่วนใหญ่

ล็อกอินเข้าเซิร์ฟเวอร์ Linux ของคุณก่อน ถ้าต้องการความช่วยเหลือดูคู่มือ การเข้าถึงเบื้องต้น (SSH) จากนั้นรันคำสั่งตามลำดับนี้

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 --connlimit-mask 32 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1 --hitcount 2 -j DROP
  1. กฎแรกจะบล็อกแพ็กเก็ตถ้ามีการเชื่อมต่อมากกว่า 2 ครั้งในสถานะ TIME_WAIT ไปยังพอร์ต 22 จากที่อยู่ IP เดียวกัน
  2. กฎที่สองจะเพิ่มที่อยู่ IP ของการเชื่อมต่อใหม่ลงในรายการ recent
  3. กฎที่สามจะบล็อกการเชื่อมต่อใหม่จาก IP ที่พยายามเชื่อมต่อเกิน 2 ครั้งใน 1 วินาทีที่ผ่านมา

UFW

อย่างที่บอกไป UFW คืออินเทอร์เฟซที่ง่ายกว่า IPTables ขั้นแรกต้องติดตั้ง UFW เพราะไม่ได้ติดตั้งมาในทุกดิสโทร Linux คุณควรรันคำสั่งในฐานะ root หรือใช้ sudo

ล็อกอินเข้าเซิร์ฟเวอร์ Linux ของคุณก่อน ถ้าต้องการความช่วยเหลือดูคู่มือ การเข้าถึงเบื้องต้น (SSH) คำสั่งตัวอย่างนี้ใช้ Debian และ Ubuntu แต่ควรใช้ได้กับดิสโทรอื่นด้วย

อัปเดต apt และอัปเกรดแพ็กเกจ

sudo apt update && sudo apt upgrade -y

ติดตั้ง UFW ผ่าน apt

sudo apt install ufw -y

ตรวจสอบการติดตั้งด้วยคำสั่งนี้

sudo ufw status
> Firewall not loaded

เพื่อไม่ให้ล็อกตัวเองออกจากเซิร์ฟเวอร์ ต้องเปิดบริการ ssh ก่อนเปิดไฟร์วอลล์

คำเตือน

ถ้าคุณเปลี่ยนพอร์ต SSH แล้ว ให้ใช้พอร์ตใหม่แทน 22 ในคำสั่งด้านล่าง

เปิดบริการ ssh ด้วยคำสั่งนี้

sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status

ผลลัพธ์ที่สำเร็จควรเป็นแบบนี้

Status: active

To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)

จากนั้นรันคำสั่งนี้เพื่อจำกัดการเชื่อมต่อที่พอร์ต 22 เป็น 6 ครั้งต่อนาที

ufw limit 22/tcp
บันทึก

UFW จำกัดการเชื่อมต่อได้แค่ 6 ครั้งต่อนาทีเท่านั้น ตัวจำกัดของ UFW ค่อนข้างง่ายและอาจไม่เหมาะกับทุกสถานการณ์ สำหรับการตั้งค่าที่ละเอียดและยืดหยุ่นกว่า แนะนำใช้ IPTables โดยตรง

เคล็ดลับ

ไฟร์วอลล์ (ไม่ว่าจะ IPTables หรือ UFW) จะนับจำนวนการเชื่อมต่อและบล็อกตามนั้นเท่านั้น แต่ Fail2Ban สามารถตรวจสอบไฟล์ล็อกเพื่อหาความผิดปกติได้ ส่วนถัดไปจะอธิบายวิธีติดตั้งและเปิดใช้งาน Fail2Ban

มาตรการป้องกันเพิ่มเติมด้วย Fail2Ban

Fail2Ban คือบริการที่บล็อกที่อยู่ IP ที่พยายามเชื่อมต่อเซิร์ฟเวอร์ด้วยเจตนาไม่ดี Fail2Ban จะตรวจสอบไฟล์ล็อกเพื่อหาความผิดปกติและช่วยปกป้องระบบของคุณได้อย่างมีประสิทธิภาพและง่ายดาย

หลังติดตั้ง Fail2Ban จะมาพร้อมกับการตั้งค่าล่วงหน้าสำหรับบริการที่ใช้บ่อย เช่น:

  • apache
  • lighttpd
  • sshd
  • qmail
  • postfix
  • Courier Mail Server คุณสามารถเพิ่มบริการอื่น ๆ ได้ง่าย ๆ โดยใช้ regular expression (RegEx) และระบุไฟล์ล็อกที่ต้องการ

ตัวอย่างเช่น ดูบรรทัดใน /var/log/auth.log ซึ่งบันทึกการพยายามล็อกอิน SSH ทั้งสำเร็จและล้มเหลว /var/log/auth.log

คุณจะเห็นบรรทัดนี้:

Dec 2 12:59:19 vps-zap515723-2 sshd[364126]: Failed password for root from 92.117.xxx.xxx port 52504 ssh2

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

การติดตั้ง Fail2Ban

ล็อกอินเข้าเซิร์ฟเวอร์ Linux ของคุณก่อน ถ้าต้องการความช่วยเหลือดูคู่มือ การเข้าถึงเบื้องต้น (SSH) รันคำสั่งในฐานะ root หรือใช้ sudo

sudo apt update && sudo apt upgrade -y
sudo apt install fail2ban

หลังติดตั้ง Fail2Ban ตรวจสอบสถานะด้วย systemctl: (ออกจาก systemctl ด้วย Ctrl+C)

systemctl status fail2ban.service
* fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor pres>
Active: active (running) since Sat 2023-12-02 13:10:33 UTC; 24s ago
Docs: man:fail2ban(1)
Process: 23988 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, statu>
Main PID: 23989 (fail2ban-server)
CPU: 409ms
CGroup: /system.slice/fail2ban.service
`-23989 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Dec 02 13:10:33 vps-zap515723-1 systemd[1]: Starting Fail2Ban Service...
Dec 02 13:10:33 vps-zap515723-1 systemd[1]: Started Fail2Ban Service.
Dec 02 13:10:34 vps-zap515723-1 fail2ban-server[23989]: Server ready

การตั้งค่า Fail2Ban

ตอนนี้ Fail2Ban ติดตั้งแล้ว แต่ยังไม่เปิดใช้งานหรือกำหนดค่า ดูใน /etc/fail2ban จะเห็นไฟล์เหล่านี้

action.d fail2ban.d jail.conf paths-arch.conf paths-debian.conf
fail2ban.conf filter.d jail.d paths-common.conf paths-opensuse.conf

เพื่อสร้าง "jail" ที่ใช้งานได้ ให้สร้างไฟล์ jail.local โดยคัดลอกเนื้อหาจาก jail.conf แล้วเปิดแก้ไข

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

ตอนนี้คุณสามารถตั้งค่าทุกอย่างในไฟล์ jail.local รวมถึงบริการที่จะตรวจสอบ
ให้ดูเฉพาะส่วนหลัง [Default] ซึ่งเป็นการตั้งค่าทั่วไป

เลื่อนลงมาจนเจอส่วนนี้และปรับตามตัวอย่างนี้:

คุณสมบัติคำอธิบายค่า
ignoreipที่อยู่ IP ที่ไม่ควรถูกบล็อก127.0.0.1/8
ignorecommandไม่เกี่ยวข้อง
bantimeระยะเวลาที่ IP จะถูกบล็อก1h
findtimeช่วงเวลาที่นับการล็อกอินล้มเหลว10m
maxretryจำนวนครั้งที่ล้มเหลวก่อนจะถูกบล็อก5
# สามารถกำหนดโดยใช้ช่องว่าง (และ/หรือ คอมม่า) คั่น
#ignoreip = 127.0.0.1/8 ::1

# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" คือจำนวนวินาทีที่โฮสต์จะถูกบล็อก
bantime = 1h

# โฮสต์จะถูกบล็อกถ้ามี "maxretry" ครั้งในช่วง "findtime"
# วินาทีที่ผ่านมา
findtime = 10m

# "maxretry" คือจำนวนครั้งที่ล้มเหลวก่อนถูกบล็อก
maxretry = 5

ตั้งค่าทั่วไปเสร็จแล้ว เพื่อเฝ้าดูบริการ SSH เลื่อนลงไปที่แท็ก [sshd] ถ้าคุณเปลี่ยนพอร์ต ให้ใส่พอร์ตใหม่ใน port

แท็ก [sshd] จะมีลักษณะดังนี้:

[sshd]

enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 4
เคล็ดลับ

คุณสามารถตั้งค่ารายบริการได้ เช่น maxretry ที่นี่ตั้งต่ำกว่าค่าทั่วไป แม้ว่าคุณตั้งค่าทั่วไปไว้แล้ว แต่คุณยังสามารถปรับแต่ละบริการได้อีก ถ้าไม่ตั้งค่ารายบริการ จะใช้ค่าทั่วไปแทน

สุดท้าย รีสตาร์ท Fail2Ban เพื่อเริ่มตรวจสอบ

sudo systemctl restart fail2ban.service

ตรวจสอบการทำงานของ Fail2Ban

ถ้าคุณมี VPN หรือเซิร์ฟเวอร์สำรอง คุณสามารถลองบล็อกตัวเองด้วย Fail2Ban เพื่อทดสอบว่าใช้งานได้จริงหรือไม่ ด้วย VPN หรือฮอตสปอตมือถือ คุณจะได้ IP ใหม่ที่ช่วยให้ทดสอบ Fail2Ban ได้

อันตราย

อย่าทดสอบบนเครือข่ายปกติของคุณ เพราะ IP ของคุณอาจถูกบล็อกและคุณจะ ล็อกเอาต์ออกจากเซิร์ฟเวอร์

ลองเชื่อมต่อ SSH ไปยังเซิร์ฟเวอร์ (ด้วย IP ใหม่!) และใส่รหัสผ่านผิดหลายครั้ง ผลลัพธ์ควรเป็นแบบนี้:

root@185.223.29.xxx's password:
Permission denied, please try again.
root@185.223.29.xxx's password:
Permission denied, please try again.
root@185.223.29.xxx's password:
root@185.223.29.xxx: Permission denied (publickey,password).
root@vps-zap515723-2:/var/log# ssh root@185.223.29.179
root@185.223.29.xxx's password:
Permission denied, please try again.
root@185.223.29.xxx's password:
Permission denied, please try again.
root@185.223.29.xxx's password:
^C
root@vps-zap515723-2:/var/log# ssh root@185.223.29.xxx
ssh: connect to host 185.223.29.xxx port 22: Connection refused

จะเห็นว่าการเชื่อมต่อถูกปฏิเสธ (Connection refused แทนที่จะเป็น Permission denied)

แสดงสถานะ Fail2Ban ดูว่ามี IP ถูกบล็อกหรือไม่

fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 4
| |- Total failed: 8
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: xxx

ถ้าต้องการปลดบล็อก IP ใช้คำสั่งนี้: fail2ban-client set sshd unbanip {your IP}

ข้อมูล

ถ้ามีการบล็อก IP จำนวนมากผิดปกติ แนะนำให้เพิ่มเวลาบล็อกทุกครั้งที่มีการพยายามล็อกอินผิดเพื่อลดจำนวนครั้งที่พยายามได้

[sshd]

enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 4

bantime = 1h
# เวลาบล็อกจะเพิ่มขึ้นทุกครั้งที่บล็อก IP นี้
bantime.increment = true
# ค่าปรับสเกล 24 ชั่วโมง (1h,24h,48h,3d,4d....)
bantime.factor = 24
# เวลาบล็อกสูงสุด = 5 สัปดาห์
bantime.maxtime = 5w

การรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ด้วย Cloudflare

หลายคนใช้ Cloudflare เป็นผู้จัดการ DNS ของโดเมน Cloudflare ไม่เพียงแต่มีเครือข่ายที่ใหญ่ที่สุดในโลก ช่วยลดเวลาโหลดหน้าเว็บ ลดความหน่วง และเพิ่มประสบการณ์โดยรวม แต่ยังปกป้องเว็บไซต์ของคุณจากการโจมตี DoS/DDoS รวมถึงการโจมตีแบบ flooding และรูปแบบใหม่ ๆ ที่เกิดขึ้นทุกวัน

ในคู่มือนี้ คุณจะได้เรียนรู้วิธีปกป้องเว็บเซิร์ฟเวอร์จากการโจมตี

สมมติว่าโดเมนของคุณถูกจัดการโดย Cloudflare แล้ว ถ้ายังไม่ใช่ คุณสามารถทำตาม คู่มือของพวกเขา เพื่อย้ายโดเมนของคุณ ไปที่แท็บ DNS Records ในแดชบอร์ดของ Cloudflare และตรวจสอบให้แน่ใจว่าระเบียนของคุณที่ชี้ไปยังเว็บเซิร์ฟเวอร์มีไอคอนเมฆสีส้มและสถานะ "Proxied"

ตอนนี้ทราฟฟิกทั้งหมดที่ผ่านโดเมนของคุณจะผ่าน Cloudflare ก่อนถึงเซิร์ฟเวอร์ของคุณ ซึ่งเป็นทราฟฟิกที่ถูกต้องตามกฎหมาย
แต่เซิร์ฟเวอร์ของคุณยังเข้าถึงได้จากภายนอก Cloudflare อยู่ ดังนั้นคุณต้องจำกัดการเข้าถึงพอร์ต 80 และ 443 ของโปรโตคอล TCP บนเซิร์ฟเวอร์ Linux ของคุณ และอนุญาตการเข้าถึงเฉพาะถ้ามาจากทราฟฟิก Cloudflare ที่ถูกต้องเท่านั้น

ทำได้โดยจำกัดการเข้าถึงด้วยกฎไฟร์วอลล์โดยใช้ รายการ IPv4 สาธารณะของ Cloudflare และ รายการ IPv6 สาธารณะของ Cloudflare

หรือจะประหยัดเวลาก็ใช้เครื่องมืออย่าง Cloudflare-ufw เพื่อเพิ่มกฎไฟร์วอลล์เหล่านี้แบบแมส
ตรวจสอบให้แน่ใจว่าไม่มีการตั้งกฎแยกที่อนุญาตให้เข้าถึงเว็บเซิร์ฟเวอร์โดยไม่จำกัด นอกจากกฎที่คุณเพิ่งเพิ่ม มิฉะนั้นกฎจะไม่ทำงาน

สรุป - เซิร์ฟเวอร์ของคุณปลอดภัยขึ้นมากแล้ว!

คู่มือนี้แสดงฟังก์ชันพื้นฐานและขั้นสูงสำหรับการรักษาความปลอดภัยเซิร์ฟเวอร์ Linux ของคุณ หากคุณทำตามคำแนะนำทั้งหมดที่เหมาะกับระบบของคุณ เซิร์ฟเวอร์ของคุณก็ปลอดภัยขึ้นมากแล้ว - ยินดีด้วย!

ยังมีมาตรการเพิ่มเติมที่คุณสามารถทำได้:

  • 2FA (SSH)
  • เพิ่มการตั้งค่าเพิ่มเติมใน Fail2Ban
  • ตั้งค่าการแจ้งเตือนทางอีเมลใน Fail2Ban
  • และอื่น ๆ อีกมากมาย...