Monday, February 8, 2010

ใช้ Splunk 3 มา monitor Vmware Esxi4

หลังจากที่ใช้ splunk มาได้ซักระยะหนึ่ง ก็เริ่มรู้สึกว่า ชีวิตมันง่ายขึ้น สำหรับเรื่องของการดู log จากอุปกรณ์ต่าง ๆ ก็เลยคิดว่า แล้วถ้าเป็น vmware ล่ะ ก็คงจะมีการส่ง log เหมือน ๆ กันนั่นละ อย่ากระนั้นเลย หาวิธีที่จะทำให้ Splunk สามารถ monitor log ของ vmware ดีกว่า

สิ่งที่ทำเป็นอันดับแรก คือเข้าไปดูข้อกำหนดต่าง ๆ ที่มีคนทำมากันแล้ว ปรากฏว่า มีคนทำ Splunk Application สำหรับ monitor vmware log เลย แต่เป็น esx3.0 และทำบน Splunk V.3 เท่านั้น ซึ่งปัจจุบัน Splunk 3 ก็ยังมีให้โหลดอยู่ แต่เรื่องจาก vmware ที่ผมมีอยู่ กลับกลายเป็นว่า เป็น esxi 4.0 ซึ่งเป็น เวอร์ชั่นใหม่กว่า แต่คิดว่า คงไม่เป็นไรครับ อย่างนี้คงต้องลองล่ะ โดยไม่รอช้า เราก็จะเริ่มทำการทดสอบกันเลย

Test Environment

Debian 5.0 operating system
Splunk 3.4.9 เวอร์ชั่นประจำตัว (จริง ๆ มีเวอร์ชั่นใหม่กว่านี้นะ จะเป็น 3.4.12 ใครจะใช้ก็ได้ แต่ผมชอบเวอร์ชั่นนี้ครับ)
VMware Esxi 4.0 ที่มี Guest OS run อยู่ข้างใน (ใช้งานอยู่นั่นเอง)

Configuration

1. เริ่มโดยการสร้าง OS ขึ้นมาก่อน โดยลง OS เป็น Debian 5.0 แล้วสั่ง update ครับ สำหรับวิธีการลง ให้หาอ่านในเรื่องก่อน ๆ ครับ

2. Download Splunk 3.4.9 จากหน้าเวบ Splunk แต่ถ้าใครไม่อยากเปิดหน้าเวบ ก็ copy link ไปแปะที่ console ของ OS ได้เลย แต่ต้องลง wget ก่อนนะ ถึงจะใช้ได้

wget 'http://www.splunk.com/index.php/download_track?file=/3.4.6/linux/splunk-3.4.6-51113-linux-2.6-intel.deb&ac=&wget=true&name=wget&typed=releases'

3. install splunk โดยพิมพ์ว่า dpkg –i splunk…..(กด tab ดูเอาเองครับ)

4. install java runtime โดยพิมพ์ว่า aptitude install sun-java6-jre

5. ทดสอบว่า install java เรียบร้อยแล้วหรือยัง โดยพิมพ์ว่า

java -version

6. Download Splunk app for vmware จาก

http://www.splunk.com/view/vmware-virtualization/SP-CAAADPN

เอามาวางไว้ที่เครื่อง

7. แตกไฟล์ออกมา จะได้ folder ชื่อ vmware

8. นำ folder vmware ไปวางไว้ที่ /opt/splunk/etc/apps

9. เข้าไปแก้ไฟล์ /opt/splunk/etc/apps/vmware/default/vmware.conf

url=https:// /10.1.1.1/sdk #ให้ใส่ IPaddress ของ vmware server ครับ
username=/user1 # ใส่ username ที่ใช้เข้า vmware server ครับ
Password=/pass1 # ใส่ password ที่ใช้เข้า vmware server ครับ

10. Set environment สองค่า


# export SPLUNK_HOME=/opt/splunk
# export PYTHONPATH=/opt/splunk/lib/python2.5
(บางคนอาจจะต่างจากนี้ ให้ตรวจสอบก่อนว่า มี folder ประมาณนี้อยู่หรือไม่ )

11. ทดสอบ ว่า App ทำงาน หรือไม่ โดยพิมพ์ดังนี้


# cd /opt/splunk/etc/apps/vmware
# java –jar lib/splunk.jar


