एंड्रॉयड

पोस्टफ़िक्स और डोवॉटॉट को स्थापित और कॉन्फ़िगर करें

लिनक्स में विन्यस्त पोस्टफ़िक्स मेल सर्वर के लिए कैसे हिन्दी में (भाग -2)

लिनक्स में विन्यस्त पोस्टफ़िक्स मेल सर्वर के लिए कैसे हिन्दी में (भाग -2)

विषयसूची:

Anonim

यह हमारी स्थापना और मेल सर्वर श्रृंखला को कॉन्फ़िगर करने की दूसरी पोस्ट है। इस पोस्ट में हम आपको दिखाएंगे कि हमारे मेल सिस्टम के दो मुख्य घटक पोस्टफिक्स और डवकोट को कैसे स्थापित करें और कॉन्फ़िगर करें।

पोस्टफिक्स एक ओपन-सोर्स मेल ट्रांसफर एजेंट (एमटीए) है, जो ईमेल भेजने और प्राप्त करने के लिए उपयोग की जाने वाली सेवा है। Dovecot एक IMAP / POP3 सर्वर है और हमारे सेटअप में यह स्थानीय वितरण और उपयोगकर्ता प्रमाणीकरण भी संभालेगा।

यह ट्यूटोरियल उबंटू 16.04 के लिए लिखा गया था, हालांकि छोटे संशोधनों के साथ समान चरणों को उबंटू के किसी भी नए संस्करण पर काम करना चाहिए।

आवश्यक शर्तें

इस ट्यूटोरियल को जारी रखने से पहले, सुनिश्चित करें कि आप sudo विशेषाधिकार वाले उपयोगकर्ता के रूप में लॉग इन हैं।

Postfix और Dovecot स्थापित करें

उबंटू डिफ़ॉल्ट रिपॉजिटरी में डवकोट पैकेज पुराने हैं। imap_sieve मॉड्यूल का लाभ उठाने के लिए हम Dovecot को सामुदायिक रिपॉजिटरी से Dovecot स्थापित करेंगे।

निम्नलिखित wget कमांड के साथ अपने उपयुक्त स्रोतों में रिपॉजिटरी GPG कुंजी जोड़ें:

wget -O- https://repo.dovecot.org/DOVECOT-REPO-GPG | sudo apt-key add -

निम्नलिखित आदेश का उपयोग करके Dovecot सामुदायिक रिपॉजिटरी को सक्षम करें:

echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list

sudo apt update sudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)" sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'" sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'" sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql

उपसर्ग विन्यास

हम वर्चुअल मेलबॉक्स और डोमेन का उपयोग करने के लिए पोस्टफ़िक्स सेटअप करेंगे।

इस श्रृंखला के पहले भाग में बनाए गए MySQL डेटाबेस को एक्सेस करने के लिए पोस्टफिक्स को निर्देश देने वाले sql कॉन्फ़िगरेशन फ़ाइलों को बनाकर शुरू करें।

sudo mkdir -p /etc/postfix/sql

अपना पाठ संपादक खोलें और निम्न फ़ाइलें बनाएँ:

/etc/postfix/sql/mysql_virtual_domains_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1' /etc/postfix/sql/mysql_virtual_alias_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1' /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1' /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1' /etc/postfix/sql/mysql_virtual_mailbox_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1' /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox, alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'

एक बार SQL कॉन्फ़िगरेशन फ़ाइलों को बनाने के बाद, मुख्य पोस्टफ़िक्स कॉन्फ़िगरेशन फ़ाइल को अपडेट करें जिसमें वर्चुअल डोमेन, उपयोगकर्ताओं और उपनामों के बारे में जानकारी शामिल हो जो MySQL डेटाबेस में संग्रहीत हैं।

sudo postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf" sudo postconf -e "virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf" sudo postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf" पोस्टकॉन्फ़ कमांड कॉन्फ़िगरेशन मापदंडों के वास्तविक मूल्यों को प्रदर्शित करता है, कॉन्फ़िगरेशन पैरामीटर मूल्यों को बदलता है या पोस्टफ़िक्स मेल सिस्टम के बारे में अन्य कॉन्फ़िगरेशन जानकारी प्रदर्शित करता है।

स्थानीय डिलीवरी एजेंट आने वाले ईमेल को उपयोगकर्ताओं के मेलबॉक्‍स तक पहुंचाएगा। Dovecot की LMTP सेवा को डिफ़ॉल्ट मेल डिलीवरी ट्रांसपोर्ट के रूप में सेट करने के लिए निम्न कमांड चलाएँ:

sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"

पहले जेनरेट होने वाले SSL प्रमाणपत्र का उपयोग करते हुए TL पैरामीटर सेट करें:

sudo postconf -e 'smtp_tls_security_level = may' sudo postconf -e 'smtpd_tls_security_level = may' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'smtpd_tls_cert_file = /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem' sudo postconf -e 'smtpd_tls_key_file = /etc/letsencrypt/live/mail.linuxize.com/privkey.pem'

प्रमाणित SMTP सेटिंग्स कॉन्फ़िगर करें और प्रमाणीकरण को Dovecot को सौंप दें:

sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth' sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination'

हमें पोस्टफ़िक्स मास्टर कॉन्फ़िगरेशन फ़ाइल मास्टर.cf को भी संपादित करना होगा और सबमिशन पोर्ट ( 587 ) और smtps पोर्ट ( 465 ) को सक्षम करना होगा।

अपने टेक्स्ट एडिटर के साथ फाइल खोलें और निम्नलिखित पंक्तियों को असहज / संपादित करें:

/etc/postfix/master.cf

submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING

परिवर्तनों को प्रभावी करने के लिए पोस्टफ़िक्स सेवा को पुनरारंभ करें।

sudo systemctl restart postfix

इस बिंदु पर आपने पोस्टफ़िक्स सेवा को सफलतापूर्वक कॉन्फ़िगर किया है।

कबूतर को कॉन्फ़िगर करें

इस खंड में हम अपने सेटअप से मिलान करने के लिए Dovecot को कॉन्फ़िगर करेंगे। सुनिश्चित करें कि आप पीले रंग में हाइलाइट की गई लाइनों को संपादित करते हैं।

Dovecot dovecot-sql.conf.ext फ़ाइल को कॉन्फ़िगर करके शुरू करें जो Dovecot को निर्देश देता है कि डेटाबेस का उपयोग कैसे करें और ईमेल खातों के बारे में जानकारी कैसे प्राप्त करें।

/etc/dovecot/dovecot-sql.conf.ext

driver = mysql connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD default_pass_scheme = MD5-CRYPT iterate_query = SELECT username AS user FROM mailbox user_query = SELECT CONCAT('/var/mail/vmail/', maildir) AS home, \ CONCAT('maildir:/var/mail/vmail/', maildir) AS mail, \ 5000 AS uid, 5000 AS gid, CONCAT('*:bytes=', quota) AS quota_rule \ FROM mailbox WHERE username = '%u' AND active = 1 password_query = SELECT username AS user, password FROM mailbox \ WHERE username = '%u' AND active='1'

सही MySQL क्रेडेंशियल (dbname, उपयोगकर्ता और पासवर्ड) का उपयोग करना न भूलें।

अगला, conf.d/10-mail.conf फ़ाइल को संपादित करें और निम्नलिखित चर को संपादित करें:

/etc/dovecot/conf.d/10-mail.conf

… mail_location = maildir:/var/mail/vmail/%d/%n… mail_uid = vmail mail_gid = vmail… first_valid_uid = 5000 last_valid_uid = 5000… mail_privileged_group = vmail… mail_plugins = quota…

प्रमाणीकरण कार्य करने के लिए, conf.d/10-auth.conf , निम्न पंक्तियों को संपादित करें और auth-sql.conf.ext फ़ाइल शामिल करें:

/etc/dovecot/conf.d/10-auth.conf

… disable_plaintext_auth = yes… auth_mechanisms = plain login… #!include auth-system.conf.ext !include auth-sql.conf.ext…

conf.d/10-master.conf फ़ाइल खोलें, और इसे निम्नानुसार संशोधित करें:

/etc/dovecot/conf.d/10-master.conf

… service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }… }… service auth {… unix_listener auth-userdb { mode = 0600 user = vmail group = vmail }… unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }… }… service auth-worker { user = vmail }… service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } }…

conf.d/10-ssl.conf और SSL / TLS सक्षम करें।

/etc/dovecot/conf.d/10-ssl.conf

… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.


If you have followed this series from the beginning, you should already have the fullchain.pem , privkey.pem , dhparam.pem files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.


Thanks to Nevyn for noticing the problem and providing a solution.
… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.


If you have followed this series from the beginning, you should already have the fullchain.pem , privkey.pem , dhparam.pem files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.


