วันพุธที่ 18 ธันวาคม พ.ศ. 2556

เปลี่ยนสี Email Folder ใน Zimbra 8

ช่วงนี้บ้านเมืองเราดูวุ่นวายร้อนแรงเหลือเกิน ผมเลยขอลดดีกรีเรื่องเกี่ยวกับ Zimbra มาเป็นเรื่องเบาๆ สบายๆ กันหน่อยครับ

สำหรับท่านที่ใช้ Zimbra 8 ถ้าใช้ Theme มาตรฐาน ถ้ารู้สึกว่าสีสรรไม่มี มันจืดๆ ไปนิด มาลองปรับสีของ Email Folder กันครับ

ขั้นตอนการเปลี่ยนสี Email Folder

1) ไปที่ Email Folder ที่เราต้องการเปลี่ยนสี คลิ๊กเมาส์ปุ่มซ้ายที่ Folder หรือกดทีเครื่องหมายสามเหลี่ยมหลังชื่อ Folder จะมีเมนูถูกเปิดขึ้นมา
2)  เลือก Edit Properties  หน้าต่าง Folder Property จะถูกแสดงขึ้นมา ตามรูป



3) กดที่เครื่องหมายสามเหลี่ยม ที่บรรทัด Color เพื่อเปิดเมนูเลือกสี
4) เลือกสีที่ต้องการ
5) กดปุ่ม OK เพื่อทำการบันทึก



เท่านี้ Email Folder ของคุณจะเปลี่ยนสีไปตามตัวอย่างนี้ครับ



หมายเหตุ ผมพบว่า Folder มาตรฐานบาง Folder และ Externel Account จะไม่สามารถเปลี่ยนสีได้ครับ

วันจันทร์ที่ 16 ธันวาคม พ.ศ. 2556

เรื่องที่ Zimbra Admin ทุกคนควรจะ(ต้อง)อ่าน

ช่วงหลังๆ ผมพบว่า มีท่านผู้อ่าน สอบถามปัญหาเกี่ยวกับปัญหาที่ Zimbra โดน hack  กันอยู่เรื่อยๆ บางคนโดน hack  Zimbra account บางคนหนักๆ โดน hack root ของเครื่อง Linux เลย บางคนไม่โดน hack แต่ setup ไม่ดี  สุดท้ายทำให้ Zimbra Server ของเรา กลาย เครื่องส่ง spam ไปก็เห็นกันบ่อย

ที่จริง ผมเคยเขียนบทความที่เกี่ยวข้องกับเรื่องการป้องกันไปแล้วอยู่หลายตอน แต่เนื่องจากการกลับไปดูบทความเก่าๆบน  facebook  อาจะไม่ค่อยสะดวก ไม่ทราบว่ามีบทความอยู่  หรือบางที่เราก็ไม่รู้ว่าควรจะอ่านเรื่องไหน

ผมจึงอยากจะขอรวบรวมเรื่องที่สำคัญ ที่ Zimbra Admin ควรจะทราบที่เกี่ยวข้องกับการ hack ระบบของ zimbra และช่วยแฟน Thai Zimbra ที่ได้กด like fan page นี้ที่หลัง ได้ทราบถึงสิ่งที่ควรทำ ในการป้องกัน  Zimbra Server ของเรา

ตามนี้ครับ

1)  เกี่ยวกับเรื่องที่ว่าทำไม hacker ชอบ hack ระบบ Mail server  เค้า hack แล้ว ได้อะไร
http://thaizimbra.blogspot.com/2013/03/hack-email-account-part-i.html
http://thaizimbra.blogspot.com/2013/04/hacking-email-account-part-ii.html

2) วิธีป้องกันไม่ให้ hack root เข้ามาทาง ssh
http://thaizimbra.blogspot.com/2013/11/linux-hack-ssh.html

โดยปกติ hacker จะเดาชื่อ user และ password โดย user ที่จะโดนเป็นอันดับแรก  คือ root เพราะไม่ต้องเดาชื่อ user มีทุกเครื่อง และ root เป็น user บน Linux ที่ใหญ่ที่สุด ทำได้ทุกอย่าง root โดน hack ก็เป็นอันจบกันครับ เหมือนตั้งเครื่องให้คนอื่นเค้าใช้งานดีๆนี่เอง

และอย่างชล่าใจว่า password root เราตั้งยากแล้ว จะไม่โดน hack นะครับ hacker เค้าไม่ได้นั่งเดา password และลองที่ละตัวนะครับ เค้ามีโปรแกรมทีสร้าง list ของ  password โดยเอาอักขระมาผสมกัน ส่วนการ login เค้าก็ใชเโปรแกรมเช่นกันครับ ทำได้วินาทีละหลายๆครั้ง บางคนใช้คำว่าโดน ยิง ซึ่งดูเหมือนจะเหมาะกว่า  รอดยากครับ

หมายเหตุ การ setup Linux ให้มีความปลอดภัย (Linux Hardening) มีกระบวนการอยู่มากมายครับ  เรื่องนี้เป็นแค่เรื่องเดียวเท่านั้น

3) วิธีการกำหนดให้ user ของ Zimbra ต้องตั้ง password ให้เดาได้ยากๆ
http://thaizimbra.blogspot.com/2013/03/zimbra-tip-and-technique-8-password.html
http://thaizimbra.blogspot.com/2013/03/zimbra-tips-and-technique-9-password.html

เรื่องนี้สำคัญมากครับ admin หลายคนรู้ พยายามจะให้ user ใช้  แต่ user ไม่ยอม อยากได้ password แบบตั้งง่ายๆ จะได้จำง่ายๆ
อันนี้คงขึ้นกับฝีมือ หรือฝีปากของ Admin (หรือหัวหน้าแผนก IT) ในการโน้มน้าว user ซึ่งส่วนใหญ่คนที่มีปัญหามักจะเป็นระดับผู้บริหารหรือคนเก่าคนแก่ขององค์กรขนาดกลางหรือเล็ก  ส่วนบริษัทขนาดใหญ่ ไม่ค่อยเจอครับ

ยิ่งถ้าเป็น บริษัทเอาหุ้นเข้าตลาดหลักทรัพย์ จะไม่เจอปัญหานี้ครับ เพราะเค้าต้องมีผู้ตรวจสอบเกี่ยวกับระบบคอมพิวเตอร์ คอยตรวจทุกปี ซึ่งเค้าจะตรวจเรื่องการตั้ง password ของระบบคอมพิวเตอร์ในบริษัทด้วย ถ้าไม่ผ่าน อาจเป็นสาเหตุหนึ่งให้ถูกถอดรายชื่อจากการจดทะเบียนในตลาดหลักทรัพย์ได้ เพราะถือว่า ระบบคอมพิวเตอร์ไม่ปลอดภัย ฟันธง !!!

คำแนะนำของผมก็คือ คุยตกลงกันให้เรียบร้อยก่อนจะขึ้นระบบ  Zimbra อธิบายถึงข้อเสียว่าจะเกิดอะไรขึ้นบ้าง (อ่านได้จากในข้อ 1)  และเริ่มกำหนดรูปแบบของ password ให้เดายากๆ ตั้งแต่ต้นเลย ถ้าให้ user ใช้งานไปก่อน แล้วค่อยมากกำหนดเรื่องนี้ที่หลัง มีแนวโน้มที่จะเจอ user ไม่เข้าใจ หรืององแง เป็นไปได้สูงมากครับ

4) วิธีกำหนดให้ Zimbra จัดการกับ account ที่ถูก login ผิดๆ ติดๆกัน หลายๆครั้ง ในช่วงเวลาไม่กี่วินาที
http://thaizimbra.blogspot.com/2013/04/zimbra-tip-and-technique-10-failed.html

สำหรับเรื่องนี้ ต่อเนื่องจากข้อ 3)  ครับ ถึงแม้ เราจะตั้ง password ให้เดาได้ยาก แต่เนื่องจาก hacker เค้า login โดยใช้โปรแกรม ซึ่งวิธีนี้ เดาไปเรื่อยๆ ก็มีสิทธิที่จะเดา password ได้ถูกเหมือนกันครับ วิธีป้องกันคือ ต้องล็อก account ซะ ถ้ามีการ login ผิดติดๆกัน ถี่ๆ ผิดวิสัยของคนปกติ  ซึ่งอาจจะทำเป็นการชั่วคราว หรือวิธีที่ล็อกแล้วต้องรอให้ admin มาปลดล้อกให้ก็ได้ครับ

ผมอยากจะบอกว่า

ถ้าอ่านไม่จบ และไม่สามารถนำไปใช้กับ Zimbraที่คุณดูแลอยู่ได้  ก็อย่า(แม้แต่จะคิด)ตั้ง Zimbra ให้คนอื่นใช้งานเลย

อาจฟังดูแรงไป แต่ผมก็หมายความอย่างนั้นจริงๆ ครับ เพราะถ้าคุณตั้ง Zimbra แบบไม่ป้องกันการ hack ตามหัวข้อต่อไปนี้ ผมว่ามันก็ไม่แตกต่างกับกับการตั้ง Zimbra ให้เค้ามา hack ให้เสียชื่อปล่าวๆ

และอย่าคิดว่าการมี Firewall ราคาแพงๆ อยู่แล้วจะช่วยได้ วิธีการ hack พวกนี้ เค้าเค้ามาทางช่องทางที่คุณเปิดให้คนข้างนอกเข้ามาใช้งาน จะปิดก็ทำให้ระบบใช้งานไม่ได้ ในกรณีนี้ firewall ไม่ใช่ประเด็นครับ  ประเด็นอยู่ที่การ setup เครื่อง server มากกว่า

หัวข้อพวกนี้ ไม่ได้จำกัดอยู่แค่ Zimbra เท่านั้น แต่หลายเรื่องสามารถนับไปปรับใช้ กับ  Mail Server อื่นทั้งที่ทำงานอยู่บน Linux หรือไม่ได้ทำงานอยู่บน Linux ด้วย แชร์หรือบอกกล่าวให้คนอื่นๆ ได้ทราบกัน จะเป็นบุญอย่างยิ่งครับ

อีกอย่าง ทำตามที่ผมบอก ไม่ได้หมายความว่าจะปลอดภัย 100% นะครับ แต่เรื่องพวกนี้ เป็นเรื่องแค่พื้นฐานที่เราต้องทำ
ยังมีอีกหลายเรื่องเกียวกับความปลอดภัย ที่ผมยังไม่ได้เขียนถึงครับ ไว้มีโอกาส จะค่อยๆเล่าไปทีละเรื่องละกัน

ขอให้ระบบ Zimbra ทีคุณดูแล ปลอดภัยจากเหล่า hacker ที่ชั่วร้ายนะครับ



วันเสาร์ที่ 23 พฤศจิกายน พ.ศ. 2556

การกำหนดให้ Zimbra Block (หรือไม่ Block) Email ให้กับทุก account ใน Zimbra server

    ก่อนหน้านี้ ผมได้พูดถึงวิธีการ block spam mail โดยกำหนดที่ preference ของผู้ใช้ Zimbra แต่ละคนโดยดูจาก Email address หรือ Domain ต้นทางที่ส่งมา  มีท่านผู้อ่านหลายท่าน ถามมาว่าเราสามารถกำหนดให้ Zimbra block หรือไม่ block mail ให้กับทุก account โดยระบุที่จุดเดียว แล้วให้มีผลกับทุก account  ในระบบ แทนที่ต้องกำหนดแยกที่ละคนเหมือนในบทความครั้งที่แล้วได้หรือเปล่า

คำตอบก็คือทำได้ครับ โดยเราสามารถระบุได้สองอย่าง  คือ

  • whitelist  เป็นรายชื่อของ email address หรือ domain  ที่เราต้องการให้ระบบมองว่า Email ที่ถูกส่งมา จาก email address หรือ domain  นี้ไม่เป็น spam แน่นอน ปล่อยผ่านมาได้ 
  • blacklist เป็นรายชื่อของ email address  หรือ domain ซึ่งถ้า email ถูกส่งมาจาก address หรือ domain ชุดนี้  ระบบจะมองว่าเป็น spam ทันที  และจะถูก block ไว้ 

เปรียบเทียบกับบทความก่อนหน้านี้ ที่พูดถึง วิธี block spam mail สำหรับผู้ใช้ zimbra แต่ละคน  whitelist เหมือน allow list ส่วน blacklist ก็เหมือน deny list ครับ

การ setup ต้องทำที่ Linux command line ตามขึ้นตอนดังนี้ครับ

