วันพฤหัสบดีที่ 4 กันยายน พ.ศ. 2551

ป้องกัน scan port ด้วย Portsentry

โปรแกรม portsentry เป็นโปรแกรมที่สร้างขึ้นเพื่อตรวจสอบการ scan port แบบ real time สามารถตรวจจับการบุกรุกมายัง port ต่างๆ
ที่ server เปิดให้บริการอยู่ บางคนตั้ง server แบบไม่ระมัดระวังพอติดตั้ง NOS เสร็จก็สนใจแต่เรื่องการ config ในส่วนที่จะให้บริการกับลูกข่าย
เท่านั้น สามารถหา download โปรแกรมนี้ได้จาก www.psionic.com ปัจจุบันได้เปลี่ยนแปลงชื่อโปรแกรมไปเป็นชื่ออื่นแล้ว ลองศึกษาจาก
เวปไซต์ดังกล่าวดูนะคับ สมมุตว่าผมไป download
เจ้าโปรแกรมนี้มาแล้วที่มีชื่อว่า portsentry-1.1.tar.gz
# cd /tmp # gzip -cd portsentry-1.1.tar.gz tar xvf -
# cd portsentry-1.1
# pico Makefile
(เข้าไปแก้ไขไฟล์ compile โดยแก้ไขตามนี้นะครับ)

CC = cc
แก้ไขเป็น
CC = egcs (ใน server ต้องติดตั้งโปรแกรม egcs ไว้ก่อน) หรือสามารถหาติดตั้งได้ใน /usr/ports

CFLAGS = -O -Wall
แก้เป็น
CFLAGS = -O3 -march=i386 -mcpu=i386 -funroll-loops -fomit-frame-pointer -Wall

INSTALLDIR=/usr/local/psionic
แก้ไขเป็น
INSTALLDIR=/etc

เสร็จแล้วทำการ save ไฟล์โดยการ Ctrl+X แล้วกด Y

หลังจากนั้นแก้ไขไฟล์ portserntry_config.h
#pico portsentry.h

แล้วแก้ไขตามนี้นะครับ

define CONFIG_FILE "/usr/local/psionic/portsentry/portsentry.conf"
แก้ไขเป็น define CONFIG_FILE "/etc/portsentry/portserntry.conf"
เสร็จแล้วทำการ save ไฟล์โดยการ Ctrl+X แล้วกด Y

แล้วเริ่มต้นการ compile โดยใช้คำสั่งดังนี้
# make linux # make install

ทำการลบไฟล์ต้นฉบับทิ้ง
# cd /tmp # rm -rf portsentry*

หลังจากนั้นเข้าไปแก้ไขไฟล์ config ของ portsentry ใน path /etc/portsentry/
# pico portsentry.conf

เพิ่มคำสั่งพวกนี้เข้าไปในไฟล์ สามารถใส่ตรงบรรทัดไหนในไฟล์ก็ได้ # กำหนดหมายเลข port ที่ป้องกันการถูก scan TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,31337,32771,32772,32774,40421,49724,54320"

#กำหนดหมายเลข Ports ว่างที่มักถูกผู้บุกรุก scan และใช้โจมตี ADVANCED_PORTS_TCP="1023" ADVANCED_PORTS_UDP="1023"

#กำหนด ports ต้องห้ามไม่ให้เข้าในระบบเพราะว่าเป็น port ที่ทำงานขณะที่เครื่อง boot คือบริการ ident(113) , NetBios(137-138) , RIP(520) , bootp broadcast(67) ADVANCED_PORTS_TCP=”113,139” ADVANCED_PORTS_UDP=”520,138,137,67”

#กำหนดตำแหน่งที่อยู่ของไฟล์ต่างๆ IGNORE_FILE=”/etc/portsentry/portsentry.ignore” HISTORY_FILE=”/var/log/portsentry/portsentry.history” BLOCK_FILE=”/var/log/portsentry/portsentry.blocked”

#กำหนดค่าที่จะป้องกัน
#0=ไม่ block การ scan TCP/UDP
#1=block ทั้ง TCP_UDP
#2=block external command เท่านั้น BLOCK_UDP=”1” BLOCK_TCP=”1”

