แสดงบทความที่มีป้ายกำกับ Security แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Security แสดงบทความทั้งหมด

วันศุกร์ที่ 6 สิงหาคม พ.ศ. 2553

สองมือน้อยจัดการ Ultrasurf จอมป่วน

หลาย ๆ admin คงปวดหัวกับลูกข่ายที่ใช้ ultrasurf เพื่อปลดล็อก policy ของเรา แต่วันนี้เราจัดการได้ครับอาจจะไม่ร้อยเปอรฺ์เซ็น แต่ก็สร้างความอึดและอัดแก้ผู้ที่ใช้โปรแกรมนี้จนไม่อยากใช้ไปเลยครับ ต้องขอขอบพระคุณ คุณยิม (จาก http://www.thaibsd.com)

A lot of administrators have faced many problems with "Ultrasurf" software which is always breaks our policy. Now I have solution to solve this problem. If you are ones who have problem like this, bring this command to your system.

route add -net 65.49.2.0/24 10.0.0.2

10.0.0.2 ผมเปลี่ยนเป็น IP ของ Lan Card ใบที่ 1 ครับ
number 10.0.0.2 I change to be my first lan card's IP

คำสั่งสั้น ๆ แต่มากด้วยอานุภาพขอบอก เสร็จแล้วก็จิบกาแฟอย่างสบายอารมณ์ 5555555
Now, with this power of command you can take a cup of coffee and don't worry about that again.

วันพฤหัสบดีที่ 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

Config SSH เพิ่มความปลอดภัยให้ server

Secure Shell (SSH) เป็นโพรโตคอลในการสร้างการติดต่อเพื่อเข้าใช้งานระบบอย่างปลอดภัยมากกว่าการติดต่อแบบเดิมๆ
ที่มีการส่งข้อมูลเป็นเพียงตัวอักษรเปล่าๆ (Plain text) โดยที่โพรโตคอลดังกล่าวจะทำการเข้ารหัสข้อมูลทุกอย่างไม่ว่าจะเป็น ชื่อผู้ใช้ รหัสผ่าน หรือข้อมูลอื่นๆ ก่อนที่จะทำการส่งไปยังเครื่องเซิร์ฟเวอร์ โดยปกตินิยมนำ SSH มาใช้งานแทน telnet
เพราะมีความปลอดภัยมากกว่า วิธีการส่วนมากที่ผู้โจมตีใช้กันคือการดักขโมยข้อมูลระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ผ่านทาง
โพรโตคอล telnet ซึ่งข้อมูลที่ดักได้อาจจะเป็นชื่อที่ใช้ Login และรหัสผ่าน ที่ไม่ได้ถูกเข้ารหัสไว้ โดยใช้โปรแกรมประเภท Sniffer ทั่วๆไป และถ้าเกิดกรณีที่ผู้โจมตีดักขโมยชื่อผู้ใช้คือ root และรหัสผ่าน ความเสียหายที่ตามมาอาจจะมากจนเกินที่
จะแก้ไขได้ ซึ่งในการติดตั้ง Slackware Linux ได้ทำการติดตั้ง Secure Shell (SSH) ให้เรียบร้อยแล้ว ซึ่งสามารถ
ใช้งาน Secure Shell (SSH) ได้เลย แต่ก็ต้องมีการปรับแต่งค่า Secure Shell Daemon ของฝั่งเซิร์ฟเวอร์ที่รอรับ
การติดต่อจากไคลเอ็นต์ ให้มีความปลอดภัยมากที่สุด ซึ่งแฮกเกอร์ส่วนใหญ่พยายามทำการแฮก port SSH (22)
โดยจะทำการแก้ไขในไฟล์ที่ชื่อว่า sshd_config ซึ่งรายละเอียดในไฟล์ที่สำคัญมีดังนี้ และให้ลบ

# และแก้ไข ที่อยู่หน้า option ต่อไปนี้ Port 22
KeyRegenerationInterval 1h
ServerKeyBits 1024
LoginGraceTime 600
PermitRootLogin no
RSAAuthentication yes
RhostsRSAAuthentication no
PasswordAuthentication yes
PermitEmptyPasswords yes
AllowUsers admin user1 user2
คำแนะนำในการปรับแต่งค่าต่างๆ Port 22 ระบุหมายเลขพอร์ตที่ใช้ในการติดต่อ โดยค่า default
แล้วจะอยู่ที่พอร์ตที่ 22 แต่ถ้าแก้ไขให้ใช้พอร์ตอื่นก็จะสามารถหลอกแฮ็กเกอร์ที่อ่อนประสบการณ์ที่ได้รหัสผ่าน
แต่ก็ยังไม่ทราบพอร์ตได้

KeyRegenerationInterval 1h

ServerKeyBits 1024
ระบุจำนวนบิตที่จะใช้ในคีย์ของเซิร์ฟเวอร์ ซึ่ง default คือ 768 ให้ทำการแก้ไขเป็น 1024

LoginGraceTime 600

PermitRootLogin no
ระบุว่าอนุญาตให้ accout ของ root ทำการ login เข้าระบบได้โดยตรงหรือไม่ ให้เปลี่ยนเป็น no คือไม่อนุญาติให้ accout root login โดยส่วนใหญ่ แฮกเกอร์พยายามทำการแฮก port SSH (22) โดยใช้ accout root

RSAAuthentication yes
ระบุว่าให้ใช้ RSA ในการ Authenticate โดย RSA จะใช้คีย์คู่ทั้ง public และ private ที่ถูกสร้างโดย ssh-keygen1utility ในกระบวนการ

Authenticate RhostsRSAAuthentication no
ระบุว่าจะให้สามารถใช้ rhosts ร่วมกับ RSA ในการ authenticate ได้หรือไม่

PasswordAuthentication yes
ระบุว่าให้ใช้รหัสผ่านในการทำ
Authenticate PermitEmptyPasswords no ระบุว่าจะอนุญาตให้ Login โดยไม่ต้องใช้รหัสผ่านหรือไม่ ให้เลือก no เพื่อบังคับให้ป้อนรหัสผ่านทุกครั้ง

AllowUsers admin user1 user2
ระบุว่าจะอนุญาตให้ใคร Login ได้บ้าง โดยค่า default แล้วจะอนุญาตให้ทุกคนสามารถ Login เข้าระบบได้ และสามารถเพิ่มชื่อผู้ใช้ที่อนุญาตได้หลายคน โดยแยกแต่ละชื่อด้วยเครื่องหมายช่องว่างหรือ space เช่น อนุญาติให้ user ชื่อว่า admin user1 user2 สามารถ login เข้ามาได้ เมื่อทำการแก้ไขค่า configure แล้วให้ทำการ restart sshd เท่านี้ก็สามารถใช้งาน Secure Shell (SSH) อย่างปลอดภัยแล้วครับ

ที่มา จากคุณ ShareKnowledge http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=5552

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

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