ขั้นตอนการ setup
1) Login Linux ที่เครื่อง Zimbra โดยต้องเป็น root นะครับ
2) copy  /opt/zimbra/conf/amavis.conf.in ของเดิม เก็บไว้ (สำคัญมาก) เผื่อทำอะไรผิด จะได้เอาไฟล์ที่ backup ไว้ save กลับมา
3) เพิ่มบรรทัดเข้าไปในไฟล์ /opt/zimbra/conf/amavis.conf.in ตามนี้ครับ

read_hash(\%whitelist_sender, '/etc/zimbra/whitelist')
read_hash(\%blacklist_sender, '/etc/zimbra/blacklist');

จากตัวอย่าง ผมใส่ไปสองบรรทัด บรรทัดแรกสำหรับ whitelist บรรทัดที่สองสำหรับ blacklist โดยทั้งสองบรรทัด ผมระบุให้ไปอ่าน whitelist และ blacklist ที่ /etc/zimbra/whitelist และ /etc/zimbra/blacklist ตามลำดับ

สำหรับบรรทัดที่ใส่ ผมคิดว่า ใส่ตรงไหนก็ได้ แต่ต้องไม่แทรก config ของเดิม และต้องอยู่ก่อนบรรทัดท้ายสุด ที่เขียนว่า

1;    # insure a defined return value

ลองดูตัวอย่างตามรูปเลยครับ


4) สร้างที่เกี็บรายขื่อของ whitelist และ blacklist ตามที่เราระบุในข้อ  3)  ตามตัวอย่างคือ  /etc/zimbra/whitelist และ /etc/zimbra/blacklist   และต้องกำหนด owner และ permission ให้ user zimbra อ่านได้ด้วยนะครับ

เสร็จแล้วใส่ ชื่อ domain ที่เราจะระบุเป็น whitelist และ blacklist เข้าไปใน ไฟล์นี้ บรรทัดละ 1 domain หรือ 1 address ครับ

สุดท้ายเราก็จะได้ไฟล์คล้ายๆ กับตัวอย่างนี้ครับ (อันนี้แสดงเฉพาะ blacklist)



5)  Restart Zimbra ด้วยคำสั่ง "service zimbra restart"


ผลลัพท์ที่ได้
ถ้ามี email ส่งมาจาก address หรือ domain ที่อยู่ใน whitelist ระบบจะตัดสินว่า email พวกนี้ไม่เป็น  spam และส่งตรงไปที่ mailbox ของคนรับเลย และไม่ลง spam folder ด้วย
แต่ถ้า email มี address ถูกส่งมาอยู่ใน blacklist ระบบจะไม่ส่ง email ไปให้ user ครับ ระบบจะตัดสินว่าเป็น spam และคัด email นั้นๆ ทิ้งทันที่ และไม่แม้แต่จะส่งไปเก็บอยู่ใน อยู่ใน spam folder ด้วยครับ

การนำไปประยุกต์ใช้
หรือในกรณีที่เรารู้แน่ๆว่า account ที่ส่งหาเรา ไม่มี spam แน่นอนเช่น เป็นคู่ค้า หรือเป็นลูกค้า แต่หลายๆ account ในระบบ zimbra ของเรา ดันมองว่า email ที่ส่งมาจาก account หรือ domain เหล่านั้นเป็น spam  เราสามารถใช้วิธีนี้แก้ปัญหาได้ครับ โดยใส่ Email หรือ ชื่อ  domain ของคู่ค้าของเรา เข้าไปใน whitelist

นอกจากนี้ วิธีนี้เป็นการแก้ปัญหาที่หลายคนพบว่ามีบาง account ใน domain เดียวกัน ส่ง email หากันแล้วระบบมองว่าเป็น spam เลยเอา email ที่ได้รับไปเก็บไว้ใน spam folder

เราก็จัดการแก้โดย set domain ที่อยู่ในเครื่อง zimbra  ไว้ที่ whitelist เลย ระบบก็จะมองว่า เมล์ที่ถูกส่งจาก domain ที่อยู่ในเครื่องเราเองไม่เป็น spam อีกต่อไปครับ

วันพุธที่ 6 พฤศจิกายน พ.ศ. 2556

วิธีป้องกัน Linux ไม่ให้ถูก hack ผ่าน ssh

ขอย้ำอีกทีนะครับ

สำหรับ คนที่ติดตั้ง zimbra แล้วเปิด port 22 (ssh) ให้ ssh login เข้ามาจาก internet ได้
แนะนำให้ setup sshd ไม่อนุญาติให้ root login เข้ามาที่ port 22 โดยตรง
เพื่อป้องกัน hacker (ถ้าไม่ทำ โดน hack มาหลายรายแล้ว)
วิธีการคือ edit /etc/ssh/sshd_config (Redhat, Fedora, CentOS) แล้วแก้หรือเพิ่มบรรทัด PermitRootLogin เป็น no ตามตัวอย่างข้างล่าง

PermitRootLogin No

เสร็จแล้ว restart sshd ด้วยคำสั่ง

service sshd restart

หรือ reboot เครื่องนะครับถ้าทำแบบนี้แล้ว ถ้าอยากจะเป็น root ต้อง login ที่ console หรือ login ทาง ssh โดยใช้ user อื่น แล้วคำสั่ง su เอานะครับ

ข้อควรระวัง 
ก่อนจะ setup เพื่อไม่ให้ root login ผ่าน ssh ควรจะสร้าง user อื่นไว้ก่อน สำหรับ login ผ่านทาง ssh เดี๋ยวจะ remote login ไม่ได้

วันอังคารที่ 5 พฤศจิกายน พ.ศ. 2556

Zimbra External Account


Zimbra มีความสามารถอีกอย่างที่น่าสนใจคือ ผู้ใช้แต่ละคน สามารถกำหนดให้ Zimbra Account ของตัวเอง สามารถดึงหรือ sync  email  ที่อยู่บน Email server เครื่องอื่นได้ (ผมขอเรียกว่า External Email Server ละกัน)  โดยใช้การติดต่อแบบ pop3 หรือ imap ซึ่งเปรียบเสมือนการทำให้ Zimbra เป็น Email Client ได้นั่นเอง 
Zimbra เรียกความสามารถนี้ว่า External Account  ครับ 

ประโยชน์ของ External Account
ข้อดีของการใช้  External Account ก็คือ ทำให้เราสามารถอ่าน Email ของเรา ที่กระจายอยู่บน Email Server ต่างๆ จาก    account ของเราบน zimbra เพียงที่เดียวครับ 

การสร้าง External Account 
สำหรับผู้ใช้งาน Zimbra ปกติ  External Account จะถูกเปิดให้ใช้งานได้อยู่แล้วครับ  วิธีการสร้าง External Account ทำได้โดยการ login ที่ web client แล้ว ทำตามขั้นตอนนี้ครับ 



1) ไปที่ Prefrerences Tab 
2) เลือก Accounts
3) กดที่ปุ่ม "Add External Account"
4) ใส่ข้อมูลของ External Account Settings ตามนี้ครับ
Email Address: Email address ที่จะใช้ส่ง email  สำหรับ External Account
Account Name: ชื่อ External Account ที่เราอยากให้เห็นบน Zimbra
Account Type: เลือกว่า จะติดต่อ โดยใช้ pop3 หรือ imap
Username of Account: ชื่อ user ที่ใช้ในการเข้าใช้  External email server
Email Server: ชื่อ host ของ External email server ที่เราต้องการอ่าน Email
Password :  password ของ account บน External Email server
Advance Account Settings :  เป็นการกำหนดการเชื่อต่อเพิ่มเติม สามารถกำหนดได้ 2 อย่างครับ
    -  Use an Encrypt Connection (SSL) when access this server :
          เป็นการกำหนดว่า ให้ใช้  pop3 หรือ imap แบบ SSL (pop3s หรือ imaps) เพื่อติดต่อกับ Server หรือไม่ ถ้าใช้ก็ติ๊กถูก
     -  Change (pop3/imap) port
          เป็นการเปลี่ยนเบอร์ port จากมาตรฐานที่ใช้ในการเชื่อมต่อ ตาม protocol ที่กำหนด ถ้าต้องการเปลี่ยน ให้ติ๊กถูกหน้าบรรทัดนี้  และระบุเบอร์ port ด้วยครับ

ปุ่ม Test เป็นการทดสอบว่า จากข้อมูลที่กำหนดใน External Account Settings   ตัว Zimbra สามารถติดต่อ กับ External email server ได้หรือเปล่า

5) ทำการบันทึก ค่าที่ตั้งไว้ โดยกดที่ปุ่ม Save ที่มุมบนซ้าย
ตอนที่เรา กดปุ่ม Save ระบบ จะทำการตรวจสอบการเชื่อมต่อ เหมือนกับที่เรากดปุ่ม Test ครับ แต่งแม้การตรวจสอบจะไม่ผ่าน แต่ Zimbra ก็จะยอมให้เราบันทึกค่าที่เราป้อนไว้ครับ แต่  External Account นี้จะไม่ทำงาน จนกว่าเราจะแก้ค่าให้ถูกต้อง และทดสอบแล้ว ผ่านครับ

ผลลัพท์ที่ได้
ถ้าทุกอย่างถูกต้อง กลับไปดูที่ Mail tab จะเห็น email folder เพิ่มขึ้นมาอีกหนึ่งอัน โดยจะมีชื่อเหมือนกับ Account Name ที่เราระบุไปตอนสร้าง External Account ครับ

ตามรูปตัวอย่างด้านล่าง  จะเห็นว่ามี email folder ของ external account ชื่อ "My gmail account" ครับ



ส่วน ตัวเลขในวงเล็บ หลังชื่อ folder จะเป็นจำนวน email ที่ยังไม่ได้อ่าน ที่อยู่ใน folder ครับ เหมือนกับ email folder ทั่วๆ ไป ถ้าสังเกตุให้ดีๆ หลังสร้าง External account ค่านี้จะค่อยๆเพิ่มขึ้น ตาม จำนวน Email ใน external account ที่ zimbra ดูด หรือ sync มาให้ครับ

ข้อควรระวัง
สิ่งที่ควรทราบก็คือ เมล์ใน External Account กินเนื้อที่ของ Account ของ user นะครับ ถ้าระบบ Zimbra ของคุณมีการจำกัด quota การใช้งาน disk อาจจะทำให้ quota เต็มได้ครับ
และในขณะเดียวกัน เมล์ใน External Account ก็กินเนื้อที่บน Disk ของ Zimbra server ด้วย ซึ่งถ้ามี user  สร้าง external account ไปยัง mail server พวก gmail หรือ hotmail ที่ให้เนื้อที่เก็บ disk เยอะๆ อาจจะทำให้เนื้อที่ disk บน Server เต็มเร็วกว่าปกติได้ครับ

วันเสาร์ที่ 2 พฤศจิกายน พ.ศ. 2556

วิธี Block spam mail สำหรับผู้ใช้ zimbra แต่ละคน

ผู้ใช้ Zimbra แต่ละคน สามารถระบุให้ระบบ Zimbra ไม่ให้รับ email  ที่คาดว่าจะเป็น spam mail  ตามที่ตัวเองต้องการได้ครับ วิธีการนี้จะดูจาก email address ของคนส่งเป็นหลัก

ขั้นตอนการ setup
ผู้ใช้ Zimbra ต้อง login web client เหมือนตอนที่เราจะใช้งาน Zimbra ผ่าน web ก่อนนะครับ เสร็จแล้ว ทำตามขั้นตอนนี้เลย


1)  ไปที่ Preferences Tab
2)  เลือก Mail
3)  ที่ หน้าจอคอลัมน์ด้านขวา (Content Pane) ให้เลื่อนลงมาจนเจอหัวข้อ  Spam Mail Options  ในส่วนนี้ จะเห็นว่ามีอยู่สองส่วนแยกกัน  คือ Block message from และ Allow message from

Block message from: เป็นการระบุว่า จะไม่รับ email จากใคร
Allow message from: เป็นการระบุว่า จะอนุญาตให้ รับ email จากใคร
  • การระบุในช่อง Block และ Allow  นอกจากจะระบุเป็น email address ได้แล้ว ยังระบุ เป็น domain ได้ด้วยครับ ซึ่งถ้าระบุเป็น domain จะเป็นการกำหนดให้ระบบดีด email ที่ถูกส่งมาจาก address ที่อยู่ใน domain ที่ระบุทิ้งครับครับ  จากตัวอย่าง ผมระบุเป็น xzimbra.com  ซึ่งก็คือ ผมอยากให้ zimbra ดีด email ที่ถูกส่งมาจากใครตามใน domain xzimbra.com ทิ้ง 
  • เราสามารถกำหนดไม่ไห้รับ email จาก domain หนึ่ง แต่เปิดให้เฉพาะบางคนได้ครับ เช่น ผมไม่อยากรับ email จากโดเมน  xzimbra.com ยกเว้นถ้าถูกส่งจาก siwat@xzimbra.com  เราจะระบุตามนี้ครับ 
    • Block message from : xzimbra.com
    • Allow Message from : siwat@xzimbra.com 
  • การเพิ่มชื่อ email address หรือ domain ทำได้โดย ป้อนชื่อในช่อง หน้าปุ่ม Add แล้วกดปุ่ม Add 
  • ส่วนการลบชือ ให้ เลือกชื่อ แล้วกดปุ่ม Remove 