Thanks to Nevyn for noticing the problem and providing a solution.

conf.d/20-imap.conf फ़ाइल खोलें और imap_quota प्लगइन सक्रिय करें:

/etc/dovecot/conf.d/20-imap.conf

… protocol imap {… mail_plugins = $mail_plugins imap_quota… }…

conf.d/20-lmtp.conf फ़ाइल खोलें और इसे निम्नानुसार संपादित करें:

/etc/dovecot/conf.d/20-lmtp.conf

… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins }…

डिफ़ॉल्ट मेलबॉक्सेस को conf.d/20-lmtp.conf फ़ाइल में परिभाषित करें:

/etc/dovecot/conf.d/15-mailboxes.conf

… mailbox Drafts { special_use = \Drafts } mailbox Spam { special_use = \Junk auto = subscribe } mailbox Junk { special_use = \Junk }…

कोटा आकार के दो अलग-अलग प्रकार हैं, एक संपूर्ण डोमेन और दूसरा उपयोगकर्ता मेलबॉक्स के लिए सेट है। इस श्रृंखला के पिछले भाग में हमने पहले से ही PostfixAdmin में कोटा समर्थन को सक्षम कर दिया है, जिसका अर्थ है कि कोटा की जानकारी PostfixAdmin डेटाबेस में संग्रहीत की जाएगी।

अब हमें डेटाबेस से कनेक्ट करने के लिए, कोटा सीमा को संभालने के लिए और उपयोगकर्ता को कोटा निर्दिष्ट करने के लिए एक मेल चलाने के लिए एक स्क्रिप्ट चलाने के लिए Dovecot को कॉन्फ़िगर करना होगा। ऐसा करने के लिए conf.d/90-quota.conf फ़ाइल conf.d/90-quota.conf और इसे निम्नानुसार संशोधित करें:

/etc/dovecot/conf.d/90-quota.conf

plugin { quota = dict:User quota::proxy::sqlquota quota_rule = *:storage=5GB quota_rule2 = Trash:storage=+100M quota_grace = 10%% quota_exceeded_message = Quota exceeded, please contact your system administrator. quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail unix_listener quota-warning { group = vmail mode = 0660 user = vmail } } dict { sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }

हमें dovecot को यह भी बताना होगा कि कोटा SQL डिक्शनरी का उपयोग कैसे करें। dovecot-dict-sql.conf.ext फ़ाइल खोलें और निम्नलिखित पंक्तियों को संपादित करें:

/etc/dovecot/dovecot-dict-sql.conf.ext

… connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD… map { pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }… # map { # pattern = shared/expire/$user/$mailbox # table = expires # value_field = expire_stamp # # fields { # username = $user # mailbox = $mailbox # } # }… सुनिश्चित करें कि आप सही MySQL क्रेडेंशियल (dbname, उपयोगकर्ता और पासवर्ड) का उपयोग करते हैं।

निम्नलिखित शेल स्क्रिप्ट बनाएं जो उपयोगकर्ता को एक ईमेल भेजेगा यदि उसका कोटा एक निर्दिष्ट सीमा से अधिक है:

/usr/local/bin/quota-warning.sh

#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=dict:User quota::noenforcing:proxy::sqlquota" From: [email protected] Subject: Quota warning Your mailbox is now $PERCENT% full. EOF

निम्नलिखित chmod कमांड चलाकर स्क्रिप्ट को निष्पादन योग्य बनाएं:

sudo chmod +x /usr/local/bin/quota-warning.sh

अंत में परिवर्तन करने के लिए dovecot सेवा को फिर से शुरू करें।

sudo systemctl restart dovecot

निष्कर्ष

अब तक आपके पास पूरी तरह कार्यात्मक मेल प्रणाली होनी चाहिए। इस श्रृंखला के अगले भाग में, हम आपको दिखाएंगे कि Rspamd को कैसे स्थापित और एकीकृत किया जाए।

मेल सर्वर पोस्टफिक्स डवकोट

यह पोस्ट मेल सर्वर श्रृंखला को स्थापित करने और कॉन्फ़िगर करने का एक हिस्सा है।

इस श्रृंखला में अन्य पोस्ट:

• PostfixAdmin के साथ एक मेल सर्वर सेट करें • Postfix और Dovecot स्थापित करें और कॉन्फ़िगर करें • Rspamd स्थापित और एकीकृत करें • Roundcube वेबमेल स्थापित और कॉन्फ़िगर करें