ซึ่งถ้า app ทำงานเป็นปกติ ก็จะไม่ขึ้นข้อความ error ใด ๆ

12. สั่ง restart splunk โดยพิมพ์ว่า

# /opt/spunk/bin/splunk restart

เมื่อเราเข้าไปดูที่หน้าจอ ก็จะพบว่า มี App ของ Splunk run อยู่แล้ว ดังรูป



และเมื่อคลิก Drop down list ที่ Dashbaord จะพบ หน้า Dashboard ของ vmware ต่าง ๆ ดังรูป



เมื่อลองเข้าไปคลิก ๆ ดู ก็จะแสดงผลดังรูป



Test Summary and problem

อย่างที่บอกตั้งแต่แรกว่า App นี้ถูกเขียนมาสำหรับ monitor vmware esx3.0 ดังนั้น เมื่อเรานำมาใช้กับ Esxi4.0 คุณสมบัติบางอย่างจึงไม่สามารถใช้งานได้ครับ แต่ส่วนใหญ่ก็จะใช้งานได้ดีครับ

หลังจากที่ลองกับ Splunk 3 แล้ว ผมก็เลยลองใช้กับ Splunk 4 บ้าง ซึ่งผลก็ปรากฏว่า App ไม่สามารถทำงานได้ตามปกติ ดังรูป



เมื่อคลิกเข้า App ก็จะเจอ error ดังรูปครับ




อ้างอิง : http://www.splunk.com/view/vmware-virtualization/SP-CAAADPN

Friday, February 5, 2010

VI เทคนิควันนี้

ใน vi

ถ้าเราต้องการลบ ข้อมูลเป็นบรรทัด เรา ก็สั่ง dd

และถ้าเราต้องการลบ ข้อมูลหลาย ๆ บรรทัด เช่น ลบซัก 10 บรรทัด เรา ก็สั่ง 10dd

หรือ ถ้าเราต้องการลบ จากบรรทัดที่เราอยู่ ไปจนถึงท้ายไฟล์ ก็สั่ง dG

แต่ถ้า ถ้าเราต้องการลบ จากบรรทัดที่เราอยู่ ไปจนถึงต้นไฟล์ ก็สั่ง d1G

atftp กับ xinetd

เมื่อวาน ทดสอบลง nagios plugins กับเครื่องที่ใ้ช้งาน atftp อยู่

ตอนลงก็ไม่ติดอะไร ทำไปได้เรื่อย ๆ จนสำเร็จ สามารถส่งข้อมูลไป nagios server ได้แล้ว

พอรุ่งขึ้น ปรากฏว่า มีปัญหาว่า ทำไมอุปกรณ์ network ถึง tftp เข้ามาที่ server ตัวนี้ไม่ได้

พอเข้ามาดูที่ Server ปรากฏว่า atftp service ได้ปิดตัวเองไป

จึงคาดว่า ปัญหาน่าจะเกิดจาก xinetd แน่ ๆ อย่ากระนั้นเลย

โดยไม่รอช้า ไหน ๆ เราก็ลง xinetd ซะแล้ว ก้ให้เอา atftp ไปวางไว้ใน xinetd ซะ

หลังจากเอา config ไปวาง แล้ว restart xinetd

ก็สามารถมองเห็น port UDP/69 เปิดแล้ว

ดีใจขึ้นนิด ก็ลองสั่งให้อุปกรณ์ network ส่ง tftp เข้ามา

ผลปรากฏว่า นิ่งสนิท

อุปกรณ์สามารถติดต่อกับ tftp server ได้ แต่ไม่สามารถส่งข้อมูลเข้ามาได้

ก็ลองเซทอยู่หลายวิธี ยังไงก็ไม่ได้

ท้ายสุด ก็ต้องหาวิธี แยก atftp service ออกมาจาก xinetd

ในเวบก็ไม่มีบอกไว้ ก็ลองเข้าไปดูใน manual

วิธีการก็คือ

รัน command atftpd --daemon /srv/tftp

จากนั้นลองอีกที คราวนี้ แน่นอน อุปกรณ์ network สามารถส่งtftp เข้ามาได้แล้ว

ปัญหานี้ได้ถูกแก้ไขแ้้ล้วครับ

Wednesday, February 3, 2010

Compile NRPE ไม่ผ่าน

เวลาที่เรา Install NRPE บน Linux เมื่อเราสั่ง make all แล้วพบว่า เกิด error ขึ้นว่า