4) และสุดท้าย อย่าลืมกดปุ่ม Save นะครับ เป็นอันเรียบร้อย

การทำงานของระบบ
หลังจากที่เรา setup เรียบร้อย ถ้ามีคนส่ง Email จาก Address หรือ Domain ที่เรากำหนดไว้ Zimbra จะรับ Email ไว้ แล้ว ลบทิ้งจากระบบเลยครับ email จะไม่ถูกส่งไปอยู่ใน Spam หรือ Trash Folder  ผู้ใช้ Zimbra จะไม่รู้เลยว่ามี email  ส่งมาจาก addess หรือ domain ที่ถูก block ครับ 

วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556

วิธีระบุความสำคัญ (Priority) ของ Email ที่ต้องการส่งใน Zimbra

บน Zimbra เราสามารถส่ง Email ไปยังผู้รับ โดยระบุความสำคัญ หรือ Priority ที่เกี่ยวข้องกับ Email ที่ส่งได้ครับ  วิธีการนี้ ผู้รับ จะเห็นว่า Email  ที่เราส่งไปมีความสำคัญแค่ไหนโดยไม่จำเป็นต้องอ่านข้อความใน Subject หรือ Email เลย   โดย Priority ที่ระบุได้ มี 3 ระดับครับ คือ

1)  High หรือสำคัญมาก แทนด้วยรูปลูกศรสีแดงชี้ขึ้น
2)  Normal หรือ ระดับปกติ  อันนี้เป็นค่า Default Priority
3)  Low หรือสำคัญน้อย แทนด้วยรูปลูกศรสีฟ้าชึ้ลง

วิธีการระบุ Priorityใน  Email ที่จะส่ง
หลักจากที่เรากดปุ่ม "New Message" เพื่อจะเขียน Email ใหม่Compose Tab จะถูกเปิดขึ้นมา
ในหน้าจอนี้  ดูที่ด้านขวาสุดของบรรทัดที่ให้เราใส่  Subject ของ Email จะเป็น drop down menu ที่ให้เลือกใส่ priority ของ email ได้ครับ

การดู priority ของ Email ที่ได้รับ
ถ้าเรากำหนดรูปแบบการแสดงผลใน Mail tab เป็นแบบ "Reading Pane On The  Right"  ในแต่ละ Email ที่แสดงอยู่ใน Content Pane (ช่องกลางที่แสดง Email  ทีมีอยู่)  ถ้า Email ที่ได้รับ มี Priority  เป็น High หรือ Low  ที่หน้า Subject จะมีเครื่องหมาย Priority ปรากฏอยู่ ตามรูปครับ


แต่ถ้าเรากำหนดการแสดงผล เป็นแบบ  "Reading Pane At The Bottom"  หรือ "Reading Pane Off" ในส่วนของ Content Pane ในคอลัมน์ ที่มีหัวข้อเป็นเครื่องหมาย ลูกศรชี้ขึ้น จะปรากฎ  รูป Priority  ถ้า Email  ที่ได้รับ มี Priority เป็น High หรือ Low เช่นกันครับ


หมายเหตุ
  1. ถ้าคุณสงสัยว่า  "Reading Pane On the Right" "Reading Pane At The Buttom" คืออะไร ลองดูใน บทความเรื่อง วิธีเปลี่ยนมุมมองใน Mail Tab ของ Zimbra 8 ครับ 
  2. ถ้าส่ง Email ไปยังระบบอื่น ที่ดู Email Priority ได้  คนรับจะเห็น priority ที่ส่งจาก Zimbra ได้ครับ ในขณะเดียวกัน ระบบอื่นที่ระบุ Email priority ได้ ส่งมาให้ Zimbra ก็จะเห็น priority เช่นกันครับ 

วันพุธที่ 25 กันยายน พ.ศ. 2556

วิธีเปลี่ยนมุมมองใน Mail Tab ของ Zimbra 8

สำหรับผู้ที่ใช้งาน Zimbra 8 เราสามารถเปลี่ยนรูปแบบการแสดงผลใน Mail Tab ได้สามแบบครับ ก่อนจะพูดถึงเรื่องนั้น ผมขออธิบายการแบ่งหน้าจอในหน้า Mail Tab สักเล็กน้อยครับ

ในหน้า  Mail Tab  แบ่งหน้าจอได้เป็นสามส่วน ตามนี้ครับ 
  1. Overview Pane เป็นส่วนที่ใช้แสดงถึง Folder ของ  Email ที่มีอยู่ 
  2. Content Pane เป็นส่วนที่แสดงถึงรายการของ Email  ที่อยู่ใน Folder ที่เราเลือก Overview Pane
  3. Reading Pane เป็นส่วนที่ใช้แสดงข้อมูล ของ Email แต่ละฉบับ ที่เราเลือกใน Content Pane
ตัวอย่าง ตามนี้ครับ 


เราสามารถปรับตำแหน่ง ของ  Content Pane กับ Reading Pane ได้ครับ โดยกดที่ปุ่ม View ที่อยู่ บริเวณมุมบนขวา 


 จากรูป จะเห็นว่ามีตัวเลือกให้เราสามแบบครับ

   1. Reading Pane At The Buttom  แบบนี้ Content Pane จะอยู่ด้านบน  Reading Pane จะอยู่ด้านล่าง (ส่วนตัว ผมชอบแบบนี้ มากกว่า Zimbra version ก่อนๆ default ก็ใช้แบบนี้ครับ

   2 . Reading Pane On the Right  Content Pane จะอยู่ตรงกลาง ส่วน Reading Pane จะอยุ่ด้านขวา (แบบนี้เป็น default ที่มากับ Zimbra 8 ครับ)

   3. Reading Pane Off แบบนี้ ส่วน Reading Pane จะหายไป ถ้าเราต้องการจะดูเนื้อหาของ Email เราต้อง  double click ที่  Email  Zimbra จะเปิด tab ใหม่ ขึ้นมาแสดงข้อมูลภายใน Email  ครับ
       แบบนี้มีข้อดีก็คือ ทำให้หน้าจอแสดง Content Pane เพื่อดู Email ที่มีอยู่ทั้งหมด ได้เต็มที่ และก็ต้องแลกกับความไม่สะดวกเมื่อเราต้องการดูเนื้อหาภายใน Email แต่ละฉบับ 

ชอบแบบไหน เลือกปรับแต่งตามสบายเลยครับ


วันพุธที่ 18 กันยายน พ.ศ. 2556

Enable checkbox เลือก email ใน Zimbra 8

เราสามารถเปิดการใช้งาน checkbox สำหรับเลือกจัดการ email (ย้าย, ลบ ...) ทีละหลายๆ email ได้ ดังรูปตัวอย่างครับ



ปกติใน Zimbra 8  feature นี้จะถูกปิดอยู่ครับ วิธีการเปิด user สามารถทำได้เอง จาก Web Client หรือ admin เป็นคนจัดการให้ จาก Web Admin Console ครับ

วิธีการเปิดการใช้งานจาก Web Clent

หลังจากที่ user  login zimbra ผ่านทาง web client แล้ว ให้ไปที่

1) Preference tab
2) ไปที่ General
3) ดูที่หัวข้อ Other
4) ติ๊กถูกที่บรรทัด Settings: Dispaly checkboxes to quickly select items in list
5) Save (อย่าลืมนะครับ)

ถ้าจะให้ใช้งานได้ทันที่ ให้ Reload  Web Browser  ดูตัวอย่างตามรูปเลยครับ


สำหรับ Admin ถ้าต้องการ Enable feature นี้ให้กับ user  ทำได้ดังนี้ครับ

วิธิเปิดการใช้งานจาก Admin Console
 
หลังจากที่ login   Admin Console (https://....:7071)  เลือก user ที่ต้องการแก้ไข ( Manage >> Account >> เลือก Account >> Edit )

1) ไปที่ preference
2) ดูที่หัวข้อ General Options
3) ติ๊กถูกที่บรรทัด Show selection checkbox for selecting email ....
4) สุดท้าย อย่าลืมกด Save นะครับ (อยู่แถวๆ มุมบนขวาของช่องกลาง)


ถ้าต้องการแก้ใขเป็นกลุ่ม หรือทุกคน ทำได้โดยการ Edit ที COS ก็ได้ครับ หลังจากเลือก  COS แล้ว ขั้นตอนการแก้ไข จะคล้ายกับรูปด้านบนครับ


วันจันทร์ที่ 9 กันยายน พ.ศ. 2556

