Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

วิธีบล็อก IP Address ใน Linux ด้วย iptables

คู่มือนี้สอนวิธีบล็อก IP Address ที่โจมตี/พยายามแฮกเซิร์ฟเวอร์ Linux ด้วย iptables (Built-in Firewall)

บล็อก IP เดียว (Single IP)

# iptables -I INPUT -s 122.174.12.228 -j DROP
  • -I INPUT - Insert ที่ INPUT chain (ด้านบน = priority สูง)
  • -s 122.174.12.228 - Source IP ที่ต้องการบล็อก
  • -j DROP - Drop packet (ไม่ตอบกลับ ไม่ส่ง RST) - แนะนำมากกว่า REJECT

บล็อกหลาย IP ด้วย Script (Automated)

1. สร้างไฟล์รายการ IP: banned_IPs.cfg

122.174.12.228
129.122.10.23
111.154.84.130

2. สร้าง Script: banned_IPs.sh

#!/bin/bash
for i in $(cat banned_IPs.cfg); do
  iptables -I INPUT -i eth1 -s "$i" -j DROP
done

3. ให้สิทธิ์และรัน:

chmod +x banned_IPs.sh
./banned_IPs.sh

คำสั่ง iptables ที่เกี่ยวข้อง

บล็อกแบบเจาะจงกว่า

# บล็อกเฉพาะ Port 22 (SSH) จาก IP นี้
iptables -I INPUT -s 122.174.12.228 -p tcp --dport 22 -j DROP

# บล็อก Subnet (CIDR)
iptables -I INPUT -s 122.174.12.0/24 -j DROP

# บล็อก Outbound traffic ไป IP นี้
iptables -I OUTPUT -d 122.174.12.228 -j DROP

เครื่องมือช่วยจัดการ (แนะนำ)

  • fail2ban - อ่าน Log แล้วบล็อก IP อัตโนมัติ (SSH, HTTP, Mail)
  • ufw - Frontend ง่ายกว่า iptables (ufw deny from 1.2.3.4)
  • firewalld - Dynamic firewall (RHEL/Fedora default)
  • CrowdSec - Modern, Crowdsourced threat intelligence

Best Practices

  • ใช้ DROP แทน REJECT (Stealth - ไม่เปิดเผยว่าเซิร์ฟเวอร์มีอยู่)
  • Insert (-I) ด้านบน chain เพื่อ Priority สูง
  • ทดสอบก่อนบล็อก IP ของตัวเอง!
  • ใช้ White-list สำหรับ IP สำนักงาน/VPN
  • Monitor Log: iptables -L -v -n | grep DROP

การบล็อก IP ด้วย iptables เป็นเส้นป้องกันระดับเครือข่ายที่มีประสิทธิภาพ ควรใช้ร่วมกับ fail2ban เพื่อการป้องกันอัตโนมัติ

คำสั่งคำอธิบาย
iptables -L INPUT -n --line-numbersแสดงกฎ INPUT พร้อมหมายเลขบรรทัด
iptables -D INPUT 5ลบกฎบรรทัดที่ 5 ใน INPUT chain
iptables -F INPUTล้างกฎทั้งหมดใน INPUT chain
iptables -Sแสดงกฎทั้งหมดแบบ rule-specification
iptables-save > /etc/iptables/rules.v4บันทึกกฎอย่างถาวร (Ubuntu/Debian)
service iptables saveบันทึกกฎ (CentOS/RHEL)