ตามที่มีคนถามเข้ามา ด้วยส่วนตัวใช้ ipset มาบ้างพอสมควร จึงจะลองเล่าให้ฟังละกันครับ
ipset เป็นชุดโปรแกรมที่ทำงานทั้งในส่วน kernelspace และ userspace และจากที่มีการทำงานในส่วน kernelspace จึงต้องมี module สำหรับ kernel ที่เรากำลังใช้งานอยู่ด้วย ดังนั้น การใช้งาน ipset จะต้องเตรียม 2 ส่วน ดังนี้
1. เตรียม kernel
# aptitude install netfilter-extensions module-assistant
เริ่ม build module ด้วยการเตรียมความพร้อมก่อน
# m-a prepare
build จริง
# m-a a-i netfilter-extensions
หลังจากทำการ build สำเร็จ ระบบจะติดตั้ง module ให้โดยอัตโนมัติ
2. เตรียม userspace
ขั้นตอนนี้ไม่มีอะไรมาก เนื่องจากมีคนเตรียมไว้ให้แล้วใน Debian
# aptitude install ipset
ต่อไปลองทดสอบ
# iptables -m set
iptables v1.4.1.1: You must specify `--set' with proper arguments
Try `iptables -h' or 'iptables --help' for more information.
ขึ้นลักษณะนี้ น่าจะใช้ได้แล้วครับ
วิธีใช้งาน
1. สร้าง set ก่อน ในที่นี้จะแนะนำการใช้ macipmap
# ipset -N [setnam] [settype] --from [ip1] --to [ip2]
# ipset -N myset macipmap --from 192.168.0.10 --to 192.168.0.250
2. ดู set
# ipset -nL
Name: myset
Type: macipmap
References: 0
Default binding:
Header: from: 192.168.0.10 to: 192.168.0.250
Members:
Bindings:
3. เพิ่ม ip+mac เข้าไปใน set
# ipset -A myset 192.168.0.11:AA:BB:CC:DD:EE:FF
# ipset -nL
Name: myset
Type: macipmap
References: 0
Default binding:
Header: from: 192.168.0.10 to: 192.168.0.250
Members:
192.168.0.11:AA:BB:CC:DD:EE:FF
Bindings:
จะเห็นว่ามี IP และ MAC เพิ่มเข้ามาใน set แล้ว :P
4. ใช้งานร่วมกับ iptables
# iptables -A FORWARD -m set --set myset src -j ACCEPT
ผลที่ได้คือ ถ้า packet ไหนที่ผ่านเข้ามา แล้วพบใน set ก็จะยอมให้ผ่านไปได้ครับ
5. ถ้าจะลบ ip+mac ออกจาก set ก็ทำได้ง่าย คือ
# ipset -D myset 192.168.0.11:AA:BB:CC:DD:EE:FF
เท่านี้ ก็ถูกลบออกจาก set แล้วครับ
ข้อดี ของ ipset คือ "ความเร็ว" เพราะในการตรวจสอบ ทำผ่าน iptables rule แค่ที่เดียว และอีกอย่างคือ สามารถ ควบคุม rule ได้แบบ dynamic โดยที่ไม่ต้องโหลด iptables rule ใหม่ แก้ ip+mac ผ่านทาง ipset ได้โดยตรง
ipset เป็นอีกหนึ่งชุดโปรแกรม ที่ผมใช้แล้วชอบ โดยขณะนี้ได้นำมาดัดแปลงทำเป็น NAS (Network Access Service) คือทำลักษณะเดียวกับ CoovaChilli ถ้าผ่านช่วง alpha เมื่อไร จะเปิดโปรเจกต์ให้ผู้ที่สนใจ นำไปทดสอบครับ
คลังบทความของบล็อก
-
▼
2008
(65)
-
►
สิงหาคม
(57)
- โปรแกรม portsentry
- all-in-one 2 (portsentry+iptables+apt-proxy+squid3...
- ทำเองได้ Centralized log แถมวิวได้ด้วย PHP SYSLOGV...
- เวอร์ชั่นเต็ม: การติดตั้ง Centralized log ตาม พรบ....
- debian: iptables
- สคริปท์ บล็อค keyword โดยใช้ Squid คับ เห็นมีคน ถา...
- compile ipp2p บน debian etch ไม่ผ่าน ช่วยทีครับ
- compile debian lenny support l7
- http://www.opentle.org/th/node/7854
- ลองติดตั้ง dns แบบเปลี่ยนค่าได้
- http://download.grisoft.cz/softw/70/update/
- การติดตั้ง Samba Server
- My sources.list for Debian Lenny/Sid
- NTPDate: เวลานั้นสำคัญไฉน .
- บทความ debian เยอะมากๆ
- set php บน debian
- การเก็บ log
- โครงการเก็บข้อมูลจราจร (Traffic Data) ด้วยซอฟต์แวร...
- Squid + Radius authentication
- ntop โปรแกรม monitor network
- ติดตั้ง Shorewall บน Ubuntu
- ผมจะทำ Server สำหรับให้บาง user สามารถเข้าอินเตอร์...
- คำสั่งเฝ้ามองระบบ Linux
- สงสัยเรื่อง ไฟล์วอล
- IPTABLES เป็น Firewall พื้นฐานของ Linux เกือบทุก D...
- ดูข้อมูลของ CPU
- Ubuntu : iptables rule
- Iptables : SSH Brute force attack
- My Firewall Config:
- debian: iptables
- ICMP iptables
- วิธี set iptables บน linux แบบง่ายๆ
- ปัญหาเรื่อง function บน MySQL 5.x
- NTPDate: เวลานั้นสำคัญไฉน ....
- ตั้งเวลาด้วย at
- การ dump ข้อมูลใน MySQL ให้ถูกต้องตาม Character-se...
- การติดตั้ง shoutcast เป็น video streaming
- ทำเองได้ centralized log แถมวิวได้ด้วย php syslogv...
- backup mysql database ด้วย mysqldump
- Comodo Firewall
- ป้องกันการโจมตีด้วย SSH
-
►
สิงหาคม
(57)