Category: Internet


วันนี้ผมเจอปัญหาว่าโปรแกรมที่ใช้งานผ่านเวปเรียกใช้งาน java ทั้งที่ติดตั้ง JRE แล้ว แต่ก็ยังไม่สามารถทำงานได้ ทั้ง IE และ Firefox มี error เดียวกันตามนี้

Java plugin cannot be started. Please ensure you have sun java 1.6 installed and java is enabled in browser settings.

Java plugin cannot be started

หลังจากค้นหากันอยู่นาน ก็พบว่า java ที่ลงนั้นเป็นเวอร์ชั่น 64 บิต แต่ว่า Web Browser ที่ใช้งานเป็น 32 บิต
วิธีแก้มี 2 อย่างครับ
1) เปลี่ยนไปใช้ web browser 64 บิต ตามรูป
ส่วนใครที่ใช้ Firefox ก็รอต่อไปครับ เพราะยังไม่มี Firefox เวอร์ชั่น 32 บิต ดังนั้นแนะนำให้ใช้วิธีที่ 2 แทน
IE 32-bit and 64-bit

2) ลง JRE 32 บิต และใช้งาน web browser 32 บิตตามเดิมครับ

โดยเราสามารถทดสอบได้ว่า java สามารถใช้งานได้ใน web browser หรือไม่โดยเข้าไปที่
http://java.com/en/download/testjava.jsp

หากที่ออฟฟิสมีเมล์เกตเวย์ไว้กรองสแปมอยู่แล้ว และเราต้องการปิดการใช้งาน junk mail filter ใน Outlook สามารถทำได้โดย
1) ไปที่ริบบอน Home
2) เลือก Junk
3) เลือก Junk E-Mail Options…
Outlook Junk Mail 01

4) ในแทป Option เราสามารถเลือกระดับได้ตามใจชอบครับ ถ้าต้องการปิดฟีเจอร์นี้ก็เลือก No Automatic Filtering ได้ครับ
Outlook Junk Mail 02

ใครที่ใช้ Outlook คุยกับ Exchange ผ่าน MAPI (ซึ่งปกติก็น่าจะใช้นะครับ เพราะของพร้อมขนาดนี้แล้วจะไปใช้ IMAP อยู่ทำไม) แล้วบังเอิญเกิดปัญหาว่าขึ้นว่า Trying to connect… อยู่บ่อยๆ เราสามารถดูรายละเอียดการเชื่อมต่อได้นะครับ โดยใส่ parameter /rpcdiag เข้าไปแบบนี้

"C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE" /rpcdiag

Outlook RPCDiag

เท่านี้เราก็รู้แล้วว่าปัญหาเกิดขึ้นที่ไหน จะได้ไปเถียงกับ Exchange Admin ถูก 😀

แอดมินหลายๆ คน มักเจอคำถามนี้เหมือนกัน บทความนี้จึงขอนำเสนอวิธีต่างๆ และข้อดี ข้อเสีย ของแต่ละวิธีครับ

การทำงานของ proxy แบ่งตามมุมมองจากไคลเอนท์ได้ 2 กลุ่มหลักๆ คือ
A) Explicit Proxy
B) Transparent Proxy