วิธีเปลี่ยนภาษาที่แสดงผลบน Zimbra (Zimbra Tips & Techniques # 16)


ผมเคยเจอปัญหาว่า ใช้ Chrome กับ Zimbra แล้วเห็นเมนูและข้อความต่างๆที่แสดงผลเป็นภาษาไทย แทนที่จะเป็นภาษาอังกฤษ พอจะเปลี่ยนก็หาไม่เจอ ไม่รู้ว่าอยู่ตรงไหน

ปกติ Default ของ zimbra จะแสดงผลตามที set ไว้ใน web browser แต่เราสามารถกำหนดการแสดงผลให้เป็นภาษาใดภาษาหนึ่งโดยเฉพาะโดยไม่เปลี่ยนตาม browser ได้ครับ วิธีนี้สามารถแก้ปัญหาเหมือนที่ผมเจอได้

สำหรับการเปลี่ยนภาษาของ ผู้ใช้ที่กำลัง login web client อยู่ มีขึ้นตอนตามนี้ครับ

วิธีเปลี่ยนภาษา จาก web client

  1. ให้ไปที่ Preferences tab >> General  
  2. ดูที่ Sign in Options จะอยู่ที่บรรทัดที่เขียนว่า  Language ครับ
  3. จากบรรทัดนี้ เราสามารถเลือก ภาษาจาก drop down menu ได้ เสร็จแล้วก็กด  save 




แต่ถ้าจะเปลี่ยนโดยผ่านทาง Admin Console ซึ่งวิธีนี้ คนที่เป็น Admin สามารถเปลี่ยนภาษาที่ใช้แสดงผลของ user คนอื่นๆในระบบได้ด้วย มีขั้นตอนและหน้าจอแตกต่างกันนิดหน่อย ตามนี้ครับ

วิธีการเปลี่ยนภาษาจาก Admin Console 

  1. Manage >> Accounts >> เลือก Account >> Edit (กดปุ่มเมาส์ขวา เพื่อเปิดเมนู) >> Preferences 
  2. ดูที่ส่วน General Options ครับ บรรทัดท้ายสุดของส่วนนี้  ที่เขียนว่า Language เช่นกันครับ
  3. แก้ภาษา แล้วกด Save 




 ถ้าจะให้หน้าจอเปลี่ยนภาษาที่ใช้แสดงผลทันทีแค่สั่งให้ web browser  ให้ load หน้าจอใหม่ (reload) เท่านี้ ก็จะเปลี่ยนภาษาที่ใช้แสดงผลของ Zimbra ได้ตามที่ต้องการครับ

วันจันทร์ที่ 2 กันยายน พ.ศ. 2556

วิธีดู Disk Quota สำหรับผู้ใช้งาน Zimbra (Zimbra Tips & Technique #15)


ก่อนหน้านี้  ผมได้พูดถึงวิธีการที่ Zimbra Admin จะดู Disk Quota ของ User ทั้งหมดไปแล้ว หลายคนอาจมีคำถามว่า แล้วถ้า User ในระบบ Zimbra อยากรู้ว่า Disk quota ของตัวเอง มีอยู่เท่าไหร่ ถูกใช้ไปเท่าไหร่ จะทำอย่างไร 

วิธีการง่ายๆ ครับ User ที่กำลังใช้งาน  Web Client หรือ Web Mail ของ  Zimbra   ถ้าเป็น Zimbra 8  สังเกตุที่มุมบนขวา ข้างๆ search bar จะมีชื่อของ Account ที่กำลัง Login อยู่ ลาก mouse pointer มาวางที่ชื่อนี้ (ไม่ต้องคลิ๊กนะครับ วางเฉยๆ) จะมี ข้อความปรากฏขึ้นมาเหมือนในรูปคตัวอย่าง  บอกว่า Quota การใช้งาน Disk ของคุณ ใช้ไปกี่ % แล้ว ใช้ไปเท่าไหร่ Quota ที่ได้รับทั้งหมดมีเท่าไร




ง่ายๆ เท่านี้เองครับ 

วันอังคารที่ 27 สิงหาคม พ.ศ. 2556

ZebraTray : Email Notifier ตัวใหม่ สำหรับ Zimbra

มีหลายๆท่าน สอบถามผมเกี่ยวกับโปรแกรม Email Popup Notifier

สำหรับท่านที่ยังไม่เคยเล่น โปรแกรมพวกนี้จะทำงานอยู่บน Desktop คอยตรวจดูว่า มี Email ใหม่ เข้ามาที่ Mailbox ของเราบน Zimbra หรือเปล่า ถ้ามี มีจะ Popup ขึ้นมาบอกที่หน้าจอ หรือที่ที่ Window Tray

เมื่อก่อนมีตัวนึงครับชื่อ  Zimbra Notifier  แต่หลังๆ ตัวนี้ไม่ฟรีแล้ว อีกตัวนึงที่พอไหวคือ Yahoo Browser Plus แต่เห็นมีบางท่านบอกว่าตัวนี้ติดที่ ลงบน Windows 8 ไม่ได้ ผมคิดว่า Yahoo คงเลิกทำให้ Support Zimbra แล้วครับ เพราะ  Yahoo ขาย Zimbra ไปให้คนอื่นแล้ว

มีอีกตัวที่ผมขอนำเสนอครับ ชื่อ ZebraTray  version ยังเป็น Pre Release Version อยู่เลยครับ มีข้อจำกัดอยู่ที่ มันจะเช็คเมล์ โดยติดต่อ Zimbra Server ผ่านทาง  https port 443 เท่านั้นครับ ซึ่งวิธีการติดต่อนี้จะ เหมือนกับเวลาที่เราติดต่อกับ Zimbra ทาง web browser ครับ ซึ่งถ้าใช้ Zimbra 8 การใช้งานโดยปกติ จะใช้  port นี้อยู่แล้ว แต่ถ้า Zimbra Server ของคุณ เก่ากว่า version 8 สามารถเปลี่ยนให้ติดต่อโดยใช้ https port 443 ได้ครับ ดูได้จากจากบทความเรื่อง การกำหนด Port ที่ใช้เข้าถึง web client  ที่ผมเคยเขียนไปแล้ว

ตอนนี้หน้า web ยังเป็น ภาษารัสเซียอยู่เลย แต่ไม่เป็นไรครับ Download ตาม Link นี้  ได้มาแล้วก็จัดการลงเลย ขึ้นตอนการติดตั้งไม่ได้ซับซ้อนอะไรครับ พอลงเสร็จจะมีหน้าให้ setup ตามนี้ครับ




การ Setup มีหน้าเดียวครับ ใส่ข้อมูลตามนี้

  1. Server: ใส่  Hostname หรือ IP Address ของ Zimbra Server 
  2. Login และ Password  ใส่ชื่อ Account และ Password เหมือนที่เรา login Zimbra นั่นและครับ  
  3. ติ๊กถูกที่ Ignore SSL Errors ด้วย 
  4. และถ้าต้องการให้มีเสียงเวลามีเมล์ใหม่มา ติ้กถูกที่ Sound  
เสร็จแล้ว กด OK เป็นอันเรียบร้อยครับ

จากนี้จะมีโปรแกรมชื่อ ZebraTray อยู่ที่ System Tray ของ Windows แล้วครับ ถ้ามีเมล์ใหม่มาที่ Zimbra Account เราที่ได้ตั้งไว้ จะมีข้อความพร้อมข้อมูลของ email ใหม่ popup ขึ้นมา


นอกจากนี้ เรายังสามารถกดเมาส์ขวา ที่ ZimbraTray icon ใน System Tray เพื่อดูเมล์ (View Mail) โดย โปรแกรมจะเรียก Web Browser และทำการ Login ให้  ตามข้อมูลที่เราใส่ไว้ ใน ZebraTray


ในเมนูนี้ เรายังสามารถแก้ไข Config ได้โดยเลือก Settings  ได้ด้วยครับ

ลองใช้งานกันดูนะครับ มีคำถามหรือติดตรงไหน สอบถาม ThaiZimbra ได้ครับ
สุดท้าย ต้องขอขอบคุณ น้อง Fuse  ที่ได้ช่วยทดสอบและจัดหารูปประกอบให้ครับ

วันพุธที่ 21 สิงหาคม พ.ศ. 2556

วิธีดู mailbox quota ของ account ทั้งหมด (Zimbra Tips and Technique # 14)


จาก Admin Console เราสามารถขอดูได้ว่า แต่ละ Account มีการกำหนด mailbox quota ไว้เท่าไหร่ ใช้ไปเท่าไหร่ เนื้อที่ที่ใช้ไป เป็นกี่เปอร์เซนต์ของ quota ที account นั้นได้สิทธิในการใช้งาน

วิธีการ (zimbra 8 ) คือ จาก Admin console ที่เมนูด้านซ้ายของจอ เลือก

Monitor>> Server Statistics >> เลือกชื่อ Service Hostname (อยู่ box ด้านซ้ายของเมนู) >>  Mailbox Quota
จะได้หน้าจอเหมือนกับตัวอย่างในรูป



จากหน้าจอนี้ เราสามารถเรียงลำดับการแสดงผลตามข้อมูลในแต่ละคอลัมน์ได้ โดยการ click ที่บรรทัดบอกชื่อของคอลัมน์ (Account, Quota, Mailbox Size, Quota Used) ถ้าเรากดซ้ำที่คอลัมน์เดิม จะเป็นการสลับการเรียง (จากน้อยไปมาก หรือมากไปน้อย) วิธีการนี้สดวกดีครับ ไม่ต้องไปยุ่งกับ command line ให้ยุ่งยาก

วันศุกร์ที่ 9 สิงหาคม พ.ศ. 2556

สร้าง lvm snapshort

หลังจากที่เราได้เรียนรู้การสร้าง  Filesystem จาก Logical Volume กันไปแล้ว ในตอนนี้ จะถึงเนี้อหาที่ทุกคนรอคอยแล้วครับ คือการสร้าง snapshot ของ Filesystem กันครับ
เหมือนที่ผมเคยเกริ่นไปแล้ว การสร้าง snapshot ก็คือ การการสร้าง filesystem ขึ้นมาอีกหนึ่งอัน ซึ่งจะมีข้อมูลเหมือนกับ filesystem ต้นแบบ ณ.เวลาที่เราสร้าง snapshot  หรือกล่าวอีกนัยหนึ่งก็คือ เราสร้าง filesytem อีกอันขึ้นมาที่มีข้อมูลเสมือนเราหยุดเวลาของ filesytem ตัวต้นแบบไว้ครับ

ทำไมเราต้องทำ snapshot ในกรณีของ Zimbra เราจะสร้าง snapshot ของ /opt/zimbra ในขณะที่  zimbra ถุก   หยุดการทำงาน (stop) อยู่ เพื่อที่เราจะได้ backup /opt/zimbra ได้ โดย ไม่ต้อง stop zimbra เป็นเวลานาน ขึ้นตอนก็มีประมาณนี้ครับ

1) stop zimbra
2) สร้าง snapshot ของ /opt/zimbra
3) start zimbra
4) mount snapshort ของ /opt/zimbra และทำการ backup
5) ลบ snapshot ทิ้ง

ซึ่งในขึ้นตอน 2) จะกินเวลาไม่นานครับ ซึ่งถ้าเราไม่ทำแบบนี้ เราจะต้อง backup /opt/zimbra ให้เสร้จก่อนที่จะสามารถ start zimbra  กลับขึ้นมาได้ ซึ่งถ้าข้อมูลใน /opt/zimbra มีขนาดใหญ่ การ backup จะ กินเวลานาน ซึ่งก็หมายถึง Zimbra จะต้องหยุดเป็นเวลานานด้วยครับ

ถึงตรงนี้ หลายคนอาจจะมีคำถามว่า แล้วเรา backup /opt/zimbra ในขณะที่ zimbra ยังทำงานอยู่ได้ไหม คำตอบก็คือ ได้ครับ แต่ ข้อมูลที่ backup ไป เมื่อ  restore กลับมา โอกาสที่จะใช้งานไม่ได้มีสูง (ตัวใครตัวมัน) เพราะ zimbra เอง มีส่วนที่เป็น mysql database และ ldap ซึ่งถ้า backup file ตรงๆ ขณะที่โปรแกรมทั้งสองทำงานอยู่ อาจจะมีปัญหาได้

วิธีการสร้าง snapshot  filesystem 

ใช้คำสั่ง  lvcreate ตามรูปแบบนี้ครับ

 lvcreate  -Lsize -s -n snapshot_dev_name  original_lv_dev_name

size เป็นขนาดเนี้อที่ที่เราจองไว้ให้ snapshot filesystem นี้ครับระบุหน่วยด้วยได้  เช่น 500m หรือ 1G
snapshot_dev_name เป็นชื่อของ device ที่เราจะสร้างครับ ระบุชื่ออย่างเดียว ไม่ต้องระบุเป็น full pathname (ขึ้นต้นด้วย /dev/...) ก็ได้ครับ
original_lv_dev_name เป็นชื่อของ Logical Volume ตัวต้นแบบที่เราจะทำ snapshot อันนี้ต้องระบุชื่อ device แบบเต็ม (ขึ้นต้นด้วย /dev) ครับ


จากตัวอย่างในรูป ผมสร้าง snapshot ที่ชื่อ zimbra_snap จาก Logical Volume /dev/mapper/vol2-lvol0 (หรืออีกชื่อก็คือ /dev/vol2/lvol0)  ผมจะได้ snapshot device ที่ชื่อ /dev/vol2/zimbra_snap

จากนั้น เราจะได้ snapshot  device อยู่ใน volume group เดียวกันกับตัวต้นแบบครับ เราสามารถ mount และ backup ได้เลย โดยใช้คำสั่ง mount  อยาลืมสร้าง directory ที่จะเป็น mount point กันก่อนนะครับ

หลังจากที่ backup เสร็จ เรียบร้อย เราต้องลบ snapshot logical volume นี้ทิ้งเสียครับ จะได้ไม่เปลืองเนื้อที่ โดย unmount  ก่อน และใช้คำสั่ง lvremove ซึ่งมีรูปแบบตามนี้ครับ

lvremove  snapshot_full_pathname

snapshot_full_pathname เป็นชื่อเต็มของ snapshot logical volume ครับ (/dev/....)



เท่านี้ก็เป็นอันเสร็จสิ้นครับ

วันจันทร์ที่ 29 กรกฎาคม พ.ศ. 2556

setup filesystemที่สร้างใหม่ ให้ mount อัตโนมัติ

ในครั้งที่แล้ว ผมได้พูดถึงวิธีการสร้าง filesystem จาก  Logical Volume เหลืออีกขั้นตอนหนึ่งคือการกำหนดให้ filesystem ที่เราสร้าง  mount อัตโนมัติทุกครั้งที่เครื่อง boot

วิธีการง่ายๆ ครับ คือเพิ่มบรรทัดในไฟล์ /etc/fstab ไฟล์นี้ จะเป็นที่เก็บข้อมูลที่ช่วยในเราในการ mount  filesystem เข้า file structure ครับ โดย แต่ละบรรทัดใน /etc/fstab จะมีรูปแบบดังนี้ครับ

block_device    mount_point   filesystem_type   mount_options    fs_dump   check_on_boot

block_device : เป็นชื่อ device ที่จะทำการ mount
mount_point  :  directory ที่จะ mount filsystem
filesystem_type : ชนิดของ filesystem (ต้องตรงกับ ชนิดของ block_device)
mount_options  :  option ของการ mount ถ้ามี option  หลายตัวใช้ "," คั่นแต่ละ option ปกติเรากำหนดให้เป็น defaults
fs_dump :  เป็นการระบุว่า ให้คำสั่ง dump ทำการเก็บข้อมูลของ filesystem นี้ไว้(โดยใช้คำสั่ง dump) หรือเปล่า field นี้เป็นปัจจุบันนี้ field นี้ไม่ได้ใช้แล้วครับ แต่เราต้องระบุค่าไว้
check_on_boot : เป็นการบอกลำดับของการตรวจสอบ filesystem นี้ขณะที่มีการ  boot (โดยใช้คำสั่ง fsck )  ปกติ สำหรับ filesystem ทั่วไป ค่าจะเป็น 2 ยกเว้น  root filesystem (mount ที่  / ) ค่าจะเป็น 1  ครับ  ส่วน  filesystem ที่ไม่ต้องการใช้ ตรวจสอบ ค่าจะเป็น  0

