วันเสาร์ที่ 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 ครับ