Explicit Proxy

    เป็นการบอกให้ไคลเอนท์รู้ว่า proxy อยู่ที่ไหน และให้ส่งมาที่ proxy ก่อน

    1) Manual

      หรือทำมือ ซึ่งเป็นวิธีที่ง่ายที่สุด
      วิธีทำ
      – เปิด IE > Tools > Internet Options > Connections > LAN Settings แล้วระบุชื่อ proxy ลงไป
      ข้อดี
      – ง่าย ไม่ซับซ้อน
      ข้อเสีย
      – หากมีเครื่องไคลเอนท์จำนวนมาก แอดมินอาจมือหงิกได้
      – เวลาเปลี่ยน proxy ก็มือหงิกอีกรอบ

    2) Proxy Script

      วิธีทำ
      – เอา java script ไปวางไว้ในเวปภายในของบริษัท แล้วทำเช่นเดียวกับ manual แต่ให้ระบุโดยใช้ Use automatic configuration script ชี้ไปยัง url ของ java script
      ข้อดี
      – ยังง่ายอยู่ เพราะสามารถหาตัวอย่าง proxy script ได้ในเน็ต
      – สามารถกำหนดเงื่อนไขแปลกๆ เช่น ทำ load balance กับ proxy สองตัว หรือเลือกได้ว่าเวปไหนออกตรง เวปไหนผ่าน proxy
      – การแก้ไขทำได้ง่าย เพราะแก้แค่ที่เดียว
      ข้อเสีย
      – เวลากำหนดครั้งแรกยังต้องทำทีละเครื่องเช่นเดิม

    3) WPAD

      หรือที่ในหน้า proxy ของ IE บอกว่า Automatically detect setting นั่นเอง
      วิธีทำ
      – ใช้ proxy script เจ้าเดิม เพียงแต่เราจะวางให้ถูกที่ถูกทาง โดยมันจะค้นหา proxy script ตามชื่อโดเมนของไคลแอนท์ เช่น ไคลเอนท์ชื่อ pc1.sale.bangkok.modplusplus.com เวลามันค้นหา proxy script ก็จะวิ่งตามนี้

      http://wpad.sale.bangkok.modplusplus.com/wpad.dat
      http://wpad.bangkok.modplusplus.com/wpad.dat
      http://wpad.modplusplus.com/wpad.dat

      ดังนั้นหน้าที่เราคือต้องสร้าง DNS A record ชื่อ wpad.modplusplus.com และเปลี่ยนชื่อ proxy script เป็น wpad.dat จากนั้นไปวางในเวปเซิร์ฟเวอร์ที่ชื่อ wpad.modplusplus.com
      ข้อดี
      – คอนฟิกที่ไคลเอนท์น้อยกว่าสองแบบแรก
      ข้อเสีย
      – ต้องยุ่งกับ DNS
      – ไคลเอนท์ที่ไม่ได้ join AD อาจใช้งานลำบาก เนื่องจากจะไม่ทราบโดเมนในการค้นหา
      – ไม่ใช่ทุกแอพพลิเคชั่นที่ใช้งาน WPAD ได้
      รายละเอียดเพิ่มเติมอ่านได้ที่ Wikipeia คลิ๊กที่นี่

    4) DHCP

      ถ้าใครที่ใช้ DHCP กันอยู่แล้วอาจพ่วง proxy script ไปกับ DHCP แทนการใช้ WPAD ก็ได้ครับ
      วิธีทำ
      เข้าไปกำหนด proxy option 252 ให้ชี้ไปที่ url ของ proxy script วิธีการขึ้นอยู่กับยี่ห้อของ DHCP server ครับ ถ้าเป็น Microsoft เข้าไป คลิ๊กที่นี่ แล้วอย่าลืมมาเพิ่มในแต่ละ DHCP scope ด้วยนะครับ
      ข้อดี
      – ไม่ต้องแตะไคลเอนท์เลย
      ข้อเสีย
      – ไคลเอนท์ที่ทำ static IP จะใช้ไม่ได้ ดังนั้นแนะนำให้ทำร่วมกับ WPAD ครับ

    5) Microsoft Group Policy Object (GPO)

      วิธีทำ
      – เข้าไปกำหนดแบบ manual หรือ proxy script ผ่าน Microsoft Group Policy Management Console (GPMC) ซึ่งจะกระจายให้กับไคลเอนท์ที่อยู่ใน AD ทั้งหมด
      ข้อดี
      – ไม่ต้องไปยุ่งกับไคลเอนท์
      – ไม่ต้องเข้าไปแก้ไข DNS หรือ DHCP
      ข้อเสีย
      – อาจมีปัญหากับอุปกรณ์ mobile หรือ table ซึ่งไม่สามารถ join AD ได้