จากตัวอย่างในครั้งที่แล้ว ผมจะเพิ่มบรรทัดนี้เข้าไปใน /etc/fstab


/dev/vol2/lvol0         /opt/zimbra         ext4     defaults 1   2

เป็นการบอก Linux ว่า ให้ mount /dev/vol2/lvol0  ซึ่งเป็น filesystem ชนิด ext4 ไปที่ /opt/zimbra  โดยใช้ default mount option ของ ext4 ครับ  ส่วนสอง field สุดท้าย ระบุเป็น 1 กับ 2 ไป

อีกอย่างนึงครับ เวลาเราจะ mount filesystem ไปที่ directory ไหน หรือที่ภาษา *nix (พวก Unix และ linux) เรียกว่า mount point ต้องดูให้ดีนะครับว่า directory นั้นต้องมีอยู่ ถ้าไม่มี ก็จัดการสร้าง directory  นั้นซะ
หลังจากเพิ่มบรรทัดนี้ ทดสอบการ mount โดยใช้คำสั่ง mount -a (mount all) หรือ reboot เครื่อง ก็ได้ครับ จะเห็น filesystem  ที่เราเพิ่งเพิ่มเข้าไปถูก mount  โดยอัตโนมัติ

หลังจากพูดปูพื้นฐานมาซะหลายตอน ครั้งหน้าผมจะพูดถึงวิธีการทำ snapshot logical volume เพื่อ backup zimbra กันนะครับ


วันอังคารที่ 16 กรกฎาคม พ.ศ. 2556

การนำ Logical Volume มาสร้างเป็น filesystem

จากตอนที่แล้ว เราได้ Logical Volume ที่พร้อมจะนำสร้างเป็น filesystem และ ไปใช้งานแล้วครับ

แต่ก่อนอื่น เราจะต้องนำ Logical Volume ที่ได้นี้ มาสร้างเป็น filesystem กันก่อนครับ วิธีการจะเหมือนกับการสร้าง filesystem จาก disk partition ทั้วไปครับ  เราใช้คำสั่ง  mkfs  ซึ่งมีรูปแบบดังนี้ครับ

mkfs -t fs_type  partition_name

fs_type  คือ ชนิดของ filesystem โดยปกติ จะเป็น ext3 หรือ ext4 ใน Linux รุ่นใหม่ๆ  จะใช้เป็น ext4 ครับ
partition_name คือ ชื่อของ disk partition ที่เรากำลังจะสร้างเป็น filesystem ในกรณีของเรา ก็คือชื่อของ Logical Volume โดยเราต้องระบบแบบเต็มคือขึ้นต้นด้วย /dev นะครับ โดยปกติ เป็น /dev/pv_name/lv_name

pv_name  จะเป็นชื่อของ physical volume ที่ logical volume นั้นอยู่ ส่วน lv_name เป็น ชื่อของ logical volume  ดังนั้นจากบทความที่แล้ว ชื่อของ disk partition  จะเป็น  /dev/vol2/lvol0

เมื่อ run คำสั่ง mkfs ถ้าไม่ติดอะไร จะได้ผลลัพท์คือ filesystem ที่สามารถนำไป mount (เชื่อมต่อ) เข้ากับ directory system ได้เลย จากตัวอย่างในรูป ผมสร้าง filesystem ชนิด ext4 บน  /dev/vol2/lvol0 เสร็จแล้ว mount  ไปที่ /opt/zimbra ครับ


รูป แบบของคำสั่ง mount คือ

mount device_name mount_point_dir

หลังจากที่เรา mount เสร้จ ต่อจากนี้ถ้าเรามีการสร้างไฟล์หรือ directory ภายใต้ mount_point_dir จะเป็นการใช้เนื้อที่บน device ที่เราเพิ่งทำการ  mount เข้าไปนะครับ

แต่อย่างไรก็ตาม การ mount แบบนี้ ถ้าเครื่องมีการ reboot   filesystem ที่เรา mount แบบนี้ จะไม่ถูก mount (แต่ยังอยู่) จะให้ mount อัตโนมัติเวลา boot เครื่อง จะมีขั้นตอนเพิ่มเติม ว่ากันในครั้งหน้าครับ

วันอาทิตย์ที่ 30 มิถุนายน พ.ศ. 2556

สร้าง Volume Group และ Logical Volume

หลังจากที่เราสร้าง partition บน disk  เป็น ชนิด Linux LVM เรียบร้อยแล้ว  ขั้นตอนถัดมาของการสร้าง logical volume ก็คือ เอา partition หรือ disk ทั้งลูก add เข้าไปใน Volume Group  สำหรับตัวอย่างนี้ ผมจะสร้าง Volume Group ใหม่ก่อนก็แล้วกันนะครับ

จากตัวอย่าง ผมมี  disk /dev/sdb อยู่ ซึ่งมี partition /dev/sdb1 และ /dev/sdb2  ทีถูกกำหนด type เป็น Linux LVM เรียบร้อยแล้ว

คำสั่งทีใช้ในการสร้าง Volume Group ก็คือ vgcreate (ย่อมาจาก Volume Group Create) รูปแบบการเรียกใช้พื้นฐานก็คือ

vgcreate VolumeGroupName  PhysicalDevicePath

โดย VolumeGroupName คือชื่อ ของ Volume Group ที่เราจะสร้าง จากตัวอย่างผมจะให้ชือว่า vol2
ส่วน PhysicalDevicePath จะเป็นชื่อของ disk  หรือ partition  โดยต้องระบุแบบ full path name หรือต้องอ้างถึงแบบมี /dev นำหน้าชื่อด้วย ในตัวอย่าง ผมใช้ /dev/sdb1

ในกรณีนี้ คำสั่งที่เราเรียกใช้คือ

vgcreate  vol2  /dev/sdb

หลังจากที่คำสั่งนี้ทำงานเสร็จเรียบร้อย เราจะได้ Volume Group ชื่อ vol2  โดยจะถูกสร้างเป็น device file อยู่ที /dev/vol2

ต่อจากนั้น เราจะสร้าง Logical Volume จากเนื้อที่ใน  Volume Group  vol2 ที่เพิ่งถูกสร้างมาหมาดๆ โดยใช้คำสั่ง lvcreate (logical volume create) โดยมีรูปแบบก็คือ

lvcreate -L LogicalVolumeSize  VolumeGroupName|VolumeGroupPath

LogicalVolumeSize  :  เป็นขนาดของ  Logical Volume ที่เราจะสร้าง  เราสามารถระบบุหน่วยเป็น  K,M,G (kilobyte, Megabyte, Gigabyte) ได้ด้วย ตามตัวอย่าง ผมใส่เป็น 5G

VolumeGroupName|VolumeGroupPath : ตรงนี้เราระบุชื่อของ  Volume Group โดยจะระบุแค่ชื่อ หรือ ระบุแบบชื่อ device เต็มๆ คือมี /dev นำหน้าได้ด้วยครับ  จากตัวอย่าง ผมใช้ vol2

คำสั่งที่เรียกใช้จะเป็น

lvcreate -L 5G  vol2



เมื่อคำสั่งทำงานเสร็จ มันจะบอกชื่อของ Logical Volume ทีถุกสร้างขึ้นมา ซึ่งในกรณีนี้ผมไม่ได้ระบุชื่อ Logical Volume ที่จะสร้าง ระบบจะกำหนดชื่อให้เราเอง ในกรณีนี้คือ  lvol0  โดยจะมือชื่อ  device แบบเต็มๆ คือ /dev/vol2/lvol0  ซึ่งเป็น symbolic link ชี้ไปยังชื่อ device คือ /dev/dm-6 (บน CentOS 6) แต่ผมแนะนำให้ใช้ /dev/vol2/lvol0 ในการอ้างถึง Logical Volume นะครับ เพราะบางกรณี ถ้าเครื่องมีการ reboot ชื่อ device /dev/dm-N นี้ระบบอาจจะมีการกำหนดตัวเลข N กันใหม่ ซึ่งอาจจะเปลี่ยนแปลงไปได้

ถึงจุดนี้เราได้ Logical Volume ที่สามารถนำไปสร้างเป็น filesystem ได้แล้วครับ

วันศุกร์ที่ 21 มิถุนายน พ.ศ. 2556

การสร้าง Linux Partition เพื่อเป็น Physical Volume

ครั้งที่แล้วเราพูดถึงวิธีหาว่า disk ในระบบมีอะไรบ้าง ครั้งนี้ เราจะพูดถึงการสร้าง Linux Partition เพื่อจะใช้เป็น Physical Volume กันครับ
หลายๆ ท่านคงจะพอทราบแล้วว่า คำสั่งทั่วไปที่ใช้ในการสร้าง partition บน Linux คือ fdisk  รูปแบบพื้นฐานการเรียกใช้คำสั่งนี้ คือ  fdisk ตามด้วยชื่อ device  โดยชื่อ device นี้ต้องระบุแบบเต็มคือระบุ /dev ด้วย เช่น 

# fdisk /dev/sdb

อีกอย่างที่ไม่ควรลืมก็คือ การเรียกใช้คำสั่งนี้ ต้อง Login หรือ su เป็น root นะครับ


หลังจากที่เรียกใช้ fdisk แล้ว ถ้าเป็น disk ที่ไม่เคยมี partition อยุ่ก่อน คำสั่งนี้จะแสดง warning message ขึ้นมา ไม่ต้องสนใจก็ได้ครับ ต่อจากนั้น fdisk จะขึ้นบรรทัด prompt มาให้เราป้อนคำสั่ง

Command (m for help) :

ถึงตรงนี้ เราสามารถเรียกดูว่า มีคำสั่งอะไรให้ใช้ได้บ้าง โดยการกด  m ครับ 

คำสั่งที่ใช้สร้าง partition ใหม่ คือ n (new partition) ถ้าเรากด n จากนั้น  fdisk จะให้เราใส่ข้อมูลของ partition ที่เราจะสร้างตามนี้ครับ 
  • ชนิด partition สร้าง primary  (กด p ) หรือ extend partition (กดปุ่ม e)  เราเลือก p ครับ 
  • กำหนด partition number ใส่ค่าแรกที่ fdisk แนะนำ (1-4) คือ 1 ในกรณีที่มี  partition อื่นอยู่แล้ว เราก็ใส่หมายเลขต่อไปเลยครับ 
  • เลือก cylinder แรก ของ partition นี้ ปกติใช้ค่า default ที่ fdisk เลือกให้ ก็กด enter เลย
  • เลือก cylinder สุดทัายของ partition นี้ หรือเลือกขนาดของ  partition ปกติ ผมกำหนดขนาดของ partition ง่ายกว่า ในกรณีนี้เราต้องใส่เครื่องหมาย + ตามด้วยขนาด และตามด้วยหน่วยของขนาด (K,M,G) ครั้บ ถ้าไม่ใส่หน่วย fdisk จะเข้าใจว่าขนาดที่เราระบุ เป็น byte ครับ 
ถึงจุดนี้ fdisk จะทราบข้อมูลทั้งหมดที่จะใช้ในการสร้าง partition แล้ว แต่ยังไม่ได้สร้างจริงๆ
fdisk จะขึ้น prompt ให้เราป้อนคำสั่งถัดไป

ถึงตรงนี้ ถ้าเราอยากดูกว่า fdisk เตรียมจะสร้าง partition อะไรให้เราบ้าง เราสามารถกด p (print) เพื่อสั่งให้ fdisk พิมพ์ออกมาให้เราดู ในกรณีที่เรากำหนด partition ให้กับ  disk ว่างๆ ในตอนแรก ถ้าถึงขั้นตอนนี้เราจะเป็น /dev/sdb1


ขั้นตอนต่อมาคือ การกำหนด partition system id หรือชนิดของ system partition  ซึ่งเราต้องกด t (type)
จากนั้น fdisk จะให้เราป้อนเลขฐานสิบหก (hex code) ตามชนิดของ partition system id ที่เราจะระบุ ในกรณีของเรา ต้องป้อนค่า 8e ซึ่งก็คือ Linux LVM เสร็จแล้ว fdisk จะกลับมาที่  prompt 

ถ้าเราไม่สร้าง partition อื่นต่อ ขั้นตอนสุดท้ายคือ บอกให้ fdisk สร้าง partition ตามที่เราระบุไว้ โดยการป้อนคำสั่ง w (write) ซึ่งเป็นการบอก fdisk  ให้เขียนข้อมูลที่เรากำหนดไว้ทั้งหมด ลงไปใน disk เป็นอันเสร็จขั้นตอนครับ 

partition ที่เราสร้างได้ จะชื่อเหมือนกับ disk ครับ แล้วตามด้วยตัวเลข partition number ที่เราระบุตอนสร้าง เช่นในกรณีนี้เราสร้าง partition บน /dev/sdb  disk เราจะได้ partition ชื่อ /dev/sdb1 ครับ เอา partition นี้ไปทำอย่างอื่นต่อได้เลยครับ 

วันอังคารที่ 18 มิถุนายน พ.ศ. 2556

LVM : การเตรียม Physical Volume

หลังจากที่พูดถึงทฤษฏีของ LVM ไปกันแล้ว มาเข้าภาคปฏิบัติกันนะครับ

     สิ่งแรกที่ต้องทำ คือเราต้องเตรียมหรือจัดหา physical volume กันก่อน ตัว physical volume จะเป็น disk partition  หรือเป็น harddisk ทั้งลูกก็ได้ครับ ถ้าจะใช้  harddisk ทั้งลูก  harddisk ต้องไม่มี  partition อยู่เลยครับ ถ้ามีต้องลบออกให้หมด แต่ถ้าเป็น disk partition เราต้องกำหนดชนิดของ partition ให้เป็น Linux LVM ครับ
    คำสั่งทีใช้จัดการ partition บน Linux คือ fdisk แต่ก่อนที่จะจัดการ harddisk เราต้องรู้ว่าในเครื่องเราจะอ้างถึง harddisk ได้อย่างไร
    ใน Linux เราจะอ้างถึง  harddisk  โดยใช้ชื่อไฟล์ ปกติ จะอยู่ใน directory /dev  โดย harddisk ชื่อจะขึ้นต้นด้วย hd ถ้า Linux เห็นเป็น ATA disk และจะขึ้นต้นด้วย sd ถ้า Linux เห็นเป็น SATA disk และชื่อ disk จะลงท้ายด้วยตัวอักษร a-z  เรียงกันไปเรื่อยๆครับ  แต่ถ้าเราไม่ทราบจริงๆ เราสามารถใช้คำสั่ง lsblk (list block) เพื่อดูว่ามี block device (disk) อะไรอยู่ในระบบบ้าง ในกรณีที่ disk มีการแบ่งเป็น partition ไว้แล้ว คำสั่งนี้จะแสดงถึง  partition ที่ถูกแบ่งไว้ด้วย ลองดูตัวอย่างในรูปครับ


      จากตัวอย่างนี้ มี disk อยู่สองลูกครับ ดูที่บรรทัดที่คอลัมน์ TYPE เป็น disk จะเห็นว่ามีสองบรรทัดคือ sda และ sdb โดย sda มีการแบ่ง partition อยู่แล้ว ส่วน sdb เป็น disk เปล่าๆ ยังไม่มีแบ่ง  partition  ครับ สำหรับคำสั่งนี้จะละ /dev/ ที่อยู่หน้าชื่อ disk ไว้นะครับ
     จากตัวอย่างนี้เราสามารถนำ /dev/sdb ไปสร้างเป็น volume group ได้เลยครับ ในครั้งต่อไป ผมจะพูดถึงวิธีการสร้าง partition ของ disk ที่จะนำไปใช้เป็น physical volume กันครับ

วันจันทร์ที่ 3 มิถุนายน พ.ศ. 2556

Logical Volume Manager(LVM): Concept

ครั้งที่แล้ว ผมได้พูดถึงการเพิ่มเนื้อที่ในระบบของ filesystem ก่อนที่จะมี LVM กันไปแล้ว เรามาดูกันว่า LVM คืออะไร ทำงาน และ ช่วยแก้ปัญหาอย่างไร

Logical Volume Manager (LVM) เป็นโปรแกรมระบบ (system software) ทำหน้าที่ช่วย map disk partition ที่กระจัดกระจาย อยู่ใน disk ลูกเดียวกัน หรือ อยู่ข้ามลูกกัน นำมายำรวมกันแล้วสร้างเป็น partition จำลอง ที่เสมือนมีเนื้อที่ติดกัน ที่พร้อมจะนำไปสร้างเป็น filesystem


เราเริ่มจาก มี disk ซึ่งมีที่ว่างอยู่ อาจจะว่างทั้งลูกเหมือนในรูป หรือว่างเป็นส่วนๆ ก็ได้ครับ เนื้อที่ว่างเหล่านี้แต่ละอันเรียกว่า physical volume (PV) เราเอาเนี้อที่เหล่านี้ มารวมกันสร้างเป็น disk จำลองก้อนใหญ่ หรือ ศัพท์ของ LVM  เรียกว่า volume group (VG) โดย เนื้อที่ใน PV จะถูกแบ่งย่อยออกเป็นส่วนย่อยๆอีก เรียกว่า physical extent (PE) ซึ่งปกติมีขนาด 4M ตัว PE นี้จะเป็น unit ย่อยของเนื้อ disk ที่เราจะสามารถจองให้กับ volume group ได้ ดังนั้น physical volume แต่ละอันต้องมีขนาดเป็นจำนวนเท่าของ physical extent  ด้วย

พอได้แบบนี้ เราก็ตัดแบ่งเนื้อที่ใน volume group มาสร้างเป็น partition ย่อยๆ โดยจะดึงจาก volume group มาเป็นส่วนๆ เท่ากับขนาดของ physical extent มาประกอบกัน เป็น partition จำลองหนึ่งอัน ศัพท์ของ LVM จะเรียก partition  นี้ว่า logical volume (LV)  เราก็เอา logical volume นี้หละครับ ไปสร้างเป็น filesystem แทน เนื้อที่แต่ละ partition จริงๆ บน disk

ถ้าเราสามารถดูในรายละเอียดย่อยในระดับ PE  ของ LV  ได้ จะพบว่า LV หนึ่งก้อน ประกอบด้วย PE ซึ่งอาจจะมาจากหลากหลาย  PV ครับ


วันพฤหัสบดีที่ 23 พฤษภาคม พ.ศ. 2556

ระบบ filesystem ก่อนจะมี Logical Volume Manager (LVM)

ตามที่ได้เขียนไว้ครั้งที่แล้ว ว่าเราจะเกริ่นเรื่อง  Logical Volume Manager (LVM)  กัน แต่พอลองเรียบเรียงแล้ว เพื่อให้เนี้อหาในแต่ละตอนไม่ยาวมาก เลยจะขอตัดเป็นตอนสั้นๆ ก็แล้วกันนะครับ โดยตอนนี้ จะเล่าถึงประวัติศาสตร์ ระบบการใช้งาน disk และ Linux partition ในยุคแรกๆ ก่อนจะมี LVM

บน Linux (และ Unix)  การนำเนื้อที่ของ disk มาใช้งาน เราจะต้องจอง disk เป็นส่วนๆ (partition) แล้ว นำมา format สร้างเป็น filesystem หลังจากนั้นก็นำไป เชื่อมต่อ (mount) กับ directory  โดยการ mount เราต้องกำหนด mount point ด้วยครับ ว่า disk partition นั้น จะ mount ที่จุดไหน

โดยปกติ จะมี disk partition แรก mount  ที่ "/" directory หรือที่เราเรียกว่า root directory ครับ ใน directory นี้ และ directory ย่อยๆ ลงไป ถ้ามีการสร้างไฟล์ ก็จะกินเนื้อที่ของ disk partition นี้

แต่ถ้าเรามี disk อีก partition ที่สอง เพิ่มเข้ามา และ mount อยู่ที่ /usr การสร้างไฟล์ หรือ sub directory ย่อย ภายใต้ /usr จะใช้เนื้อที่ของ partition ที่สองครับ ไม่เกี่ยวข้องกับ partition แรก

disk แต่ละ partition ที่เรานำมา mount เข้ากับ directory tree  ถ้าเราจะดูว่าในเครื่องเรา มี filesystem  อะไรอยู่บ้าง mount อยู่ที่ไหน ก็ใช้คำสั่ง df ดูได้ครับ

การเพิ่มขยาย disk ของ Unix และ Linux ยุคแรกๆ ก็จะใช้วิธีการ mount disk เพิ่มแบบนี้หละครับ


การจอง partition เพื่อจะนำมาสร้างเป็น filesystem แบบนี้ มีข้อจำกัดคือ

1) เนื้อที่ในแต่ละ partition ต้องเป็นเนื้อที่ที่อยู่ติดต่อกัน 
2) ต้องอยู่บน harddisk ลูกเดียวกันเท่านั้น

การขยายเนื้อที่ใน filesystem  จะลำบากมาก ถ้าไม่มีเนื้อที่ติดกันกับ filesystem เดิมเหลืออยู่ ปกติก็คือ

1) ต้องจองเนื้อที่ใน partition ใหม่ ที่ใหญ่กว่าเดิม
2) copy ข้อมูลไป ยัง partition ใหม่
3) unmount filesystem เดิม
4) mount filesystem ใหม่ที่ mount point เดิม

วุ่นวายดีไหมครับ นี่แบบย่อๆ นะที่จริงซับซ้อนกว่านี้อีกนะ

ซึ่งการ unmount filesystem ได้นั้น จะต้องไม่มี process ไหนใช้งาน file หรือ directory บน filesystem นั้น ทำให้ การขยายบาง filesytem ที่ระบบใช้งานตลอด เช่น /usr หรือ /var ทำได้ค่อนข้างยาก ครับ

ถ้าทำได้ ก็จะมีปัญหาอีกอย่างคือ เนื้อที่ filesystem ของเดิมที่เลิกใช้แล้ว จะมีอยู่กระจัดกระจาย ไม่ติดต่อกัน บางที่เนื้อที่ว่างทั้ง disk เหลือพอ แต่อยู่กระจัดกระจาย จะเอามา recycle เพื่อสร้างเป็น filesytem ใหม่ ก็ทำได้แค่ filesystem ขนาดเล็กกว่า partition ที่มีอยู่ หรือเท่าเดิมเท่านั้นครับ

วันพุธที่ 15 พฤษภาคม พ.ศ. 2556

เกริ่นนำ zimbra backup

เรื่องที่กวนใจคนใช้ Zimbra Open Source version อย่างหนึ่งก็คือ ไม่มีระบบ backup มาให้

ที่จริง เราสามารถ backup zimbra ได้หลายแบบ แบบที่ง่ายๆ (ถึกๆ) ก็คือ backup ทั้ง /opt/zimbra (หรือ path ที่เราลง zimbra) ทั้งก้อนเลย เวลาเราจะ restore ก็  restore กลับมาทับทั้งหมด ก็สดวกดี

ข้อดีของวิธีนี้ก็คือ เราได้ตัว zimbra ในส่วนของ binary และรวมไปถึง data ทุกอย่างทั้ง mysql data, openldap data เนื้อเมล์ใน /opt/zimbra/store และ index ใน /opt/zimbra/index  เรียกว่าครบทุกอย่างเลย

แต่อย่างไรก็ตาม การ backup /opt/zimbra มีข้อควรระวังก็คือในระหว่างการ backup ต้องมีการ stop zimbra เสียก่อน ตามคำแนะนำของ zimbra open source ครับ (ส่วนเรื่องทำไมต้อง backup ระหว่างที่ zimbra หยุดทำงาน ผมจะเขียนถึงที่หลังละกัน) ปัญหาก็คือ ถ้า data ของ zimbra มีจำนวนมาก เวลาในการ backup จะใช้เวลานาน ซึ่งหมายถึง zimbra จะต้องหยุดทำงานเป็นเวลานานไปด้วย ซึ่งไม่ค่อยดีเท่าไหร่ ใช่ไหมครับ

จุดนี้ไม่ใช่ปัญหาใหญ่ เราสามารถดัดแปลงสิ่งที่ Linux มีมาให้อยู่แล้ว ใช้ในการ backup zimbra ได้ครับ โดยใช้ สิ่งที่เรียกว่า snapshot ของ Logical Volume Manager (LVM) ครับ โดยวิธีนี้  เราต้องสร้าง filesystem /opt/zimbra  ให้อยู่บน partition ที่เป็น Logical Volume(LV) แทนที่จะเป็น partition ที่สร้างจากการแบ่งเนื้อที่บน hardisk ตรงๆ  ซึ่งผมเคยแนะนำใน Zimbra Tips & Technique ตอนต้นๆ แล้วนะครับ แต่ผมขอสรุปอีกที สำหรับหลายๆท่านที่เพิ่งกด like  Thai Zimbra fan page ครับ

เหตุผลที่เราต้องทำแบบนี้ ก็เพราะ เราสามารถที่จะสร้าง copy ที่เสมือนถูก "หยุดเวลา" ไว้ ของ filesystem ที่ถูกสร้างอยู่บน LV ได้ เราเรียกสิ่งนี้หรือการทำแบบนี้ว่า snapshot โดยตัว filesystem ที่เป็นต้นแบบจะสามารถถูกใช้งานต่อ (มีการเปลี่ยนแปลงแก้ไขข้อมูล) ส่วน snapshot จะยังคงมีข้อมูลค้าง ณ.เวลาที่เราสร้าง snapshot นั้นไว้

