สร้างเซิร์ฟเวอร์อีเมลของคุณเองด้วย FreeBSD 11

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

เราก็สามารถใช้งานเซิร์ฟเวอร์อีเมลของเราได้

ภาพรวม

มีซอฟต์แวร์ที่จำเป็นสามชิ้นในการติดตั้งที่ไม่รวมอยู่ในระบบพื้นฐาน FreeBSD:

  • OpenSMTPd
  • Dovecot
  • spamd

OpenSMTPd เป็น mail transfer agent (MTA) และ mail delivery agent (MDA) ซึ่งหมายความว่าสามารถสื่อสารกับเซิร์ฟเวอร์จดหมายอื่น ๆ บนSMTPโปรโตคอลและยังจัดการการส่งจดหมายไปยังกล่องจดหมายของผู้ใช้แต่ละคน เราจะตั้งค่า OpenSMTPd เพื่อให้สามารถสื่อสารกับเซิร์ฟเวอร์ภายนอก (กรองผ่าน spamd) และส่งจดหมายไปยังผู้ใช้ในท้องถิ่นรวมถึงการส่งจดหมายท้องถิ่นจากผู้ใช้ไปยังผู้ใช้

Dovecot เป็น MDA ที่อ่านกล่องจดหมายในเครื่องและให้บริการผ่าน IMAP หรือ POP3 แก่ผู้ใช้ มันจะใช้กล่องจดหมายของผู้ใช้ในท้องถิ่นเพื่อให้บริการเนื้อหานี้

Spamd เป็นบริการกรองจดหมาย เราสามารถส่งต่อจดหมายผ่าน spamd และมันจะกรองจดหมายตามความหลากหลายของบัญชีดำ, รายชื่อที่อนุญาตและ greylist

แนวคิดทั่วไปสำหรับเมลเซิร์ฟเวอร์นี้ต้องการเส้นทางที่แตกต่างกัน:

Outside world -> Firewall -> spamd -> OpenSMTPD -> User mail boxes
Outside world -> Firewall (spamd-whitelist) -> OpenSMTPD -> User mailboxes
Outside world -> Firewall (IMAP/POP3) -> Dovecot
Outside world -> Firewall (SMTPD submission)

สำหรับบทช่วยสอนนี้เราจะใช้ PF ของ OpenBSD รุ่น FreeBSD สำหรับไฟร์วอลล์ของเรา คุณยังสามารถใช้ipfwโดยที่การกำหนดค่าคล้ายกันมาก

หมายเหตุ: Vultr โดยค่าเริ่มต้นบล็อกพอร์ต 25 ซึ่งเซิร์ฟเวอร์ SMTP ใช้ทุกที่ หากคุณต้องการเรียกใช้เซิร์ฟเวอร์อีเมลที่ทำงานได้อย่างสมบูรณ์คุณจะต้องเปิดพอร์ตนั้น

ตั้งค่าเริ่มต้น

ก่อนอื่นเราต้องติดตั้งโปรแกรมที่จำเป็น

สมมติว่าคุณกำลังทำงานในฐานะผู้ใช้ที่มีการตั้งค่าการเข้าถึง sudo เราสามารถเรียกใช้คำสั่งต่อไปนี้ พวกเขาจะแตกต่างกันไปขึ้นอยู่กับว่าคุณกำลังใช้พอร์ตหรือแพคเกจ

แพ็คเกจ (แนะนำ)

หากคุณไม่ต้องการฟังก์ชั่นการใช้งานที่มีอยู่ในตัวเครื่องเราขอแนะนำให้ติดตั้งผ่านแพ็คเกจ มันง่ายกว่าใช้เวลาเซิร์ฟเวอร์และทรัพยากรน้อยลงและมอบอินเทอร์เฟซที่ใช้งานง่ายและใช้งานง่าย

sudo pkg install opensmtpd dovecot spamd

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

sudo portsnap fetch update   # or run portsnap fetch extract if using ports for the first time
cd /usr/ports/mail/opensmtpd  
make install  # Installs openSMTPd
make clean
cd /usr/ports/mail/dovecot
make install  # Installs dovecot
make clean
cd /usr/ports/mail/spamd
make install  # Installs spamd
make clean