Transparent Proxy

    เป็น proxy ใสแจ๋ว ฝั่งไคลเอนท์ไม่รับรู้ว่ามี proxy อยู่ เวลาติดตั้งไม่ต้องยุ่งกับไคลเอนท์ แต่จะมีขั้นตอนติดตั้งที่ยุ่งยากกว่า และแพงกว่า
    6) L4 Switch

      วิธีทำ
      – ใช้ L4 switch ตรวจสอบว่ามี traffic ใช้พอร์ต 80 หรือ 443 หรือไม่ ถ้ามีจะโยน traffic ดังกล่าวให้ proxy แต่ถ้าไม่ใช่ก็จะปล่อยผ่าน
      ข้อดี
      – ไม่ต้องไปยุ่งกับไคลเอนท์
      – ไม่ต้องเข้าไปแก้ไข DNS หรือ DHCP
      – สามารถใช้ได้กับทุกแอพพลิเคชั่น ทุกแพลตฟอร์ม
      ข้อเสีย
      – อุปกรณ์ L4 switch มักจะมีราคาแพง บางครั้งอาจแพงกว่า proxy ด้วย

    7) WCCP

      หรือ Web Cache Communication Protocol พัฒนาโดย Cisco ให้ใช้งาน proxy ร่วมกับ Cisco switch แทนการพึ่ง L4 หรือ L7 switch ที่มีราคาแพง
      วิธีทำ
      – ทำงานเช่นเดียวกับ L4 switch คือ WCCP router (หรือ WCCP switch) จะส่ง web traffic มาให้ proxy ก่อน แต่ถ้าไม่ใช่ก็จะปล่อยตรง
      ข้อดี
      – เหมือนกับ L4 switch
      – ราคาของ WCCP router มักจะถูกกว่า L4 switch และบางครั้งก็มีมาพร้อมกับ L2/L3 switch เลย
      ข้อเสีย
      – proxy ต้องสนับสนุน WCCP protocol ด้วย

    8) In-line (or Bridge)<

      วิธีทำ
      – เป็น proxy ที่วางขวาง traffic ทั้งหมด ซึ่งบางผู้ผลิตจะทำเป็น firewall/ISP ที่เพิ่มความสามารถในการสแกนข้อมูลที่เป็น HTTP/HTTPS protocol
      ข้อดี
      – หากเป็นความสามารถเสริมของ firewall/IPS ก็เพียงแค่เรียกเปิดใช้งาน ไม่จำเป็นต้องติดตั้งอุปกรณ์เพิ่ม
      ข้อเสีย
      – หากต้องมี downtime อาจส่งผลกระทบให้ไม่สามารถใช้งานอินเทอร์เน็ตได้ทั้งองค์กรได้ หรือต้องใช้รุ่นที่มี hardware bypass traffic เวลาอุปกรณ์ไม่ทำงาน ซึ่งจะมีราคาสูง

DNS MX record หรือ Mail Exchanger Record เป็นข้อมูล DNS ชนิดหนึ่ง ซึ่งแทนที่จะใช้แปลงจาก Name เป็น IP เหมือนกับ DNS A record ทั่วไป แต่ MX record จะเป็นตัวบอกว่าเมล์เซิร์ฟเวอร์ของโดเมนของเราอยู่ที่เครื่องไหน เช่นหากต้องการรู้ว่า MX record ของโดเมน microsoft.com คือเครื่องไหนให้ใช้คำสั่ง

nslookup -qt=mx hotmail.com

จะมีผลลัพธ์แบบนี้

microsoft.com MX preference = 10, mail exchanger = mail.messaging.microsoft.com

หมายความว่า อีเมล์ที่ส่งหาโดเมน microsoft.com จะส่งไปที่เครื่องเซิร์ฟเวอร์ mail.messaging.microsoft.com หากอยากดูโดเมนอื่นก็ใส่โดเมนเข้าไปท้ายคำสั่งแทน


ซึ่งหากมี MX หลายๆ ตัวก็จะได้แบบนี้

hotmail.com MX preference = 5, mail exchanger = mx4.hotmail.com
hotmail.com MX preference = 5, mail exchanger = mx1.hotmail.com
hotmail.com MX preference = 5, mail exchanger = mx2.hotmail.com
hotmail.com MX preference = 5, mail exchanger = mx3.hotmail.com



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

nectec.or.th MX preference = 20, mail exchanger = maildr.nectec.or.th
nectec.or.th MX preference = 10, mail exchanger = imail.nectec.or.th

เวลาทำงานเมล์เซิร์ฟเวอร์ต้นทางจะพยายามส่งไป imail ก่อน หากไม่สำเร็จจะส่งต่อไปยัง maildr


ตัวอย่างข้างล่างเป็น combo set หลายๆ MX ที่มี preference เท่ากัน และ preference ต่างกัน

ironport.com MX preference = 10, mail exchanger = soma-c601.ironport.com
ironport.com MX preference = 20, mail exchanger = soma-c602.ironport.com
ironport.com MX preference = 20, mail exchanger = cas1-c604.ironport.com
ironport.com MX preference = 10, mail exchanger = cas1-c603.ironport.com



เราสามารถเอามาประยุกต์ใช้กับการเปลี่ยน IP ของเมล์เกตเวย์หรือย้าย ISP ได้ด้วยนะครับ
สมมุติปัจจุบันเรามี MX เป็น

example.com MX preference = 30, mail exchanger = oldisp.example.com

สิ่งที่ต้องทำคือสร้าง MX เพิ่มล่วงหน้าซัก 1-2 วันก่อนเปลี่ยน และให้ preference น้อยกว่า

example.com MX preference = 30, mail exchanger = oldisp.example.com
example.com MX preference = 20, mail exchanger = newisp.example.com