พอเห็นภาพแล้วใช่ไหมครับ พอเราสามารถ สร้าง copy ที่ถูก "หยุดเวลา" ของ /opt/zimbra ได้ เราจะเสียเวลาในการ stop zimbra อยู่แค่ช่วงที่เราสร้าง snapshot filesystem ของ /opt/zimbra (ซึ่งกินเวลาแป็บเดียว) หลังจากนั้น เราสามารถ start zimbra ขึ้นมาทำงานต่อได้ ส่วนการ backup เราก็ทำในขณะที่ zimbra ทำงานอยู่ได้ โดย backup ข้อมูลจาก snapshot แทน

ตัว snapshot filesystem เอง ก็เสมือนเป็น filesystem ปกติธรรมดา ครับ ต้องมีการ mount ไปยัง directory ในระบบ จึงจะสามารถถูกใช้งานได้ เพียงแต่เราจะอ่านข้อมูลได้อย่างเดียว เปลียนแปลงแก้ไขข้อมูลไม่ได้

ปกติตัว snapshot จะไม่กินเนื้อที่ disk มาก ยกเว้นในกรณีที่ตัว disk ต้นแบบมีข้อมูลเปลี่ยนแปลงไปหลังจากที่มีการทำ snapshot ซึ่งตรงนี้ จะทำให้ snapshot กินเนื้อที่บน disk ครับ ดังนั้น ยิ่งปล่อยให้ snapshot filesystem อยู่ในระบบนาน ก็จะยิ่งกินเนื่อที่ disk ไปเรื่อยๆ แต่พอเราลบ snapshot LV ทิ้ง เนื้อที่ที่ใช้ไป ก็จะถูกคืนกลับสู่ LVM ครับ

บางระบบอาจมีการสร้าง filesystem  ที่ /opt/zimbra อยู่ มาจาก disk ที่อยู่บน NAS หรือ SAN ซึ่งพวกนี้ส่วนใหญ่ก็สามารถทำ snapshot ได้นะครับ ไม่ต้องใช้ความสามารถของ LVM  เลย

ครั้งต่อไป ผมจะพูดถึงทฤษฏีเบื้องต้นของ Logical Volume Manager เพื่อปูพื้นฐาน ก่อนจะพูดถึงเรื่องการทำ snapshot ในตอนต่อๆไป ครับ




วันอังคารที่ 7 พฤษภาคม พ.ศ. 2556

