หน้า 1 จากทั้งหมด 1

ติดตั้งและใช้งานโปรแกรม WireShark for Windows

โพสต์โพสต์แล้ว: 15 ธ.ค. 2009 12:29
โดย voip4share
โปรแกรม WireShark มีทั้งเวอร์ชั่นที่ติดตั้งบน Windows และ Linux ที่ผมจะแนะนำต่อไปนี้ เป็นเวอร์ชั่นบน Windows นะครับ ทำไมต้องติดตั้งบน Windows ด้วยหล่ะทั้งๆที่ Elastix/Asterisk มันรันอยู่บน Linux ไม่ได้รันบน Windows ซะหน่อย ผมมีคำตอบครับ

สาเหตุที่เราต้องติดตั้งเวอร์ชั่นบน Windows ด้วยก็เพราะว่าคงมีบ่อยครั้งที่เราต้องใช้คอมพิวเตอร์เป็นตัวมอนิเตอร์ และคอมพิวเตอร์ โน๊ตบุ๊คของเราติดตั้ง Windows กันนี่ครับ (ถ้าเครื่องคอมใครลง Linux แบบที่มี GUI ด้วย เขาก็มีให้ติดตั้งด้วยเหมือนกัน) และเราจะใช้เครื่องคอมพิวเตอร์เพื่อมอนิเตอร์หรือเพื่อวิเคราะห์แพ็กเก็ต VoIP ที่ผ่านเซอร์เวอร์เพื่อเอามาดูว่ามีปัญหาตรงไหนถึงทำงานไม่ได้หรือได้ไม่ดี

ตอนที่เราใช้โปรแกรม WireShark มามอนิเตอร์นั้น สามารถดูได้แบบเรียลไทม์เลยครับ ฟิลเตอร์ได้ว่าจะให้แสดงเฉพาะไอพีแอดเดรสคู่ไหน หรือพอร์ตหมายเลขอะไร เพื่อกลั่นกรองให้แสดงเฉพาะแพ็กเก็ตที่เราต้องการจะดูเท่านั้น ตาจะได้ไม่ลาย :D

เอาหล่ะครับลองดูตัวอย่างการเชื่อมต่อเครื่องที่ติดตั้ง WireShark เพื่อมอนิเตอร์ ว่าวางไว้ตรงไหนได้บ้าง

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 13:31
โดย voip4share
การวางเครื่องคอมพิวเตอร์ที่ติดตั้ง WireShark เพื่อมอนิเตอร์ VoIP
ดูรูปเลยครับ

how-to-monitor-using-wireshark.png
Where WireShark can sit?
how-to-monitor-using-wireshark.png (30.07 KiB) เปิดดู 21425 ครั้ง


จากรูปนะครับ ผมต้องการมอนิเตอร์ VoIP ที่คุยกันระหว่าง Device #A และ #B เนื่องจากมันไม่เวอร์ค ให้ลูกค้าเช็คคอนฟิกแล้วเขาก็บอกว่าถูกต้อง แต่ไม่รู้ว่าทำไมมันคุยกันไม่ได้ สมมติว่าทั้งสองเครื่องนี้ Ping กันเจอนะครับ อุปกรณ์ Device #A และ #B อยู่คนละที่กันนะครับ ผ่านอินเตอร์เน็ตหรือว่าผ่าน LAN ก็ได้ ตามลักษณะการใช้งาน VoIP ทั่วๆไป ผมเลือกเข้าไปที่ Device #B เพราะเดินทางสะดวกกว่า

Device #A และ #B เป็นอุปกรณ์ VoIP ครับ อาจจะเป็น VoIP Server, VoIP Gateway, ATA, Softphone, IP Phone และคุยกันด้วยโปรโตคอล VoIP แบบไหนก็ได้ (แต่ต้องเหมือนกัน) เช่น SIP, H.323, IAX2, MGCP เป็นต้น

ไปถึงไซต์ลูกค้าผมก็เอา Hub (ต้องเป็น Hub เท่านั้นนะครับซึ่งแทบหาไม่ได้แล้วในปัจจุบันนี้ ถ้าจะเป็น Switch ก็ต้องใช้แบบที่มันเซ็ต Port Mirror ได้ ซึ่งก็ต้องเป็นระดับ Managed Switch นะครับถึงจะมีฟีเจอร์นี้ สวิตซ์ราคาถูกๆเอามาเป็นเครื่องมือมอนิเตอร์ไม่ได้หรอก) แล้วก็ต่อสายแลนและเซ็ตไอพีตามรูป แล้วเปิดโปรแกรม WireShark ข้อมูลอะไรก็ตามที่วิ่งเข้าวิ่งออกใน Hub มันก็จะมาโชว์ที่เครื่องคอมของผมด้วย นี่แหล่ะคือเหตุผลที่ว่าทำไมต้องใช้ Hub