ซึ่งระหว่างที่ยังใช้ IP เดิม ก็จะพยายามส่งมาที่ newisp.example.com แต่ไม่มีใครตอบ จึงพยายามส่งอีกครั้งไป oldisp.example.com และเมื่อเปลี่ยนมาใช้ IP ใหม่ ก็จะส่งเข้า newisp.example.com ได้เลย
และหลังจากที่เปลี่ยน ISP เรียบร้อยแล้ว มั่นใจว่าจะไม่ย้ายกลับก็ลบของเดิมออกได้ครับ

example.com MX preference = 20, mail exchanger = newisp.example.com

นอกจากนี้หากไม่ต้องการรอนานหลักวันอาจลดค่า TTL ของ MX record ให้เหลือเป็นหลักสิบนาที เพื่อให้ DNS server ในอินเทอร์เน็ตลดเวลาที่เก็บใน local cache ทำให้ผู้อื่นเห็นข้อมูลใหม่เร็วขึ้นก็ได้ครับ แต่จะมีโหลดเพิ่มขึ้นที่ DNS server ของเราได้ ทำให้บางครั้ง ISP อาจไม่ยอมคอนฟิกค่า TTL ให้ครับ

Simple Mail Transfer Protocol (SMTP) เป็นโพรโทคอลหรือกฏเกณฑ์ที่ใช้ในการส่งอีเมล์ โดยหากใช้ในอินเทอร์เน็ตจะทำงานอยู่บนพอร์ต TCP 25 และจะใช้ร่วมกับ DNS MX record เพื่อค้นหาเมล์เกตเวย์ของปลายทาง แต่หากใช้ส่งกันระหว่างเซิร์ฟเวอร์ภายในองค์กร อาจเปลี่ยนไปใช้พอร์ตอื่นนอกเหนือจาก TCP 25 ก็ได้เช่นกัน

เมล์เซิร์ฟเวอร์ที่กันในปัจจุบันสนับสนุนโพรโทคอล SMTP กันหมด แม้แต่ของซื้อของขายอย่าง Microsoft Exchange และ IBM Lotus Domino ซึ่งเวลาคุยกันภายในองค์กรจะใช้โพรโทคอลของตัวเอง แต่ถ้าต้องวิ่งออกอินเทอร์เน็ตก็ใช้ SMTP ซึ่งเป็นมาตรฐานกลางได้เหมือนกับค่ายโอเพ่นซอร์ส

เนื่องจากอายุอานามของ SMTP พอๆ กับอินเทอร์เน็ต ซึ่งเลยหลักสี่มานานแล้ว เลยทำให้ SMTP มีปัญหาสำคัญคือเรื่องความปลอดภัยที่ไม่ค่อยจะสู้ดีนัก เพราะข้อมูลที่ส่งกันด้วย SMTP จะเป็นตัวอักษรล้วน (plain text) ใครส่งจดหมายรักถึงใคร คนที่อยู่กลางทางอ่านได้หมด ดังนั้นจึงมีการปรับปรุงเป็น ESMTP โดยตัว E นั้นก็คือ Extended หรือ Enhanced หมายถึง SMTP เวอร์ชั่นปรับปรุงนั่นเอง โดยความสามารถที่เพิ่มเด่นๆ ก็จะเป็นการพิสูจน์ตนก่อนส่ง (user authentication) และการเข้ารหัสลับระหว่างที่ส่ง (SMTP over TLS)

หากใครจะลองส่งเมล์จาก telnet โดยใช้ SMTP ก็สามารถลองทำตามได้นะครับ

Telnet mailgateway.xyz.com 25

รอเซิร์ฟเวอร์ปลายตอบรับ จากนั้นก็ลองทำตามครับ S: หมายถึงเซิร์ฟเวอร์ปลายทาง C: หมายถึงไคลเอนท์ของเรา

S: 220 mailgateway.xyz.com
C: HELO mypc.abc.com
S: 250 Hello mypc.abc.com
C: MAIL FROM: <modplusplus@abc.com>
S: 250 Ok
C: RCPT TO: <somchai@xyz.com>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: "Mod++" <somchai@xyz.com>
C: To: "Somchai Saetung" <somchai@xyz.com>
C: Subject: Test
C:
C: Hello World
C: .
S: 250 Ok: queued as 123
C: QUIT
S: 221 Bye

เพียงเท่านี้เราก็สามารถส่งเมล์ได้โดยไม่ต้องง้อ Outlook แล้วครับ 😀