#คำสั่งนี้ไม่ให้ผู้อื่นส่งคำสั่งมาเพิ่ม route ใหม่ในระบบ
KILL_ROUTE=”/sbin/route add –host $TARGET$ reject” KILL_HOSTS_DENY=”ALL: $TARGET$” กำหนดจำนวน ports ที่ยอมให้ connect เข้ามาในระบบได้มีค่าตั้งแต่ 1-2 ถ้ากำหนดเป็น 0 จะเป็นการสั่งให้บันทึกค่าใน log file ทันทีเมื่อพบว่ามีการถูก scan port เพื่อให้ผู้ดูแลระบบทราบ SCAN_TRIGGER=0

#กำหนดข้อความแจ้งเตือนว่ามีการบุกรุก อันนี้แล้วแต่นะครับตามความต้องการของผู้ดูแลระบบ PORT_BANNER=”** UNAUTHORIZED ACCESS PROHIBITED ** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY”

หลังจากแก้ไขและทำการตรวจสอบความถูกต้องแล้ว ให้ทำการ save ไฟล์ แล้วทำการกำหนด Permission ให้ไฟล์ด้วย
#chmod 600 /etc/portsentry/portsentry.conf ตรวจสอบไฟล์ portsentry.ignore ดูว่ามีค่า IP Address ตามตัวอย่างหรือไม่ ถ้าเป็น Version ใหม่โปรแกรมจะเพิ่มค่า IP Address ให้เองไม่ต้องเข้าไปแก้ไขอะไร

#pico /etc/portsentry/portsentry.ignore 127.0.0.1 0.0.0.0 จากนั้นกำหนด Permission เป็น 600
#chmod 600 /etc/portsentry/portsentry.ignore

สร้าง Scripts ไปไว้ใน /etc/rc.d/init.d ชื่อ portsentry
#pico /etc/rc.d/init.d/portsentry (path ตามที่คุณได้ติดตั้ง init เอาไว้นะครับ ลองหาดูอาจจะไม่เหมือนของผมก็ได้)

แก้ไขในไฟล์ portsentry ตามนี้นะครับ
#/bin/sh # #portsentry start the portsentry port scan detector
#
#source function library ./etc/rc.d/init.d/functions
#get config ./etc/sysconfig/network
#check that networking is up if [${NETWORKING}=”no”] then exit 0 fi [ -f /usr/sbin/portsentry] exit 0

#see how we were called
case “$1” in start) echo –n “Starting Port Scan Detector: ” if [ -s /etc/portsentry/portsentry.modes] ; then modes=’cut –d “#” –f (ต่อบรรทัดล่างด้วย)1 /etc/portsentry/portsentry.modes’ else modes=”tcp udp” fi for i in $modes ; do portsentry -$i echo –n “$i” done echo touch /var/lock/subsys/portsentry ;; stop) echo –n “Stopping Port Scan Detector: ” killproc portsentry echo rm –f /var/lock/subsys/portsentry ;; status) status portsentry esac exit 0

จากนั้นกำหนด permission ให้ไฟล์ scrips นี้
#chmod 700 /etc/rc.d/init.d/portsentry ทำการเพิ่ม script ให้ระบบเพื่อสั่งให้ทำงานขณะที่เครื่อง reboot #chkconfig --portsentry
#chkconfig --level 345 portsentry on

สั่งให้โปรแกรมทำงาน
#/etc/rc.d/init.d/portsentry restart

ไม่มีความคิดเห็น:

ที่เป็นตัวฉัน

รูปภาพของฉัน
เรียนภาษาอังกฤษมา แต่ชีวิตผกผันให้ต้องมาเป็น admin ซะนี่ เล่นเอาซะมึน และงงตามลำดับ คิดอย่างเดียวว่า เป็นอะไรเป็นได้ถ้าใจอยากเป็น อุปสรรคคือแบบฝึกหัด ท้อแต่ไม่เคยถอย คิดไว้เสมอ ความพยายามอยู่ที่ไหน ความสำเร็จอยู่ที่นั่น ถ้าพยายามก่อน ก็ชนะแล้ว 50% อีก 50 % ใช้ความสามารถเอาเอง