จากนั้นผมก็เริ่มเช็คคอนฟิกของ Device #A และ #B เพราะนี่เป็นขั้นตอนปกติที่ต้องเช็ค (ไม่งั้นเดี๋ยวคอหักเพราะตกม้าตาย) แล้วก็เริ่มลองโทรทดสอบดู โทรระหว่าง Device #A และ #B แล้วก็มองดูแพ็กเก็ตที่โชว์ในโปรแกรม WireShark ก็อาศัยความรู้นิดหน่อยเกี่ยวกับโปรโตคอลที่คุยระหว่างอุปกรณ์ 2 ตัวนี้ ก็จะวิเคราะห์ได้แล้วว่าทำไมมันถึงไม่เวอร์ค

ไม่ว่าปัญหาจะอยู่ตรงจุดไหนระหว่างอุปกรณ์ 2 ตัวนี้ เราดูได้จากสิ่งที่ WireShark แสดงออกมา (หรือไม่แสดงออกมา) ก็สามารถไล่ได้ครับว่ามันไปตันตรงไหน ง่ายๆครับ

Note! ถ้าไม่มี Hub และไม่มี Managed Switch หล่ะจะเอาอะไรมอนิเตอร์ ลองดูที่คู่มือ Device #A หรือ #B ดูสิครับว่าสามารถแค๊บเจอร์ หรือว่า ดีบัค (debug) ข้อมูลที่กำลังคุยกับอุปกรณ์ตัวอื่นได้หรือไม่ แล้วใช้เครื่องมือนี้แทนไปเลย ดีบัคแล้วก็ดูข้อมูลที่ปรากฏหรือไม่ก็ดาวน์โหลดออกมาแล้วใช้โปรแกรม WireShark เปิดดูก็ได้

ยี่ห้อที่เราสามารถดีบัคได้ก็เช่น Cisco และที่สามารถดาวน์โหลดออกมาแล้วใช้ WireShark เปิดดูได้ก็มียี่ห้อ Soundwin

เอาหล่ะรับต่อไปก็มาติดตั้งโปรแกรมกัน

1 ดาวน์โหลดโปรแกรม WireShark

1.1 ไปที่เว็บไซต์ http://www.wireshark.org/download.html
1.2 เลือกดาวน์โหลดในแบบที่ต้องการ ผมจะเลือกดาวน์โหลดโปรแกรมแบบ Portable ครับ คลิ๊กที่ Windows PortableApps (32 bit) เพื่อเริ่มต้นดาวน์โหลด รอจนดาวน์โหลดเสร็จครับ
1.3 เวอร์ชั่นที่ผมดาวน์โหลดมาคือ 1.2.5 และได้ไฟล์ชื่อนี้ WiresharkPortable-1.2.5.paf.exe

ต่อไปก็มาเริ่มติดตั้งกันครับ

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 14:01
โดย voip4share
2. ติดตั้งโปรแกรม WireShark

2.1 ดับเบิ้ลคลิ๊กที่ไฟล์ WiresharkPortable-1.2.5.paf.exe
2.2 คลิ๊ก "Next"
wireshark-install-small.png
Install WireShark
wireshark-install-small.png (59.42 KiB) เปิดดู 21424 ครั้ง

2.3 เลือกโฟลเดอร์ที่จะติดตั้ง ผมจะติดตั้งในโฟลเดอร์ c:\Program Files\WiresharkPortable แล้วคลิ๊ก "Install"
wireshark-install-select-folder-small.png
Selecting Folder to Install WireShark
wireshark-install-select-folder-small.png (47.18 KiB) เปิดดู 21424 ครั้ง

2.4 โปรแกรมเริ่มติดตั้ง รอจนเสร็จ
wireshark-install-start-small.png
Starting to Copy Files
wireshark-install-start-small.png (28.21 KiB) เปิดดู 21424 ครั้ง

2.5 คลิ๊ก "Finish"
wireshark-install-finish-small.png
Finish
wireshark-install-finish-small.png (55.29 KiB) เปิดดู 21424 ครั้ง