เราจะต้องเพิ่มบรรทัดต่อไปนี้เพื่อ/etc/rc.conf:

pf_enable="YES"
pf_rules="/usr/local/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"

obspamd_enable="YES"
obspamd_flags="-v"
obspamlogd_enable="YES"

dovecot_enable="YES"

การตั้งค่าไฟร์วอลล์

ในการกำหนดค่า PF เราสามารถสร้างของเรา/usr/local/etc/pf.conf:

## Set public interface ##
ext_if="vtnet0"

## set and drop IP ranges on the public interface ##
martians = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \
          10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \
          0.0.0.0/8, 240.0.0.0/4 }"

table <spamd> persist
table <spamd-white> persist

# Whitelisted webmail services
table <webmail> persist file "/usr/local/etc/pf.webmail.ip.conf"

## Skip loop back interface - Skip all PF processing on interface ##
set skip on lo

## Sets the interface for which PF should gather statistics such as bytes in/out and packets passed/blocked ##
set loginterface $ext_if

# Deal with attacks based on incorrect handling of packet fragments 
scrub in all


# Pass spamd whitelist
pass quick log on $ext_if inet proto tcp from <spamd-white> to $ext_if port smtp \
    -> 127.0.0.1 port 25
# Pass webmail servers
rdr pass quick log on $ext_if inet proto tcp from <gmail> to $ext_if port smtp \
    -> 127.0.0.1 port 25
# pass submission messages.
pass quick log on $ext_if inet proto tcp from any to $ext_if port submission modulate state
# Pass unknown mail to spamd
rdr pass log on $ext_if inet proto tcp from {!<spamd-white> <spamd>} to $ext_if port smtp \
    -> 127.0.0.1 port 8025 

## Blocking spoofed packets
antispoof quick for $ext_if

## Set default policy ##
block return in log all
block out all

# Drop all Non-Routable Addresses 
block drop in quick on $ext_if from $martians to any
block drop out quick on $ext_if from any to $martians

pass in inet proto tcp to $ext_if port ssh

# Allow Ping-Pong stuff. Be a good sysadmin 
pass inet proto icmp icmp-type echoreq

# Open up imap/pop3 support
pass quick on $ext_if proto tcp from any to any port {imap, imaps, pop3, pop3s} modulate state


# Allow outgoing traffic
pass out on $ext_if proto tcp from any to any modulate state
pass out on $ext_if proto udp from any to any keep state

นี่เป็นการกำหนดค่า PF ที่ใช้งานได้ มันค่อนข้างง่าย แต่มีนิสัยใจคอเล็กน้อยที่จะอธิบายเช่นกัน

ประการแรกเรากำหนด$ext_ifตัวแปรของเราสำหรับvtnet0อุปกรณ์ของเราเพื่อใช้ในภายหลัง นอกจากนี้เรายังกำหนดที่อยู่ IP ที่ไม่ถูกต้องซึ่งควรถูกทิ้งไว้บนอินเทอร์เฟซภายนอก

นอกจากนี้เรายังกำหนดสองตารางspamdและspamd-white- สองตารางนี้ถูกสร้างโดย spamd ในการกำหนดค่าเริ่มต้น เช่นกันเรากำหนดตารางชื่อwebmailที่เราจะใช้เพื่ออนุญาตผู้ให้บริการเว็บเมลรายใหญ่ผ่าน

ในการดูตารางคุณสามารถใช้คำสั่งpfctl -t tablename -T showเพื่อแสดงรายการองค์ประกอบในตาราง

เราตั้งค่ากฎ PF สองสามข้อ: ข้ามการประมวลผลบนโลคัลอินเตอร์เฟสเปิดใช้งานสถิติบนอินเตอร์เฟสภายนอกและขัดแพ็กเก็ตขาเข้า

