เกมส์โกงแผ่น : Debian Lenny Mail Server : Postfix - Courier - SSL SSL SASL กวดวิชา - MD5 TLS เสมือนนามแฝง ClamAV Procmail SpamAssassin
ผมอยากที่จะทำอีกครั้งกับเซิร์ฟเวอร์อีเมล แต่น่าเสียดายที่ผมมักจะสับสนเพราะ -- มากขององค์ประกอบที่แตกต่างกันจำเป็นต้องสื่อสารกับแต่ละอื่น ๆ -- ขึ้นอยู่กับการตั้งค่าของคุณ ด้วยเหตุนี้ที่นี่เป็นแผ่นโกงของฉันสำหรับเซิร์ฟเวอร์อีเมลบนโฮสต์อินเทอร์เน็ตกับ FQDN มันได้รับการทดสอบบน Debian Lenny
ทั้งหมดเชื่อมต่อภายนอกจะถูกเข้ารหัสหรือ obfuscated ด้วย MD5 hashes pasword อัด จดหมายขาเข้ามีการตรวจสอบสแปมและไวรัสและผู้ใช้สามารถอ่านอีเมลของพวกเขาผ่าน IMAP
und gesichtere Verbindungen grün . ในภาพข้างบน daemons สีเหลือง, การเชื่อมต่อฐานข้อมูลใบหน้าสีเทาและสีเขียว
สิ่งที่แต่ละองค์ประกอบจะทำอย่างไร
- ต้องการส่งจดหมาย Postfix ที่ได้รับลูกค้า นี้เขาส่งไปยังเซิร์ฟเวอร์ที่ถูกต้องบนอินเทอร์เน็ต นอกจากนี้ในจดหมาย entfängt Postfix จากอินเทอร์เน็ตสำหรับผู้ใช้กับกล่องจดหมายบนเซิร์ฟเวอร์
- นามแฝงเสมือน (ส่วนหนึ่งของ Postfix) เป็นฐานข้อมูลที่มีอีเมล Postfix รับอีเมลที่ผู้ใช้สามารถเชื่อมโยงแต่ละ
- Saslauthd authenticates ผู้ใช้ต้องการที่จะส่งอีเมลผ่าน Postfix ผ่าน SMTP เขาจะตรวจสอบชื่อผู้ใช้และรหัสผ่านด้วย MD5 hashes อัด
- Sasldb เป็นฐานข้อมูลอาจขอจากชื่อผู้ใช้ saslauthd ใช้และรหัสผ่าน
- Courier - IMAP คือ mail ของลูกค้าเพื่อให้ผู้ใช้อีเมล Maildir จากพวกเขาสามารถใช้ได้
- Courier - authdaemon ผู้ใช้สิทธิ์อ่านจดหมายของ Courier - IMAP เขาจะตรวจสอบชื่อผู้ใช้และรหัสผ่านด้วย MD5 hashes อัด
- Userdb (ส่วนหนึ่งของ Courier) เป็นฐานข้อมูลอาจขอจาก Courier - authdaemon ชื่อผู้ใช้และรหัสผ่าน
- Procmail เป็นตัวกรองที่ทำงานผ่านอีเมลที่ได้รับทุกคนต้อง Procmail ไปผ่านอีเมลไปที่ตัวกรองสแปมและไวรัสและสแกนเนอร์แล้วให้พวกเขาจากผู้ใช้
- Clamassassin เป็นเครื่องมือที่มีขนาดเล็กที่ให้การเชื่อมต่อระหว่าง Procmail และ ClamAV มันจะไปผ่านทางอีเมล์เท่านั้นที่จะ ClamAV
- SpamAssassin (spamd) ตรวจสอบสแปม เป็นคะแนนของอีเมลแต่ละที่บอกวิธีการที่น่าจะเป็นที่อีเมลขยะมีการตรวจสอบ
- Maildir กล่องจดหมายของที่นี่มีอีเมลของผู้ใช้ของระบบ มันเป็นไดเรกทอรีปกติในระบบไฟล์ ลูกค้า IMAP สามารถดึงข้อมูลได้จากที่นั่น
การจัดเตรียม
การติดตั้งแพคเกจที่จำเป็นทั้งหมด
apt - get ปรับปรุง & & apt - ได้รับการอัพเกรด apt - get install postfix postfix postfix - doc libsasl2 - 2 - bin sasl2 libsasl2 โมดูล clamassassin จัดส่ง - IMAP - SSL ClamAV Procmail SpamAssassin
Courier Konfigfragen
- เว็บไดเรกทอรีสำหรับการบริหาร? ไม่มี
Postfix Konfigfragen
- อินเทอร์เน็ตเซิร์ฟเวอร์
- ชื่อ E - mail : resolvable โดย DNS FQDN ของเซิร์ฟเวอร์ (เช่น meinedomain.de)
การกำหนดค่าของ Postfix อย่างต่อเนื่อง
กำหนดค่า dpkg - postfix เพิ่มเติม Postfix Konfigfragen
- อินเทอร์เน็ตเซิร์ฟเวอร์
- ผู้ที่ควรจะถูกส่งต่อข้อความโดย root : ไม่มีอะไรมาแทรกในภายหลัง
- คอมพิวเตอร์สำหรับวัตถุประสงค์ของระบบคอมพิวเตอร์เครื่องนี้มีการพิจารณา : โดเมนทั้งหมดที่มี Postfix จะได้รับจดหมายและมีรายการ DNS สำหรับ IP ของเซิร์ฟเวอร์ที่ (เช่น meinedomain.de, meinanderedomain.de, meinedrittedomain.de)
postfix
ไฟล์ config สำหรับ Postfix
# / etc / postfix / main.cf smtpd_banner = $ myhostname ESMTP $ myhostname (Debian / GNU) BIFF = ไม่มี append_dot_mydomain = ไม่มี readme_directory = / usr / share / doc / postfix # TLS ที่ smtpd_use_tls = ใช่ smtpd_tls_session_cache_database = btree : data_directory $ {} / smtpd_scache smtp_tls_session_cache_database = btree : data_directory $ {} / smtp_scache myhostname = meinedomain.de alias_maps hash = : / etc / aliases alias_database hash = : / etc / aliases myorigin = / etc / mailname mydestination = meinedomain.de, โดเมนอื่น ๆ ของฉันโดเมน localhost ฉันที่สาม, 127.0.0.1 relayhost = mynetworks = 127.0.0.0 / 8 [: : ffff : 127.0.0.0] / 104 [: : 1] / 128 mailbox_command = 0 recipient_delimiter = + inet_interfaces = ทั้งหมด html_directory = / usr / share / doc / postfix / html inet_protocols = IPv4 # Auth ผ่าน SASL smtpd_sasl_auth_enable = ใช่ broken_sasl_auth_clients = ใช่ # เพียง แต่ช่วยให้ผู้ใช้ส่งจดหมายที่อยู่ใน DB SASL เพียงให้รหัสผ่าน MD5 smtp_sasl_security_options = noplaintext, noanonymous # โฮสต์ท้องถิ่นเท่านั้น (mynetworks) และผู้ใช้ที่ลงทะเบียนสามารถส่งอีเมลผ่านทาง SASL smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, permit_sasl_authenticated smtpd_sasl_local_domain = # เฉพาะการตรวจสอบการเข้ารหัสด้วย TLS smtp_tls_auth_only = ใช่ # TLS ที่ smtp_use_tls = ใช่ smtpd_use_tls = ใช่ ใช่ smtp_tls_note_starttls_offer = # ที่สำคัญด้วยตนเองสร้างขึ้นและผ่านการรับรองจาก smtpd_tls_key_file = / etc / postfix / CERT / smtpd.key smtpd_tls_cert_file = / etc / postfix / CERT / smtpd.crt smtpd_tls_CAfile = / etc / postfix / CERT / cacert.pem ภายหลัง # 0, ที่ดีสำหรับการแก้จุดบกพร่อง 1 smtpd_tls_loglevel = smtpd_tls_received_header = ใช่ smtpd_tls_session_cache_timeout 3600 วินาที = tls_random_source = dev : / dev / urandom # ส่งจดหมายใน maildirs home_mailbox = / Maildir # ชื่อไฟล์ของนามแฝงเสมือนแผนที่มีการกำหนดของที่อยู่ e - mail ไปยังกล่องจดหมายในท้องถิ่น virtual_alias_maps = กัญชา : / etc / postfix / เสมือน จดหมาย # ไม่ได้อยู่ในกล่องจดหมายโดยตรง แต่ส่งผ่านไปยัง Procmail mailbox_command ="นามสกุล $"Procmail -
SASL
SASL ให้ daemon สำหรับกลไกการตรวจสอบที่แตกต่างกัน การตั้งค่านี้สามารถเก็บไว้ในฐานข้อมูลที่ผู้ใช้ SASL ที่สามารถส่งอีเมลผ่านของเรา Postfix (ดังนั้นชื่อผู้ใช้และรหัสผ่านที่จะต้องป้อนในการเข้าถึงลูกค้า e - mail ไปยังเซิร์ฟเวอร์ SMTP)
การสร้างไฟล์ config สำหรับ SASL
# / etc / postfix / smtpd.conf pwcheck_method : authdaemond mech_list : กวดวิชา - MD5
postfix สามารถที่น่าเสียดายที่ยังไม่ได้ใช้ saslauthd เพื่อตรวจสอบข้อมูลของผู้ใช้เพราะ postfix เป็นที่ทำงานในสภาพแวดล้อม chroot และยังคงมีการเข้าถึง saslauthd
# / etc / default / saslauthd start = ใช่ DESC ="ภูต SASL รับรองความถูกต้อง" NAME ="saslauthd" กลไก ="PAM" MECH_OPTIONS ="" หัวข้อ = 5 # - M กับเราสถานที่ซ็อกเก็ต saslauthd ของไดเรกทอรีที่สามารถเข้าถึงได้จาก chroot Postfix OPTIONS ="- C - M / var / spool / postfix / var / รัน saslauthd /"
หลังจากที่ยังคงต้องมีการเปลี่ยนแปลงใน"เริ่มต้นเช่น"บล็อกจาก / etc / init.d / saslauthd สถานที่สำหรับการ PID, อีกครั้งเพื่อให้ Postfix สามารถอ่านไฟล์ PID
# / etc / init.d / saslauthd . . PIDFILE ="/ var / spool / postfix / var / run / $ {ชื่อ} / saslauthd.pid" . .
TLS
ตอนนี้สามารถส่งช่องสัญญาณใด ๆ ที่ไม่ได้รับรองความถูกต้องมากขึ้นกว่าที่ mail Postfix SMTP แต่จดหมายยังคงอยู่ในข้อความธรรมดาผ่าน LAN และ Internet การเข้ารหัส TLS ถูกเปิดใช้งานในแฟ้มดังกล่าวข้างต้น Postfix - config main.cf แต่ที่สำคัญยังขาดหายไปและใบรับรอง
mkdir / etc / postfix / ใบรับรอง cd / etc / postfix / ใบรับรอง OpenSSL genrsa - des3 - rand / etc / hosts ออก. / smtpd.key 1024 chmod 600. / smtpd.key OpenSSL req ใหม่ที่สำคัญ. / smtpd.key ออก. / smtpd.csr OpenSSL x509 - req - 99999 วันที่ใน. / - smtpd.csr signkey. / smtpd.key ออก. / smtpd.crt OpenSSL RSA ใน. / smtpd.key ออก. / smtpd.key.tmp MV - F. / smtpd.key.tmp. / smtpd.key chmod 600. / smtpd.key OpenSSL req ใหม่ - X509 - นามสกุล v3_ca - keyout. / cakey.pem ออก. / cacert.pem - 99 วันที่ 999
สร้างฐานข้อมูล SASL
อีเมลอยู่ในขณะนี้การเข้ารหัสระหว่างการส่งชื่อผู้ใช้และรหัสผ่านสำหรับการส่งจดหมายผ่านเซิร์ฟเวอร์ SMTP แต่ก็ยังไปผ่านทางอินเทอร์เน็ตในข้อความธรรมดา นี้จะสามารถปกปิดอย่างน้อยกับวิธีการอัด - MD5 นี้อยู่ใน / etc / postfix / smtpd.conf เปิดใช้งาน เพียง แต่มันขาดฐานข้อมูลที่ตัวเองสร้าง SASL หนึ่งนี้โดยเพียงแค่ช่วยให้ผู้ใช้อีเมลในภายหลังชื่อผู้ใช้และรหัสผ่าน
# สำหรับ mail ของผู้ใช้ท้องถิ่นชื่อผู้ใช้ที่ใช้ในการสร้างฐานข้อมูล SASL กับผู้ใช้เป็นครั้งแรก ชื่อผู้ใช้ saslpasswd2
postfix เป็นที่เสร็จสิ้น เขาสามารถรับและส่งอีเมล การเชื่อมต่อให้กับลูกค้าอีเมลอื่น ๆ และเซิร์ฟเวอร์จะถูกเข้ารหัส
Courier
เดินเอกสารไฟล์ config
# / etc / ไปรษณีย์ / authdaemonrc # UserDB ใช้การตรวจสอบ authmodulelist ="authuserdb" authmodulelistorig ="authuserdb AuthPAM authpgsql authldap authmysql authcustom authpipe" daemons = 5 authdaemonvar = / var / run / ไปรษณีย์ / authdaemon # ที่ดีสำหรับการแก้จุดบกพร่อง DEBUG_LOGIN = 2 ตัวเลือกเริ่มต้น ="" LOGGEROPTS =""
# / etc จัดส่ง / / authmodulelist Courierauthdaemon # ใช้ MD5 อัด authcram
# / etc จัดส่ง / / ที่อยู่ imapd = 0 PORT = 143 MAXDAEMONS maxperip = 40 = 20 PIDFILE TCPDOPTS = / var / run / ไปรษณีย์ / imapd.pid ="nodnslookup noidentlookup"LOGGEROPTS ="ชื่อ = imapd"# ที่นี่ AUTH = กวดวิชา - MD5 IMAP_CAPABILITY เพิ่ม ="IMAP4rev1 กระทู้ UIDPLUS namespace เด็ก = ORDEREDSUBJECT = เรียงลำดับกระทู้ QUOTA อ้างอิง AUTH = กวดวิชา - MD5 IDLE"IMAP_KEYWORDS = 1 IMAP_ACL = 1 IMAP_CAPABILITY_ORIG ="IMAP4rev1 กระทู้ UIDPLUS namespace เด็ก = ORDEREDSUBJECT กระทู้อ้างอิง = เรียงลำดับ AUTH QUOTA = MD5 กวดวิชา - AUTH = กวดวิชา - SHA1 AUTH = กวดวิชา - SHA256 IDLE"IMAP_PROXY IMAP_PROXY_FOREIGN = 0 = 0 = 60 IMAP_MAILBOX_SANITY_CHECK IMAP_IDLE_TIMEOUT = 1 IMAP_CAPABILITY_TLS ="$ AUTH = IMAP_CAPABILITY"IMAP_CAPABILITY_TLS_ORIG ="ธรรมดา $ AUTH = PLAIN IMAP_CAPABILITY_ORIG"IMAP_DISABLETHREADSORT = 0 IMAP_CHECK_ALL_FOLDERS = 0 = 0 IMAP_OBSOLETE_CLIENT IMAP_UMASK = 022 = 65536 IMAP_ULIMITD IMAP_USELOCKS = 1 IMAP_SHAREDINDEXFILE = / etc / ไปรษณีย์ / ใช้ร่วมกัน / ดัชนี IMAP_ENHANCEDIDLE = 0 IMAP_TRASHFOLDERNAME = ถังขยะถังขยะ IMAP_EMPTYTRASH = : 7 HEADER IMAP_MOVE_EXPUNGE_TO_TRASH Sendmail = 0 = / usr / sbin / sendmail จาก = X IMAP ผู้ส่ง IMAPDSTART = YES MAILDIRPATH = Maildir 993 SSLPort = externe.ip.des.servers SSLADDRESS = SSLPIDFILE = / var / run / ไปรษณีย์ / imapd - ssl.pid SSLLOGGEROPTS ="ชื่อ = imapd - SSL" IMAPDSSLSTART = YES IMAPDSTARTTLS = YES IMAP_TLS_REQUIRED = 1 Couriertls = / usr / bin / couriertls TLS_KX_LIST = ทั้งหมด TLS_COMPRESSION = ทั้งหมด TLS_CERTS = X509 TLS_CERTFILE = / etc / ไปรษณีย์ / imapd.pem TLS_TRUSTCERTS = / etc / ssl / certs ไม่มี TLS_VERIFYPEER = TLS_CACHEFILE = / var / lib / ไปรษณีย์ / couriersslcache TLS_CACHESIZE = 524288 Maildir MAILDIRPATH = # อีกครั้งหนึ่งที่มาถึงการกวดวิชา - MD5 AUTH = IMAP_CAPABILITY ="IMAP4rev1 กระทู้ namespace เด็ก = กระทู้ UIDPLUS เรียงลำดับข้อมูลอ้างอิง = QUOTA ORDEREDSUBJECT AUTH = กวดวิชา - MD5 IDLE"
ฆาตกรสแปม
ฆาตกรสแปมถูกเปิดใช้งาน
# / etc / default / SpamAssassin enabled = 1 OPTIONS ="-- สร้าง - การตั้งค่า -- max - เด็ก 5 -- ผู้ช่วยที่บ้าน - dir" PIDFILE ="/ var / run / spamd.pid" cron = 0
Procmail
หลังจาก Postfix ได้รับจดหมายจากอินเทอร์เน็ตสำหรับผู้ใช้ในท้องถิ่นนั้นจะผ่านมันไป Procmail Procmail แล้วผ่านอีเมลเพื่อ SpamAssassin ตรวจสอบพวกเขาสแปมและ clamassassin ที่ส่งต่อไปยังโปรแกรมสแกนไวรัส ClamAV
# Procmailrc ตัวอย่าง. สำหรับไดเรกทอรีบ้านของผู้ใช้อีเมล PATH = $ HOME / bin : / usr / bin : / bin : / usr / local / bin : maildir = $ HOME / Maildir / default = $ HOME / Maildir / ใหม่ LogFile = $ HOME / procmail.log ฆาตกร SPAM # : 0fw : / var / run / spam.lock * * * * <256 000 | Spamc - F - U $ LOGNAME # ทั้งหมด SPAM 10-99 คะแนนมีเส้นทางเดียวกัน : 0 : * ^ X - Spam - สถานะ : ใช่คะแนน = [1-9] [0-9] \ / dev / null SPAM # ทั้งหมดที่มีคะแนน> 3 จะหายไป # : 0 : # * ^ X - Spam - สถานะ : ใช่คะแนน = \ [4-9] # / dev / null : 0fw | / usr / bin / clamassassin # Rewrite บรรทัดเรื่องถ้าระดับสแปมสูงพอ : 0fw * ^ X - Spam - สถานะ : ใช่ Sed '1 ,/^$/ s @ เรื่อง ^ | : เรื่อง @ : ไวรัส / / @! : 0 : * ^ X - Spam - สถานะ : ใช่ / dev / null # ย้ายอีเมลสแปมสแปม SA : 0 : * ^ X - Spam - สถานะ : ใช่ $ Maildir /. สแปม / ใหม่ # อีเมลทั้งหมดที่มีทำให้มันนี้ไกลโดยไม่ต้องสิ้นการบาดเจ็บขึ้นมาโดยอัตโนมัติในกล่องจดหมายของผู้ใช้ "มีไปรษณีย์ส่งถึงคุณ!"
! ผิว ระบบอีเมลเสร็จเรียบร้อยแล้ว! มันขาดเพียง maildirs ผู้ใช้และการกำหนดค่าของนามแฝงเสมือนเพื่อตรวจสอบว่าที่อยู่อีเมลที่โหลดลงในกล่องจดหมายของท้องถิ่นซึ่ง สคริปต์ต่อไปนี้จะสร้างผู้ใช้ระบบ UNIX และผู้ใช้เดียวกันอีกครั้งสำหรับ Postfix และจัดส่ง sasldb ใน Courier - Userdb
สคริปต์เพื่อสร้างผู้ใช้ใหม่
# เพิ่มผู้ใช้ใหม่เพื่อให้ระบบอีเมล # / bin / bash ชัดเจน echo"ผู้ใช้ใหม่สำหรับระบบอีเมล"; echo"ใส่ชื่อผู้ใช้ :"; อ่าน newuser echo $ newuser> ราก> / / สคริปต์ mail / / mail_users.dat # การเพิ่มผู้ใช้ Unix adduser -- ผู้ใช้ ingroup -- เงียบ -- เปลือก / bin / เท็จ $ newuser เสียงก้อง echo"ลินุกซ์ถูกสร้างขึ้น ....." เสียงก้อง # การเพิ่มกล่องจดหมาย Courier maildirmake / home / $ newuser / Maildir F maildirmake สแปม / home / $ newuser / Maildir maildirmake ไวรัส F / home / $ newuser / Maildir maildirmake LerneSpam F / home / $ newuser / Maildir maildirmake LerneKeinSpam F / home / $ newuser / Maildir maildirmake F / โฟลเดอร์บ้านของฉัน / $ newuser / Maildir maildirmake ส่ง F / home / $ newuser / Maildir ถังขยะ maildirmake - F / home / $ newuser / Maildir chown - R newuser.users $ / home / $ newuser / Maildir เสียงก้อง echo"IMAP ไดเรกทอรีอีเมลที่ถูกสร้างขึ้น ...." เสียงก้อง # การตั้งค่า SASL สำหรับ Postfix SMTP auth รหัสผ่าน เสียงก้อง เสียงก้อง echo"รหัสผ่านสำหรับ SMTP - AUTH (แสดงอีเมลกับลูกค้า)" saslpasswd2 $ newuser เสียงก้อง เสียงก้อง echo"ระบุรหัสผ่านสำหรับการท่องเที่ยว (Zuganspasswort สำหรับ imapserver)" NEWUID =`แมว / etc / passwd | grep $ newuser | ตัด - D : - F3` $ userdb ตั้ง newuser บ้าน = / home / $ newuser = $ uid = 100 NEWUID gid userdbpw - hmac - md5 | userdb ตั้ง newuser $ IMAP - hmac - md5pw บ้าน = / home / $ newuser makeuserdb / etc / init.d / ไปรษณีย์ - authdaemon รีสตาร์ท / รีสตาร์ท etc / init.d / saslauthd echo"ตกลงการใช้งาน. สร้าง" echo"กําหนดที่ผู้ใช้ใหม่โปรดที่อยู่อีเมลยังคง!" เสียงก้อง เสียงก้อง echo"แก้ไข / etc / postfix / เสมือน." echo"จากนั้นเรียกใช้ครั้งเดียว : postmap / etc / postfix / เสมือน" echo"เรียกใช้จากนั้นเมื่อ : / โหลด etc / init.d / postfix"
สคริปต์สำหรับการลบผู้ใช้
echo"ลบผู้ใช้นี้" อ่าน Deluser # ของ mail_users_dat lernespam ได้รับจดหมายของผู้ใช้ แมวราก / / สคริปต์ mail / / mail_users.dat | grep - v"^ $ Deluser $"> / root / สคริปต์ mail / / mail_users.dat.tmp ราก RM / / สคริปต์ mail / / mail_users.dat MV / root / สคริปต์ mail / / mail_users.dat.tmp / root / สคริปต์ mail / / mail_users.dat deluser -- ลบบ้าน $ Deluser saslpasswd2 - D $ Deluser $ userdb เด Deluser makeuserdb / etc / init.d / ไปรษณีย์ - authdaemon รีสตาร์ท / รีสตาร์ท etc / init.d / saslauthd
สคริปต์เพื่อให้ตนเองได้เรียนรู้สแปม
# / bin / bash สำหรับผู้ใช้ใน $ (แมว / root / scripts / อีเมล mail_users.dat /); ทำ Sadir ผู้ใช้ = / home / $. SpamAssassin / NOSPAM = / home / ผู้ใช้ $ / Maildir /. LerneKeinSpam / ป / สำหรับ l ใน $ (ls $ NOSPAM); ทำ พิมพ์ =`$ cat NOSPAM / $ l | grep - E"^ จาก :"| grep - O"[[:. alnum :] \ \ + \ -- \ _]*@[[: alnum :] \ \ -. ] *"| เรียง U -` echo"whitelist_from พิมพ์ $">> $ Sadir / user_prefs ทำ # SA ให้เรียนรู้ / usr / bin / SA - เรียนรู้ -- D สแปม / home / ผู้ใช้ $ / Maildir / LerneSpam / cur. / usr / bin / SA - เรียนรู้ -- D แฮม / home / $ ผู้ใช้ / Maildir / LerneKeinSpam / cur. # ย้ายสิ่ง MV / home / ผู้ใช้ $ / Maildir /. LerneKeinSpam cur / / * * * * / home / ผู้ใช้ $ / Maildir / ป / LerneSpam RM / home / $ ผู้ใช้ / Maildir /. / ป / * * * * ทำ ทางออก
เสมือนจริงแทน
Postfix ของเราไม่ได้รู้ว่าสิ่งที่อยู่ e - mail ที่ถูกกำหนดไปยังกล่องจดหมายในท้องถิ่น งานนี้จะอยู่ในไฟล์ / etc / postfix / เสมือนที่สร้างขึ้น ลิงค์ที่อยู่อีเมลของผู้ส่งหรือ"ราก"ท้องถิ่นเป็นที่ถูกต้องเป็นชื่อผู้ใช้สำหรับกล่องจดหมายของ IMAP หรือปลายทางที่อยู่ e - mail สำหรับการส่งต่อ
# / etc / postfix / เสมือน Daniel ราก Daniel daniel@meinedomain.de Daniel daniel@meineanderedomain.de Fritz fritz@meinedomain.de Fritz alle@meinedomain.de แดเนียล daniel@gmail.com weiterleitung@meinedomain.de
จากนั้นต้องเริ่มต้นนามแฝง Postfix เสมือนอีกครั้ง นี้เป็นสิ่งจำเป็นหลังจากมีการเปลี่ยนแปลงไปยังแฟ้มแต่ละ
postmap / etc / postfix / virtual ตอนนี้ทุกอย่างพร้อม จะต้องมีการบริการทั้งหมดจะเริ่มต้น
/ etc / init.d / postfix เริ่มต้นใหม่ / etc / init.d / ไปรษณีย์ - IMAP เริ่มต้นใหม่ / รีสตาร์ท etc / init.d / ไปรษณีย์ - IMAP - SSL / etc / init.d / ไปรษณีย์ - authdaemon รีสตาร์ท / รีสตาร์ท etc / init.d / saslauthd / etc / init.d / SpamAssassin / etc / init.d / ClamAV
บางสิ่งบางอย่างจะไม่แน่นอนทำงาน! การแก้ปัญหาเป็น / var / log / mail.log ค่อนข้างดี ในไฟล์ config จำนวนมากฉันก็สามารถตั้งค่าระดับการเข้าสู่ระบบเพื่อรับทราบข้อมูลเพิ่มเติม
หน้าขนส่ง
เพื่อ weiterzurouten อีเมลไปยัง SMTP อื่นคุณต้องแผนที่การขนส่ง คุณกำลังอยู่ในไฟล์ / etc / postfix / การขนส่งที่สร้าง :
# / etc / postfix / การขนส่ง # ปลายทาง Link ท้องถิ่น # SMTP จะถูกส่งต่อไปทางขวา Daniel - ritter.de SMTP : 12.13.14.15 Daniel - ritter.de SMTP : anderer.host.de # นอกจากนี้ทุกโดเมนย่อย . Ritter.de Daniel - SMTP : anderer.host.de
# / etc / postfix / main.cf transport_maps = กัญชา : / etc / postfix / การขนส่ง
# ตรวจสอบการเปลี่ยนแปลงในแผนที่การขนส่ง postmap / etc / postfix / การขนส่ง / โหลด etc / init.d / postfix
ผู้ใช้สามารถเปลี่ยนรหัสผ่านที่จัดแม้กระทั่ง
echo"เปลี่ยนรหัสผ่าน Times" เสียงก้อง เสียงก้อง echo"ชื่อ :" อ่าน U echo"รหัสผ่านเก่า" อ่าน echo"รหัสผ่านใหม่" ยังไม่มีข้อความที่อ่าน หาก [$ (echo $ F | grep - e ^ [0-9])]; แล้ว echo"ขออภัย. รหัสผ่านที่ไม่ต้องเริ่มต้นด้วยตัวเลข." ทางออก Fi echo - E"U $ \ 0 $ A \ 0 $ N \ 0"| / usr / courierpasswd -- stdin -- -- verbose -- stderr changepw