2.6 การติดตั้งแบบ Portable จะไม่มี Shortcut ให้นะครับ ถ้าต้องการรันโปรแกรมให้เข้าไปที่โฟลเดอร์ที่เราใส่ในข้อ 2.3 และดับเบิ้ลคลิ๊กที่ไฟล์ "WiresharkPortable.exe" แต่บางเครื่องอาจจะเห็นแค่ "WiresharkPortable" ครับ ก็แล้วแต่ว่าในเครื่องเซ็ตให้โชว์นามสกุลของไฟล์ด้วยหรือไม่

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 14:01
โดย voip4share
3. ใช้งานโปรแกรม WireShark

3.1 เข้าไปที่โฟลเดอร์ที่เราได้ติดตั้งโปรแกรม WireShark ก่อนนะครับ เครื่องผมคือ "C:\Program Files\WiresharkPortable" (หรือดับเบิ้ลคลิ๊กที่ Shortcut แทน ถ้าใครทำ Shortcut ไว้)
3.2 ดับเบิ้ลคลิ๊กที่ไฟล์ WiresharkPortable.exe
3.3 นี่คือหน้าตาโปรแกรม WireShark เวอร์ชั่น 1.2.5 ครับ
wireshark-1.2.5-small.png
WireShark 1.2.5 Main Windows
wireshark-1.2.5-small.png (102.5 KiB) เปิดดู 21424 ครั้ง


เมนูหลักแบ่งออกเป็นส่วนๆได้ดังนี้

1. เลือกอินเตอร์เฟสบนเครื่องคอมพิวเตอร์
เป็นอินเตอร์เฟสที่จะมอนิเตอร์ เช่นเราจะมอนิเตอร์ผ่านทางพอร์ตแลน ข้อมูล VoIP ที่มอนิเตอร์จะต้องเข้ามาทางพอร์ตแลนนะครับ ไม่งั้นจะมองไม่เห็นอะไร ดูรูปครับ
wireshark-selecting-interface.png
Selecting Right Interface
wireshark-selecting-interface.png (17.9 KiB) เปิดดู 21424 ครั้ง

Note! บางทีเราก็เรียก "การมอนิเตอร์" ว่า "การแค๊ปเจอร์ (Capture)" ทับศัพท์ไปเลย ดูไฮโซดี

2.การฟิลเตอร์
ในขณะที่เรากำลังแค๊ปเจอร์อยู่นั้น ถ้าข้อมูลที่ปรากฏในโปรแกรมมีเยอะมากและไม่เกี่ยวกับสิ่งที่เรากำลังมองหาอยู่ เช่นเรากำลังมอนิเตอร์ VoIP ระหว่างไอพีคู่หนึ่ง แต่มีข้อมูลของไอพีอื่นๆมาด้วยทำให้ดูยากลำบาก เราอาจใช้ฟิลเตอร์ช่วยได้ครับ โดยกรองเอาเฉพาะแพ็กเก็ตที่เป็นของไอพีคู่นั้นๆ หรือเพียงแค่ไอพีเดียว
wireshark-filter.png
Filtering
wireshark-filter.png (55.96 KiB) เปิดดู 21424 ครั้ง


3. เปิดไฟล์ที่มีการบันทึกไว้
บางครั้งสิ่งที่เราแค๊บเจอร์ได้นั้นเราก็อาจจะมีการเซฟเพื่อเก็บไว้หรือส่งไปให้คนอื่น หรือคนอื่นส่งมาให้เรา เราก็เอามาเปิดในโปรแกรม WireShark ได้ครับ ไฟล์ที่เซฟจะมีนามสกุลได้หลายแบบแล้วแต่เลือกครับ แต่ถ้าเป็นดีฟอลท์จะเป็น .cap หรือ .pcap
wireshark-open.png
Open Files
wireshark-open.png (7.88 KiB) เปิดดู 21424 ครั้ง

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 14:03
โดย voip4share
4. เริ่มแค๊ปเจอร์

4.1 ที่หน้าเมนูหลักของโปรแกรม คลิ๊กที่อินเตอร์เฟสที่เราจะรับแพ็กเก็ตเข้ามา เช่นพอร์ต LAN
4.2 ถ้ามีแพ็กเก็ตเข้ามา โปรแกรมจะเริ่มเอามาแสดงให้เราเห็น ดังตัวอย่าง (ตัวอย่างที่ผมแสดงให้ดูไม่ใช่ VoIP นะครับ จุดประสงค์หลักคือต้องการอธิบายตัวโปรแกรมมากกว่าว่าสิ่งที่แสดงออกมามันคืออะไรกันบ้าง สำหรับ VoIP ไว้ดูข้อที่ 5 กระทู้ต่อไปนะครับ)
wireshark-capturing-small.png
What Are Displaying On WireShark
wireshark-capturing-small.png (221.73 KiB) เปิดดู 21424 ครั้ง


ส่วนที่ 1 - แสดงชื่อโปรแกรมและอินเตอร์เฟสที่เรากำลังแค๊ปเจอร์
ส่วนที่ 2 - เมนู
ส่วนที่ 3 - คีย์ลัด
ส่วนที่ 4 - สำหรับฟิลเตอร์
ส่วนที่ 5 - แสดงแพ็กเก็ตที่แค๊บเจอร์ได้ ถูกแบ่งเป็น 6 คอลัมน์ ได้แก่ No (ลำดับของแพ็กเก็ตที่แค๊บเจอร์ได้), Time (เป็นเวลาที่ผ่านไป เทียบกับตอนเริ่มต้นแค๊ปเจอร์), Source (เป็นไอพีแอดเดรสต้นทางที่ส่งแพ็กเก็ตมา), Destination (เป็นไอพีแอดเดรสปลายทางของแพ็กเก็ต), Protcol (เป็นโปรโตคอลที่อยู่ในแพ็กเก็ต) และ Info (เป็นข้อมูลที่อยู่ในแพ็กเก็ต)
ส่วนที่ 6 - พื้นที่แสดงสิ่งที่อยู่ในแพ็กเก็ตของส่วนที่ 5 ที่เราเอาเมาส์ไปคลิ๊ก แพ็กเก็ตจะถูกแสดงโดยแบ่งออกเป็นเลเยอร์ (เลเยอร์ของ OSI Reference Model นะครับ ซึ่งมีทั้งหมด 7 เลเยอร์ ได้แก่ 1. Physical, 2. Data Link, 3. Network, 4. Transport, 5. Session, 6. Presentation และ 7. Application แต่อาจแสดงไม่หมดก็ได้ขึ้นอยู่กับว่าแพ็กเก็ตนั้นประกอบไปด้วยเลเยอร์อะไรบ้าง แต่อย่างน้อยก็ต้องมี Layer 1, 2, 3, 4 แหล่ะครับ ถ้าสนใจอยากรู้เกี่ยวกับเลเยอร์ทั้ง 7 เพื่อเป็นพื้นฐานการเรียนรู้เรื่องเน็ตเวอร์คแล้วหล่ะก็ ลองหาใน Google ดูนะครับ) รูปข้างบนแสดง Layer 1, Layer 2 (Ethernet II), Layer 3 (Internet Protocol), Layer 4 (User Datagram Protocol หรือ UDP) และ Layer 5 (Bootstrap Protocol) :oops: ถ้าไม่ใช่ Layer 5 ก็ขออภัยด้วยนะครับ (ชักจะเข้าหม้อหมดแระเรื่องพวกนี้)

ต้องการดูรายละเอียดภายในว่าประกอบด้วยอะไรบ้าง คลิ๊กที่เครื่องหมาย + ด้านหน้า

ส่วนที่ 7 - สิ่งที่อยู่ในแพ็กเก็ต คล้ายๆส่วนที่ 6 นะครับ แต่แสดงในอีกรูปแบบหนึ่ง บางทีเราก็อ่านออก บางทีก็อ่านไม่ออก แล้วแต่ข้อมูลที่อยู่ข้างใน
ส่วนที่ 8 - แสดงจำนวนแพ็กเก็ตที่แค๊ปเจอร์ได้
ส่วนที่ 9 - แสดง Profile ที่เลือกใช้ ซึ่งเราสามารถสร้างเป็น Profile ไว้แล้วเลือกใช้ได้

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 16:03
โดย voip4share
5. การเปิดไฟล์ .cap หรือ .pcap ที่แค๊บเจอร์ได้จากคำสั่ง "tethereal" บน Linux

