วิธีใช้งาน
- เลือกเทมเพลต เช่น เว็บเซิร์ฟเวอร์ (SSH, HTTP, HTTPS) หรือแก้ไขกฎโดยตรง
- ในแต่ละกฎ ระบุพอร์ต โปรโตคอล ที่อยู่ต้นทาง (เว้นว่างไว้หมายถึงทุกที่) และเลือกอนุญาตหรือบล็อก
- ตั้งพอร์ต SSH ของคุณ และเลือกว่าจะบล็อกทราฟฟิกขาเข้าอื่นทั้งหมดหรือไม่
- เลือกไฟร์วอลล์ของคุณ แล้วคัดลอกคำสั่งไปรันใน root shell บนเซิร์ฟเวอร์
คำอธิบายตัวเลือก
- พอร์ต
- พอร์ตเดียว (22) รายการ (80,443) หรือช่วง (8000-8100)
- ต้นทาง
- ที่อยู่หรือเครือข่าย IPv4 หรือ IPv6 เช่น 203.0.113.0/24 ต้นทางแบบ IPv6 จะไปอยู่ใน ip6tables
- บล็อกทราฟฟิกขาเข้าอื่นทั้งหมด
- ตั้งนโยบายเริ่มต้นของขาเข้าเป็นปฏิเสธ ทราฟฟิกขาออกยังคงได้รับอนุญาต
ตัวอย่างผลลัพธ์
สามกฎ โดย SSH ใช้พอร์ต 22 และนโยบายเริ่มต้นตั้งเป็น deny: อนุญาต SSH เฉพาะจาก 203.0.113.5 อนุญาตพอร์ต TCP 80 และ 443 จากทุกที่ และบล็อก 198.51.100.0/24 จากพอร์ต 25 กฎบล็อกถูกเขียนก่อน เพราะกฎแรกที่ตรงจะมีผล
# ufw
ufw default deny incoming
ufw default allow outgoing
ufw deny from 198.51.100.0/24 to any port 25 proto tcp
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw allow 80,443/tcp
ufw enable
# iptables
iptables -A INPUT -p tcp -s 198.51.100.0/24 --dport 25 -j DROP
iptables -A INPUT -p tcp -s 203.0.113.5 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -P INPUT DROP
สำหรับ firewalld พอร์ตที่เปิดให้ทุกคนใช้ --add-port ส่วนกฎที่มีต้นทางหรือการบล็อกใช้ rich rule เนื่องจากกฎ SSH เพียงข้อเดียวมีที่อยู่ต้นทาง คำสั่ง firewalld จึงลบ service ssh เริ่มต้นออกจากโซนด้วย หากไม่ทำขั้นตอนนี้ โซนจะยังให้ทุกคนเข้าพอร์ต 22 ได้
คำถามที่พบบ่อย
จะหลีกเลี่ยงการล็อกตัวเองออกได้อย่างไร
เก็บกฎที่อนุญาตพอร์ต SSH ของคุณไว้ และหากจำกัด SSH ให้เฉพาะบาง IP ให้ตรวจสอบ IP ปัจจุบันของคุณก่อน การเปิดเว็บคอนโซลของผู้ให้บริการคลาวด์ค้างไว้ช่วยให้คุณมีทางกลับเข้าไป
เปิดพอร์ตแล้วแต่ยังเชื่อมต่อไม่ได้ เพราะอะไร
เซิร์ฟเวอร์บนคลาวด์มักมี security group หรือไฟร์วอลล์เครือข่ายในคอนโซลของผู้ให้บริการด้วย ต้องเปิดพอร์ตที่นั่นเช่นกัน และตรวจสอบด้วยว่าบริการกำลังรับฟังพอร์ตนั้นอยู่ เช่นใช้ ss -tlnp
เซิร์ฟเวอร์ของฉันใช้ไฟร์วอลล์ตัวไหน
Ubuntu และ Debian มักใช้ ufw ส่วน RHEL, Rocky, AlmaLinux และ CentOS ใช้ firewalld ทั้งสองเป็นส่วนหน้าของไฟร์วอลล์ในเคอร์เนล จึงควรเลือกใช้อย่างใดอย่างหนึ่ง ไม่ควรปนกับคำสั่ง iptables ล้วน
ความเป็นส่วนตัว
เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา