ลองเปลี่ยนมาใช้ md5secret แทน secret ดูบ้างมั๊ยครับ

Asterisk Opensource IP Pbx

ลองเปลี่ยนมาใช้ md5secret แทน secret ดูบ้างมั๊ยครับ

โพสต์โดย nuiz » 25 เม.ย. 2011 11:41

ตอนที่เราสร้าง SIP accounts ในไฟล์ sip.conf ปกติเราก็จะใส่พาสเวอร์ดที่ยูสเซอร์ต้องใช้รีจิสเตอร์ไว้ในบรรทัด secret ใช่ป่ะครับ พาสเวอร์ดก็เป็นอันที่เราเห็นนั่นแหล่ะ อ่านได้เลย ไม่ได้มีการเข้ารหัสไว้ ตามตัวอย่างด้านล่างนี้

[80010]
type=friend
secret=3490047336

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

[80010]
type=friend
md5secret=de661ebb4e1d16c341715c22c7969765

ซึ่งเมื่อยูสเซอร์รีจิสเตอร์เข้ามาด้วยพาสเวอร์ด 3490047336 จะทำให้ Asterisk นำมาเข้ารหัสแบบ md5 โดยใช้พารามิเตอร์อีก 3 อย่าง ได้แก่ Username, Realm, Secret (ที่ยูสเซอร์ส่งมา) แล้วเอามาเทียบกับบรรทัด md5secret ถ้าตรงก็จะรีจิสเตอร์ผ่าน

ในคอนฟิกจะมีทั้งบรรทัด secret และ md5secret ด้วยก็ได้นะครับ แต่ Asterisk จะสนใจบรรทัด md5secret และตอนที่บอกคนใช้งานหรือลูกค้า ให้บอกพาสเวอร์ด secret นะครับไม่ใช่ md5secret ไม่งั้นรีจิสเตอร์ยังไงก็ไม่ผ่าน

ข้อมูล de661ebb4e1d16c341715c22c7969765 ในบรรทัด md5secret ผมสร้างมาจากคำสั่งนี้ คำสั่งนี้พิมพ์จาก Linux Prompt เลยครับ แล้วก็ก๊อบผลลัพท์มาใส่

โค้ด: เลือกทั้งหมด
echo -n "<user>:<realm>:<secret>" | md5sum


โดยที่
<user> คือ Username ตัวอย่างข้างบนคือ 80010
<realm> คือ realm ของ Asterisk เดี๋ยวผมจะแนะนำวิธีการเช็ค realm ทีหลังครับ
<secret> คือ secret หรือ password ครับ ในตัวอย่างข้างบนคือ 3490047336
อย่าลืมใส่ -n ด้วยนะครับ ไม่อย่างนั้นคำสั่ง echo มันจะเติม \n (เรียกว่า new line character) เข้าไปต่อท้ายผลลัพท์ด้วย ซึ่งจะทำให้ผล md5sum ไม่ตรง รีจิสเตอร์ยังไงก็ไม่ผ่าน ส่วนเครื่องหมาย " " ก็ใส่ด้วยนะครับ

ตัวอย่างคำสั่ง สมมติว่า realm = asterisk นะครับ (realm ดีฟอลท์)
โค้ด: เลือกทั้งหมด
echo -n "80010:asterisk:3490047336" | md5sum

ผลลัพท์
de661ebb4e1d16c341715c22c7969765 -

จะได้ว่า md5secret คือ de661ebb4e1d16c341715c22c7969765 ส่วนเครื่องหมายขีด (-) ไม่ต้องเอามานะครับ

วิธีการดู Realm
1. จาก Linux Prompt พิมพ์คำสั่งนี้ครับ
โค้ด: เลือกทั้งหมด
asterisk -rx "sip show settings"

2. ภายใต้ Global Settings ดูบรรทัด Our auth realm
โค้ด: เลือกทั้งหมด
Our auth realm          asterisk

ด้านขวามือคือ realm ครับ

วิธีตั้งค่า Realm ใหม่
ถ้าต้องการแก้ไขค่า Realm ใหม่จากดีฟอลท์ asterisk เป็นอันอื่น ทำดังนี้
1. เปิดไฟล์ /etc/asterisk/sip.conf
2. ภายใต้ General ใส่บรรทัดนี
realm=xxxx
แทน xxxx ด้วยค่าที่ต้องการ เช่น voip4share.com หรือ voip4share หรือ nuiz หรืออะไรก็ได้
3. เซฟแล้วพิมพ์คำสั่ง asterisk -rx "sip reload" ก็จะใช้งานได้เลย

ผลลัพท์
มาดูผลลัพท์กันครับ หลังจากที่ผมได้ลบบรรทัด secret ของแอ๊คเค๊าท์ 80010 ออกแล้ว แล้วเพิ่มบรรทัด md5secret แทน แล้วลองรีจิสเตอร์ด้วยแอ๊คเค๊าท์ 80010 ด้วยพาสเวอร์ด 3490047336 ก็รีจิสเตอร์ได้ ลองใช้คำสั่ง sip show peer สังเกตุบรรทัด MD5Secret นะครับ ขึ้นเป็น <Set> แสดงว่ากำลังใช้งานอยู่ ส่วนบรรทัด Secret ขึ้นเป็น <Not set> แสดงว่าไม่ได้ใช้งาน

โค้ด: เลือกทั้งหมด
sip1*CLI> sip show peer 80010

  * Name       : 80010
  Realtime peer: No
  Secret       : <Not set>
  MD5Secret    : <Set>
  Context      : a2billing
  Subscr.Cont. : <Not set>
  Language     :
  Accountcode  : 127937954050
  AMA flags    : BILLING
  Transfer mode: open
  CallingPres  : Presentation Allowed, Not Screened
  Callgroup    :
  Pickupgroup  :
  Mailbox      :
  VM Extension : asterisk
  LastMsgsSent : 32767/65535
  Call limit   : 1
  Dynamic      : Yes
  Callerid     : "" <80010>
  MaxCallBR    : 384 kbps
  Expire       : 285
  Insecure     : no
  Nat          : Always
  ACL          : No
  T38 pt UDPTL : Yes
  CanReinvite  : No
  PromiscRedir : No
  User=Phone   : Yes
  Video Support: No
  Trust RPID   : No
  Send RPID    : Yes
  Subscriptions: Yes
  Overlap dial : Yes
  Forward Loop : Yes
  DTMFmode     : rfc2833
  LastMsg      : 0
  ToHost       :
  Addr->IP     : 58.8.164.241 Port 12088
  Defaddr->IP  : 0.0.0.0 Port 5060
  Def. Username: 80010
  SIP Options  : (none)
  Codecs       : 0x10f (g723|gsm|ulaw|alaw|g729)
  Codec Order  : (g729:20,g723:30,gsm:20,ulaw:20,alaw:20)
  Auto-Framing:  No
  Status       : OK (36 ms)
  Useragent    : eyeBeam release 3004t stamp 16741
  Reg. Contact : sip:80010@192.168.100.104:9276


แสดงว่าเวอร์คดีครับ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7069
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ย้อนกลับไปยัง Asterisk SIP Server

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 7 ท่าน

cron