ถัดไปเป็นหนึ่งในส่วนสำคัญที่เราจัดการส่งปริมาณข้อมูลของเราผ่านไปยัง spamd หรือ OpenSMTPd

ลำดับแรกคือกฎการเปลี่ยนเส้นทาง (สังเกตไวยากรณ์ที่นี่ FreeBSD 11 ใช้ไวยากรณ์ PF แบบเก่า (ก่อน OpenBSD 4.6) ดังนั้นไวยากรณ์อาจดูแปลกถ้าเราได้รับอะไรใน smtp จากโฮสต์ที่แสดงในspamdตารางหรือไม่อยู่ในรายการspamd-whiteตารางเราเปลี่ยนเส้นทางการเชื่อมต่อผ่านไปยังภูต spamd ซึ่งข้อเสนอที่มีการเชื่อมต่อเหล่านี้. สามกฎต่อไปนี้เป็นกฎ passthrough เพื่อให้เราจริงสามารถรับจดหมาย. เราผ่านข้อความจาก IP ที่ที่ระบุไว้ในspamd-whiteและwebmailตารางตรงผ่านไป OpenSMTPd นอกจากนี้เรายังรั���ข้อความบนพอร์ตการส่ง ( 587)

จากนั้นมีกฎการดูแลรักษาเล็กน้อยเพื่อตั้งค่านโยบายเริ่มต้นของเราและยอมรับข้อความ SSH และ ICMP

จากนั้นเราจะส่ง IMAP และ POP3 บนอินเทอร์เฟซภายนอกของเราเพื่อเข้าถึง Dovecot

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

เริ่ม PF:

sudo service pf start

ตอนนี้เรามีการตั้งค่าไฟร์วอลล์ของเราเราสามารถไปยังการกำหนดค่าเซิร์ฟเวอร์อีเมลของเรา

OpenSMTPd

OpenSMTPd มีรูปแบบการกำหนดค่าที่ง่ายและอ่านง่าย การกำหนดค่าการทำงานทั้งหมดสามารถใส่ได้ 14 บรรทัดตามที่คุณเห็นด้านล่าง:

#This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.

ext_if=vtnet0

# If you edit the file, you have to run "smtpctl update table aliases"
table aliases   file:/etc/mail/aliases
table domains   file:/etc/mail/domains

# Keys
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
# If you want to listen on multiple subdomains (e.g. mail.davidlenfesty) you have to add more lines
# of keys, and more lines of listeners

# Listen for local SMTP connections
listen on localhost hostname mail.example.com

# listen for filtered spamd connections
listen on lo0 port 10026

# Listen for submissions
listen on $ext_if port 587 tls-require auth pki mail.example.com tag SUBMITTED

# Accept mail from external sources.
accept from any for domain <domains> alias <aliases> deliver to maildir "~/mail"

accept for local alias <aliases> deliver to maildir "~/mail"
accept from local for any relay tls
accept tagged SUBMITTED for any relay tls

ประการแรกเรากำหนดอินเทอร์เฟซภายนอกของเราอีกครั้งรวมถึงตารางนามแฝงและโดเมนบางรายการ จากนั้นเราไปยังคีย์ SSL และใบรับรองสำหรับโดเมนใด ๆ ที่เราต้องการจัดการกับเมล

ในส่วนถัดไปเรากำหนดอินเตอร์เฟสและพอร์ตที่เราต้องการฟัง ประการแรกเราฟัง localhost สำหรับmail.example.comโดเมนของเราสำหรับการเชื่อมต่อท้องถิ่นใด ๆ จากนั้นเราจะฟังข้อความที่กรองโดย spamd ของเราและส่งข้อความบนอินเทอร์เฟซภายนอก สุดท้ายเรารับฟังการส่งสิ่งเหล่านี้เกิดขึ้นที่พอร์ต587และเราต้องการให้พวกเขาตรวจสอบความถูกต้องด้วยเหตุผลด้านความปลอดภัย

สุดท้ายคือacceptการตั้งค่าของเรา เรายอมรับข้อความใด ๆ สำหรับโดเมนใด ๆ ของเราที่กำหนดไว้ในdomainsตารางของเราสำหรับนามแฝงในaliasesตารางของเราเพื่อส่งไปยังไดเรกทอรีบ้านของพวกเขาในmaildirรูปแบบ จากนั้นเรายอมรับการเชื่อมต่อในพื้นที่สำหรับกล่องจดหมายในพื้นที่และส่งต่อข้อความของเราดังนั้นเราจึงสามารถส่งอีเมลได้ สุดท้ายเราก็ยอมรับข้อความที่เราส่งไปเพื่อส่งต่อ หากเราไม่ต้องการการรับรองความถูกต้องสำหรับพอร์ตการส่งของเรานี่จะเป็นอันตรายด้านความปลอดภัยที่ยิ่งใหญ่ การทำเช่นนี้จะทำให้ทุกคนใช้เซิร์ฟเวอร์ของเราเป็นสแปม

นามแฝง

FreeBSD มาพร้อมกับไฟล์นามแฝงเริ่มต้น/etc/mail/aliasesในรูปแบบต่อไปนี้:

vuser1:  user1
vuser2:  user1
vuser3:  user1
vuser4:  user2

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

โดเมน

FreeBSD ไม่ได้จัดหาไฟล์โดเมนเริ่มต้น แต่สิ่งนี้ง่ายมาก:

# Domains
example.com
mail.example.com
smtp.example.com

นี่เป็นเพียงไฟล์ข้อความธรรมดาที่มีแต่ละโดเมนที่คุณต้องการฟังในบรรทัดใหม่ คุณสามารถแสดงความคิดเห็นโดยใช้#สัญลักษณ์ ไฟล์นี้มีอยู่เพื่อให้คุณสามารถใช้สายการกำหนดค่าน้อยลง

ใบรับรอง SSL

มีสองวิธีในการรักษาความปลอดภัยการสื่อสารของคุณด้วยเมลเซิร์ฟเวอร์ของคุณใบรับรองที่ลงชื่อด้วยตนเองและใบรับรองที่ลงชื่อ เป็นไปได้แน่นอนที่จะลงนามใบรับรองของคุณเอง แต่บริการอย่าง Let's Encrypt นั้นให้การเซ็นชื่อฟรีและใช้งานง่ายอย่างเหลือเชื่อ

ก่อนอื่นเราต้องติดตั้งโปรแกรม certbot

sudo pkg install py-certbot

หรือสามารถติดตั้งกับพอร์ต:

cd /usr/ports/security/py-certbot
make install
make clean

จากนั้นเพื่อรับใบรับรองคุณต้องตรวจสอบให้แน่ใจว่าคุณได้เปิดพอร์ต80บนอินเทอร์เฟซภายนอกของคุณแล้ว เพิ่มบรรทัดต่อไปนี้บางแห่งในกฎการกรองของคุณใน/usr/local/etc/pf.conf:

pass quick on $ext_if from any to any port http

จากนั้นรันpfctl -f /usr/local/etc/pf.confเพื่อรีโหลดชุดกฎ

จากนั้นคุณสามารถเรียกใช้คำสั่งสำหรับโดเมนใด ๆ ที่คุณต้องการรับใบรับรองสำหรับ:

certbot certonly --standalone -d mail.example.com

ขอแนะนำให้ตั้งค่ารายการ crontab ให้ทำงานcertbot renewทุกๆ 6 เดือนเพื่อให้แน่ใจว่าใบรับรองของคุณจะไม่หมดอายุ

จากนั้นสำหรับทุกโดเมนที่เกี่ยวข้องคุณสามารถแก้ไขบรรทัดเพื่อชี้ไปยังไฟล์คีย์ที่ถูกต้อง:

pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"

แก้ไขหลักทรัพย์:

sudo chmod 700 /usr/local/etc/letsencrypt/archive/mail.example.com/*

หมายเหตุ: คุณจะต้องทำสิ่งนี้กับ keyfile ดั้งเดิมแต่ละอันมิฉะนั้น OpenSMTPd จะไม่เปิดมัน

ตอนนี้เราสามารถเริ่มบริการ:

sudo service smtpd start

การกำหนดค่า spamd

ที่นี่เราใช้ daemon spamd ของ OpenBSD เพื่อลดปริมาณของสแปมที่เราได้รับจากอินเทอร์เน็ต โดยพื้นฐานแล้วสิ่งนี้จะกรองข้อความจาก IP ที่ทราบว่าไม่ดีจากแหล่งสแปมต่างๆรวมถึงการเชื่อมต่อขาเข้า "greylisting" (โดยค่าเริ่มต้น) Spamd ยังพยายามที่จะทำให้เสียเวลาของนักสแปมด้วยการเชื่อมต่อ "บัญชีดำ" และบัญชีเทาซึ่งหมายความว่ามันแพร่กระจายการตอบสนองของมันในหลายวินาทีซึ่งบังคับให้ลูกค้าเปิดอยู่นานกว่าปกติ

Greylisting การเชื่อมต่อจะทำเมื่อมีการเชื่อมต่อที่อยู่ IP ใหม่ที่ไม่ได้อยู่ในบัญชีดำหรือรายการที่อนุญาต เมื่อที่อยู่ใหม่เชื่อมต่อ spamd จะลดข้อความลงด้วยข้อความแสดงข้อผิดพลาดที่ไม่เข้ากันแล้วจะเพิ่มไปยังรายการชั่วคราว เนื่องจากผู้ส่งสแปมได้รับเงินสำหรับข้อความที่ส่งพวกเขาจะไม่ลองผิดพลาดอีกครั้งในขณะที่บริการที่ถูกกฎหมายจะลองอีกครั้งในไม่ช้า

คุณจะต้องเรียกใช้สิ่งต่อไปนี้เพื่อติดตั้งfdescfs:

mount -t fdescfs null /dev/fd

จากนั้นคุณจะต้องเพิ่มบรรทัดนี้ไปที่/etc/fstab:

fdescfs     /dev/fd     fdescfs rw      0       0

ไฟล์กำหนดค่าเริ่มต้น (พบใน/usr/local/etc/spamd/spamd.conf.sample) จะทำงานได้ดี คุณสามารถแก้ไขได้เพื่อเพิ่มแหล่งข้อมูลใหม่หรือเปลี่ยนแหล่งที่คุณใช้:

sudo cp /usr/local/etc/spamd/spamd.conf.sample /usr/local/etc/spamd/spamd.conf

เราสามารถเริ่มบริการด้วยสิ่งต่อไปนี้:

sudo service obspamd start

ณ จุดนี้ spamd ถูกตั้งค่า

การเปิดใช้งานบริการเว็บเมล

ปัญหาอย่างหนึ่งของแนวทาง greylisting คือบริการอีเมลขนาดใหญ่มักจะส่งอีเมลออกผ่านสปูลที่แตกต่างกันจำนวนมากและคุณไม่รับประกันว่าจะได้รับเซิร์ฟเวอร์เดียวกันที่ส่งข้อความทุกครั้ง ทางออกหนึ่งในการทำเช่นนี้คือการอนุญาตช่วง IP ที่ใช้โดยบริการเว็บเมลที่หลากหลาย นี่คือสิ่งที่ตารางเว็บเมล์ใช้สำหรับในการกำหนดค่า PF กลยุทธ์นี้สามารถย้อนกลับมาได้หากคุณรวมที่อยู่ IP ที่ผู้ส่งสแปมใช้ แต่ตราบใดที่คุณระมัดระวังในช่วงที่คุณใส่ในตารางคุณจะไม่เป็นไร

ในการเพิ่มช่วงอีเมลลงในตาราง webmail คุณสามารถเรียกใช้คำสั่งต่อไปนี้:

pfctl -t webmail -T add 192.0.2.0/24

Dovecot

หากคุณต้องการให้ผู้ใช้เข้าถึงอีเมลโดยไม่ต้องลงชื่อเข้าใช้ผ่าน SSH คุณจะต้องมี MDA ที่รองรับ IMAP และ / หรือ POP3 โปรแกรมที่นิยมมากคือ Dovecot ด้วยการกำหนดค่าที่ค่อนข้างง่ายและคุณสมบัติที่ทรงพลัง

เราสามารถคัดลอกการกำหนดค่าเริ่มต้น:

cd /usr/local/etc/dovecot
cp -R example-config/* ./

การกำหนดค่าประกอบด้วยไฟล์ที่แตกต่างกันไม่กี่ไฟล์ หากต้องการดูความแตกต่างระหว่างการกำหนดค่าของคุณกับค่าเริ่มต้นของ dovecot ให้รันคำสั่งด้านล่าง:

sudo doveconf -n

ต่อไปนี้เป็นโครงร่างการทำงานที่เรียบง่าย:

# 2.3.2.1 (0719df592): /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 11.2-RELEASE amd64  
# Hostname: mail.example.com
hostname = mail.example.com
mail_location = maildir:~/mail
namespace inbox {
  inbox = yes
  location = 
  mailbox Archive {
    auto = create
    special_use = \Archive
  }
  mailbox Archives {
    auto = create
    special_use = \Archive
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = create
    autoexpunge = 60 days
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Mail" {
    auto = no
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Spam {
    auto = no
    special_use = \Junk
  }
  mailbox Trash {
    auto = no
    autoexpunge = 90 days
    special_use = \Trash
  }
  prefix = 
  separator = /
}
passdb {
  args = imap
  driver = pam
}
ssl = required
ssl_cert = </usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_dh = </usr/local/etc/dovecot/dh.pem
ssl_key = </usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem
userdb {
  driver = passwd
}

ไฟล์กำหนดค่าส่วนใหญ่จะอยู่ใน conf.d

คนที่มีความสำคัญ10-auth.conf, และ10-mail.conf10-ssl.conf

15-mailboxes.confคุณสามารถกำหนดค่ากล่องจดหมายที่แตกต่างกันที่คุณใช้ใน สิ่งที่คุณเห็นด้านบนเป็นการกำหนดค่าที่ดีสำหรับหลาย ๆ ระบบ แต่ระยะทางของคุณอาจแตกต่างกันไป ขอแนะนำให้คุณเล่นกับสิ่งนี้กับลูกค้าที่แตกต่างกันให้มากที่สุดเท่าที่จะทำได้

การรับรอง

การตั้งค่าเริ่มต้นส่วนใหญ่จะถูกต้อง 10-auth.confหากคุณต้องการที่จะใช้ผู้ใช้ระบบในการตรวจสอบคุณจะต้องมีการแก้ไข

ยกเลิกหมายเหตุบรรทัดต่อไปนี้:

! รวม auth-system.conf.ext

การเข้ารหัสลับ

เราต้องสร้างพารามิเตอร์ Diffie-Hellman:

sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem

หมายเหตุ: การดำเนินการ นี้จะใช้เวลานาน นานกว่าที่คุณคาดหวัง

ตอนนี้เราสามารถเริ่ม Dovecot:

sudo service dovecot start

ข้อสรุป

ณ จุดนี้เรามีเซิร์ฟเวอร์อีเมลที่ใช้งานได้ปลอดภัยและค่อนข้างปราศจากสแปม

อีกหลายสิ่งที่จะมองจากที่นี่คือการใช้ SpamAssassin เพื่อกำจัดอีเมลขยะแบบฮิวริสติกรวมถึงการค้นหาบัญชีดำสแปมมากขึ้นโดยแหล่งที่คุณเชื่อถือ


Tags: #BSD #Email

Leave a Comment

การติดตั้ง pfSense บน Vultr Cloud Server

การติดตั้ง pfSense บน Vultr Cloud Server

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

วิธีการติดตั้ง LimeSurvey CE บน FreeBSD 12

วิธีการติดตั้ง LimeSurvey CE บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร LimeSurvey เป็นซอฟต์แวร์สำรวจโอเพ่นซอร์สที่เขียนด้วย PHP รหัสที่มา LimeSurvey โฮสต์บน GitHub คู่มือนี้จะแสดงให้คุณเห็น

Nginx Reverse Proxy และการตั้งค่า Golang บน FreeBSD

Nginx Reverse Proxy และการตั้งค่า Golang บน FreeBSD

ข้อกำหนดความรู้พื้นฐานของ UNIX FreeBSD x64 พร้อมติดตั้ง Nginx ติดตั้งเครื่องมือคุณจะต้องใช้หลายโปรแกรมที่ไม่ได้จัดส่งมาพร้อมกับ FreeBSD Ru

วิธีการติดตั้ง Automad CMS บน FreeBSD 12

วิธีการติดตั้ง Automad CMS บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร Automad เป็นระบบจัดการเนื้อหาแบบโอเพนซอร์ซ (CMS) และเทมเพลตเอนจินที่เขียนด้วย PHP รหัสที่มา Automad ฉัน

วิธีการติดตั้ง Redaxscript 3.2 CMS บน FreeBSD 11 FAMP VPS

วิธีการติดตั้ง Redaxscript 3.2 CMS บน FreeBSD 11 FAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Redaxscript 3.2 CMS เป็นระบบจัดการเนื้อหา (CMS) ที่ทันสมัยและมีน้ำหนักเบาฟรีและโอเพนซอร์สที่มี rocket-fas

วิธีติดตั้ง X-Cart 5 บน FreeBSD 12

วิธีติดตั้ง X-Cart 5 บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร X-Cart เป็นแพลตฟอร์มอีคอมเมิร์ซแบบโอเพ่นซอร์สที่มีความยืดหยุ่นสูงพร้อมคุณสมบัติและการผสานรวมมากมาย ซอร์สโค้ด X-Cart เป็นโฮสต์

ติดตั้ง WordPress บน OpenBSD 6.2

ติดตั้ง WordPress บน OpenBSD 6.2

บทนำ WordPress เป็นระบบจัดการเนื้อหาที่โดดเด่นบนอินเทอร์เน็ต มันเพิ่มประสิทธิภาพทุกอย่างตั้งแต่บล็อกไปจนถึงเว็บไซต์ที่ซับซ้อนพร้อมเนื้อหาแบบไดนามิก

ติดตั้งและกำหนดค่า Murmur (เซิร์ฟเวอร์พึมพำ) ใน FreeBSD 11

ติดตั้งและกำหนดค่า Murmur (เซิร์ฟเวอร์พึมพำ) ใน FreeBSD 11

Murmur เป็นซอฟต์แวร์เซิร์ฟเวอร์อย่างเป็นทางการสำหรับโปรโตคอลการสื่อสารด้วยเสียง Mumble การดำเนินการอย่างเป็นทางการนี้มีเสถียรภาพและมีประสิทธิภาพ คู่มือนี้จะ

วิธีรักษาความปลอดภัย FreeBSD ด้วย PF Firewall

วิธีรักษาความปลอดภัย FreeBSD ด้วย PF Firewall

บทช่วยสอนนี้จะแสดงวิธีปกป้องเซิร์ฟเวอร์ FreeBSD ของคุณโดยใช้ไฟร์วอลล์ OpenBSD PF เราจะสมมติว่าคุณมีการติดตั้ง FreeBSD ที่สะอาดแล้ว

วิธีการติดตั้ง Cachet บน FreeBSD 11

วิธีการติดตั้ง Cachet บน FreeBSD 11

ใช้ระบบที่แตกต่างกันอย่างไร Cachet เป็นระบบหน้าสถานะโอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดสำหรับ Cachet นั้นโฮสต์บน GitHub ในคู่มือนี้คุณจะ

วิธีการติดตั้ง WonderCMS บน FreeBSD 12

วิธีการติดตั้ง WonderCMS บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร WonderCMS เป็นโอเพนซอร์ซ CMS แบบเร็วและเล็กเขียนด้วย PHP รหัสที่มาของ WonderCMS นั้นโฮสต์บน Github คู่มือนี้จะ

การสร้างเว็บไซต์อย่างง่ายบน Vultr ด้วย OpenBSD และ httpd

การสร้างเว็บไซต์อย่างง่ายบน Vultr ด้วย OpenBSD และ httpd

คำนำวัตถุประสงค์ของคู่มือนี้เพื่อแสดงให้คุณเห็นว่าการสร้างโฮมเพจสำหรับเว็บไซต์ของคุณบน Vultr ด้วย OpenBSD และ httpd นั้นง่ายเพียงใด กำลังสร้าง

ติดตั้ง Varnish 5 ด้วย Nginx บน FreeBSD 11

ติดตั้ง Varnish 5 ด้วย Nginx บน FreeBSD 11

วานิชเป็นแคชเซิร์ฟเวอร์โอเพ่นซอร์สที่เก็บเนื้อหาจากเว็บเซิร์ฟเวอร์ มันถูกติดตั้งที่ด้านหน้าของเว็บเซิร์ฟเวอร์เช่น Apache หรือ Nginx เรื่องของชินชิน

วิธีการติดตั้ง Dolibarr บน FreeBSD 12

วิธีการติดตั้ง Dolibarr บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร Dolibarr เป็นการวางแผนทรัพยากรขององค์กรโอเพ่นซอร์ส (ERP) และการจัดการลูกค้าสัมพันธ์ (CRM) สำหรับธุรกิจ Dolibarr

เพิ่มความปลอดภัยให้กับ FreeBSD โดยใช้ IPFW และ SSHGuard

เพิ่มความปลอดภัยให้กับ FreeBSD โดยใช้ IPFW และ SSHGuard

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

วิธีการติดตั้ง ProcessWire CMS 3.0 บน FreeBSD 11 FAMP VPS

วิธีการติดตั้ง ProcessWire CMS 3.0 บน FreeBSD 11 FAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร ProcessWire CMS 3.0 เป็นระบบจัดการเนื้อหา (CMS) ที่ง่ายยืดหยุ่นและมีประสิทธิภาพฟรีและโอเพนซอร์ส ProcessWire CMS 3

วิธีการติดตั้ง Matomo Analytics บน FreeBSD 11

วิธีการติดตั้ง Matomo Analytics บน FreeBSD 11

ใช้ระบบที่แตกต่างกันอย่างไร Matomo (ชื่อเดิม Piwik) เป็นแพลตฟอร์มการวิเคราะห์โอเพนซอร์ซซึ่งเป็นทางเลือกเปิดให้ Google Analytics แหล่งที่มาของ Matomo นั้นโฮสต์อยู่

วิธีเปิดใช้งาน TLS 1.3 ใน Nginx บน FreeBSD 12

วิธีเปิดใช้งาน TLS 1.3 ใน Nginx บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร TLS 1.3 เป็นเวอร์ชันของโปรโตคอล Transport Layer Security (TLS) ที่เผยแพร่ในปี 2018 ตามมาตรฐานที่เสนอใน RFC 8446

เซิร์ฟเวอร์อีเมล OpenBSD ที่ใช้ OpenSMTPD, Dovecot, Rspamd และ RainLoop

เซิร์ฟเวอร์อีเมล OpenBSD ที่ใช้ OpenSMTPD, Dovecot, Rspamd และ RainLoop

บทนำบทช่วยสอนนี้แสดงให้เห็นถึงเซิร์ฟเวอร์อีเมลแบบเต็มรูปแบบที่ทำงานบน OpenBSD โดยใช้ OpenSMTPD, Dovecot, Rspamd และ RainLoop OpenSMTPD คือ th

วิธีติดตั้งแอปพลิเคชั่นจดหมายข่าว Mailtrain บน FreeBSD 12

วิธีติดตั้งแอปพลิเคชั่นจดหมายข่าว Mailtrain บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร Mailtrain เป็นแอปรับจดหมายข่าวแบบโอเพ่นซอร���สที่สร้างขึ้นบน Node.js และ MySQL / MariaDB แหล่งที่มาของ Mailtrains อยู่บน GitHub Thi

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true