ดัชนีทั่วไปของซีรี่ส์: Computer Networks for SMEs: Introduction
บทความนี้เป็นความต่อเนื่องและสุดท้ายของมินิซีรีส์:
- การตรวจสอบ Squid + PAM บน CentOS 7.
- ผู้ใช้ภายในและการจัดการกลุ่ม
- NSD Authoritarian DNS Server + Shorewall
- IM ของฉันและผู้ใช้ในท้องถิ่น
สวัสดีเพื่อนและเพื่อน!
ลอส ผู้ที่ชื่นชอบ พวกเขาต้องการมีเซิร์ฟเวอร์อีเมลของตนเอง พวกเขาไม่ต้องการใช้เซิร์ฟเวอร์ที่ "ความเป็นส่วนตัว" อยู่ระหว่างเครื่องหมายคำถาม ผู้รับผิดชอบในการใช้บริการบนเซิร์ฟเวอร์ขนาดเล็กของคุณไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้และในขั้นต้นจะพยายามติดตั้งแกนกลางของเซิร์ฟเวอร์อีเมลในอนาคตและสมบูรณ์ นั่นคือ "สมการ" ในการสร้างเซิร์ฟเวอร์อีเมลฉบับเต็มนั้นค่อนข้างยากที่จะเข้าใจและนำไปใช้ 😉
คำอธิบายประกอบระยะขอบ
- จำเป็นต้องมีความชัดเจนว่าฟังก์ชันใดบ้างที่แต่ละโปรแกรมที่เกี่ยวข้องกับเมลเซิร์ฟเวอร์ทำงาน เพื่อเป็นแนวทางเบื้องต้นเราจะให้ลิงก์ที่มีประโยชน์ทั้งชุดพร้อมกับวัตถุประสงค์ที่แจ้งว่าเข้าชม.
- การดำเนินการด้วยตนเองและตั้งแต่เริ่มต้นบริการจดหมายฉบับสมบูรณ์เป็นกระบวนการที่น่าเบื่อหน่ายเว้นแต่คุณจะเป็นหนึ่งใน "ผู้ถูกเลือก" ที่ทำงานประเภทนี้ทุกวัน Mail Server ถูกสร้างขึ้นโดยใช้วิธีการทั่วไปโดยโปรแกรมต่างๆที่จัดการแยกกัน SMTP, POP / IMAP, Local Storage of Messages, งานที่เกี่ยวข้องกับการจัดการไฟล์ SPAM, แอนติไวรัส ฯลฯ โปรแกรมทั้งหมดนี้ต้องสื่อสารกันอย่างถูกต้อง
- ไม่มีขนาดใดที่เหมาะกับทุกคนหรือ "แนวทางปฏิบัติที่ดีที่สุด" เกี่ยวกับวิธีจัดการผู้ใช้ สถานที่และวิธีการจัดเก็บข้อความหรือวิธีทำให้ส่วนประกอบทั้งหมดทำงานร่วมกันได้
- การประกอบและปรับแต่งเซิร์ฟเวอร์เมลมีแนวโน้มที่จะเป็นเรื่องที่น่ารังเกียจในเรื่องต่างๆเช่นสิทธิ์และเจ้าของไฟล์การเลือกว่าผู้ใช้รายใดจะเป็นผู้รับผิดชอบในกระบวนการบางอย่างและเกิดข้อผิดพลาดเล็กน้อยในไฟล์คอนฟิกูเรชันลับบางไฟล์
- หากคุณไม่ทราบเป็นอย่างดีว่าคุณกำลังทำอะไรอยู่ผลลัพธ์ที่ได้จะเป็น Mail Server ที่ไม่ปลอดภัยหรือไม่ทำงานเล็กน้อย ในตอนท้ายของการใช้งานมันไม่ได้ผลอาจจะมีความชั่วร้ายน้อยลง
- เราสามารถพบสูตรอาหารมากมายเกี่ยวกับวิธีสร้าง Mail Server บนอินเทอร์เน็ต ที่สมบูรณ์ที่สุดแห่งหนึ่ง -ในความเห็นส่วนตัวของฉัน- เป็นสิ่งที่ผู้เขียนนำเสนอ อิวาร์ อับราฮัมเซน ในฉบับที่สิบสามของเดือนมกราคม 2017 «วิธีตั้งค่าเมลเซิร์ฟเวอร์บนระบบ GNU / Linux"
- เราขอแนะนำให้อ่านบทความ«เซิร์ฟเวอร์อีเมลบน Ubuntu 14.04: Postfix, Dovecot, MySQL«, หรือ "เซิร์ฟเวอร์อีเมลบน Ubuntu 16.04: Postfix, Dovecot, MySQL"
- จริง. เอกสารที่ดีที่สุดในเรื่องนี้จะพบเป็นภาษาอังกฤษ
- แม้ว่าเราจะไม่เคยสร้างเซิร์ฟเวอร์อีเมลที่ได้รับคำแนะนำอย่างซื่อสัตย์จากไฟล์ ทำอย่างไร ... ที่กล่าวถึงในย่อหน้าที่แล้วข้อเท็จจริงเพียงการทำตามทีละขั้นตอนจะทำให้เรามีความคิดที่ดีมากว่าเราจะเผชิญกับอะไร
- หากคุณต้องการมีเซิร์ฟเวอร์อีเมลที่สมบูรณ์ในไม่กี่ขั้นตอนคุณสามารถดาวน์โหลดรูปภาพ iRedOS-0.6.0-CentOS-5.5-i386.isoหรือมองหาสิ่งที่ทันสมัยกว่าไม่ว่าจะเป็น iRedOS หรือ ไอเรดเมล. เป็นวิธีที่ผมแนะนำเป็นการส่วนตัว
เรากำลังจะติดตั้งและกำหนดค่า:
- postfix เป็นเซิร์ฟเวอร์ Mกระเทียม Transport Aสุภาพบุรุษ (SMTP)
- Dovecot เป็น POP - เซิร์ฟเวอร์ IMAP
- ใบรับรองสำหรับการเชื่อมต่อผ่าน TLS.
- Squirrelmail เป็นเว็บอินเตอร์เฟสสำหรับผู้ใช้
- ระเบียน DNS สัมพันธ์กับ«กรอบนโยบายผู้ส่ง"หรือ SPF.
- การสร้างโมดูล กลุ่ม Diffie Hellman เพื่อเพิ่มความปลอดภัยของใบรับรอง SSL
ยังคงต้องทำ:
อย่างน้อยบริการต่อไปนี้จะยังคงใช้งานได้:
- โพสต์เกรย์: นโยบายเซิร์ฟเวอร์ Postfix สำหรับรายการสีเทาและปฏิเสธเมลขยะ
- Amavisd ใหม่: สคริปต์ที่สร้างส่วนติดต่อระหว่าง MTA และโปรแกรมสแกนไวรัสและตัวกรองเนื้อหา
- โปรแกรมป้องกันไวรัส Clamav: ชุดป้องกันไวรัส
- SpamAssassin: แยกเมลขยะ
- มีดโกน (pyzor): สแปมดักจับผ่านเครือข่ายแบบกระจายและการทำงานร่วมกัน เครือข่าย Vipul Razor เก็บรักษาแคตตาล็อกที่อัปเดตของการเผยแพร่เมลขยะหรือสแปม
- ระเบียน DNS "DomainKeys Identified Mail" หรือ ดีเคไอเอ็ม.
แพ็คเก็ต postgrey, amavisd-new, clamav, spamassassin, มีดโกน y ปิซอร์ พบได้ในที่เก็บโปรแกรม นอกจากนี้เรายังจะพบโปรแกรม openkim.
- การประกาศระเบียน DNS "SPF" และ "DKIM" ที่ถูกต้องเป็นสิ่งสำคัญหากเราไม่ต้องการให้เซิร์ฟเวอร์อีเมลของเราดำเนินการเพียงแค่ประกาศว่าไม่เป็นที่ต้องการหรือเป็นผู้ผลิต SPAM หรือ Junk Mail โดยบริการอีเมลอื่นเช่น Gmail, Yอ้า, Hotmailฯลฯ.
การตรวจสอบเบื้องต้น
โปรดจำไว้ว่าบทความนี้เป็นความต่อเนื่องของบทความอื่น ๆ ที่เริ่มต้นใน การตรวจสอบ Squid + PAM บน CentOS 7.
อินเทอร์เฟซ LAN Ens32 เชื่อมต่อกับเครือข่ายภายใน
[root @ linuxbox ~] # นาโน / etc / sysconfig / network-scripts / ifcfg-ens32
DEVICE=ens32
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:0c:29:da:a3:e7
NM_CONTROLLED=no
IPADDR=192.168.10.5
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DOMAIN=desdelinux.แฟน DNS1=127.0.0.1
ZONE = สาธารณะ
[root @ linuxbox ~] # ifdown ens32 && ifup ens32
อินเทอร์เฟซ Ens34 WAN เชื่อมต่อกับอินเทอร์เน็ต
[root @ linuxbox ~] # นาโน / etc / sysconfig / network-scripts / ifcfg-ens34
DEVICE=ens34 ONBOOT=yes BOOTPROTO=static HWADDR=00:0c:29:da:a3:e7 NM_CONTROLLED=no IPADDR=172.16.10.10 NETMASK=255.255.255.0 # เราเตอร์ ADSL เชื่อมต่อกับ # อินเทอร์เฟซนี้ด้วย # ที่อยู่ต่อไปนี้ ไอพีเกตเวย์=172.16.10.1 โดเมน=desdelinux.แฟน DNS1=127.0.0.1
ZONE = ภายนอก
ความละเอียด DNS จาก LAN
[root@linuxbox ~]# cat /etc/resolv.conf ค้นหา desdelinux.fan เนมเซิร์ฟเวอร์ 127.0.0.1 เนมเซิร์ฟเวอร์ 172.16.10.30 [root@linuxbox ~]# โฮสต์เมล อีเมลdesdelinux.fan เป็นนามแฝงสำหรับ linuxboxdesdelinux.พัดลม. ลินุกซ์บ็อกซ์desdelinux.fan มีที่อยู่ 192.168.10.5 linuxboxdesdelinux.fan mail ได้รับการจัดการโดย 1 เมลdesdelinux.พัดลม. [root@linuxbox ~]# โฮสต์เมลdesdelinux.พัดลม อีเมลdesdelinux.fan เป็นนามแฝงสำหรับ linuxboxdesdelinux.พัดลม. ลินุกซ์บ็อกซ์desdelinux.fan มีที่อยู่ 192.168.10.5 linuxboxdesdelinux.fan mail ได้รับการจัดการโดย 1 เมลdesdelinux.พัดลม.
ความละเอียด DNS จากอินเทอร์เน็ต
buzz@sysadmin:~$hostmail.desdelinux.แฟน 172.16.10.30 การใช้เซิร์ฟเวอร์โดเมน: ชื่อ: 172.16.10.30 ที่อยู่: 172.16.10.30#53 นามแฝง: mail.desdelinux.fan เป็นนามแฝงของ desdelinux.พัดลม. desdelinux.fan มีที่อยู่ 172.16.10.10 desdelinux.fan mail ได้รับการจัดการโดย 10 เมลdesdelinux.พัดลม.
ปัญหาในการแก้ไขชื่อโฮสต์ในเครื่อง «desdelinux.พัดลม"
หากคุณมีปัญหาในการแก้ไขชื่อโฮสต์«desdelinux.พัดลม" จาก แลนลองแสดงความคิดเห็นในบรรทัดไฟล์ /etc/dnsmasq.conf ที่ประกาศ ท้องถิ่น=/desdelinux.พัดลม/. หลังจากนั้นรีสตาร์ท Dnsmasq
[root @ linuxbox ~] # nano /etc/dnsmasq.conf # คอมเม้นไลน์ด้านล่าง: # ท้องถิ่น=/desdelinux.พัดลม/ [root @ linuxbox ~] # บริการ dnsmasq เริ่มต้นใหม่ เปลี่ยนเส้นทางไปยัง / bin / systemctl รีสตาร์ท dnsmasq.service [root @ linuxbox ~] # บริการสถานะ dnsmasq [root@linuxbox ~]# โฮสต์ desdelinux.พัดลม desdelinux.fan มีที่อยู่ 172.16.10.10 desdelinux.fan mail ได้รับการจัดการโดย 10 เมลdesdelinux.พัดลม.
Postfix และ Dovecot
สามารถดูเอกสาร Postfix และ Dovecot ได้ที่:
[root @ linuxbox ~] # ls /usr/share/doc/postfix-2.10.1/ ounce.cf.default LICENSE README-Postfix-SASL-RedHat.txt COMPATIBILITY main.cf.default TLS_ACKNOWLEDGEMENTS ตัวอย่าง README_FILES TLS_LICENSE [root @ linuxbox ~] # ls /usr/share/doc/dovecot-2.2.10/ การคัดลอกผู้แต่ง MIT dovecot-openssl.cnf NEWS วิกิการคัดลอก ChangeLog example-config README COPYING.LGPL documentation.txt mkcert.sh solr-schema.xml
ใน CentOS 7 Postfix MTA ถูกติดตั้งตามค่าเริ่มต้นเมื่อเราเลือกตัวเลือกของเซิร์ฟเวอร์โครงสร้างพื้นฐาน เราต้องตรวจสอบว่าบริบท SELinux อนุญาตให้เขียนถึง Potfix ในคิวข้อความโลคัล:
[root @ linuxbox ~] # getsebool -a | grep postfix
postfix_local_write_mail_spool -> on
การปรับเปลี่ยนใน FirewallD
การใช้อินเทอร์เฟซแบบกราฟิกเพื่อกำหนดค่า FirewallD เราต้องรับประกันว่าบริการและพอร์ตต่อไปนี้เปิดใช้งานสำหรับแต่ละโซน:
# ------------------------------------------------- ----- # แก้ไขใน Firewall D. # ------------------------------------------------- ----- # ไฟร์วอลล์ # โซนสาธารณะ: http, https, imap, pop3, smtp services # โซนสาธารณะ: พอร์ต 80, 443, 143, 110, 25 # โซนภายนอก: http, https, imap, pop3s, smtp services # โซนภายนอก: พอร์ต 80, 443, 143, 995, 25
เราติดตั้ง Dovecot และโปรแกรมที่จำเป็น
[root @ linuxbox ~] # yum ติดตั้ง dovecot mod_ssl procmail telnet
การกำหนดค่า Dovecot ขั้นต่ำ
[root @ linuxbox ~] # นาโน /etc/dovecot/dovecot.conf โปรโตคอล =imap pop3 lmtp ฟัง =*, :: เข้าสู่ระบบ_ทักทาย = Dovecot พร้อมแล้ว!
เราปิดการใช้งานการตรวจสอบสิทธิ์ข้อความธรรมดาของ Dovecot อย่างชัดเจน:
[root @ linuxbox ~] # นาโน /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = ใช่
เราประกาศกลุ่มด้วยสิทธิพิเศษที่จำเป็นในการโต้ตอบกับ Dovecot และตำแหน่งของข้อความ:
[root @ linuxbox ~] # นาโน /etc/dovecot/conf.d/10-mail.conf mail_location = mbox: ~ / mail: INBOX = / var / mail /% u mail_privileged_group = เมล mail_access_groups = เมล
ใบรับรองสำหรับ Dovecot
Dovecot จะสร้างใบรับรองการทดสอบของคุณโดยอัตโนมัติตามข้อมูลในไฟล์ /etc/pki/dovecot/dovecot-openssl.cnf. ในการสร้างใบรับรองใหม่ตามข้อกำหนดของเราเราต้องดำเนินการตามขั้นตอนต่อไปนี้:
[root @ linuxbox ~] # cd / etc / pki / dovecot / [root @ linuxbox dovecot] # นาโน dovecot-openssl.cnf [ req ] default_bits = 1024 encrypt_key = yes enjoyed_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] # ประเทศ (รหัสตัวอักษร 2 ตัว) C=CU # ชื่อรัฐหรือจังหวัด (ชื่อเต็ม) ST=คิวบา # ชื่อท้องถิ่น (เช่น เมือง ) L=Havana # องค์กร (เช่น บริษัท) O=DesdeLinux.Fan # ชื่อหน่วยองค์กร (เช่น ส่วน) OU=ผู้ที่ชื่นชอบ # ชื่อสามัญ (*.example.com ก็เป็นไปได้) CN=*desdelinux.fan # อีเมล์ติดต่อ emailAddress=buzz@desdelinux.fan [ cert_type ] nsCertType = เซิร์ฟเวอร์
เรากำจัดใบรับรองการทดสอบ
[root @ linuxbox dovecot] # rm certs / dovecot.pem rm: ลบไฟล์ปกติ "certs / dovecot.pem"? (y / n) y [root @ linuxbox dovecot] # rm private / dovecot.pem rm: ลบไฟล์ปกติ "private / dovecot.pem"? (y / n) y
เราคัดลอกและดำเนินการสคริปต์ mkcert.sh จากไดเร็กทอรีเอกสาร
[root @ linuxbox dovecot] # cp /usr/share/doc/dovecot-2.2.10/mkcert.sh [root @ linuxbox dovecot] # bash mkcert.sh การสร้างคีย์ส่วนตัว RSA 1024 บิต ......++++++ ................++++++ เขียนคีย์ส่วนตัวใหม่ไปที่ '/etc/ pki/dovecot/private/dovecot.pem' ----- subject= /C=CU/ST=คิวบา/L=ฮาวานา/O=DesdeLinux.Fan/OU=ผู้ที่ชื่นชอบ/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan SHA1 Fingerprint=5F:4A:0C:44:EC:EC:EF:95:73:3E:1E:37:D5:05:F8:23:7E:E1:A4:5A [root @ linuxbox dovecot] # ls -l ใบรับรอง / รวม 4 -rw -------. 1 รูท 1029 22 พ.ค. 16:08 dovecot.pem [root @ linuxbox dovecot] # ls -l ส่วนตัว / รวม 4 -rw -------. 1 รูท 916 22 พ.ค. 16:08 dovecot.pem [root @ linuxbox dovecot] # บริการ dovecot เริ่มต้นใหม่ [root @ linuxbox dovecot] # สถานะบริการ dovecot
ใบรับรองสำหรับ Postfix
[root@linuxbox ~]# cd /etc/pki/tls/ [root@linuxbox tls]# openssl req -sha256 -x509 -nodes -newkey rsa:4096 -days 1825 \ -out certs/desdelinux.fan.crt -keyout ส่วนตัว/desdelinux.fan.คีย์ กำลังสร้างคีย์ส่วนตัว RSA 4096 บิต .........++ ..++ กำลังเขียนคีย์ส่วนตัวใหม่ไปที่ 'private/domain.tld.key' ----- คุณกำลังจะโดนขอให้ป้อนข้อมูล ที่จะรวมอยู่ในคำขอใบรับรองของคุณ สิ่งที่คุณกำลังจะป้อนคือสิ่งที่เรียกว่า Distinguished Name หรือ DN มีฟิลด์ค่อนข้างน้อยแต่คุณสามารถเว้นว่างไว้ได้ สำหรับบางฟิลด์จะมีค่าเริ่มต้น หากคุณป้อน '.' ฟิลด์นั้นจะเว้นว่างไว้ ----- ชื่อประเทศ (รหัสตัวอักษร 2 ตัว) [XX]:CU ชื่อรัฐหรือจังหวัด (ชื่อเต็ม) []:ชื่อท้องถิ่นของคิวบา (เช่น เมือง) [เมืองเริ่มต้น]:ชื่อองค์กรฮาวานา (เช่น บริษัท) [ บริษัท เริ่มต้น จำกัด]:DesdeLinux.Fan ชื่อหน่วยองค์กร (เช่น ส่วน) []:ชื่อสามัญของผู้ที่ชื่นชอบ (เช่น ชื่อของคุณหรือชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ) []:desdelinux.fan ที่อยู่อีเมล []:buzz@desdelinux.พัดลม
การกำหนดค่า Postfix ขั้นต่ำ
เราเพิ่มที่ส่วนท้ายของไฟล์ / etc / นามแฝง ต่อไป:
ราก: ฉวัดเฉวียน
เพื่อให้การเปลี่ยนแปลงมีผลเราดำเนินการคำสั่งต่อไปนี้:
[root @ linuxbox ~] # newaliases
การกำหนดค่า Postifx สามารถทำได้โดยการแก้ไขไฟล์โดยตรง /etc/postfix/main.cf หรือตามคำสั่ง โพสต์คอนเฟอเรนซ์ -e ดูแลว่าพารามิเตอร์ทั้งหมดที่เราต้องการแก้ไขหรือเพิ่มจะแสดงในบรรทัดเดียวของคอนโซล:
- แต่ละคนต้องประกาศทางเลือกที่เข้าใจและต้องการ!.
[root@linuxbox ~]# postconf -e 'myhostname = desdelinux.พัดลม' [root@linuxbox ~]# postconf -e 'mydomain = desdelinux.พัดลม' [root @ linuxbox ~] # postconf -e 'myorigin = $ mydomain' [root @ linuxbox ~] # postconf -e 'inet_interfaces = ทั้งหมด' [root @ linuxbox ~] # postconf -e 'mydestination = $ myhostname, localhost. $ mydomain, localhost, $ mydomain, mail. $ mydomain, www. $ mydomain, ftp. $ mydomain' [root @ linuxbox ~] # postconf -e 'mynetworks = 192.168.10.0/24, 172.16.10.0/24, 127.0.0.0/8' [root @ linuxbox ~] # postconf -e 'mailbox_command = / usr / bin / procmail -a "$ EXTENSION"' [root @ linuxbox ~] # postconf -e 'smtpd_banner = $ myhostname ESMTP $ mail_name ($ mail_version)'
เราเพิ่มที่ส่วนท้ายของไฟล์ /etc/postfix/main.cf ตัวเลือกที่ระบุด้านล่าง หากต้องการทราบความหมายของแต่ละคำเราขอแนะนำให้อ่านเอกสารประกอบ
biff = ไม่ append_dot_mydomain = ไม่ delay_warning_time = 4 ชม readme_directory = ไม่ smtpd_tls_cert_file=/etc/pki/certs/desdelinux.fan.crt smtpd_tls_key_file=/etc/pki/private/desdelinux.fan.คีย์ smtpd_use_tls = ใช่ smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache smtpd_relay_restrictions = อนุญาต _mynetworks อนุญาต_sasl_authenticated defer_unauth_destination # ขนาดกล่องจดหมายสูงสุด 1024 เมกะไบต์ = 1 g และ g mailbox_size_limit = 1073741824 ผู้รับ _delimiter = + maximal_queue_lifetime = 7 วัน header_checks = regexp: / etc / postfix / header_checks body_checks = regexp: / etc / postfix / body_checks # บัญชีที่ส่งสำเนาอีเมลขาเข้าไปยังบัญชีอื่น ผู้รับ_bcc_maps = แฮช: / etc / postfix / accounts_ forwarding_copy
บรรทัดต่อไปนี้มีความสำคัญในการกำหนดว่าใครสามารถส่งอีเมลและส่งต่อไปยังเซิร์ฟเวอร์อื่นได้เพื่อที่เราจะไม่กำหนดค่า "รีเลย์แบบเปิด" โดยไม่ได้ตั้งใจซึ่งอนุญาตให้ผู้ใช้ที่ไม่ได้รับการตรวจสอบสิทธิ์สามารถส่งอีเมลได้ เราต้องศึกษาหน้าความช่วยเหลือของ Postfix เพื่อทำความเข้าใจว่าแต่ละตัวเลือกหมายถึงอะไร
- แต่ละคนต้องประกาศทางเลือกที่เข้าใจและต้องการ!.
smtpd_helo_restrictions = อนุญาต_mynetworks,
warn_if_reject ปฏิเสธ_non_fqdn_hostname,
ปฏิเสธ_invalid_hostname,
ใบอนุญาต
smtpd_sender_restrictions = อนุญาต_sasl_authenticated,
อนุญาต_mynetworks,
warn_if_reject ปฏิเสธ_non_fqdn_sender,
ปฏิเสธ _unknown_sender_domain,
ปฏิเสธ _unauth_pipelining,
ใบอนุญาต
smtpd_client_restrictions = ปฏิเสธ_rbl_client sbl.spamhaus.org,
ปฏิเสธ_rbl_client blackholes.easynet.nl
# หมายเหตุ: ตัวเลือก "check_policy_service inet: 127.0.0.1: 10023"
# เปิดใช้งานโปรแกรม Postgrey และเราไม่ควรรวมไว้
# มิฉะนั้นเราจะใช้ Postgrey
smtpd_recipient_restrictions = ปฏิเสธ_unauth_pipelining,
อนุญาต_mynetworks,
อนุญาต_sasl_authenticated,
ปฏิเสธ _non_fqdn_recipient,
ปฏิเสธ _unknown_recipient_domain,
ปฏิเสธ _unauth_ ปลายทาง,
check_policy_service inet: 127.0.0.1: 10023,
ใบอนุญาต
smtpd_data_restrictions = ปฏิเสธ_unauth_pipelining
smtpd_relay_restrictions = ปฏิเสธ _unauth_pipelining,
อนุญาต_mynetworks,
อนุญาต_sasl_authenticated,
ปฏิเสธ _non_fqdn_recipient,
ปฏิเสธ _unknown_recipient_domain,
ปฏิเสธ _unauth_ ปลายทาง,
check_policy_service inet: 127.0.0.1: 10023,
ใบอนุญาต
smtpd_helo_required = ใช่
smtpd_delay_reject = ใช่
disable_vrfy_command = ใช่
เราสร้างไฟล์ / etc / postfix / body_checks y / etc / postfix / accounts_forwarding_copyและแก้ไขไฟล์ / etc / postfix / header_checks.
- แต่ละคนต้องประกาศทางเลือกที่เข้าใจและต้องการ!.
[root @ linuxbox ~] # nano / etc / postfix / body_checks
# หากไฟล์นี้ถูกแก้ไขไม่จำเป็นต้อง # เพื่อเรียกใช้ postmap # ในการทดสอบกฎให้เรียกใช้ในฐานะรูท: # postmap -q 'super new v1agra' regexp: / etc / postfix / body_checks
# ควรกลับ: # REJECT Rule # 2 Anti Spam Message Body
/ viagra / REJECT Rule # 1 Anti Spam ของเนื้อหาข้อความ
/ super new v [i1] agra / REJECT Rule # 2 Anti Spam ของเนื้อหาข้อความ
[root @ linuxbox ~] # nano / etc / postfix / accounts_ forwarding_copy
# หลังจากแก้ไขคุณต้องดำเนินการ: # postmap / etc / postfix / accounts_ forwarding_copy
# และไฟล์ถูกสร้างหรือวัด: # /etc/postfix/accounts_forwarding_copy.db
# ---------------------------------------------- # หนึ่งบัญชีเพื่อส่งต่อหนึ่ง BCC copy # BCC = Black Carbon Copy # ตัวอย่าง: # webadmin@desdelinux.แฟนบัซ@desdelinux.พัดลม
[root @ linuxbox ~] # postmap / etc / postfix / accounts_ forwarding_copy
[root @ linuxbox ~] # นาโน / etc / postfix / header_checks
# เพิ่มท้ายไฟล์ # ไม่จำเป็นต้องมี Postmap เนื่องจากเป็นนิพจน์ทั่วไป
/ ^ Subject: =? Big5? / REJECT เซิร์ฟเวอร์นี้ไม่ยอมรับการเข้ารหัสภาษาจีน
/ ^ Subject: =? EUC-KR? / ปฏิเสธการเข้ารหัสภาษาเกาหลีที่เซิร์ฟเวอร์นี้ไม่อนุญาต
/ ^ Subject: ADV: / REJECT ไม่ยอมรับโฆษณาโดยเซิร์ฟเวอร์นี้
/^From:.*\@.*\.cn/ ปฏิเสธขออภัยไม่อนุญาตให้ใช้จดหมายภาษาจีนที่นี่
/^From:.*\@.*\.kr/ REJECT ขออภัยไม่อนุญาตให้ใช้เมลเกาหลีที่นี่
/^From:.*\@.*\.tr/ ปฏิเสธขออภัยไม่อนุญาตให้ส่งจดหมายภาษาตุรกีที่นี่
/^From:.*\@.*\.ro/ ปฏิเสธขออภัยไม่อนุญาตให้ส่งจดหมายภาษาโรมาเนียที่นี่
/^(Received|Message-Id|X-(Mailer|Sender)):.*\b(AutoMail|E-Broadcaster| Emailer Platinum | Thunder Server | eMarksman | Extractor | e-Merge | from stealth [^.] | Global Messenger | GroupMaster | Mailcast | MailKing | Match10 | MassE-Mail | massmail \ .pl | News Breaker | Powermailer | Quick Shot | Ready Aim Fire | WindoZ | WorldMerge | Yourdora | Lite) \ b / REJECT ไม่อนุญาตให้ส่งจดหมายจำนวนมาก
/ ^ จาก: "spammer / REJECT
/ ^ จาก: "spam / REJECT
/^Subject:.*viagra/ ทิ้ง
# ส่วนขยายที่เป็นอันตราย
/ name = [^> Iluminación * \. (bat | cmd | exe | com | pif | reg | scr | vb | vbe | vbs) / REJECT REJECT เราไม่ยอมรับไฟล์แนบที่มีนามสกุลเหล่านี้
เราตรวจสอบไวยากรณ์รีสตาร์ท Apache และ Postifx จากนั้นเปิดใช้งานและเริ่ม Dovecot
[root @ linuxbox ~] # ตรวจสอบ postfix [root @ linuxbox ~] # [root @ linuxbox ~] # systemctl รีสตาร์ท httpd [root @ linuxbox ~] # systemctl สถานะ httpd [root @ linuxbox ~] # systemctl รีสตาร์ท postfix [root @ linuxbox ~] # สถานะ systemctl postfix [root @ linuxbox ~] # systemctl สถานะ dovecot ● dovecot.service - เซิร์ฟเวอร์อีเมล Dovecot IMAP / POP3 โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/dovecot.service; ปิดใช้งานตั้งค่าล่วงหน้าของผู้จำหน่าย: ปิดใช้งาน) ใช้งาน: ไม่ใช้งาน (ตาย) [root @ linuxbox ~] # systemctl เปิดใช้งาน dovecot [root @ linuxbox ~] # systemctl start dovecot [root @ linuxbox ~] # systemctl รีสตาร์ท dovecot [root @ linuxbox ~] # systemctl สถานะ dovecot
การตรวจสอบระดับคอนโซล
- เป็นสิ่งสำคัญมากก่อนดำเนินการติดตั้งและกำหนดค่าโปรแกรมอื่น ๆ ต่อไปเพื่อทำการตรวจสอบบริการ SMTP และ POP ที่จำเป็นขั้นต่ำ.
ภายในเครื่องจากเซิร์ฟเวอร์เอง
เราส่งอีเมลไปยังผู้ใช้ในพื้นที่ เลโกลัส.
[root @ linuxbox ~] # echo "สวัสดีนี่คือข้อความทดสอบ" | mail -s "Test" legolas
เราตรวจสอบกล่องจดหมายของ เลโกลัส
[root @ linuxbox ~] # openssl s_client -crlf -connect 127.0.0.1:110 -starttls pop3
หลังข้อความ Dovecot พร้อมแล้ว! เราดำเนินการต่อ:
--- + OK Dovecot พร้อมแล้ว! USER เลโกลัส +ตกลง ผ่าน เลโกลัส +ตกลง เข้าสู่ระบบ สถิติ +ตกลง 1 559 รายการ +ตกลง 1 ข้อความ: 1 559 RETR 1 +OK 559 ออคเต็ต Return-Path:desdelinux.fan> X-Original-To: legolas ส่งถึง: legolas@desdelinux.fan ได้รับ: โดย desdelinux.fan (Postfix จากรหัสผู้ใช้ 0) id 7EA22C11FC57; จันทร์ที่ 22 พฤษภาคม 2017 10:47:10 -0400 (EDT) วันที่: จันทร์ที่ 22 พฤษภาคม 2017 10:47:10 -0400 ถึง: legolas@desdelinux.fan เรื่อง: ตัวแทนผู้ใช้ทดสอบ: Heirloom mailx 12.5 7/5/10 เวอร์ชัน MIME: 1.0 ประเภทเนื้อหา: ข้อความ/ธรรมดา; charset=us-ascii การเข้ารหัสเนื้อหาการถ่ายโอน: 7 บิตรหัสข้อความ: <20170522144710.7EA22C11FC57@desdelinux.แฟน> จาก: root@desdelinux.fan (root) สวัสดี นี่คือข้อความทดสอบ เลิกทำแล้ว [root @ linuxbox ~] #
รีโมทจากคอมพิวเตอร์บน LAN
ลองส่งข้อความอื่นไปที่ เลโกลัส จากคอมพิวเตอร์เครื่องอื่นบน LAN โปรดทราบว่าความปลอดภัย TLS ไม่จำเป็นอย่างยิ่งในเครือข่าย SME
buzz @ sysadmin: ~ $ sendemail -f buzz@deslinux.fan \ -t เลโกลัส@desdelinux.พัดลม\ -u "สวัสดี" \ -m "ทักทายเลโกลัสจากเพื่อนของคุณ Buzz" \ - อีเมลdesdelinux.fan -o tls=no 22 พฤษภาคม 10:53:08 sysadmin sendemail [5866]: ส่งอีเมลเรียบร้อยแล้ว!
หากเราพยายามเชื่อมต่อผ่าน Telnet จากโฮสต์บน LAN - หรือจากอินเทอร์เน็ต - ไปยัง Dovecot สิ่งต่อไปนี้จะเกิดขึ้นเนื่องจากเราปิดใช้งานการตรวจสอบสิทธิ์ข้อความธรรมดา:
buzz@sysadmin:~$ telnet เมลdesdelinux.fan 110 กำลังพยายาม 192.168.10.5...
เชื่อมต่อกับลินุกซ์บ็อกซ์แล้วdesdelinux.พัดลม. อักขระหลีกคือ '^]' +ตกลง Dovecot พร้อมแล้ว! ผู้ใช้เลโกลัส
-ERR [AUTH] การตรวจสอบความถูกต้องของข้อความธรรมดาไม่ได้รับอนุญาตในการเชื่อมต่อที่ไม่ปลอดภัย (SSL / TLS)
เลิก + ตกลงออกจากระบบการเชื่อมต่อปิดโดยโฮสต์ต่างประเทศ
buzz @ sysadmin: ~ $
เราต้องทำมันให้ได้ OpenSSL. ผลลัพธ์ที่สมบูรณ์ของคำสั่งจะเป็น:
buzz@sysadmin:~$ openssl s_client -crlf -เชื่อมต่อเมลdesdelinux.fan:110 -starttls pop3 เชื่อมต่อ (00000003) ความลึก=0 C = CU, ST = คิวบา, L = ฮาวานา, O = DesdeLinux.Fan, OU = ผู้สนใจ, CN = *desdelinux.fan, emailAddress = buzz@desdelinux.พัดลม ตรวจสอบข้อผิดพลาด: num = 18: ใบรับรองที่ลงนามด้วยตนเองตรวจสอบผลตอบแทน: 1 ความลึก=0 C = CU, ST = คิวบา, L = ฮาวานา, O = DesdeLinux.Fan, OU = ผู้สนใจ, CN = *desdelinux.fan, emailAddress = buzz@desdelinux.fan ตรวจสอบการคืนสินค้า:1 --- สายใบรับรอง 0 วินาที:/C=CU/ST=คิวบา/L=ฮาวานา/O=DesdeLinux.Fan/OU=ผู้ที่ชื่นชอบ/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan i:/C=CU/ST=คิวบา/L=ฮาวานา/O=DesdeLinux.Fan/OU=ผู้ที่ชื่นชอบ/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan --- Server certificate -----BEGIN CERTIFICATE----- MIICyzCCAjSgAwIBAgIJAKUHI/2ZD+MeMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD VQQGEwJDVTENMAsGA1UECBMEQ3ViYTEPMA0GA1UEBxMGSGFiYW5hMRcwFQYDVQQK Ew5EZXNkZUxpbnV4LkZhbjEUMBIGA1UECxMLRW50dXNpYXN0YXMxGTAXBgNVBAMU ECouZGVzZGVsaW51eC5mYW4xIjAgBgkqhkiG9w0BCQEWE2J1enpAZGVzZGVsaW51 eC5mYW4wHhcNMTcwNTIyMjAwODEwWhcNMTgwNTIyMjAwODEwWjCBmzELMAkGA1UE BhMCQ1UxDTALBgNVBAgTBEN1YmExDzANBgNVBAcTBkhhYmFuYTEXMBUGA1UEChMO RGVzZGVMaW51eC5GYW4xFDASBgNVBAsTC0VudHVzaWFzdGFzMRkwFwYDVQQDFBAq LmRlc2RlbGludXguZmFuMSIwIAYJKoZIhvcNAQkBFhNidXp6QGRlc2RlbGludXgu ZmFuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7wckAiNNfYSz5hdePzKuZ m2MMuhGDvwrDSPDEcVutznbZSgJ9bvTo445TR+Bnk+OZ80lujS2hP+nBmqxzJbpc XR7E9eWIXxr4fP4HpRrCA8NxlthEsapVMSHW+lnPBqF2b/Bt2eYyR7gJhtlP6gRG V57MmgL8BdYAJLvxqxDIxQIDAQABoxUwEzARBglghkgBhvhCAQEEBAMCBkAwDQYJ KoZIhvcNAQEFBQADgYEAAuYU1nIXTbXtddW+QkLskum7ESryHZonKOCelfn2vnRl 8oAgHg7Hbtg/e6sR/W9m3DObP5DEp3lolKKIKor7ugxtfA4PBtmgizddfDKKMDql LT+MV5/DP1pjQbxTsaLlZfveNxfLRHkQY13asePy4fYJFOIZ4OojDEGQ6/VQBI8= -----END CERTIFICATE----- subject=/C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=ผู้ที่ชื่นชอบ/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan ผู้ออก=/C=CU/ST=คิวบา/L=Havana/O=DesdeLinux.Fan/OU=ผู้ที่ชื่นชอบ/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan --- ไม่มีชื่อ CA ใบรับรองไคลเอ็นต์ที่ส่ง คีย์ชั่วคราวเซิร์ฟเวอร์: ECDH, secp384r1, 384 บิต --- SSL handshake อ่าน 1342 ไบต์และเขียน 411 ไบต์ --- ใหม่ TLSv1/SSLv3, Cipher คือ ECDHE-RSA-AES256 -GCM-SHA384 คีย์สาธารณะของเซิร์ฟเวอร์รองรับ 1024 บิต Secure Renegotiation IS การบีบอัด: NONE การขยาย: NONE SSL-Session: โปรโตคอล: TLSv1.2 รหัส: ECDHE-RSA-AES256-GCM-SHA384 Session-ID: C745B4A0236204E16234CB15DC9CDBC3D084125FF5989F5DB 6C5295 4BF2E73D1904A เซสชัน-ID- ctx : มาสเตอร์คีย์: 204D564C76361B50373CEA8879F793AF7AF7506D04473777C6F3503F9A919FD1CD837F67BC29BFF309E352526F5F5 คีย์-Arg: ไม่มี หลักการ Krb300: ไม่มี ข้อมูลประจำตัว PSK: ไม่มี คำใบ้ข้อมูลประจำตัว PSK: คำแนะนำอายุการใช้งานตั๋วเซสชัน TLS: 0000 (วินาที) ตั๋วเซสชัน TLS: 4 - 3e 8a f29 7 4a 63f 72 7- ee f6 a4 7f fc ec 1e 0010c N:.)zOcr...O..~. 2 - 4c d8 เป็น a92 เป็น 2 98e ae-7 87e 6 45d 5 c17 8 a0020 ,.....~.me... 3 - db 86a 80 8 df 8b dc 8d-f1 68f 6 7e db a3 e86 0030 .:.......hn.... 08 - 35 5 e98 eb 8 b4 a98 68-1 b7 ea f72 7 f1 c79 5 .0040......h...r ..y 89 - 4 28a 3 e85 4 a8 9b da-e7 29a 7 c77 22 bf 0 0050d .J(......z).w.". 5 - bd 6c f61 8 1c a14 31 bd-cb 27 66 7 51a dc 28 1 .\.a.....0060'fz.Q( 7 - b35 จาก 2 bd 0b 4f d3 ec-d0 e14 8 c65 03 1 b35 5 ..5.+.... ...e ..0070 38 - 34 8 f48 de 31 da ae 90-6 bd f0 b6 e9 19c cf 84 1..H..0080........ 5 - f42 56 13 88 0 b8 5c db-aa ee 7a d1 2b 71c dd 0090 .BV.......Z..,.q 7 - 1a f03 70 90 94 9 c0 62a-5 e0 9f 3c bf dc 0c a1495484262 z..p.. ..b. ....<. เวลาเริ่มต้น: 300 หมดเวลา: 18 (วินาที) ตรวจสอบรหัสส่งคืน: XNUMX (ใบรับรองที่ลงนามด้วยตนเอง) --- + OK Dovecot พร้อมแล้ว! ผู้ใช้เลโกลัส + ตกลง ผ่านเลโกลัส + ตกลงเข้าสู่ระบบ รายการ + ตกลง 1 ข้อความ: 1 1021 ย้อนกลับ 1 +ตกลง 1021 ออคเต็ต Return-Path: X-ต้นฉบับ-ถึง: legolas@desdelinux.fan ส่งถึง: legolas@desdelinux.fan ได้รับ: จากผู้ดูแลระบบdesdelinux.fan (เกตเวย์ [172.16.10.1]) โดย desdelinux.fan (Postfix) พร้อม ESMTP id 51886C11E8C0 สำหรับdesdelinux.แฟน>; จันทร์ที่ 22 พฤษภาคม 2017 15:09:11 -0400 (EDT) ข้อความ-ID: <919362.931369932-sendEmail@sysadmin> จาก: "buzz@deslinux.fan" ถึง: "เลโกลัส@desdelinux.พัดลม"desdelinux.fan> เรื่อง: สวัสดี วันที่: จันทร์ 22 พฤษภาคม 2017 19:09:11 +0000 X-Mailer: sendEmail-1.56 MIME-เวอร์ชัน: 1.0 ประเภทเนื้อหา: หลายส่วน/เกี่ยวข้อง; boundary="----MIME delimiter for sendEmail-365707.724894495" นี่คือข้อความหลายส่วนในรูปแบบ MIME หากต้องการแสดงข้อความนี้อย่างถูกต้อง คุณต้องมีโปรแกรมอีเมลที่รองรับ MIME เวอร์ชัน 1.0 ------ตัวคั่น MIME สำหรับ sendEmail-365707.724894495 ประเภทเนื้อหา: ข้อความ/ธรรมดา; charset="iso-8859-1" Content-Transfer-Encoding: 7bit คำทักทายเลโกลัสจากเพื่อนของคุณ Buzz ------ ตัวคั่น MIME สำหรับ sendEmail-365707.724894495-- เลิก + ตกลงออกจากระบบ ปิด buzz @ sysadmin: ~ $
Squirrelmail
Squirrelmail เป็นเว็บไคลเอนต์ที่เขียนด้วย PHP ทั้งหมด รวมถึงการรองรับ PHP ดั้งเดิมสำหรับโปรโตคอล IMAP และ SMTP และให้ความเข้ากันได้สูงสุดกับเบราว์เซอร์ต่างๆที่ใช้งานอยู่ ทำงานได้อย่างถูกต้องบนเซิร์ฟเวอร์ IMAP ใด ๆ มีฟังก์ชันทั้งหมดที่คุณต้องการจากไคลเอนต์อีเมลรวมถึงการสนับสนุน MIME สมุดที่อยู่และการจัดการโฟลเดอร์
[root @ linuxbox ~] # ยำติดตั้ง squirrelmail
[root @ linuxbox ~] # บริการ httpd เริ่มต้นใหม่
[root @ linuxbox ~] # นาโน /etc/squirrelmail/config.php
$โดเมน = 'desdelinux.พัดลม';
$imapServerAddress = 'เมล.desdelinux.พัดลม';
$ imapPort = 143;
$smtpที่อยู่เซิร์ฟเวอร์ = 'desdelinux.พัดลม';
[root @ linuxbox ~] # บริการโหลดใหม่ httpd
DNS Send Policy Framenwork หรือระเบียน SPF
ในบทความ NSD Authoritarian DNS Server + Shorewall เราเห็นว่าโซน «desdelinux.fan» ได้รับการกำหนดค่าดังนี้:
root@ns:~# นาโน /etc/nsd/desdelinux.fan.โซน $กำเนิด desdelinux.พัดลม. $TTL 3H @ ใน SOA หมายเลขdesdelinux.พัดลม. ราก.desdelinux.พัดลม. (1 ; อนุกรม 1D ; รีเฟรช 1H ; ลองอีกครั้ง 1W ; หมดอายุ 3H ); ขั้นต่ำหรือ; เวลาแคชเชิงลบที่จะมีชีวิตอยู่ ; @ ใน NS น.desdelinux.พัดลม. @ ในอีเมล MX 10desdelinux.พัดลม. @ ใน TXT "v=spf1 a:mail.desdelinux.แฟน -ทั้งหมด" - - การลงทะเบียนเพื่อแก้ไขแบบสอบถามการขุด desdelinux.fan @ ใน A 172.16.10.10 ; ns ในอีเมล 172.16.10.30 ใน CNAME desdelinux.พัดลม. แชทใน CNAME desdelinux.พัดลม. www ใน CNAME desdelinux.พัดลม. - - บันทึก SRV ที่เกี่ยวข้องกับ XMPP _xmpp-server._tcp ใน SRV 0 0 5269 desdelinux.พัดลม. _xmpp-client._tcp ใน SRV 0 0 5222 desdelinux.พัดลม. _jabber._tcp ใน SRV 0 0 5269 desdelinux.พัดลม.
ในนั้นมีการประกาศรีจิสทรี:
@ ใน TXT "v=spf1 a:mail.desdelinux.แฟน -ทั้งหมด"
หากต้องการกำหนดค่าพารามิเตอร์เดียวกันสำหรับเครือข่าย SME หรือ LAN เราต้องแก้ไขไฟล์การกำหนดค่า Dnsmasq ดังนี้:
# บันทึก TXT นอกจากนี้เรายังสามารถประกาศระเบียน SPF txt-record=desdelinux.fan,"v=spf1 a:mail.desdelinux.แฟน -ทั้งหมด"
จากนั้นเราเริ่มบริการใหม่:
[root @ linuxbox ~] # บริการ dnsmasq เริ่มต้นใหม่ [root@linuxbox ~]# สถานะบริการ DNS [root@linuxbox ~]# โฮสต์ -t จดหมาย TXTdesdelinux.แฟนเมล.desdelinux.fan เป็นนามแฝงของ desdelinux.พัดลม. desdelinux.fan ข้อความอธิบาย "v=spf1 a:mail.desdelinux.แฟน -ทั้งหมด"
ใบรับรองที่ลงนามด้วยตนเองและ Apache หรือ httpd
แม้ว่าเบราว์เซอร์ของคุณจะบอกคุณว่า«เจ้าของไฟล์ อีเมลdesdelinux.พัดลม คุณกำหนดค่าเว็บไซต์ของคุณไม่ถูกต้อง เพื่อป้องกันไม่ให้ข้อมูลของคุณถูกขโมย Firefox จึงไม่ได้เชื่อมต่อกับเว็บไซต์นี้” ใบรับรองที่สร้างขึ้นก่อนหน้านี้ มันถูกต้องและจะอนุญาตให้ข้อมูลประจำตัวระหว่างไคลเอนต์และเซิร์ฟเวอร์สามารถเข้ารหัสได้หลังจากที่เรายอมรับใบรับรอง
หากคุณต้องการและเป็นวิธีการรวมใบรับรองคุณสามารถประกาศให้ Apache เป็นใบรับรองเดียวกับที่คุณประกาศสำหรับ Postfix ซึ่งถูกต้อง
[root @ linuxbox ~] # นาโน /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/desdelinux.fan.crt
SSLCertificateKeyFile /etc/pki/tls/private/desdelinux.fan.คีย์
[root @ linuxbox ~] # บริการ httpd เริ่มต้นใหม่
[root @ linuxbox ~] # บริการสถานะ httpd
กลุ่ม Diffie-Hellman
ปัญหาเรื่องความปลอดภัยกลายเป็นเรื่องยากขึ้นทุกวันบนอินเทอร์เน็ต หนึ่งในการโจมตีการเชื่อมต่อที่พบบ่อยที่สุด SSL, เขาคือ logjam และเพื่อป้องกันมันจำเป็นต้องเพิ่มพารามิเตอร์ที่ไม่ได้มาตรฐานลงในคอนฟิกูเรชัน SSL สำหรับสิ่งนี้มี อาร์เอฟซี-3526 «Modular Exponential (MODP) เพิ่มเติม Diffie-Hellman กลุ่ม สำหรับ Internet Key Exchange (IKE)"
[root @ linuxbox ~] # cd / etc / pki / tls /
[root @ linuxbox tls] # openssl dhparam -out ส่วนตัว / dhparams.pem 2048
[root @ linuxbox tls] # chmod 600 private / dhparams.pem
ตามเวอร์ชันของ Apache ที่เราติดตั้งไว้เราจะใช้ Diffie-Helman Group จากไฟล์ /etc/pki/tls/dhparams.pem. หากเป็นเวอร์ชัน 2.4.8 หรือใหม่กว่าเราจะต้องเพิ่มไฟล์ /etc/httpd/conf.d/ssl.conf บรรทัดต่อไปนี้:
SSLOpenSSLConfCmd DHParameters "/etc/pki/tls/private/dhparams.pem"
Apache เวอร์ชันที่เราใช้คือ:
[root @ linuxbox tls] # ข้อมูลยำ httpd
ปลั๊กอินที่โหลดแล้ว: fastmirror, langpacks การโหลดความเร็วมิเรอร์จากไฟล์โฮสต์ที่แคชไว้แพ็คเกจที่ติดตั้งชื่อ: httpd Architecture: x86_64
เวอร์ชัน: 2.4.6
Release: 45.el7.centos ขนาด: 9.4 M Repository: ติดตั้งจากที่เก็บ: Base-Repo Summary: Apache HTTP Server URL: http://httpd.apache.org/ License: ASL 2.0 Description: Apache HTTP Server is a ทรงพลังมีประสิทธิภาพและขยายได้: เว็บเซิร์ฟเวอร์
เนื่องจากเรามีเวอร์ชันก่อน 2.4.8 เราจึงเพิ่มที่ส่วนท้ายของใบรับรอง CRT ที่สร้างขึ้นก่อนหน้านี้เนื้อหาของ Diffie-Helman Group:
[root @ linuxbox tls] # cat ส่วนตัว / dhparams.pem >> ใบรับรอง/desdelinux.fan.crt
หากคุณต้องการตรวจสอบว่าพารามิเตอร์ DH ถูกเพิ่มลงในใบรับรอง CRT อย่างถูกต้องให้ดำเนินการคำสั่งต่อไปนี้:
[root @ linuxbox tls] # cat ส่วนตัว / dhparams.pem ----- เริ่มต้นพารามิเตอร์ DH ----- MIIBCAKCAQEAnwfWSlirEuMwJft0hgAdB0km9d3qGGiErRXPfeZU+Tqp/ZFOCdzP /O6NeXuHI4vnsTDWEAjXmpRzq/z1ZEWQa6j+l1PgTgk2XqaMViD/gN+sFPnx2EmV keVcMDqG03gnmCgO9R4aLYT8uts5T6kBRhvxUcrk9Q7hIpGCzGtdgwaVf1cbvgOe 8kfpc5COh9IxAYahmNt+5pBta0SDlmoDz4Rk/4AFXk2mjpDYoizaYMPeIInGUzOv /LE6Y7VVRY/BJG9EZ5pVYJPCruPCUHkhvm+r9Tt56slk+HE2d52uFRSDd2FxK3n3 cN1vJ5ogsvmHayWUjVUA18LLfGSxEFsc4wIBAg== ----- สิ้นสุดพารามิเตอร์ DH ----- [root@linuxbox tls]# ใบรับรองแมว/desdelinux.fan.crt -----BEGIN CERTIFICATE----- MIIGBzCCA++gAwIBAgIJANd9FLCkDBfzMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJDVTENMAsGA1UECAwEQ3ViYTEPMA0GA1UEBwwGSGFiYW5hMRcwFQYDVQQK DA5EZXNkZUxpbnV4LkZhbjEUMBIGA1UECwwLRW50dXNpYXN0YXMxFzAVBgNVBAMM DmRlc2RlbGludXguZmFuMSIwIAYJKoZIhvcNAQkBFhNidXp6QGRlc2RlbGludXgu ZmFuMB4XDTE3MDUyMjE0MDQ1MloXDTIyMDUyMTE0MDQ1MlowgZkxCzAJBgNVBAYT AkNVMQ0wCwYDVQQIDARDdWJhMQ8wDQYDVQQHDAZIYWJhbmExFzAVBgNVBAoMDkRl c2RlTGludXguRmFuMRQwEgYDVQQLDAtFbnR1c2lhc3RhczEXMBUGA1UEAwwOZGVz ZGVsaW51eC5mYW4xIjAgBgkqhkiG9w0BCQEWE2J1enpAZGVzZGVsaW51eC5mYW4w ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn5MkKRdeFYiN+xgGdsRn8 sYik9X75YnJcbeZrD90igfPadZ75ehtfYIxxOS+2U+omnFgr/tCKYUVJ50seq/lB idcLP4mt7wMrMZUDpy1rlWPOZGKkG8AdStCYI8iolvJ4rQtLcsU6jhRzEXsZxfOb O3sqc71yMIj5qko55mlsEVB3lJq3FTDQAY2PhXopJ8BThW1T9iyl1HlYpxj7OItr /BqiFhxbP17Fpd3QLyNiEl+exVJURYZkvuZQqVPkFAlyNDh5I2fYfrI9yBVPBrZF uOdRmT6jv6jFxsBy9gggcy+/u1nhlKssLBEhyaKfaQoItFGCAmevkyzdl1LTYDPY ULi79NljQ1dSwWgraZ3i3ACZIVO/kHcOPljsNxE8omI6qNFWqFd1qdPH5S4c4IR1 5URRuwyVNffEHKaCJi9vF9Wn8LVKnN/+5zZGRJA8hI18HH9kF0A1sCNj1KKiB/xe /02wTzR/Gbj8pkyO8fjVBvd/XWI8EMQyMc1gvtIAvZ00SAB8c1NEOCs5pt0Us6pm 1lOkgD6nl90Dx9p805mTKD+ZcvRaShOvTyO3HcrxCxOodFfZQCuHYuQb0dcwoK2B yOwL77NmxNH1QVJL832lRARn8gpKoRAUrzdTSTRKmkVrOGcfvrCKhEBsJ67Gq1+T YDLhUiGVbPXXR9rhAyyX2QIDAQABo1AwTjAdBgNVHQ4EFgQURGCMiLVLPkjIyGZK UrZgMkO0X8QwHwYDVR0jBBgwFoAURGCMiLVLPkjIyGZKUrZgMkO0X8QwDAYDVR0T BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAdy1tH1DwfCW47BNJE1DW8Xlyp+sZ uYTMOKfNdnAdeSag1WshR6US6aCtU6FkzU/rtV/cXDKetAUIzR50aCYGTlfMCnDf KKMZEPjIlX/arRwBkvIiRTU1o3HTniGp9d3jsRWD/AvB3rSus4wfuXeCoy7Tqc9U FaXqnvxhF8/ptFeeCeZgWu16zyiGBqMj4ZaQ7RxEwcoHSd+OByg8E9IE2cYrWP2V 6P7hdCXmw8voMxCtS2s++VRd1fGqgGxXjXT8psxmY2MrseuTM2GyWzs+18A3VVFz UXLD2lzeYs638DCMXj5/BMZtVL2a4OhMSYY4frEbggB3ZgXhDDktUb7YhnBTViM3 2sgJJOSTltOgAnyOPE0CDcyktXVCtu3PNUc+/AB3UemI9XCw4ypmTOMaIZ2Gl6Uo pmTk41fpFuf8pqW3ntyu43lC5pKRBqhit6MoFGNOCvFYFBWcltpqnjsWfY2gG/b5 8D5HsedueqkAsVblKPBFpv1BB9X0HhBUYsrz8jNGZGbkgR4XQoIoLbQZHEB35APU 4yT1Lzc3jk34yZF5ntmFt3wETSWwJZ+0cYPw7n4E6vbs1C7iKAMQRVy+lI5f8XYS YKfrieiPPdmQ22Zm2Tbkqi4zjJBWmstrw6ezzAQNaaAkiOiJIwvXU81KYsN37THh Nf0/JsEjPklCugE= -----END CERTIFICATE----- -----BEGIN DH PARAMETERS----- MIIBCAKCAQEAnwfWSlirEuMwJft0hgAdB0km9d3qGGiErRXPfeZU+Tqp/ZFOCdzP /O6NeXuHI4vnsTDWEAjXmpRzq/z1ZEWQa6j+l1PgTgk2XqaMViD/gN+sFPnx2EmV keVcMDqG03gnmCgO9R4aLYT8uts5T6kBRhvxUcrk9Q7hIpGCzGtdgwaVf1cbvgOe 8kfpc5COh9IxAYahmNt+5pBta0SDlmoDz4Rk/4AFXk2mjpDYoizaYMPeIInGUzOv /LE6Y7VVRY/BJG9EZ5pVYJPCruPCUHkhvm+r9Tt56slk+HE2d52uFRSDd2FxK3n3 cN1vJ5ogsvmHayWUjVUA18LLfGSxEFsc4wIBAg== ----- สิ้นสุดพารามิเตอร์ DH -----
หลังจากการเปลี่ยนแปลงเหล่านี้เราต้องเริ่มบริการ Postfix และ httpd ใหม่:
[root @ linuxbox tls] # บริการ postfix เริ่มต้นใหม่ [root @ linuxbox tls] # สถานะ postfix บริการ [root @ linuxbox tls] # บริการ httpd เริ่มต้นใหม่ [root @ linuxbox tls] # บริการสถานะ httpd
การรวม Diffie-Helman Group ไว้ในใบรับรอง TLS ของเราอาจทำให้การเชื่อมต่อผ่าน HTTPS ช้าลงเล็กน้อย แต่การเพิ่มความปลอดภัยนั้นคุ้มค่า
กำลังตรวจสอบ Squirrelmail
แล้ว ว่าใบรับรองถูกสร้างขึ้นอย่างถูกต้องและเราตรวจสอบการทำงานที่ถูกต้องตามที่เราทำผ่านคำสั่งคอนโซลชี้เบราว์เซอร์ที่คุณต้องการไปที่ URL http://mail.desdelinux.fan/webmail และจะเชื่อมต่อกับเว็บไคลเอ็นต์หลังจากยอมรับใบรับรองที่เกี่ยวข้อง โปรดทราบว่าแม้ว่าคุณจะระบุโปรโตคอล HTTP แต่จะถูกเปลี่ยนเส้นทางไปยัง HTTPS และนี่เป็นเพราะการกำหนดค่าเริ่มต้นที่ CentOS เสนอสำหรับ Squirrelmail ดูไฟล์ /etc/httpd/conf.d/squirrelmail.conf.
เกี่ยวกับกล่องจดหมายของผู้ใช้
Dovecot สร้างกล่องเมล IMAP ในโฟลเดอร์ หน้าแรก ของผู้ใช้แต่ละคน:
[root @ linuxbox ~] # ls -la /home/legolas/mail/.imap/ รวม 12 drwxrwx ---. 5 เลโกลัสเมล 4096 22 พฤษภาคม 12:39 น. drwx ------. 3 เลโกลัสเลโกลัส 75 22 พ.ค. 11:34 น .. -rw -------. 1 เลโกลัสเลโกลัส 72 22 พฤษภาคม 11:34 น. dovecot.mailbox.log -rw -------. 1 เลโกลัสเลโกลัส 8 พฤษภาคม 22 12:39 น. dovecot-uidvalidity -r - r - r--. 1 เลโกลัสเลโกลัส 0 22 พฤษภาคม 10:12 dovecot-uidvalidity.5922f1d1 drwxrwx ---. 2 legolas mail 56 22 พ.ค. 10:23 INBOX drwx ------. 2 เลโกลัสเลโกลัส 56 22 พ.ค. 12:39 ส่ง drwx ------. 2 เลโกลัสเลโกลัส 30 พ.ค. 22 11:34 น
นอกจากนี้ยังเก็บไว้ใน / var / mail /
[root @ linuxbox ~] # less / var / mail / legolas จาก MAILER_DAEMON จันทร์ที่ 22 พฤษภาคม 10:28:00 น. 2017 วันที่: จันทร์ที่ 22 พฤษภาคม 2017 10:28:00 -0400 จาก: ข้อมูลภายในระบบเมล เรื่อง: อย่าลบข้อความนี้ -- FOLDER ข้อมูลภายใน Message-ID: <1495463280@linuxbox> มันถูกสร้างขึ้นโดยอัตโนมัติโดยซอฟต์แวร์ระบบเมล หากถูกลบ ข้อมูลโฟลเดอร์ที่สำคัญจะสูญหาย และจะถูกสร้างขึ้นใหม่ด้วยการรีเซ็ตข้อมูลเป็นค่าเริ่มต้น จากรูท@desdelinux.fan จันทร์ที่ 22 พฤษภาคม 10:47:10 น. 2017 เส้นทางกลับ:desdelinux.fan> X-Original-To: legolas ส่งถึง: legolas@desdelinux.fan ได้รับ: โดย desdelinux.fan (Postfix จากรหัสผู้ใช้ 0) id 7EA22C11FC57; จันทร์ที่ 22 พฤษภาคม 2017 10:47:10 -0400 (EDT) วันที่: จันทร์ที่ 22 พฤษภาคม 2017 10:47:10 -0400 ถึง: legolas@desdelinux.fan เรื่อง: ตัวแทนผู้ใช้ทดสอบ: Heirloom mailx 12.5 7/5/10 เวอร์ชัน MIME: 1.0 ประเภทเนื้อหา: ข้อความ/ธรรมดา; charset=us-ascii การเข้ารหัสเนื้อหาการถ่ายโอน: 7 บิตรหัสข้อความ: <20170522144710.7EA22C11FC57@desdelinux.แฟน> จาก: root@desdelinux.fan (root) X-UID: 7 สถานะ: RO สวัสดี นี่คือข้อความทดสอบจาก buzz@deslinux.fan จันทร์ที่ 22 พฤษภาคม 10:53:08 2017 Return-Path: X-ต้นฉบับ-ถึง: legolas@desdelinux.fan ส่งถึง: legolas@desdelinux.fan ได้รับ: จากผู้ดูแลระบบdesdelinux.fan (เกตเวย์ [172.16.10.1]) โดย desdelinux.fan (Postfix) พร้อม ESMTP id C184DC11FC57 สำหรับdesdelinux.แฟน>; จันทร์ที่ 22 พฤษภาคม 2017 10:53:08 -0400 (EDT) ข้อความ-ID: <739874.219379516-sendEmail@sysadmin> จาก: "buzz@deslinux.fan" ถึง: "เลโกลัส@desdelinux.พัดลม"desdelinux.fan> เรื่อง: สวัสดี วันที่: จันทร์ 22 พฤษภาคม 2017 14:53:08 +0000 X-Mailer: sendEmail-1.56 MIME-Version: 1.0 Content-Type: multipart/ related; ขอบเขต = "---- ตัวคั่น MIME สำหรับ sendEmail-794889.899510057 / var / mail / เลโกลัส
สรุปมินิซีรีส์ PAM
เราได้พิจารณาถึงหัวใจหลักของเซิร์ฟเวอร์อีเมลและให้ความสำคัญกับความปลอดภัยเล็กน้อย เราหวังว่าบทความนี้จะทำหน้าที่เป็นจุดเริ่มต้นของหัวข้อที่ซับซ้อนและเสี่ยงต่อการทำผิดพลาดเนื่องจากเป็นการติดตั้ง Mail Server ด้วยตนเอง
เราใช้การพิสูจน์ตัวตนผู้ใช้ภายในเพราะถ้าเราอ่านไฟล์อย่างถูกต้อง /etc/dovecot/conf.d/10-auth.confเราจะเห็นว่าในที่สุดก็รวม -โดยค่าเริ่มต้น- ไฟล์รับรองความถูกต้องของผู้ใช้ระบบ รวม auth-system.conf.ext. ไฟล์นี้บอกเราในส่วนหัวอย่างแม่นยำว่า:
[root @ linuxbox ~] # น้อยกว่า /etc/dovecot/conf.d/auth-system.conf.ext
# การรับรองความถูกต้องสำหรับผู้ใช้ระบบ รวมจาก 10-auth.conf # # # # การรับรองความถูกต้อง PAM ระบบส่วนใหญ่เป็นที่ต้องการในปัจจุบัน
โดยทั่วไป # PAM จะใช้กับ userdb passwd หรือ userdb static # โปรดจำไว้: คุณจะต้องมีไฟล์ /etc/pam.d/dovecot ที่สร้างขึ้นสำหรับการตรวจสอบสิทธิ์ PAM # เพื่อให้ใช้งานได้จริง passdb {ไดรเวอร์ = pam # [เซสชัน = ใช่] [setcred = ใช่] [failure_show_msg = ใช่] [max_requests = ] # [cache_key = ] [ ] #args = dovecot}
และมีไฟล์อื่นอยู่ /etc/pam.d/dovecot:
[root @ linuxbox ~] # แมว /etc/pam.d/dovecot #% PAM-1.0 จำเป็นต้องตรวจสอบสิทธิ์ pam_nologin.so auth รวมบัญชีตรวจสอบรหัสผ่านรวมถึงเซสชันการตรวจสอบรหัสผ่านรวมถึงการตรวจสอบรหัสผ่าน
เราพยายามจะสื่ออะไรเกี่ยวกับการตรวจสอบสิทธิ์ PAM
- CentOS, Debian, Ubuntu และ Linux อื่น ๆ อีกมากมายติดตั้ง Postifx และ Dovecot โดยเปิดใช้งานการรับรองความถูกต้องภายในเครื่องโดยค่าเริ่มต้น
- บทความมากมายบนอินเทอร์เน็ตใช้ MySQL - และล่าสุด MariaDB - เพื่อจัดเก็บผู้ใช้และข้อมูลอื่น ๆ ที่เกี่ยวข้องกับ Mailserver แต่สิ่งเหล่านี้เป็นเซิร์ฟเวอร์สำหรับผู้ใช้หลายพันคนไม่ใช่สำหรับเครือข่าย SME แบบคลาสสิกที่มีผู้ใช้หลายร้อยคน
- การรับรองความถูกต้องผ่าน PAM เป็นสิ่งที่จำเป็นและเพียงพอที่จะให้บริการเครือข่ายตราบเท่าที่พวกเขาทำงานบนเซิร์ฟเวอร์เดียวตามที่เราเห็นในมินิซีรีส์
- ผู้ใช้ที่จัดเก็บในฐานข้อมูล LDAP สามารถแมปได้ราวกับว่าพวกเขาเป็นผู้ใช้ภายในเครื่องและการพิสูจน์ตัวตน PAM สามารถใช้เพื่อให้บริการเครือข่ายจากเซิร์ฟเวอร์ Linux ที่ต่างกันซึ่งทำหน้าที่เป็นไคลเอ็นต์ LDAP สำหรับเซิร์ฟเวอร์การพิสูจน์ตัวตนส่วนกลาง ด้วยวิธีนี้เราจะทำงานกับข้อมูลประจำตัวของผู้ใช้ที่เก็บไว้ในฐานข้อมูลเซิร์ฟเวอร์ LDAP ส่วนกลางและไม่จำเป็นที่จะต้องดูแลฐานข้อมูลกับผู้ใช้ในพื้นที่
จนถึงการผจญภัยครั้งต่อไป!
เชื่อฉันเถอะว่าในทางปฏิบัตินี่เป็นกระบวนการที่ทำให้ปวดหัวอย่างรุนแรงมากกว่าหนึ่งระบบฉันเชื่อว่าในอนาคตจะเป็นแนวทางอ้างอิงสำหรับทุกคนที่ต้องการจัดการอีเมลด้วยตนเองซึ่งเป็นกรณีที่ใช้ได้จริง ใน abc เมื่อรวม postfix, dovecot, squirrelmail ..
ขอบคุณมากสำหรับผลงานที่น่ายกย่องของคุณ
ทำไมไม่ใช้ Mailpile ในเรื่องความปลอดภัยกับ PGP นอกจากนี้ Roundcube ยังมีอินเทอร์เฟซที่ใช้งานง่ายกว่ามากและยังสามารถผสานรวม PGP
3 วันก่อนฉันอ่านโพสต์ฉันรู้วิธีขอบคุณ ฉันไม่ได้วางแผนที่จะติดตั้งเซิร์ฟเวอร์อีเมล แต่การดูการสร้างใบรับรองมีประโยชน์สำหรับแอปพลิเคชันอื่น ๆ และแบบฝึกหัดเหล่านี้แทบจะไม่มีวันหมดอายุ (โดยเฉพาะเมื่อคุณใช้ centOS)
Manuel Cillero: ขอขอบคุณสำหรับการเชื่อมโยงไปยังและจากบล็อกของคุณบทความนี้ซึ่งเป็นแกนหลักขั้นต่ำของเซิร์ฟเวอร์อีเมลตาม Postfix และ Dovecot
Lizard: เช่นเคยการประเมินของคุณได้รับการตอบรับเป็นอย่างดี ขอขอบคุณ.
Darko: ในบทความเกือบทั้งหมดของฉันฉันแสดงความคิดเห็นไม่มากก็น้อยว่า "ทุกคนใช้บริการกับโปรแกรมที่พวกเขาชอบมากที่สุด" ขอบคุณสำหรับความคิดเห็น
มาร์ติน: ขอบคุณที่อ่านบทความนี้และฉันหวังว่ามันจะช่วยคุณในการทำงานของคุณ
เพื่อนบทความอันยิ่งใหญ่ Federico ขอบคุณมากสำหรับ tuto ที่ดีเช่นนี้
ยอดเยี่ยมแม้ว่าฉันจะใช้ "ผู้ใช้เสมือน" เพื่อหลีกเลี่ยงการสร้างผู้ใช้ระบบทุกครั้งที่ฉันเพิ่มอีเมลขอบคุณฉันได้เรียนรู้สิ่งใหม่ ๆ มากมายและนี่คือประเภทของโพสต์ที่ฉันรอ
ช่วงบ่ายที่ดี
พวกเขาจะกล้าสร้างสิ่งเดียวกันกับเซิร์ฟเวอร์ไดเรกทอรี fedora + postifx + dovecot + ธันเดอร์เบิร์ดหรือ Outlook
มีส่วนแต่ติดขัด ยินดีแบ่งปันเอกสารสู่ชุมชนครับ@desdelinux
ไม่นึกไม่ฝันว่าจะมีผู้เข้าชมมากกว่า 3000 ครั้ง !!!
ทักทายจิ้งจก!
เพื่อนร่วมงานกวดวิชาที่ยอดเยี่ยม
คุณทำได้ไหมสำหรับ Debian 10 กับผู้ใช้ Active Directory ที่ติดตั้งบน Samba4 ???
ฉันคิดว่ามันเกือบจะเหมือนเดิม แต่เปลี่ยนประเภทการพิสูจน์ตัวตน
ส่วนที่คุณอุทิศให้กับการสร้างใบรับรองที่ลงนามด้วยตนเองนั้นน่าสนใจมาก