สมมุติว่าเราเป็นพนักงานของบริษัท abc จะส่งเมล์ไปยังบริษัท xyz การทำงานของระบบอีเมล์จะเริ่มตั้งแต่
1) เราเปิดโปรแกรม Outlook เขียนเมล์ถึง somchai@xyz.co.th โปรแกรมจะส่งเมล์ไปยังเมล์เซิร์ฟเวอร์ของเราก่อน
2) เมล์เซิร์ฟเวอร์ของเราจะส่งอีเมล์ไปให้เมล์เกตเวย์เพื่อตรวจสอบหาไวรัสและสแปม
3) เมล์เกตเวย์จะวิ่งไปถาม DNS server ว่าเมล์เกตเวย์ของผู้รับซึ่งก็คือ xyz.co.th อยู่ที่ไหน
4) เมล์เกตเวย์ของเราจะส่งอีเมล์ไปยังเมล์เกตเวย์ของผู้รับซึ่งก็คือ xyz.co.th
5) เมล์เกตเวย์ของผู้รับจะตรวจสอบไวรัสและสแปม ถ้าผ่านก็จะส่งต่อให้เมล์เซิร์ฟเวอร์ของผู้รับ
6) เพื่อผู้รับเปิดโปรแกรมอีเมล์ เมล์จะถูกโหลดจากเมล์เซิร์ฟเวอร์มาที่เครื่องไคลเอนท์และแสดงผล

Basic Email Flow Diagram

โอกาสหน้าจะมาพูดถึงแล้วถ้าเป็นฟรีอีเมล์อย่าง hotmail หรือ gmail จะต่างจากอีเมล์ของบริษัททั่วไปอย่างไร แล้วเจอกันครับ 😀

หลายๆ คนคงเคยได้รับจดหมายโฆษณาหรือจดหมายขยะ แล้วเราควรจัดการกับจดหมายประเภทนี้อย่างไรดี มีคำแนะนำดังนี้ครับ

กรณี A หากเรามั่นใจว่าผู้ส่งมีตัวตนที่น่าเชื่อถือจริง เช่นเป็นเพื่อนเรา หรือเป็นบริษัทที่เราคุยงานด้วย
คำแนะนำ
1) ไม่ควรคลิ๊กลิงค์ที่แนบมากับจดหมาย โดยเฉพาะอย่างยิ่ง หากก่อนหน้านี้เมล์คุยกันเป็นภาษาไทยทั้งหมด แต่ทำไมรอบนี้ไฮโซส่งมาเป็นภาษาอังกฤษเต็มไปหมดเลย
2) ควรส่งเมล์กลับ หรือแจ้งผู้ส่งด้วยวิธีอื่น ว่าคุณกำลังส่งจดหมายขยะมาหาเรานะ เพราะบางครั้งเครื่องคอมฯผู้ส่งอาจติดไวรัสก็ได้ครับ

กรณี B ผู้ส่งเป็นใครที่ไหนก็ไม่รู้ หรือมาจากบริษัทที่น่าเชื่อถืออย่าง Microsoft หรือ Apple
คำแนะนำ
1) ไม่ควรคลิ๊กลิงค์ที่แนบมากับจดหมาย เพราะลิงค์ที่แสดงผล กับลิงค์ที่วิ่งไปอาจเป็นคนละชื่อ
2) ไม่ควรตอบเมล์กลับ หรือแจ้งว่าส่งผิด เพราะจะเป็นการคอนเฟิร์มว่าเมล์นี้มีคนอ่านจริง และครั้งต่อๆ ไปเค้าก็จะส่งกันมาอีกเยอะกว่าเดิม
3) หากเป็นเมล์แจ้งข่าวสารจากบริษัทที่น่าเชื่อถือ มักจะมีปุ่มหรือวิธีบอกเลิกรับจดหมาย (unsubscribe) อาจทำตามที่บอกก็ได้ แต่หากไม่ได้มาจากผู้ส่งตัวจริงอาจเหมือนข้อที่แล้วได้
4) วิธีที่ดีที่สุด หากเป็น free email เช่น hotmail, gmail, หรือ yahoo แนะนำให้คลิ๊ก mark as spam (หรือชื่อที่ใกล้เคียง) ถ้าทุกคนช่วยกันคลิ๊กเดี๋ยวผู้ให้บริการก็จะบล็อกผู้ส่งให้เอง หรือหากเป็นเมล์บริษัทแนะนำให้ฟอร์เวิร์ดเมล์ไปยัง IT Support ของบริษัทให้จัดการต่อครับ จ่ายค่าจ้างแล้วต้องใช้ให้คุ้ม

ปล. อ่านแล้วอย่าทำตัวเป็นผู้ส่งสแปมเองนะครับ ทั้งสร้างความเดือนร้อนรำคาญให้ผู้อื่นและยังผิดกฏหมายด้วยครับ