कई उबंटू उपयोगकर्ता न केवल घर की जरूरतों के लिए सिस्टम का उपयोग करते हैं। यह दृष्टिकोण पूरी तरह से न्यायसंगत है, क्योंकि लिनक्स-सिस्टम पर प्रोग्रामिंग करना, सर्वर और वेबसाइट बनाना बहुत अधिक सुविधाजनक है। उपयुक्तताओं में से एक ईमेल सर्वर का निर्माण है। शुरुआती लोगों के लिए, यह कार्य बहुत कठिन प्रतीत होगा, लेकिन यदि आप उबंटू के लिए मेल सर्वर को स्थापित और कॉन्फ़िगर करने का तरीका जानते हैं, तो यह कार्य आपके लिए इतना कठिन नहीं लगेगा।
Ubuntu पर आधारित एक मेल सर्वर कैसे सेट करें।
सिद्धांत की एक बिट
विशिष्ट निर्देशों और कोड के किण्वन से पहले सैद्धांतिक सामग्री के एक अंश के बिना नहीं कर सकते। यह समझना महत्वपूर्ण है कि ईमेल सर्वर क्या है और यह कैसे काम करता है।
एक कॉन्फ़िगर किया गया मेल सर्वर, इसे बहुत सरलता से कहने के लिए, एक डाकिया है जो एक ईमेल क्लाइंट से "पत्र" प्राप्त करता है और दूसरे को देता है। इस सिद्धांत में, इस सॉफ्टवेयर के काम का पूरा सार। ईमेल भेजने के लिए न केवल मेल सर्वर की जरूरत होती है। साइटों पर, वह उपयोगकर्ताओं को पंजीकृत करने, फ़ॉर्म सबमिट करने और अन्य महत्वपूर्ण कार्यों के लिए ज़िम्मेदार है, जिसके बिना साइट एक पुस्तक की तरह बन जाएगी, जिसे आप केवल पन्ने पलट कर देख सकते हैं, लेकिन कुछ करना मुश्किल है।
लिनक्स पर मेल सर्वर विंडोज और अन्य प्रणालियों पर उन लोगों से काफी अलग हैं। विंडोज पर, यह एक तैयार-बंद कार्यक्रम है, जो केवल उपयोग करना शुरू कर सकता है। लिनक्स वितरण में सभी घटकों के स्व-ट्यूनिंग की भी आवश्यकता होती है। और सर्वर में अंततः एक कार्यक्रम नहीं, बल्कि कई शामिल होंगे। हम Dovecot और MySQL के संयोजन में Postfix का उपयोग करेंगे।
पोस्टफ़िक्स क्यों?
उबंटू में कई ईमेल क्लाइंट हैं, लेकिन हमने फिर भी इसे चुना। उबंटू पर पॉसिफ़िक्स स्थापित करना एक ही SendMail की तुलना में बहुत आसान है, और यह नौसिखिए उपयोगकर्ता के लिए महत्वपूर्ण है। डवकोट के संयोजन में, पोस्टफ़िक्स सब कुछ करने में सक्षम है जो आमतौर पर मेल सर्वर से आवश्यक होता है।
पोस्टफ़िक्स सीधे मेल ट्रांसफर एजेंट है। वह पूरी सबमिशन में एक प्रमुख भूमिका निभाएगा। यह एक ओपन सोर्स प्रोग्राम है जिसका उपयोग कई सर्वर और वेबसाइट डिफ़ॉल्ट रूप से करते हैं। Dovecot एक मेल डिलीवरी एजेंट है। सर्वर सुरक्षा सुनिश्चित करने में इसकी मुख्य भूमिका है। MySQL किसी भी साइट के लिए एक आदर्श डेटाबेस प्रबंधन प्रणाली (DBMS) है। हमें अपने सर्वर के उपयोगकर्ताओं से प्राप्त जानकारी को संभालने की आवश्यकता है।
तो, सैद्धांतिक भाग खत्म हो गया है। अब यह अभ्यास के लायक है।
मेल सर्वर बनाएँ
मेल सर्वर को स्थापित करने से पहले क्या कॉन्फ़िगर किया जाना चाहिए?
- MySQL;
- DNS ज़ोन, आपके पास एक व्यक्तिगत FDQN होना चाहिए। आगे हम namehost का उपयोग करेंगे।
स्थापना
प्रोग्राम स्थापित करें:
apt-get install पोस्टफिक्स postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
जब पोस्टफ़िक्स कॉन्फ़िगरेशन विंडो दिखाई देती है, तो हमें "इंटरनेट साइट" का चयन करना होगा।
नीचे हमें एक डोमेन नाम दर्ज करने के लिए कहा जाएगा, "primer.ru" का उपयोग करें।
MySQL सेटअप
अब हमें MySQL में डेटा के लिए तीन तालिकाओं को कॉन्फ़िगर करने की आवश्यकता है: डोमेन, उपयोगकर्ताओं और तथाकथित उपनामों के लिए - उपनाम या अतिरिक्त डेटा मेलबॉक्सेज़। यहां हम MySQL डेटाबेस के कॉन्फ़िगरेशन पर विस्तार से चर्चा नहीं करेंगे।
उदाहरण के लिए डेटाबेस को कॉल करते हैं। निम्नलिखित नाम से एक डेटाबेस बनाएँ:
mysqladmin -p servermail बनाता है
MySQL में लॉगिन करें:
mysql -u root –p
फिर पासवर्ड डालें। यदि सब कुछ सही ढंग से किया जाता है, तो टर्मिनल में एक प्रविष्टि होगी:
mysql>
नेटवर्क में लॉग इन करने के लिए विशेष रूप से एक नया उपयोगकर्ता बनाएँ:
mysql> उदाहरण पर ईमेल का चयन करें। * 'usermail'@'127.0.0.1' 'पासवर्ड द्वारा पहचान' के लिए;
अब सभी परिवर्तन सफलतापूर्वक लागू होने के लिए MySQL को पुनः आरंभ करें।
हम अपने डेटाबेस का उपयोग इसके आधार पर टेबल बनाने के लिए करते हैं:
mysql> USE उदाहरण;
डोमेन के लिए एक तालिका बनाएँ:
बनाएँ टेबल `virtual_domains` (
`आईडी` पूर्ण नहीं ऑटो AUTIN_INCREMENT,
`नाम` वर्कर (50) नहीं,
प्राथमिक कुंजी (`आईडी`)
) इंजन = इनोबीडी डिफॉल्ट चार्ट = utf8;
उपयोगकर्ताओं के लिए एक तालिका बनाएँ:
बनाएँ टेबल `virtual_users` (
`आईडी` पूर्ण नहीं ऑटो AUTIN_INCREMENT,
`domain_id` INT नहीं है,
`पासवर्ड` वारचेयर (106) पूर्ण नहीं,
`ईमेल` वारचेयर (120) नहीं,
प्राथमिक कुंजी (`आईडी`),
अद्वितीय कुंजी `ईमेल` (` ईमेल`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains (id) पर DELETE CASCADE
) इंजन = इनोबीडी डिफॉल्ट चार्ट = utf8;
यहां, जैसा कि आप देख सकते हैं, ईमेल और पासवर्ड जोड़ा गया है। और प्रत्येक उपयोगकर्ता डोमेन के लिए बाध्य है।
अंत में, छद्मों के लिए एक तालिका बनाएं:
बनाएँ टेबल `virtual_aliases` (
`आईडी` पूर्ण नहीं ऑटो AUTIN_INCREMENT,
`domain_id` INT नहीं है,
`source` varchar (100) नहीं नल,
`गंतव्य` वर्चर (100) शून्य नहीं,
प्राथमिक कुंजी (`आईडी`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains (id) पर DELETE CASCADE
) इंजन = इनोबीडी डिफॉल्ट चार्ट = utf8;
हमने MySQL को सफलतापूर्वक कॉन्फ़िगर किया है और तीन आवश्यक टेबल बनाए हैं। अब आपको डोमेन और ईमेल से निपटने की आवश्यकता है।
डोमेन, ईमेल पते और उपनाम
आइए डोमेन के साथ हमारे डोमेन को तालिका में जोड़ें। FDQN को वहां दर्ज किया जाना चाहिए:
INSERT INTO `examplemail`.`virtual_domains`
(`आईडी`, ` नाम`)
मान
('1', 'example.com'),
('2', 'namehost.example.com');
उपयोगकर्ता तालिका में ईमेल पते के बारे में डेटा जोड़ें:
INSERT INTO `examplemail`.`virtual_users`
(`आईडी`, ` डोमेन_आईडी`, `पासवर्ड`, ` ईमेल`)
मान
('1', '1', एनसीआरवाईपीटी ('फर्स्टपासवर्ड', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND)), -16)), ' ')
('2', '1', ENCRYPT ('सेकंडपास', CONCAT ('$ 6 $'), SUBSTRING (SHA (RAND ()), -16)), ' ');
अब अंतिम तालिका में जानकारी जोड़ें:
INSERT INTO `examplemail`.`virtual_aliases`
(`आईडी`, ` डोमेन_आईडी`, `स्रोत`, ` गंतव्य`)
मान
('1', '1', ' ', ' ');
MySQL को बंद करें:
mysql> बाहर निकलें
पोस्टफ़िक्स सेटअप
पोस्टफ़िक्स के मापदंडों पर सीधे चलते हुए। हमें डेटाबेस में दर्ज उपयोगकर्ताओं की ओर से संदेश भेजने और एसएमटीपी कनेक्शन को संभालने के लिए मेल क्लाइंट की आवश्यकता है। शुरू करने के लिए, हम कॉन्फ़िगरेशन फ़ाइल का बैकअप बनाएंगे, जिस स्थिति में डिफ़ॉल्ट सेटिंग्स पर वापस जाना संभव था:
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
अब कॉन्फ़िगरेशन फ़ाइल खोलें:
नैनो /etc/postfix/main.cf
नैनो के बजाय, आप किसी भी पाठ संपादक का उपयोग कर सकते हैं जो आपके लिए सुविधाजनक है।
हम टीएलएस मापदंडों पर टिप्पणी करेंगे, और दूसरों को भी जोड़ेंगे। निशुल्क एसएसएल का उपयोग यहां किया जाता है:
# टीएलएस पैरामीटर
# smtpd_tls_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem
# smtpd_tls_key_file = / etc / ssl / private / ssl-cert-snakeoil.key
# smtpd_use_tls = हाँ
#smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache
#smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache
smtpd_tls_cert_file = / etc / ssl / certs / dovecot.pem
smtpd_tls_key_file = / etc / ssl / private / dovecot.pem
smtpd_use_tls = हाँ
smtpd_tls_auth_only = हाँ
उसके बाद हम कुछ और पैरामीटर जोड़ेंगे:
smtpd_sasl_type = dovecot
smtpd_sasl_path = निजी / स्थिति
smtpd_sasl_auth_enable = हाँ
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
हमें mydestination सेटिंग्स पर टिप्पणी करने और उन्हें लोकलहोस्ट में बदलने की भी आवश्यकता है:
#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = लोकलहोस्ट
Myhostname पैरामीटर में हमारा डोमेन नाम होना चाहिए:
myhostname = namehost.example.com
अब MySQL तालिका में सूचीबद्ध सभी डोमेन को संदेश भेजने के लिए एक पंक्ति जोड़ें:
virtual_transport = lmtp: unix: private / dovecot-lmtp
तीन और पैरामीटर जोड़ें ताकि पोस्टफिक्स MySQL टेबल से कनेक्ट हो सके:
virtual_mailbox_domains = mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf
MySQL और पोस्टफ़िक्स फ़ाइलों को सेट करना
एक फ़ाइल बनाएँ
mysql-virtual-mailbox-domains.cf
इसमें ये मान जोड़ें:
उपयोगकर्ता = usermail
पासवर्ड = मेलपासवर्ड
मेज़बान = 127.0.0.1
dbname = examplemail
क्वेरी = चयन करें 1 से virtual_domains नाम = '% s'
पोस्टफ़र्ट पुनरारंभ करें:
सेवा पोस्टफ़िक्स पुनरारंभ
पोस्टफिक्स के लिए टेस्ट डोमेन:
postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
एक और फ़ाइल बनाएँ:
नैनो /etc/postfix/mysql-virtual-mailbox-maps.cf
उपयोगकर्ता = usermail
पासवर्ड = मेलपासवर्ड
मेज़बान = 127.0.0.1
dbname = examplemail
क्वेरी = चयन करें 1 से virtual_users कहाँ ईमेल = '% s'
रिबूट पोस्टफिक्स:
सेवा पोस्टफ़िक्स पुनरारंभ
फिर पोस्टफिक्स को फिर से जांचें:
पोस्टमैप -q mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
यदि सही ढंग से किया जाता है, तो प्रदर्शित किया जाना चाहिए
उपनाम के लिए अंतिम फ़ाइल बनाएँ:
नैनो /etc/postfix/mysql-virtual-alias-maps.cf
उपयोगकर्ता = usermail
पासवर्ड = मेलपासवर्ड
मेज़बान = 127.0.0.1
dbname = examplemail
क्वेरी = चयन करें गंतव्य से virtual_aliases जहां स्रोत = '% s'
पुनः प्रारंभ करें:
सेवा पोस्टफ़िक्स पुनरारंभ
पिछली बार हम परीक्षण करते हैं:
पोस्टमैप -q mysql: /etc/postfix/mysql-virtual-alias-maps.cf
डवकोट सेटअप
हम सात फ़ाइलों के लिए बैकअप बनाते हैं जिन्हें बदला जाएगा:
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
यह एक नमूना आदेश है। इन फ़ाइलों के लिए समान छह दर्ज करें:
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf
पहली फ़ाइल खोलें:
नैनो /etc/dovecot/dovecot.conf
जांचें कि क्या यह पैरामीटर टिप्पणी करता है:
शामिल हैं। conf.d / *। conf
दर्ज करें:
!__ry/usr/share/dovecot/protocols.d/*.protocol शामिल करें
प्रोटोकॉल = एलएमपीटी
इसके बजाय:
!__ry/usr/share/dovecot/protocols.d/*.protocol लाइन शामिल करें
निम्न फ़ाइल संपादित करें:
नैनो /etc/dovecot/conf.d/10-mail.conf
लाइन mail_location ढूंढें, टिप्पणी निकालें, निम्न पैरामीटर सेट करें:
mail_location = maildir: / var / mail / vhosts /% d /% n
Mail_privileged_group, वहां लगाएं:
mail_privileged_group = मेल
हम पहुंच की जांच करते हैं। कमांड दर्ज करें:
ls -ld / var / मेल
एक्सेस इस तरह दिखना चाहिए:
drwxrwsr-x 3 root vmail 4096 Jan 24 21:23 / var / मेल
प्रत्येक पंजीकृत डोमेन के लिए एक फ़ोल्डर बनाएँ:
mkdir -p /var/mail/vhosts/example.com
आईडी 5000 के साथ एक उपयोगकर्ता और समूह बनाएँ:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / मेल
स्वामी को उपयोगकर्ता VMail में बदलें:
chown -R vmail: vmail / var / मेल
निम्न फ़ाइल संपादित करें:
नैनो /etc/dovecot/conf.d/10-auth.conf
प्रमाणीकरण पाठ को रद्द करें और पंक्ति जोड़ें:
disable_plaintext_auth = हाँ
निम्नलिखित पैरामीटर बदलें:
OR_Mechanisms = सादा लॉगिन
इस लाइन पर टिप्पणी करना:
#! सम्मिलित करें- system.conf.ext
MySQL प्राधिकरण जोड़ें, लाइन पर टिप्पणी करें:
शामिल करें- sql.conf.ext
प्रमाणीकरण के लिए डेटा के साथ एक फ़ाइल बनाएँ:
नैनो /etc/dovecot/conf.d/auth-sql.conf.ext
निम्नलिखित दर्ज करें:
Passdb {
ड्राइवर = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
चालक = स्थिर
args = uid = vmail gid = vmail घर = / var / मेल / vhosts /% d /% n
}
निम्न फ़ाइल संपादित करें:
नैनो /etc/dovecot/dovecot-sql.conf.ext
MySQL पैरामीटर सेट करें और टिप्पणी करें:
ड्राइवर = mysql
Uncomment और दर्ज करें:
Connect = host = 127.0.0.1 dbname = servermail user = usermail password = mailpassword
पंक्ति default_pass_scheme को ढूँढें, असहज करें और पैरामीटर दर्ज करें:
default_pass_scheme = SHA512-CRYPT
Uncomment और एक नया पैरामीटर शुरू करें:
password_query = उपयोगकर्ता के रूप में ईमेल का चयन करें, virtual_users से पासवर्ड जहां ईमेल = '% u';
मालिक को बदलें:
chown -R vmail: dovecot / etc / dovecot
chmod -R o-rwx / etc / dovecot
फ़ाइल खोलें और संपादित करें:
नैनो /etc/dovecot/conf.d/10-master.conf
Uncomment और पैरामीटर दर्ज करें:
सेवा imap- लॉगिन {
inet_listener imap {
पोर्ट = 0
}
दर्ज करें:
सेवा lmtp {
unix_listener / var / स्पूल / पोस्टफ़िक्स / निजी / dovecot-lmtp {
मोड = 0600
उपयोगकर्ता = उपसर्ग
समूह = उपसर्ग
}
#inet_listener lmtp {
# इंटरनेट पर दिखाई देने वाले LMTP को बनाने से बचें
# पाद =
#पोर्ट =
#}
}
निम्नलिखित कॉन्फ़िगरेशन बदलें:
सेवा मौखिक {
unix_listener / var / स्पूल / पोस्टफिक्स / प्राइवेट / ओटर {
मोड = 0666
उपयोगकर्ता = उपसर्ग
समूह = उपसर्ग
}
unix_listener मौखिक-उपयोगकर्ता {
मोड = 0600
उपयोगकर्ता = vmail
# समूह =
}
#unix_listener / var / स्पूल / पोस्टफिक्स / प्राइवेट / ओटर {
# मोड = 0666
#}
उपयोगकर्ता = dovecot
}
इस फ़ाइल में अंतिम कॉन्फ़िगरेशन बदलें:
सेवा विशेषाधिकार-कार्यकर्ता {
# प्रामाणिक कार्यकर्ता प्रक्रिया
# / आदि / छाया। यदि यह आवश्यक नहीं है
# $ default_internal_user।
उपयोगकर्ता = vmail
}
तो, हम अंततः Ubuntu पर एक मेल सर्वर सेट करते हैं। और आप वहां एक SSL कॉन्फ़िगरेशन भी जोड़ सकते हैं या डिफ़ॉल्ट एक का उपयोग कर सकते हैं। स्पैम से बचाने के लिए, आप हमारे सर्वर के साथ काम करने के लिए स्पैम हत्यारे को कॉन्फ़िगर कर सकते हैं।
इस जानकारी को दर्ज करने के लिए मानक ईमेल क्लाइंट का उपयोग करें:
- उपयोगकर्ता नाम:
- पासवर्ड: email1
- IMAP: example.com
- SMTP: example.com