บน Asterisk Server ผมใช้คำสั่ง tethereal -i eth0 host 58.8.87.69 and port 5060 -w "mycapture.cap" เพื่อแค๊ปเจอร์แพ็กเก็ต VoIP แบบ SIP ระหว่างไอพี 58.8.87.69 กับ Asterisk และดาวน์โหลดออกมาด้วยโปรแกรม FileZilla ดูรายละเอียดโปรแกรม WireShark บน Linux ที่กระทู้นี้ viewtopic.php?f=12&t=72 และโปรแกรม FileZilla ที่กระทู้นี้ครับ viewtopic.php?f=28&t=25

จากนั้นก็เปิดโปรแกรม WireShark บนเครื่องคอมพิวเตอร์ แล้วคลิ๊กที่ "Open" เลือกไฟล์ mycapture.cap แล้วคลิ๊ก OK

wireshark-capturing-voip-small.png
WireShark and SIP Messages
wireshark-capturing-voip-small.png (217.77 KiB) เปิดดู 21424 ครั้ง


จากรูป ผมคลิ๊กที่ Register ก็จะมีข้อมูลแสดงออกมา ข้อมูลประกอบด้วย ส่วนที่เรียกว่าเฮดเดอร์ (Header) เช่น Via, From, To, Call-ID, Contact, CSeq เป็นต้น และข้อมูลจริงๆ ได้แก่ เบอร์ Extension 118, ไอพีแอดเดรส, หมายเลขพอร์ต เป็นต้น เฮดเดอร์ทั้งหมดใน SIP มีระบุไว้ในมาตรฐานทั้งหมดแล้ว สนใจก็กระทู้นี้เลยครับ viewtopic.php?f=39&t=100

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 20:22
โดย voip4share
6. ตัวอย่างการฟิลเตอร์

การใช้งาน Filter นี่ก็ค่อนข้างสำคัญครับ เพราะมันจะช่วยกรองสิ่งที่เราไม่ต้องการดูออกไป เหลือแต่เฉพาะที่ต้องการดูจริงๆ จะช่วยให้วิเคราะห์ได้ง่ายขึ้น มาดูกันครับว่าเราจะมีวิธีการฟิลเตอร์อย่างไรบ้าง

ตัวอย่างการฟิลเตอร์

ip.src == 192.168.1.100
ip.dst == 192.168.5.100
ip.src != 192.168.3.1
ip.dst != 192.168.8.1
ip.src == 192.168.1.100 and ip.dst == 192.168.5.100
ip.addr == 10.2.1.10
udp.port == 5060
udp.dstport == 5060
udp.srcport == 5060

เครื่องหมายเปรียบเทียบ มีดังต่อไปนี้
== (equal), != (not equal), > (greather than), < (less than), >= (greather or equal), <= (lessthan or equal)

เครื่องหมาย locical expressoin มีดังต่อไปนี้
&& (and), || (or), ! (not), ^^ (xor)

Re: ติดตั้งและใช้งานโปรแกรม WireShark

โพสต์โพสต์แล้ว: 24 ธ.ค. 2009 21:48
โดย voip4share
7. มาลองฟิลเตอร์ของจริงกันครับกับ SIP message ที่แค๊ปเจอร์ได้

เปิดไฟล์ mycapture.cap ขึ้นมาครับ แล้วทำการฟิลเตอร์แต่ละแบบ

7.1 ให้แสดงเฉพาะแพ็กเก็ตที่ส่งมาจากไอพี 58.8.87.69 (ส่งมาจากไอพี หมายถึง ไอพีต้นทาง หรือ source ip -> ip.src) ฟิลเตอร์ที่ใส่คือ ip.src == 58.8.87.69 จะได้ดังรูป
wireshark-filter-1-small.png
WireShark Filtering Source IP
wireshark-filter-1-small.png (101.5 KiB) เปิดดู 21417 ครั้ง


7.2 ให้แสดงเฉพาะแพ็กเก็ตที่ส่งไปยังไอพี 58.8.87.69 (ส่งไปยังไอพี หมายถึง ไอพีปลายทาง หรือ destination ip -> ip.dst) และส่งมาจากพอร์ต 5060 (ส่งมาจากพอร์ต หมายถึง พอร์ตต้นทาง หรือ source port -> srcport) ใช้โปรโตคอล UDP พิลเตอร์ที่ใส่คือ ip.dst == 58.8.87.69 && udp.srcport == 5060 จะได้ดังรูป
wireshark-filter-2-small.png
WireShark Filtering Destination IP and Source Port
wireshark-filter-2-small.png (115.19 KiB) เปิดดู 21417 ครั้ง