วันพฤหัสบดีที่ 7 สิงหาคม พ.ศ. 2551

shorewall on Debian

shorewall เป็นโปรแกรมประเภท firewall เอาไว้สำหรับกรอง packet ต่างๆที่เข้ามาในเครื่องเรา เป็นเครื่องมือสำหรับป้องกันเครื่องของเราจากผู้บุกได้พอสมควร
ตัวอย่างนี้เป็นการติดตั้ง shorewall กับ debian etch

ถ้าหากติดตั้ง ipchains ให้ remove ipchains ออกก่อน
#apt-get remove ipchains

หลังจากนั้นก็ติดตั้ง shorewall
#apt-get install shorewall

หลังจากติดตั้ง shorewall เสร็จแล้วต่อไปก็เป็นการตั้ค่าให้กับ shorewall ให้เข้าไปแก้ไขที่ไฟล์ /etc/default/shorewall
#nano /etc/default/shorewall
ให้เปลี่ยน
startup=0
เป็น
startup=1

สำหรับการติดตั้งโปรแกรม shorewall ครั้งแรก จะไม่มีไฟล์ configuration ใน directory /etc/shorewall/ ต้องคัดลอกไฟล์จาก /usr/share/doc/shorewall-common/default-config มาก่อน
cp /usr/share/doc/shorewall-common/default-config/* /etc/shorewall/

การตั้งค่า zones
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/zones
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4 #
loc ipv4 #
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

การตั้งค่า interfaces
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/interfaces
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect
#LAST LINE — ADD YOUR ENTRIES BEFORE THIS ONE — DO NOT REMOVE

การตั้งค่า policy
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/policy
#SOURCE DEST POLICY LOG LIMIT:BURST
# LEVEL
fw net ACCEPT
fw loc ACCEPT
net all DROP info
all all REJECT info
#LAST LINE — DO NOT REMOVE

การตั้งค่า rules เป็นการกำหนดกฎต่างๆที่ใช้ในการกรอง packet ที่เข้ามาภายในเครื่องว่าจะให้ผ่านไปได้หรือไม่ให้ผ่าน
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/rules
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT(S) PORT(S) DEST LIMIT GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
ACCEPT net fw tcp 22
ACCEPT net fw tcp 3306
#LAST LINE — ADD YOUR ENTRIES BEFORE THIS ONE — DO NOT REMOVE
ตัวอย่างด้านบนเป็นการ อนุญาติให้ packet จาก zone net ผ่านเข้าได้สองพอร์ทคือพอร์ท 80 กับ พอร์ท 10000 และโปรโตคอลต้องเป็นโปรโตคอล tcp
สำหรับใครที่ต้องการจะเพิ่มพอร์ทอื่นๆ สำหรับโปรแกรมแต่ละโปรแกรม ก็ทำได้ตามความต้องการครับ

หลังจากที่ตั้งค่าให้กับ shorewall แล้ว ให้ทำการเริ่มต้นการทำงานของ shorewall โดย
#/etc/init.d/shorewall start
ถ้าหากมีข้อผิดพลาดเกิดขึ้น สามารถดูรายละเอียดได้ในไฟล์ /var/log/shorewall-init.log


ที่มา : http://debianclub.org/node/241

คลังบทความของบล็อก