/root/nrpe-2.12/src/nrpe.c:244: undefined reference to `get_dh512'


ให้เราทำดังนี้

1. ติดตั้ง openssl โดยการใช้คำสั่ง aptitude install openssl
2. พิมพ์คำสั่ง openssl dhparam -C 512 ลงไป
3. ระบบจะ print ข้อความออกมา เป็น C Code ประมาณนี้

DH *get_dh512()
{
static unsigned char dh512_p[]={
0xC8,0xBD,0x70,0xCF,0x64,0x58,0x42,0x0D,0x82,0x95,0x90,0x1A,
0x58,0xA3,0xF9,0xE0,0x67,0x7D,0xDD,0x08,0xB6,0x32,0xC2,0x45,
0x8C,0x7E,0x64,0x11,0x05,0xCC,0x8B,0x5B,0x2C,0x1F,0xFF,0x9A,
0x39,0x0A,0x3B,0x53,0xFA,0x1C,0x85,0xAE,0xFA,0x85,0x52,0x7D,
0x6C,0xEA,0x31,0xAF,0xBB,0x88,0x0E,0xB0,0x94,0x72,0x28,0x75,
0x00,0x55,0x25,0x3B,
};
static unsigned char dh512_g[]={
0x02,
};
DH *dh;

if ((dh=DH_new()) == NULL) return(NULL);
dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);
dh->g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL);
if ((dh->p == NULL) || (dh->g == NULL))
{ DH_free(dh); return(NULL); }
return(dh);
}

4. copy code นี้เอาไว้ จากนั้นให้เอาไปวางไว้ในพาธ include/dh.h ที่อยู่ใน folder nrpe
5. ลองสั่ง make all ใหม่อีกครั้ง



ที่มา :http://www.linuxquestions.org/questions/linux-software-2/nagios-nrpe-undefined-reference-to-getdh512-613815/

10 ภัยคุกคามด้านความปลอดภัยสารสนเทศ ที่จะเห็นในปี 2010


1. Malware

จัดได้ว่า เป็นภัยคุกคามอันดับต้น ๆ ของปีที่แล้วเลยทีเดียว มีหลายวิธีที่จะติดตั้งมัลแวร์ลงบนระบบ ซึ่งรวมถึงการติดตั้งมัลแวร์ผ่านทางช่องโหว่ของซอฟท์แวร์ต่าง ๆ

2. Malicious insiders

ภัยคุกคามประเภทนี้เริ่มมากขึ้นในช่วงที่เศรษฐกิจขาลง เนื่องจากการที่ลูกจ้างที่ถูกเลิกจ้าง พยายามที่จะแฮกเข้าไปในระบบที่เข้าทำงาน หรือเคยทำงาน ซึ่งปกติแล้ว เราไม่มีทางกำจัดการโจมตีแบบนี้ให้หมดไปโดยสิ้นเชิง แต่ด้วยการนำนโยบายด้านความปลอดภัยสารสาเทศมาใช้ จะเป็นการจำกัดความพยายามและลดความเสียหายที่จะเกิดขึ้นจากการโจมตีแบบนี้้ได้

3. Exploited vulnerabilities

โค้ดที่ใช้ในการโจมตีช่องโหว่ของระบบ เป็นหัวใจหลักในการโจมตีระบบเลยทีเดียว ระบบต่าง ๆ จะถูกโจมตีได้ง่ายมาก ๆ หากยังมีช่องโหว่ที่ยังไม่ได้ถูกปิด

4. Careless employees

พนักงานที่ไม่ได้รับการอบรมให้มีความรู้ในงาน หรือขาดความเอาใจใส่ต่อระบบ เป็นภัยคุกคามที่น่ากลัวมาก ซึ่งการโจมตีที่เกิดจากบุคคลภายใน แบ่งออกได้ สามประเภทคือ
1. พนักงานที่ไม่ได้รับการอบรมให้มีความรู้ในงาน หรือขาดความเอาใจใส่ต่อระบบ
2. พนักงานที่ถูกหลอกจาการใช้เทคนิค Social engineering
3. พนักงานที่ถูกเลิกจ้าง หรือถูกไล่ออกไปก่อนหน้านี้
การป้องกันระบบ จะต้องพิจารณาการโจมตีแบบนี้ ซึ่งอาจจะนำนโยบายมาประยุกต์ใช้ หรือการอบรมพนักงานให้มีความรู้ เพื่อลดความเสี่่ยงในส่วนนี้

5. Mobile devices

อุปกรณ์มือถือ ที่ใช้งานอย่างแพร่หลายในปัจจุบันนั้น มีมัลแวร์ หรือ worm บางประเภทที่โจมตีอุปกรณ์ประเภทนี้โดยเฉพาะ เช่น iPhone worm สามารถที่จะขโมยบัญชีธนาคารที่อยู่ใน iPhone และทำให้อุปกรณNนั้นกลายเป็น botnet ด้วย

6. Social networking

เวบไซท์สังคมเครือข่าย ประเภท Facebook, MySpace หรือ Twitter จะเปลี่ยนการสื่อสารของผู้คนกับคนอื่น ๆ แต่ในเวลาเดียวกัน ปัญหาหลัก ๆ คือ ข้อมูลส่วนตัวก็จะถูกเผยแพร่ออกไป หรือบางครั้งก็ถูกขโมยตัวตน การโจมตีประเภท SPAM, scams, scareware จะเพิ่มขึ้นทุกวัน

7. Social engineering

ยังคงเป็นเครื่องมือที่นิยมใช้กันมากมาทุกยุค สำหรับการทำ phishing ซึ่งในแต่ละปี จะมีการพัฒนาความซับซ้อนมากยิ่งขึ้น โดยเฉพาะในกลางปีนี้ ซึ่งจะมีการขยายโดเมนเนมเป็นภาษาต่าง ๆ รวมถึงภาษาญี่ปุ่น อารบิก ฮินดู และ กรีก ซึ่งตัวอักษรจะซับซ้อนกว่าเดิม

8. Zero-day exploits

เกิดขึ้นเมื่อผุ้โจมตีสามารถเข้าครอบครองระบบที่รู้ว่ามีช่องโหว่ แต่ไม่สามารถแก้ไขได้ ซึ่งทำให้เป้นการโจมตีที่สุดแสนจะอันตราย การโจมตีแบบนี้ เดิมจะพบใน protocol ที่ค่อนข้างจะปลอดภัย เช่น SSL และ TLS

9. Cloud computing security threats

การใช้ cloud เช่น Internet Application ไม่ได้มีความปลอดภัยมากนัก อย่างไรก็ตาม จากข้อกำหนดเรื่องความปลอดภัยของการใช้Application ใน Cloud จะต้องบังคับให้มีการเข้ารหัสข้อมูลที่ส่ง ซึ่งจากแนวโน้มการเติบโตของ Cloud computing แล้ว นี่อาจจะเป็นปัญหาใหญ่อีกปัญหาหนึ่งเลยก็ได้

10. Cyber espionage

การจารกรรมข้อมูล เป็นภัยคุกคามที่เราได้เคยได้ยินมา มากต่อมาก ซึ่งเกี่ยวกับเรื่องทางการเมือง หรือรัฐบาล ซึ่งอาจจะมีผลกระทบน้อยมากต่อธุรกิจทั่วไป แต่การเพิ่มขึ้นของภัยประเภทนี้ ก็เป็นที่น่าจับตามองเช่นกัน


ตามไปอ่านบทความเต็ม ๆ ได้ที่นี่ครับ

ที่มา : http://www.net-security.org/secworld.php?id=8709

Thursday, January 28, 2010

การปรับแต่ง Nagios ให้สามารถ monitor เครื่อง Client ที่ลงระบบปฏิบัติการ Linux

การปรับแต่ง Nagios ให้สามารถ monitor เครื่อง Client ที่ลงระบบปฏิบัติการ Linux

หลังจากที่เราทำการติดตั้ง Nagios เรียบร้อยแล้ว สิ่งที่ Nagios ทำคือ ระบบจะสามารถ monitor ตัว Nagios server เอง ดังรูป



ซึ่งหากเราจะต้องการ Monitor client เครื่องอื่น ๆ ก็จะต้องทำการปรับแต่งระบบเพิ่มเติมอีกเล็กน้อย โดยเราจะต้องใช้ Nagios plugins ตัวหนึ่งที่ชื่อว่า NRPE - Nagios Remote Plugin Executor

สำหรับรายละเอียดของ NRPE สามารถหาอ่านได้ที่ http://wiki.nectec.or.th/ntl/Project/NRPE

การติดตั้ง NRPE นั้น แบ่งออกเป็น 2 ส่วน คือการติดตั้งที่ Client และการติดตั้งที่ Server

Client ที่ใช้จะเป็น Debian5 ซึ่งถ้าใครจะใช้ Linux ตระกูล Redhat ก็สามารถทำการปรับแต่งได้ไม่ต่างกันครับ

การติดตั้งที่ Client

1. Download Nagios-plugins จาก http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

2. Download nrpe จาก http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

3. สร้าง Nagios account

[client]# useradd nagios
[client]# passwd nagios

4. ติดตั้งNagios-plugin

[client]# tar xvfz nagios-plugins-1.4.11.tar.gz
[client]# cd nagios-plugins-1.4.11
[client]# export LDFLAGS=-ldl
[client]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[client]# make
[client]# make install
[client]# chown nagios.nagios /usr/local/nagios
[client]# chown -R nagios.nagios /usr/local/nagios/libexec/


5. ติดตั้ง NRPE

[client]# aptitude install libssl-dev libkrb5-dev zliblg-dev e2fsprogs
[client]# tar xvfz nrpe-2.12.tar.gz
[client]# cd nrpe-2.12
[client]# ./configure
[client]# make all
[client]# make install-plugin
[client]# make install-daemon
[client]# make install-daemon-config
[client]# aptitude install xinetd
[client]# make install-xinetd

6. ปรับแต่งค่าของ /etc/xinetd.d/nrpe โดยเพิ่ม ip-address ของ Nagios server (สมมติให้ IP ของ Nagios server คือ: 10.1.1.1)

only_from = 127.0.0.1 10.1.1.1

7. เพิ่มค่าใน /etc/services

nrpe 5666/tcp # NRPE

8. เปิดการใช้งาน

[client]#service xinetd restart

9. ตรวจสอบว่า nrpe ทำงานอยู่หรือไม่

[client]# netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN

10. ตรวจสอบว่า nrpe ทำงานได้ถูกต้องหรือไม่

[client]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12

11. ปรับแต่งค่าของ nrpe ที่ /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_mem]=/usr/local/nagios/libexec/check_mem -w 80,50 -c 90,90

-------------------------------------------------------------------------------------------------

การติดตั้งที่ Nagios Server

1. Download nrpe จาก http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

2. ติดตั้ง NRPE

[Server]# aptitude install libssl-dev libkrb5-dev zliblg-dev e2fsprogs
[Server]# tar xvfz nrpe-2.12.tar.gz
[Server]# cd nrpe-2.12
[Server]# ./configure
[Server]# make all
[Server]# make install-plugin

3. ตั้งค่า Host และ Service

ที่ /etc/nagios3/conf.d/ ให้เราสร้างไฟล์ host ใหม่ขึ้นมา ตามชื่อของ Client เช่น client.cfg แล้วใส่ค่าลงไป ตัวอย่างเช่น

define host{
use linux-server
host_name client
alias Debian5 Server
address 10.10.10.10
contact_groups admins
}

# Service to check load
define service{
use generic-service
host_name client
service_description Load
notifications_enabled 0
check_command check_nrpe!check_load
}

4. reload การทำงานของ Nagios

[Server]# /etc/init.d/nagios3 reload

5. เมื่อเข้าไปดูที่หน้าจอก็จะพบว่ามี Client เพิ่มขึ้นมาแล้ว ดังรูป

Wednesday, January 20, 2010

Change Nagios TimeZone in Debian

เวลาลง Package บน Debian ถ้าลงด้วย aptitude ก็จะไม่เหมือนลงแบบแตกไฟล์ เวลาคู่มือเขียน ก็ไม่ได้อ้างอิงการลงแบบ aptitude
การเซท Timezone ของ Nagios เหมือนกัน หาอยู่ตั้งนานเพราะไม่เหมือนในคู่มือ มีข้อแตกต่างกันอยู่เล็กน้อย

1. vi เข้าไปที่ /etc/nagios3/nagios.cfg แล้วเพิ่มคำสั่งนี้ลงไป

use_timezone=Asia/Bangkok

2. vi เข้าไปที่ /etc/nagios3/apache2.conf แล้วเพิ่มคำสั่งนี้ลงไป



3. Restart Apache2 กับ Nagios แล้วลองเปิดดู timezone จะเปลี่ยนไปแล้ว