เวลาเจอ อะไรผิดปกติ แบบนี้
เพิ่มเติม
Waiting (max 60 seconds) for system process vnlru' to stop...done Waiting (max 60 seconds) for system process
bufdaemon’ to stop…done
Waiting (max 60 seconds) for system process `syncer’ to stop…
Syncing disks, vnodes remaining…2 2 2 2 0 0 done
All buffers synced.
Copyright © 1992-2007 The FreeBSD Project.
Copyright © 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
ขอย้ายหมวดครับ
เพิ่มค่าในไฟล์ /etc/sysctl.conf แล้ว reboot
net.inet.ip.fw.dyn_max=12800
kern.ipc.somaxconn=2048
คิดว่าโดน flood sync/fin เข้ามา
ipfw: install_state: Too many dynamic rules คือ buffer ของ ipfw เติม
เข็คด้วยคำสั่ง ipfw show
เคลียรด้วย ipfw zero
pid 93219 (httpd), uid 1003: exited on signal 11 หมายถึง httpd ทำงานจนล้มเหลว
ไล่หาจาก netstat -an ว่ามีกระทำซ้ำๆจำนวนมากที่ ip ใดแล้วเอาไปใส่ใน ipfw rules
stop httpd เพื่อดูอาการว่า load ลงไหม หากลงก็แสดงว่า food มาทาง port 80 (ดูจาก netstat ก็มองเห็นว่าทาง port ใด)
หากให้ดีต้องปรับ ipfw.rules เสียใหม่ให้มีกัน DoS ด้วย
ขอบคุณครับ แม้จะไม่ค่อย เข้าใจ พยายาม ศึกษาอยู่ครับ
ได้ความรู้มาว่า
ในกรณีที่ packet-filtering firewall ได้รับ UDP packet เนื่องจากไม่มีกระบวนการ 3-way handshake เพราะมันเป็น stateless protocol ไม่มี sequence number แต่มันก็ยังมี source port และ destination port ซึ่งจะถูกสร้างขึ้นใน state table ซึ่งรวมเอา source address , destination address มาไว้ด้วยกัน ทั้งนี้ เนื่องจาก UDP ไม่มี FIN หรือ RST ซึ่งใช้สำหรับยกเลิกการเชื่อมต่อเหมือนกับ TCP ดังนั้นมันจึงต้องมี timeout เพื่อลบข้อมูลออกจาก state table
อย่างไรก็ตามจำเป็นต้องมีวิธีในการลบข้อมูลออกจาก state table โดยเฉพาะสำหรับ TCP connection ซึ่งอาจจะถูกโจมตีโดยการส่ง SYN packet (เรียกอีกอย่างว่า SYN flood) จำนวนมากเข้ามายังไฟร์วอลล์ ซึ่งก่อให้เกิด Denial of Service ได้ เพราะมันทำให้ state table เต็ม ปัญหานี้สามารถแก้ไขได้โดยการตั้ง timeout ของ แต่ละ connection ไว้
สำหรับ application proxy จะทำการตรวจสอบข้อมูลในชั้น network layer และ transport layer และยังสามารถตรวจสอบความถูกต้องในชั้น application layer ได้อีกด้วย ซึ่งทำให้ application proxy สามารถกลั่นกรอง commands, protocol, packet length, authorization, content, invalid header หรือสามารถส่งผ่าน packet ไปได้เลย application proxy เป็น stateful firewall แต่สิ่งที่สร้างความแตกต่างคือ proxy server จะสร้าง IP packet ใหม่ เพื่อส่งต่อไปยังเป้าหมาย ทั้งนี้เพื่อป้องกัน malformed packet และ proxy จะสร้าง packet ใหม่เพื่อส่งต่อก็ต่อเมื่อ packet นั้นผ่านการตรวจสอบแล้ว
ในกรณีของ simple packet filter เราจำเป็นต้องระบุ rule ทั้ง incoming packet และ ทั้ง outgoing packet ในขณะที่ stateful firewall สามารถระบุได้แค่ข้างเดียวเท่านั้นเอง เพราะ packet ที่ return กลับมานั้น จะถือว่าเป็นส่วนหนึ่งของ connection ที่สร้างไว้ก่อนแล้ว แต่ก็มีข้อยกเว้นเหมือนกัน เช่น Checkpoit’s Firewall-1 นั้นต้องการการระบุ rule แยกสำหรับการใช้งาน ICMP echo request และ ICMP echo reply
อ่านเต็มๆ ได้ที่
[quote author=dboy link=topic=12313.msg119814#msg119814 date=1215585832]
ตรงนี้ มัน สั่งให้มันทำอะไรครับ
มัน flood ออกไปจากเครื่องตัวเองหรือเปล่าครับ ?
ไม่น่าจะโดนข้างนอก flood เข้ามานะครับ ผมดูจาก BW นะ
มันมีแต่ Out ไม่มี In นี่นา
ถามต่อๆ
ตามที่ต้นบอกครับ… และ sysctl.conf ก็ไม่ได้ช่วยอะไร
ps process ดีๆ หาก httpd มันขึ้นนำหน้าก็เดาได้เลยว่าโดน script ลองไปหาใน /tmp หาไฟล์ชื่อแปลกๆ
และไม่เชื่อว่า stop httpd แล้ว load จะไม่ลง… เพราะผมเจอ case มาก่อน
ช่วยสิครับ ช่วยให้เครื่องค้างช้าลงหรือไม่ค้างเลย
เพราะค่า default ที่มากับ kernel มันตั้งไว้ต่ำ เราก็ปรับเพิ่ม แต่มากไปก็ใช่้ว่าจะดี
ก็เหมือนๆปรับ serverlimit ใน httpd นั้นแหละ ต้องปรับให้พอดีไม่น้อยเกินและไม่มากจนเวอร์
ส่วนสาเหตุก็ไปไล่หาอีกทีว่ามาจากอะไร
ครับ เคยเจอมาฝังคิปยิงออกนอกจน bw เต็มเครือข่ายเลย
ดู
หากใช้ ipfw ช่วยป้องกัน DoS ก็เอาอันนี้เข้าไปเสริม
${fwcmd} add allow pass all from any to me limit src-addr 20 #DoS
แต่ packet ที่ยิงออกมาจากเครื่อง… ipfw ช่วยอะไรไม่ได้ครับ
มั่น ipfw show หน่อยครับ ทำให้พอจะเดา connection ประจำวันได้
ทำ ipfw zero และ show เทียบกันในแต่ละวัน
เมื่อเรากำหนด pass port ต่างๆหมดแล้วก็พอดูทางออกว่า tcp/udp ไหนมันแปลกๆ
[quote author=smartnet.co.th link=topic=12313.msg119878#msg119878 date=1215606894]
ดู
จากที่ผมเห็น MRTG แล้วมองคร่าว ๆ น่าจะเป็น bot รันจากเครื่ืองตัวเอง ออกไปข้างนอกนะครับ
ลอง netstat -tn ดูครับ แล้วดูว่ามีการไป connect port อะไรข้างนอกแปลก ๆ ไหม
ถ้าใช่ก็ ใช้ ipfw block ไปก่อน แล้วค่อยไปไล่หาต้นเหตุ แค่นี้ก็จบแล้วครับ อย่าไปคิดมาก
ขอบคุณที่ชม…ผมไม่ใช่เทพ…แค่มีกึ๋น
คือเรื่องของเรื่องนี้เลยนะครับ ผมจะแจงให้ทราบว่ามันเป็นอะไร อย่างแรก…คือโดนสครืปบอททำงานฝังตัวทำงานยิงแพคเกจออกไป (ดูจากกราฟ)
ส่วน buffer ipfw ที่มันล้นก็เนื่องมาจาก packet มันออกไป (ดูจากกราฟ)
โอเค… เราวิเคราะห์ต่างๆจาก error log ที่แนบมากับกราฟที่แสดงให้เห็น…แล้วจะไปสรุปให้ขยาย buffer firewall มันก็ไม่ใช่สิ่งที่ถูก
และหากกราฟ load X100 จริง แค่ 3.0 มันเด็กๆ เพราะ freebsd ทำงานได้สบายๆโดยไม่มีปัญหา 20-50 สบายๆ (ดูจาก top)
ผมถึงว่า อจ. kke ว่า… net.inet.ip.fw.dyn_max ก็ไม่ได้ช่วยอะไรไงครับ
เราทราบแล้วว่ามี connection over flow เกิดขึ้นในเครื่อง และมองกันออกแล้วว่ามันเป็นขาออกทางเดียว ก็หาสคริปตัวปัญหาแค่นั้น(จบ)
สำหรับ FreeBSD ผมรู้ข้อจำกัดมันไปถึง httpd ไม่สามารถเปิดไฟล์ได้เกิน 512 หากเราไม่แก้ที่ httpd.h แล้ว re-compile ด้วยครับ
FreeBSD ออกแบบมา Safe ตัวเองมากๆ แต่ข้อจำกัดมันก็มีมาก การที่จะทะลุข้อจำกัดมันได้มีทางเดียวต้องแก้ header ไฟล์ของ kernel ใน option ต่างๆแล้ว re-compile ใหม่
การที่เราจะเอา FreeBSD มาทำให้นิ่งและใช้กันได้ยาวนาน ต้องทำหลายอย่างครับ โดยเฉพาะเรื่องปรับ option ของ kernel source
เครื่อง FreeBSD 4.4 ที่ผมใช้มาแต่เปิดกิจการก็ยังทำงานอยู่เลยครับมัน 7 ปีแล้วท่าน อจ. kke
net.inet.ip.fw.dyn_max จำเป็นต้องขยายไหมในเรื่องนี้ ผมมองก็บอกว่าให้ไปดู ipfw show ว่าสมควรจะขยายไหม โดยดูภาระโหลดโดยรวมนำมาคิดว่าจะขยายไหม
สุดท้ายนี้…ผมเพียงแค่มาแบ่งบันตวามรู้เท่านั้นครับ มิได้มีเจตนาในด้านลบ แต่ตรงไหนไม่ถูกผมก็ขออนุญาตโต้แย้ง…ขอโทษด้วยครับ
ใช้เป็นแต่ FreeBSD 7.0 + ZFS ครับ อิอิ 4.4 ไม่ทัน
[quote author=212cafe.com link=topic=12313.msg119903#msg119903 date=1215617010]
ใช้เป็นแต่ FreeBSD 7.0 + ZFS ครับ อิอิ 4.4 ไม่ทัน