๐ง Mailserver ๆถ่จญๆๅญธๅบ็ค็ฏ
ๆณๅจ Linux ไธ่ช่กๆถ่จญ้ตไปถไผบๆๅจ?ๆฌ็ฏๅฐไปฅ Rocky / CentOS ็ณปๅ ็บไพ, ๆไฝ ๅพ้ถ้ๅงๅฎ่ฃ่่จญๅฎ Postfix(ๅฏไฟกไผบๆๅจ) ่ Dovecot(ๆถไฟกไผบๆๅจ), ๅปบ็ซๅฎๆด็ SMTP / IMAP ้ตไปถ็ฐๅข,ไธฆ่ชชๆๆฏๅๅ ไปถ็ๅ่ฝ่้่ฏ。
๐ ไธ、Mailserver ๆถๆงๅ(Postfix × Dovecot)
┌────────────────────────────┐
│ User (Client) │
│ ────────────────────── │
│ ▸ Thunderbird / Outlook │
│ ▸ Webmail / Telnet Test │
└────────────┬───────────────┘
│ SMTP (25/587) ๅณ้้ตไปถ
▼
┌─────────────┐
│ Postfix │ ←── Fail2Ban、Firewalld ้ฒ่ญท
│ (MTA) │
└─────┬───────┘
│ ๆฌๆฉๆ้ (Local Delivery)
▼
┌─────────────┐
│ Dovecot │ ←── IMAP (143/993)、POP3 (110/995)
│ (MDA/IMAP) │
└─────────────┘
๐งฑ ไบ、ๅฎ่ฃๅฟ ่ฆๅฅไปถ
# ๆดๆฐๅฅไปถๅบซ
sudo dnf update -y
# ๅฎ่ฃ Postfix ่ Dovecot
sudo dnf install postfix dovecot mailx -y
# ้ๆฉ่ชๅๅ็จๆๅ
sudo systemctl enable --now postfix
sudo systemctl enable --now dovecot
# ๆชขๆฅ้่ก็ๆ
sudo systemctl status postfix
sudo systemctl status dovecot
ๅฎ่ฃๅพ็ณป็ตฑๆๅปบ็ซ้ ่จญ่จญๅฎๆช:
/etc/postfix/main.cf:ไธป่ฆ้ตไปถๆๅ่จญๅฎ/etc/dovecot/dovecot.conf:้ตไปถๆถๅๅๅฎ่จญๅฎ
⚙️ ไธ、Postfix ๅบๆฌ่จญๅฎ
# ็ทจ่ผฏไธป่ฆ่จญๅฎๆช
sudo nano /etc/postfix/main.cf
# ไปฅไธ็บๆๅฐๅฏ้ไฝ่จญๅฎ(็ฏไพ)
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost =
home_mailbox = Maildir/
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP
่จญๅฎๅฎๆๅพ้ๆฐๅๅๆๅ:
sudo systemctl restart postfix
๐จ ๅ、Dovecot ๆถไฟกๆๅ่จญๅฎ
Dovecot ่ฒ ่ฒฌๆไพ IMAP/POP3 ๆถไฟกๅ่ฝ,ไธฆๅญๆพ็จๆถ้ตไปถ่ณ Maildir ๆ ผๅผ。
# ๅ็จ Maildir ่่ช่ญๆฉๅถ
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
sudo nano /etc/dovecot/conf.d/10-master.conf
# ๅ็จ IMAP ่ POP3
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
้ๆฐๅๅๆๅ:
sudo systemctl restart dovecot
๐งฉ ไบ、ๅปบ็ซๆธฌ่ฉฆไฝฟ็จ่ ่้ตไปถ็ฎ้
# ๆฐๅขๆธฌ่ฉฆๅธณ่
sudo useradd mailuser -m
sudo passwd mailuser
# ๅปบ็ซ Maildir ็ฎ้
sudo mkdir /home/mailuser/Maildir
sudo chown -R mailuser:mailuser /home/mailuser/Maildir
ๆธฌ่ฉฆๅฏไฟก:
echo "Mailserver ๆธฌ่ฉฆไฟกไปถๅ
งๅฎน" | mail -s "ๆธฌ่ฉฆไฟก" mailuser@localhost
ๆฅ็ไฟกไปถๆฏๅฆๆๅๆ้:
sudo tail -n 20 /var/log/maillog
๐ ๅ ญ、้ฒ็ซ็้ๆพ่ๆๅ้ฉ่ญ
# ้ๅ้ตไปถๆๅๅธธ็จ port
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=pop3
sudo firewall-cmd --reload
# ้ฉ่ญ้ฃ็ท(ๅฏไฝฟ็จ Telnet ๆ openssl)
telnet localhost 25
openssl s_client -connect localhost:993
/var/log/maillog ่ /etc/postfix/master.cf ๆฏๅฆๅ็จไบ smtpd ๆจก็ต。
๐ ไธ、ๅพ็บๅปถไผธๅปบ่ญฐ
- ๅ็จ STARTTLS / SSL ๆ่ญ(ๅฏๆญ้ Let's Encrypt)
- ๅ ๅ ฅ SPF / DKIM / DMARC ้ฉ่ญๆฉๅถๅผทๅไฟกไปปๅบฆ
- ๆดๅ Fail2Ban ๅตๆธฌๆดๅ็ปๅ ฅ่้ตไปถ็ธๅฝๆปๆ
- ๅฎ่ฃ Roundcube Webmail ๆไพไฝฟ็จ่ ไป้ข
๐ ็ต่ช
ๆญๅไฝ ๅฎๆไบ Linux Mailserver ๆถ่จญ็ๅบ็ค็ฐๅข! ๅพๅฏไฟก็ Postfix ๅฐๆถไฟก็ Dovecot, ไฝ ๅทฒๅปบ็ซๅฏๅจๆฌๅฐ็ถฒ่ทฏๆญฃๅธธ้ไฝ็ SMTP / IMAP ไผบๆๅจ。 ไธไธๆญฅๅฐๅจ「้ฒ้็ฏ」ไป็ดน TLS、SPF、DKIM、Fail2Ban ๆดๅ็ๅฎๅ จๅผทๅ็ญ็ฅ。
๐ ๅปถไผธ้ฑ่ฎ
- ๐ง Linux systemd ๆทฑๅ ฅ่งฃๆ่ๅๅๆต็จ็ฎก็
- ๐ Fail2Ban + iptables ้ฒๆดๅ็ ด่งฃๅฏฆๆฐ(SSH ่ๅธธ่ฆๆๅ)
- ๐งฉ Linux ๅฎๅ จๅผทๅๅฏฆๆฐ:Firewalld、SELinux ่ Fail2Ban ๆดๅๆๅ
— WWFandy・Mailserver ็ณปๅๅบ็ค็ฏ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