7 ตุลาคม 2011
เว้นแต่เป็นกรณีที่ funzt ในขณะนี้ แต่หลังจากที่ Googelei มากฉันได้พบว่า postfix ไม่สามารถยัดเยียด - md5 authdaemond กับ saslauthd โดยอัตโนมัติและจะใช้เวลา คุณไม่ทำที่จะทำงานเช่นนี้ได้อย่างไร?
5 ตุลาคม 2011
habs ตกลงใน / usr / sbin / ผลักดัน courierpasswd
ตอนนี้ปัญหาที่เกิดขึ้นต่อไปนี้ :
authdaemond : ไม่มีค่า imappw หรือ systempw ใน userdbshadow
: S รหัสผ่านจะหายไป ...
5 ตุลาคม 2011
Moin,
เมื่อฉันหายไปที่ไฟล์ / opt / courierpasswd
คุณสามารถทำอะไร?
15 กันยายน 2011
... ดังนั้น howto ที่อยู่ในคำสั่ง!
แต่หนึ่งคำถามที่ฉันได้ : ฉันมีเซิร์ฟเวอร์ Debian ของฉัน (มี IP ของตัวเอง) ในขอบเขตที่มันยังได้จัดตั้งและจัดการกับที่เขายอมรับจดหมายจากภายนอกและกำหนดผู้ใช้ที่เกี่ยวข้อง แต่ฉันได้รับผ่านทางธันเดอร์เบิร์ดไม่สามารถเชื่อมต่อไปยังเซิร์ฟเวอร์ในการส่งข้อความบนเซิร์ฟเวอร์ของฉันที่จะส่งไปดูรายละเอียด
คนที่สามารถช่วยฉันได้อย่างไร
ขอบคุณ
สแตนเลย์
25 กรกฎาคม 2011
อาหารที่ฉันจะต้อง
eigendlich แก้ไขเริ่มต้นเช่น - ต้องการความช่วยเหลือของคุณอีกครั้ง
เข้าสู่ระบบเป็น : ww1com
ww1com@192.168.0.30 รหัสผ่าน's :
ลินุกซ์ 2.6.26-2-486 # 1 เสาร์ debian.ww1net.de 11 มิถุนายน 2011 14:47:34 UTC i686
โปรแกรมที่มาพร้อมกับระบบ Debian GNU / Linux เป็นซอฟต์แวร์ที่ฟรี;
เงื่อนไขการจัดจำหน่ายที่แน่นอนสำหรับแต่ละโปรแกรมจะอธิบายไว้ใน
ไฟล์แต่ละไฟล์ใน / usr / share / doc / * / ลิขสิทธิ์
Debian GNU / Linux มาพร้อมกับอย่างแน่นอนไม่มีการรับประกันในขอบเขตที่
ได้รับอนุญาตตามกฎหมายที่ใช้บังคับ
เข้าสู่ระบบครั้งสุดท้าย : จันทร์ 25 กรกฎาคม 2011 10:57:09 จาก ww1com.fritz.box
suww1com @ Debian : ~ $ Su
รหัสผ่าน :
Debian : / home/ww1com # nano / etc / init.d / saslauthd
Debian : / home/ww1com # nano / etc / init.d / saslauthd
Debian : / home/ww1com # nano / etc / init.d / saslauthd
#! / bin / sh
do_stopall
;
โหลด | บังคับโหลด)
do_reloadall
;
รีสตาร์ท)
StartupScript do_stopalluthd
do_startall
;
เริ่มต้นอินสแตนซ์)
หาก [- F / etc / default / $ 2] แล้ว
ผู้เขียน # : Fabian Fagerhostart_instance / etc / default / $ 2
อื่น
# ไม่"ตั้งค่า E -"log_failure_msg"อินสแตนซ์ 2 $ ไม่อยู่."
Fi
# เส้นทางควรอย่างใดอย่างหนึ่ง; รวม / usr / * ถ้ามันทำงานหลังจากที่สคริปต์ mountnfs.sh
หยุดอินสแตนซ์)
หาก [- F / etc / default / $ 2] แล้ว
ค้นหา : stop_instance / etc / default / $ 2
^ C ยกเลิก ^ R ^ O ไฟล์บันทึก ¶ Y ^ ffn หน้าตัดเต็มรูปแบบก่อนหน้านี้ ^ ^ K เคอร์เซอร์ C
ออกจาก iX ^ J ^ w อยู่ที่ไหนหน้าการจัดตำแหน่ง ^ ^ V ก่อนที่ U Ausschn r ^ T Rechtschr
# / etc / init.d / saslauthd
.
.
PIDFILE ="/ var / spool / postfix / var / run / $ {ชื่อ} / saslauthd.pid"
.
.
15 มิถุนายน 2011
@ Sunny : มันไม่สำคัญว่า คุณสามารถวางสคริปต์ที่คุณต้องการ ตัวอย่างเช่นในราก / / สคริป แต่ยังที่อื่น ๆ
12 มิถุนายน 2011
สวัสดี ahb ขอเวลาอีกไม่กี่
ครั้งแรก ผมทำตามสิ่งที่ชื่อไฟล์จะต้องลบจากผู้ใช้ระบุสคริปต์
ที่สอง ผมทำตามสิ่งที่ชื่อไฟล์ได้ด้วยตนเองได้รับสคริปต์สแปม
ที่สาม ผมทำตามสิ่งที่ชื่อไฟล์ที่จำเป็นต้องสคริปต์เพื่อสร้างผู้ใช้ใหม่
ขอบคุณสำหรับความช่วยเหลือ
11 มิถุนายน 2011
@ Sunny : มันไม่สำคัญว่าคุณสามารถวางสคริปต์ที่คุณต้องการ ตัวอย่างเช่นในราก / / สคริปต์
11 มิถุนายน 2011
เดนนิสสวัสดี
คุณสามารถบอกฉันที่ฉันสร้างไฟล์ที่สร้างและลบเก็บผู้ใช้ใหม่ต้องการของผู้ใช้ ฯลฯ ?
26 มีนาคม 2011
oute อาจจะเพียงแค่ฉันเป็น noob แต่มันสามารถช่วยฉัน
ฉันมักจะมีในรับรองความถูกต้องของรายการนี้
saslpasswd2 : ข้อผิดพลาดรายการลบจาก sasldb : DB_NOTFOUND : ไม่มีคู่คีย์ / พบข้อมูลที่ตรงกัน
24 มีนาคม 2011
ได้ทำ ... เป็นเพียงชื่อที่มีการบันทึกใด ๆ (ไม่รวมนามสกุลของไฟล์) แล้วกับฉาบ. Run / ชื่อไฟล์
24 มีนาคม 2011
, Moin
คิดว่ามันทำดีจริงๆ .. แต่ฉันได้ชนิดของปัญหา .. n ผมทำงานทุกอย่างตามที่ห่างไกล แต่ฉันจะทำอย่างไรกับสคริปต์เพื่อเพิ่มผู้ใช้ใหม่ได้หรือไม่ .. ฉันจะเรียกมันได้อย่างไร ฉันหรือสร้างก่อนที่จะ sasldb หรือไม่? ขอบคุณมากสำหรับการตอบกลับ
20 มีนาคม 2011
ชี้แจง
19 มีนาคม 2011
สวัสดีทุก
ผมพบว่าการกวดวิชานี้ได้เป็นอย่างดี! ฉัน mail_users.dat แต่เป็นเดนนิสยังคงเป็นคำถามเกี่ยวกับการเปิด / root / สคริปต์ mail / / เมื่อมีการสร้างผู้ใช้ ไฟล์นี้ไม่ได้อยู่ ถ้าเป็นแฟ้มว่างเปล่าที่ฉันวางบน mail_users.dat เพียงสัมผัส / root / สคริปต์ mail / /?
ขอขอบคุณและขอแสดงความนับถือที่ดีที่สุด
2 ธันวาคม 2010
หนึ่งคันธนู ... ! THX
2 ธันวาคม 2010
Moin,
การทำดี
เพียงแค่มีปัญหาบางอย่าง ...
ครั้งแรก Courier
ในวรรคหนึ่งต้องเป็นเพราะของสิ่งที่ MD5 ใน / etc จัดส่ง / / แทรก imapd ตัวอย่างของคุณภายใต้วรรคหนึ่งเป็นสถานที่ที่นี้จะไป?
เมื่อมีการสร้างผู้ใช้พบแฟ้ม : mail_users.dat ไม่ได้! เหตุผลที่ควรจะมี?
และสิ่งหนึ่งที่มากขึ้นหากฉันส่ง e - mail มาที่ฉันได้รับข้อความนี้ :
----------
นี่คือการจัดส่งการแจ้งเตือนสถานะสร้างขึ้นโดยอัตโนมัติ
จัดส่งไปยังผู้รับดังต่อไปนี้ล้มเหลว
---------
ใน mail.log says :
------------
2 ธันวาคม 00:13:40 HOSTNAME ล้าง postfix / [10 984] : RCPT จาก bay0 - omc2 - s11.bay0.hotmail.com [65.54.190.86] : : NOQUEUE : ปฏิเสธ 554 5.7.1 : การเข้าถึงปฏิเสธ Relay; จากไป = = = Proto HELO ESMTP =
------------
ฉันหวังว่าคุณสามารถให้คำแนะนำหรือความช่วยเหลือหรือไม่
MFG
เดนนิส
24 ตุลาคม 2010
ถ้าคุณได้รับข้อผิดพลาดต่อไปนี้คุณจะต้อง ="[...]" ใน / etc / init.d / postfix ภายใต้แฟ้มที่จะเพิ่ม etc/sasldb2 ที่จะเริ่มต้นไฟล์จะถูกคัดลอกลงใน chroot แต่ละของ postfix
ล้าง postfix / [20 251] : คำเตือน : ปัญหาการตรวจสอบ SASL : ไม่สามารถเปิด Berkeley DB / etc/sasldb2 : ไม่มีไฟล์หรือไดเรกทอรีนั้น
25 เมษายน 2010
@ Flo Flo Hey ลองใน / etc จัดส่ง / / authdaemonrc"DEBUG_LOGIN"กำหนดสูง แล้วคุณจะเห็นใน / var / log auth.log / หรือ / var / log / mail.log เพื่อสิ่งที่ผิดไป
23 เมษายน 2010
ขอบคุณเป็นครั้งแรกสำหรับการกวดวิชาของคุณ ถ้าทุกอย่างทำงานยกเว้นสำหรับการลงชื่อเข้าใช้ด้วย Thunderbird 3 ชื่อผู้ใช้ของฉัน (ohne@domain.de) ฉันได้ป้อน ขอบคุณสำหรับเคล็ดลับใด ๆ
18 เมษายน 2010
บทความดีมาก, คือการช่วยเหลือที่ดี! ขอบคุณ