Thursday, September 3, 2009

IIS with Directory Security on Windows Server 2003

  • ปกเมื่อเราทำการเพิ่ม web หรือ virtual host เข้าไปใน IIS web หรือ virtual นั้นจะมี Directory Security , Authentication Methods ซึ่งถ้าเรากำหนดให้ enable anonymous เราจะได้ user ที่แทน anonymous คือ IUSR_HOSTNAME และได้ password ของ user โดยอัติโนมัติอยู่แล้ว ก็คือจะสืบทอดค่าคอนฟิกต่างๆตาม parent Site ว่างั้นก็ได้
  • ปัญหายอย่างหนึ่งที่พบเมื่อสองวันก่อนคือ มีคนไปเปลี่ยน user ของ web ไปใช้ windows user อื่นๆ ซึ่งไม่ใช่ IUSR_HOSTNAME ซะงั้นเปลี่ยนทำไมฟะ อยากรู้จริงๆ หรือ เค้าคนนั้นไปลยพาสเวิร์ด IUSR_HOSTNAME แล้วไม่รู้ว่าพาสคืออาไรเลยต้องเปลี่ยนใช้ user ใหม่ที่เค้ารู้พาส หรือป่าวหว่า เพราะ ถ้าเราไปลบพาสของ IUSR_HOSTNAME ใน Directory Security ออก จะทำให้เวลามีคนมาเข้าเว็บเรา จะขึ้น User และ Password ให้เค้าคนนั้นต้องกรอก ถ้า user และ password ของ anonymous ที่ตั้งไว้ที่ Directory Security ไม่ถูกต้อง
  • การแก้ปํญหา แค่ลบ web site นั้นออกแล้วทำการสร้างใหม่ แล้วทำการสร้าง site นั้นใหม่ ซึ่ง site ที่เราสร้างใหม่ anonymous จะใช้ IUSR_HOSTNAME อัติโนมัติตาม parent site (ถ้า parent site ใช้ IUSR_HOSTNAME สำหรับ anonymous นะ)
  • แต่ที่แย่กว่านั้นคือ parent โดยเปลี่ยน user และ password ที่ Directory Security ซะงั้น มึนจริงๆ เค้าคนนั้น ทำให้เวลาสร้าง site ใหม่ภายใต้ parent นั้นเราก็จะไม่ได้ IUSR_HOSTNAME แต่จะได้ user ที่ parent ใช้อยู่โดยอัติโนมัติ กรณีนี้ก็ซวยไป สงสัยถ้ากรณีนี้คงต้อง ถอนและ ลง IIS ใหม่
  • แต่คิดว่าเราน่าจะไปเปลี่ยนรหัสผ่านของ IUSR_HOSTNAME เองได้โดยผ่าน Manage => Local Users and Groups น่าจะได้นะ หลังจากแก้แล้ว เราก็ไปเปลี่ยน รหัสผ่านให้กับ site ที่ใช้ IUSR_HOSTNAME ซะนะ คิดว่า ถ้าเราไม่ไปเปลี่ยน เว็บไซต์จะต้อง มีป๊อปอัพขึ้นมาให้ authen แน่นอน หรือป่าวไม่แน่ใจ ^^' เพราะ เราเปลี่ยนรหัสของ IUSR แล้วนิ เว็บที่ใช้ IUSR จะเป็นรหัสเดิมอยู่ คิดว่านะ แค่คาดการณ์ และความน่าจะเป็น ของผู้เขียนเอง

ทดสอบ
  • สร้าง site จากนั้นลองเข้า site ก็เข้าไปปกติ พอลองเปลี่ยน พาสของ IUSR และทำการเข้าเว็บใหม่อีกรอบ ก็ยังเข้าได้อยู่
  • พอลองเปลี่ยน pass IUSR ที่ Directory Security เป็นพาส อื่นมั่ว จากนั้นเข้า site ก็เข้าไม่ได้
  • พอลองเปลี่ยนเป็นพาสใหม่ที่แก้ให้ IUSR และ เข้า site ก็เข้าได้

ทิป
  • ถ้าเราสร้าง site โดยให้เป็น private ต้อง logon ก่อน ให้เราเอาเครื่องหมายถูกหน้า Enable anonymous access ออกก่อน จากนั้นให้ทำเครื่องหมายถูกหน้า Intregated Windows Authentication
  • แค่แน่ก็โอเคแหละ เมื่อมีใครสักคนจะเข้า site นี้ก็จะมี ป๊อปอัพขึ้นมาให้กรอก username และ password ก็ให้ใส่ username และ password ของ windows นั่นแหละ
  • หรือ อาจเลือก option อื่นๆ ที่อยู่ด้านล่าง Intregated Windows Authentication ประกอบการตั้งค่าด้วยก็น่าจะดีไม่น้อย

สรุป
  • เราสามารถเปลี่ยน password ให้กับ IUSR_HOSTNAME ได้ทาง Manage => Local Users and Groups

Note
  • เห็นว่า IUSR_HOSTNAME windows เค้าจะทำการสุ่มพาสให้เองนะ
  • แล้วเราจะเปลี่ยน password ของ IUSR_HOSTNAME ได้ปะเนี๋ย
  • ก่อนการลบ และ สร้าง site ใหม่เราควรบันทึกค่าต่างๆ ที่ site นั้นมีอยู่เช่น default document , permission, path web เป็นต้น

No comments:

Post a Comment