Advance Import/Export Account (Tips and Technique #13)

Advance Import/Export Account (Tips and Technique #13)


ครั้งที่แล้ว ผมได้พุดถึงการ import/export ข้อมูลของ account ไปบ้างแล้วว่า ว่า user ของ zimbra สามารถ backup หรือ export ข้อมูลมาเก็บไว้ได้ จาก Preference -> import/export ครั้งนี้เรามา...ดูกันต่อครับ

ถ้าเลือก export และ เลือก Type เป็น account จะเห็นว่า มี check box ที่ชื่อ Advanced Settings ถ้าเราติ๊กถูกที่ช่องนี้ zimbra จะแสดงตัวเลือกเพิ่มเติมในการ export ครับ


 













เราสามารถเลือก

1. ชนิดของ data type ได้ ว่าจะเป็น Mail
,Addressbook, Calendar Task หรือ Briefcase
2. ช่วงเวลาของ ข้อมูลที่จะถูก export
3. สามารถใช้ filter เพื่อเลือกข้อมูลได้
4.เลือกว่าจะ export เฉพาะข้อมูล หรือเอา Metadata จะเลือกอันนี้ เฉพาะในกรณีที่จะ import ข้อมูลนี้เข้า zimbra เท่านั้นนะครับ

จะเห็นว่าการใช้ export advance setting นี้ทำให้เรา สามารถเลือกข้อมูลที่จะ export ไว้ได้ตรงตามที่เราต้องการมากขึ้นครับ

Zimbra Tip and Technique #10 : Failed Login Policy


อาทิตย์ก่อน ผมได้พูดถึงเรื่องการ hack email account ซึ่ง zimbra สามารถป้องกัน หรือ ทำให้โอกาสเกิดขึ้นได้น้อยลงมาก โดยการกำหนด password policy
Photo: Zimbra Tip & Technique #10 : Failed Login Policy

อาทิตย์ก่อน ผมได้พูดถึงเรื่องการ hack email account ซึ่ง zimbra 
สามารถป้องกัน หรือ ทำให้โอกาสเกิดขึ้นได้น้อยลงมาก โดยการกำหนด password 
policy 
อีกสิ่งหนึ่งที่ทำได้ คือการกำหนด Failed login policy 
ซึ่งเป็นการกำหนดพฤติกรรมให้กับ zimbra ว่า ถ้า user คนหนึ่งมีการ login 
ผิด ว่าระบบจะใช้อะไรตัดสิน และจะทำอย่างไรกับ account ที่ login ผิด 

ซึ่งมีค่าที่เซตได้ดังนี้

Enable failed login lockout :  เป็นการ enable feature ว่า ถ้ามีการ login
 ผิดตามรายละเอียดที่ set ไว้ ระบบจะทำการ lock user ไม่ให้ login ได้

Number of consecutive failed login allowed : 
เป็นค่าจำนวนครั้งที่อนุญาติให้ user มีการ login ผิด ติดต่อกัน

Time window in which failed login must occure to lock the account : 
เป็นการระบุว่า การ login ผิดติดต่อกัน ตามค่าที่กำหนด 
ต้องเกิดขึ้นภายในระยะเวลาเท่าไหร่ ระบบถึงจะ lock account นั้นๆ 

Time to lockout the account : เวลาที่ระบบจะ lock user  ไม่ให้ login 
ถ้ามีการ login ผิดติดต่อกัน ตาม จำนวนครั้ง และภายในเวลาที่กำหนด 


วิธีนี้สามารถแก้ปัญหาที่ hacker รู้ account และพยายาม เดา password 
ได้ในระดังหนึ่ง คือเดาได้แค่เท่ากับจำนวนครั้งที่เรากำหนดไว้ หลังจากนั้น 
ถึงแม้เดาถูก แต่  account ถูก lock ก็ login ไม่ได้

 และในขณะเดียวกัน จะทำให้ zimbra admin ทราบได้ว่ามีคนพยายามจะ hack 
account โดยสังเกตุได้จากมี user หลายๆ คน ถูก lock account เนี่องจาก 
failed login ด้วยครัยอีกสิ่งหนึ่งที่ทำได้ คือการกำหนด Failed login policy ซึ่งเป็นการกำหนดพฤติกรรมให้กับ zimbra ว่า ถ้า user คนหนึ่งมีการ login ผิด ว่าระบบจะใช้อะไรตัดสิน และจะทำอย่างไรกับ account ที่ login ผิด

ซึ่งมีค่าที่เซตได้ดังนี้

Enable failed login lockout : เป็นการ enable feature ว่า ถ้ามีการ login ผิดตามรายละเอียดที่ set ไว้ ระบบจะทำการ lock user ไม่ให้ login ได้

Number of consecutive failed login allowed : เป็นค่าจำนวนครั้งที่อนุญาติให้ user มีการ login ผิด ติดต่อกัน

Time window in which failed login must occure to lock the account : เป็นการระบุว่า การ login ผิดติดต่อกัน ตามค่าที่กำหนด ต้องเกิดขึ้นภายในระยะเวลาเท่าไหร่ ระบบถึงจะ lock account นั้นๆ

Time to lockout the account : เวลาที่ระบบจะ lock user ไม่ให้ login ถ้ามีการ login ผิดติดต่อกัน ตาม จำนวนครั้ง และภายในเวลาที่กำหนด


วิธีนี้สามารถแก้ปัญหาที่ hacker รู้ account และพยายาม เดา password ได้ในระดังหนึ่ง คือเดาได้แค่เท่ากับจำนวนครั้งที่เรากำหนดไว้ หลังจากนั้น ถึงแม้เดาถูก แต่ account ถูก lock ก็ login ไม่ได้

และในขณะเดียวกัน จะทำให้ zimbra admin ทราบได้ว่ามีคนพยายามจะ hack account โดยสังเกตุได้จากมี user หลายๆ คน ถูก lock account เนี่องจาก failed login ด้วยครับ

วันจันทร์ที่ 15 เมษายน พ.ศ. 2556

Backup and Restore Personal Data (Tips and Technique #12)

สำหรับผู้ใช้ Zimbra เราสามารถ เก็บข้อมูล (Email, appointment, contact) ไว้ได้นะครับ
โดยหลังจาก login web console ของ  Zimbra แล้ว ไปที่ Preferences tab แล้วก็ Import/Export จากนั้น เราก็เลือกว่า จะ export (backup) หรือ import (restore) อะไร


ในส่วนของ import ไม่มีอะไรมากครับ ก็แค่เลือก file ที่เราเคย export ออกมาแล้วเท่านั้น เสร็จแล้วกดปุ่ม import

แต่ที่น่าสนใจคือในส่วนของการ export ต่างหาก มีตัวเลือกให้เรามากมาย เบื้องต้น คือเราสามารถเลือก "Type" หรือ ชนิดของสิ่งที่เราต้องการจะ export ออกมาได้ เราสามารถเลือกว่าจะเป็น Account, Calendar หรือ Contact ตามรายละเอียดนี้ครับ

  • Account: คือข้อมูล (data) ทั้งหมดของ User คนนี้ 

  • Calendar  คือการ export บันทึกนัดหมายในปฏิทินครับ โดยการ export จะอยู่ใน format ของ iCalendar หรือ .ics  ครับ

  • Contact จะเป็นการ export  Contact โดยเราสามารถเลือกได้ว่าจะเป็น  contact แบบไหน (Outlook, Thunderbird, Window Live, Yahoo, ...) โดยไฟล์ที่ได้จะมีนามสกุลเป็น .csv ครับ



ซึ่งในแต่ละ Type  เราสามารถเลือก Source  ซึ่งทำให้เราเลือกได้ว่าจะ Import ข้อมูลอันไหนหรือกลุ่มไหน Source ซึ่งในกรณีของ Zimbra   ตัว Source นี้ก็คือ folder

  • ถ้าเป็น Calendar เลือก folder ก็คือเลือกว่าจะ Export จาก ปฏิทินอันไหน 
  • ส่วน Contact  folder จะ เป็นการเลือกว่า จะ export จาก Address book อันไหน 
  • ในกรณีของ Email จะเป็นการเลือก mail ว่าจะเอาจาก Email folder ไหนครับ (ตรงไปตรงมา)

ค่า default ของ Folder คือ All Folders ครับ เลือกทุกรายการของ Type นั้นๆ ที่เราเลือกครับ

เมื่อเลือก Type และ Folder เสร็จ ก็กดปุ่ม Export อยู่ประมาณด้านล่างซ้ายของจอ Web Browser ที่เราใช้อยู่จะให้เราเลือกว่าจะเก็บ download ไฟล์ไว้ที่ไหน แค่นี้เป็นอันเสร็จสิ้นครับ

จุดที่น่าสนใจคือ ถ้าเราเลือก Account เราสามารถติ๊กถูกที่ Advance Setting ได้ เราสามารถเลือก export ได้ซับซ้อนขึ้นไปอีกครับ ไว้ต่อกันครั้งถัดไปนะครับ


วันจันทร์ที่ 8 เมษายน พ.ศ. 2556

Reset permission of files in /opt/zimbra (Zimbra Tip and Technique #4)


เราสามารถ reset permission ของไฟล์ของ zimbra (ใน /opt/zimbra) โดยใช้คำสั่ง /opt/zimbra/libexec/zmfixperms ได้ครับ

คำสั่ง zimfixperms นี้จะพิเศษกว่าคำสั่งของ zimbra โดยปกติอยู่นิดนึง ตอน run คำสั่งนี้ต้อง login Linux เป็น root นะครับ

วิธีเปลี่ยน port ที่ใช้เข้าถึง Zimbra Web Client (Zimbra tip & technique)

เราสามารถกำหนด port ที่ใช้ เข้าถึง web client ของ zimbra ได้นะครับ ใช้คำสั่ง zmtlsctl ครับ และเหมือน
กับการใช้คำสั่งอื่นๆ ของ zimbra  หลังจากที่เรา Login เป็น root แล้ว ต้อง switch user เป็น zimbra โดยใช้คำสั่ง 

"su - zimbra" 

ก่อนนะครับ ส่วน Option ทีวิธีการใช้งาน ดุตามรูปครับ



จะเห็นว่ามี 5 options ให้เลือกครับ

http -> กำหนดให้ เข้าถึง webclient โดยใช้ protocol http (TCP port 80)
https -> กำหนดให้ เข้าถึง webclient โดยใช้ protocol https (TCP port 443)
both -> ใช้ ได้ทั้ง http และ https เลย
redirect -> ใช้ได้ ทาง https แต่ถ้ามีคนพยายามจะใช้ http zimbra จะ redirect ไป https ให้
mixed -> ถ้า user connect โดยใช้ http มันจะ redirect ไปใช้ https ตอน login และ switch กลับเป็น http ตอนใช้งาน แต่ ถ้า user connect เป็น https มันจะใช้ https ไปตลอด


หลังจากที่เรียกใช้คำสั่ง  zmtlsctl นี้ ต้องมีการ Restart Zimbra หรือ Restart Mailboxd ก่อน ถึงจะเป็นไปตามที่เราแก้ไขนะครับ 

วิธี restart zimbra mailbox ใช้คำสั่ง 
zmmailboxdctl restart
ตัวอย่างการใช้งาน ดูตามรูปนี้ครับ









จะ set เป็น แบบไหน อย่าลืมเปิด port ที่ iptables และ firewall ให้สามารถใช้งานได้นะครับ 

ต้องขอบคุณคุณ Montree Phomkam ที่แนะนำคำสั่งนี้มาครับ

Zimbra Tip and Technique #8, Password Policy Part II

มาต่อด้วยเรื่อง password policy กันนะครับ
zimbra สามารถ set password policy ได้ หลายรูปแบบ ถ้า user กำหนด password ไม่ตรงตาม policy ที่กำหนดไว้ ระบบจะไม่ยอมรับ password ครับ

password policy กลุ่มแรก เป็นรูปแบบของ password มีดังนี้ครับ

- Minimum password length : กำหนดความยาวของ password ที่สั้นที่สุดที่ระบบยอมรับได้
- Maximum password length : กำหนดความยาวสูงสุดของ password
- Minimum upper case characters : กำหนดจำนวนต่ำสุดของตัวอักษรภาษาอังกฤษตัวใหญ่ (ABCD....) ที่ต้องมีใน password
- Minimum lower case characters: กำหนดจำนวนต่ำสุดของตัวอักษรภาษาอังกฤษตัวเล็ก (abcd....) ที่ต้องมีใน password
- Minimum punctuation symbols: กำหนดจำนวนต่ำสุดของตัวอักษรสัญลักษณ์ (ทีไม่ใช้ตัวอักษรและตัวเลข เช่น !@#$%^....) ที่ต้องมีใน password
- Minimum numeric characters: กำหนดจำนวนต่ำสุดของตัวเลข ที่ต้องมีใน password

password policy ที่เรากำหนดได้ ยังมีอีกนะครับ โปรดติดตามตอนต่อไป


ครั้งที่แล้ว : Password Policy, Part I

ตอนต่อไป : Password Policy, Part III

Hack Email Account, Part I

พวกเราหลายๆคน ที่ทำหน้าที่ admin ระบบ email คงเคยต้องรบกับผู้ใช้ระบบเมล์ ว่า ทำไมต้องกำหนด password policy ให้ยากหรือซับซ้อนจัง

ตัวอย่างเช่น ต้องมีตัวเลขหนึ่งตัว ตัวอักษรตัวใหญ่หนึ่งตัว ความยาวตัวอักษรอย่างน้อยต้องแปดตัว เปลี่ยนทุกสามเดือน ห้ามซ้ำกับของเดิมอย่างน้อย 4 ตัว และอื่นๆ (เอาแค่เบาะๆ ก่อนละกัน)

หลายๆคน ก็เลี่ยงๆตอบว่า เป็นนโยบายบริษัทบ้าง เจ้านายสั่งบ้าง

บางคนหรือหลายๆ บริษัทคิดว่าไม่สำคัญ กว่าจะรู้ตัว (หรือไม่รู้ตัว) ก็ถูก hack ไปแล้ว

ที่ต้องทำให้ยาก เพื่อไม่ให้ hacker สามารถเดา password ได้นะสิครับ 

บางคนคิดว่าข้อมูลบริษัทเรา ไม่มีอะไรสำคัญ เอาไปก็ไม่ได้อะไร  ....
ถูกครับ hacker พวกนี้เค้าไม่เอาข้อมูลไปหรอก แต่เค้าจะ

1) เอา list รายชื่อ email ของคนที่คุณเคยคุยด้วยไป เอาไปทำหยัง เอาไว้ส่ง spam กับไว้เจาะ ระบบเมล์ต่อสิครับ
2) เอา account ของคุณไว้ส่ง spam

หลายคนคงเคยเจอ หรือเคยได้ยิน อยู่ดีๆ เมล์ของบางบริษัท(หรือทั้งบริษัท) ติด black list ส่งเข้า google หรือ hotmail ไม่ได้ โดยให้สาเหตุว่า email ของคุณส่ง spam ออกมา ก็เพราะสาเหตุข้อ 2) นี้แหละ

ธุรกิจเสียหาย ไปเท่าไหร่ ไม่รู้ คิดเอาเอง ภาพพจน์อีกต่างหาก คิดดูสิ เกิดลูกค้าเจอ spam mail ถูกส่งจาก email address ของบริษัทคุณ เค้าจะคิดยังไง


จบดื้อๆ ตรงนี้เลยละกันนะครับ เดี๋ยวไว้ต่อ ภาคสอง ว่า hacker ได้ list ของ email แล้ว เอาไป hack ต่อได้ไง แล้วมันเกิดอะไรขึ้น

สวัสดีครับ

Hacking Email Account, Part II

วันอังคารที่ 2 เมษายน พ.ศ. 2556

Default Web Client Port on Zimbra 8

ลองเล่น zimbra 8 กันหรือยังครับ
นอกจากหน้าตาที่เปลี่ยนไป ผมพบว่า จากเดิม หลังจากที่ install ปกติ user ใช้งาน zimbra หรือที่เรียกว่า web client ได้ ผ่านทาง http (port 80)

ใน version 8 ( ผมลองลง 8.0.2) default จะให้ user ใช้งานผ่านทาง https (port 443) แทนนะครับ

แต่ถ้า upgrade จาก version 7 ที่ default ให้ user ใช้งานผ่าน http หลังการ upgrade เป็น version 8 ก็จะยังคงใช้ http เหมือนเดิมนะครับ

แต่ถ้าอยาก เปลี่ยน port ของ web client บน zimbra มีวิธีครับ
ผมคุ้นๆ ว่าจะมีคน post ไว้แถวนี้ แต่ไม่เป็นไรครับ ครั้งหน้า เรามาพูดถึงวิธีการเปลี่ยน port ของ web client กัน

วันจันทร์ที่ 1 เมษายน พ.ศ. 2556

Hacking Email Account , Part II

ผมเคยเขียนถึงเรื่องการ Hack email account ไปแล้วว่า hacker ทำไปเพื่อเอารายชื่อ email address ที่เราเคยติดต่อ เก็บไว้เพื่อใช้ส่ง spam

บังเอิญผมได้ยินกรณีที่น่ากลัวกว่านั้น คือ hacker เอา account เราไว้ส่ง email หลอกลวง เพื่อให้โอนเงิน

ปกติที่เราเคยได้ยินว่ากรณีนี้จะ เกิดกับ account ส่วนตัวบน hotmail, yahoo,google แต่ถ้าเป็นกรณีที่เป็น account ของบริษัทหละ แล้วถ้าเกิด email ที่ถูก hack เป็นของ... sales แล้ว เจ้า hacker ดันจับเรื่องที่ sale กำลังคุยกับลูกค้าได้ แล้วดันปลอม email บอกให้ลูกค้าโอนเงินเข้าบัญชีหลอกๆ ที่ hacker เปิดไว้หละ คิดดูก็แล้วกัน และถ้าลูกค้ารู้ว่า email account ของบริษัทเราถูก hack ความน่าเชื่อถือกับลูกค้าเจ้านั้น คงหมดกัน

เพราะฉะนั้น เราควรดูแล email account อย่าให้ถูก hack ได้นะครับ
วิธีป้องกันอย่างนึง คือการ set password policy ที่ผมเคยเขียนไปแล้ว ลองหาอ่านดูกันนะครับ



Hacking Email Account, Part I 
Setting Password Policy, Part I
Setting Password Policy, Part II

วันอาทิตย์ที่ 31 มีนาคม พ.ศ. 2556

Zimbra Tips and Technique #9, Password Policy Part III (ภาคจบ)

มาต่อกันอีกครั้ง เรื่อง password policy ของ zimbra ครับ เหลืออีก 3 ค่าที่ admin zimbra สามารถกำหนดนโยบายการตั้ง password ของผู้ใช้ได้

Minimum password age : กำหนดอายุขั้นต่ำของ password หรืออีกนัยหนึ่งคือ ห้ามเปลี่ยน password บ่อยกว่าระยะเวลาที่กำหนด (เป็นวัน)

Maximum password age: เป็นการกำหนดอายุของ password ระบบจะบังคับให้ผู้ใช้เปลี่ยน password ใหม่ ถ้า password เดิมถุกใช้งานนานเกิดกว่าระยะเวลาที่กำหนดนี้

Minimum number of unique password history: เป็นการกำหนดว่าจะให้ระบบเก็บ password เก่าของ user แต่ละคนย้อนหลังไปกี่ครั้ง โดยระบบจะตรวจ password ใหม่ด้วยว่า ต้องไม่ซ้ำกับ password เก่าที่ถูกเก็บไว้


ตอนที่แล้ว : Password Policy, Part I 
ตอนที่แล้ว : Password Policy, Part II

วันศุกร์ที่ 29 มีนาคม พ.ศ. 2556

Data Deduplication on Zimbra

Data Deduplication on zimbra

อีก feature หนึ่งของ zimbra ที่เราไม่ค่อยรู้กัน คือ duduplication (dedup) เป็น feature ที่จะจัดเก็บข้อมูลที่มีการซ้ำซ้อนกัน แค่เพียง copy เดียว ผลก็คือ ประหยัดเนื้อที่ในการเก็บเมล์
เวลาที่มีเมล์ที่จ่าหน้าถึงผู้รับหลายคน ส่งเข้ามาเก็บในระบบ zimbra ตัวระบบจะเก็บเมล์นั้นแค่เพียง copy เดียวเท่านั้น
ตอนแรกผมก็ยังไม่มั่นใจ ว่าใน zimbra open source ทำได้จริงหรือเปล่า เลยได้ลองทดสอบดู ผลก็คือ zimbra ทำการเก็บแค่ copy เดียว จริงๆ ครับ และเราไม่ต้องทำอะไรเลย feature นี้ถูกเปิดบน zimbra open source อยู่แล้วครับ

วันจันทร์ที่ 25 มีนาคม พ.ศ. 2556

Zimbra Tips and Technique #7 Password Policy Part I

เราสามารถกำหนดคุณสมบัติของ password (password policy)ที่กำหนดให้ password ของ user เป็นไปตามที่เราต้องการได้
ใน zimbra เราจะกำหนดที่ class of service (COS)

วิธีการคือ
login ที่ admin console (https://your_site:7071)
1) ที่คอลัมน์ด้านซ้าย ใต้เมนู class of service เลือก cos มาสักอัน เช่น default
2)ไปที่หน้าจอด้านขวา เลือก advance tab
3) ใน advance tab scroll ลงมาหากลุ่มของ config ที่ชื่อ password

ครั้งต่อไป เราจะพูดถึง password policy แต่ละอันว่า ถ้า set แล้ว จะเกิดอะไรขึ้นนะครับ


ตอนต่อไป : Password Policy, Part II 

วันศุกร์ที่ 22 มีนาคม พ.ศ. 2556

Zimbra Tip and Technique #6: Spam Training

user แต่ละคนสามารถสอน zimbra ให้รับรู้ว่าเมล์ไหนเป็น spam ได้ โดยการย้าย email ที่เป็น spam ไปอยู่ใน Junk mailbox ครับ
แต่ถ้าพบว่ามันดันย้ายเมล์ที่ไม่เป็น spam ไปไว้ใน Junk ก็แค่ย้ายออกมา ก็จะเป็นการสอนมันเหมือนกันว่า นี่ไม่ใช่ spam นะ
สำหรับวิธีนี้ สิ่งที่ยากที่สุด คือต้องหว่านล้อมให้ user แต่ละคนทำเอง มาบอก admin ให้ช่วยทำให้ คงไม่ไหว