एक OpenBSD ई-मेल सर्वर OpenSMTPD, Dovecot, Rspamd, और RainLoop का उपयोग कर रहा है

परिचय

यह ट्यूटोरियल OpenSMDD, Dovecot, Rspamd और RainLoop का उपयोग करके OpenBSD पर चलने वाले पूर्ण-प्रदर्शित ईमेल सर्वर को प्रदर्शित करता है। OpenSMTPD OpenBSD के लिए डिफ़ॉल्ट मेल सर्वर है। उपयोगकर्ताओं की अपेक्षित संख्या के लिए बहुत सारे संग्रहण के साथ एक वल्चर कम्प्यूट क्लाउड उदाहरण चुनें।

प्रारंभिक चरण

रूट के रूप में कार्य करने के लिए अपना उपयोगकर्ता खाता सेट करें।

su -
usermod -G wheel <username>
echo "permit nopass keepenv :wheel" > /etc/doas.conf
exit

OpenBSD के लिए पैकेज रिपॉजिटरी सेट करें।

doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit

आवश्यक पैकेज जोड़ें।

doas pkg_add opensmtpd-extras opensmtpd-filter-rspamd dovecot dovecot-pigeonhole rspamd redis

OpenSMTPD कॉन्फ़िगर करें

डिफ़ॉल्ट रूप से, OpenSMTPD केवल लोकलहोस्ट पर सुनता है। बाहरी इंटरफेस पर सुनने के लिए इसे स्पष्ट रूप से कॉन्फ़िगर किया जाना चाहिए। इसे सुरक्षा के लिए सिस्टम उपयोगकर्ताओं के बजाय आभासी उपयोगकर्ताओं का उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए।

डिफ़ॉल्ट /etc/smtpd.confफ़ाइल को बैकअप करें और स्क्रैच से एक नया बनाएं।

cd /etc/mail
mv smtpd.conf smtpd.conf.default

smtpd.confजैसा कि नीचे दिखाया गया है एक नया बनाएँ । example.comअपने डोमेन के साथ बदलें । यह प्रारंभिक कॉन्फ़िगरेशन OpenSMTP का परीक्षण करते समय rspamd फ़िल्टर को सक्रिय नहीं करता है। स्पैम फ़िल्टर को बाद में सक्रिय किया जाएगा।

pki "mail" cert "/etc/ssl/mail.crt"
pki "mail" key "/etc/ssl/private/mail.key"

table aliases file:/etc/mail/aliases
table credentials passwd:/etc/mail/credentials
table virtuals file:/etc/mail/virtuals

filter "rspamd" proc-exec "/usr/local/libexec/smtpd/filter-rspamd"

# To accept external mail, replace with: listen on all

# listen on all tls pki "mail" hostname "mail.example.com"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
  auth <credentials>

action "local_mail" mbox alias <aliases>
action "domain_mail" maildir "/var/vmail/example.com/%{dest.user}" \
  virtual <virtuals>
action "outbound" relay

# Uncomment the following to accept external mail for domain "example.org"

# match from any for domain "example.com" action "domain_mail"
match from local for local action "local_mail"

match from local for any action "outbound"
match auth from any for any action "outbound"

/ Etc / क्रेडेंशियल फ़ाइल बनाएँ

OpenSMTPD और Dovecot एक प्रमाणीकरण डेटाबेस साझा कर सकते हैं। यह डेटाबेस प्रारूप में सिस्टम पासवर्ड फ़ाइल से मिलता-जुलता है, दोवोट के लिए दो अतिरिक्त फ़ील्ड के साथ। दो विशेष फ़ील्ड वर्चुअल होम निर्देशिका और मेल स्थान को परिभाषित करते हैं। पासवर्ड ब्लोफिश प्रारूप में होते हैं। यह ट्यूटोरियल तीन उदाहरण उपयोगकर्ता बनाता है।

पासवर्ड जेनरेट करें और उन्हें /etc/mail/credentialsफाइल में बदलें ।

doas su
smtpctl encrypt example_password1 >> /etc/mail/credentials
smtpctl encrypt example_password2 >> /etc/mail/credentials
smtpctl encrypt example_password3 >> /etc/mail/credentials
exit

आउटपुट इस के समान दिखता है:

$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6
$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e
$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq

/etc/mail/credentialsआवश्यक फ़ील्ड जोड़ने के लिए संपादित करें । 2000 के यूआईडी और जीआईडी ​​के साथ एक सिस्टम खाते में प्रत्येक लाइन मैप, वीमेल । Example.com को अपने डोमेन से बदलें। आभासी उपयोगकर्ता नाम पूरा ईमेल पता है।

[email protected]:$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6:vmail:2000:2000:/var/vmail/example.com/john::userdb_mail=maildir:/var/vmail/example.com/john
[email protected]:$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e:vmail:2000:2000:/var/vmail/example.com/adam::userdb_mail=maildir:/var/vmail/example.com/adam
[email protected]:$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq:vmail:2000:2000:/var/vmail/example.com/natalie::userdb_mail=maildir:/var/vmail/example.com/natalie

वर्चुअल मेल अकाउंट और सुरक्षा सेट करें

  • केवल और सिस्टम उपयोगकर्ताओं के /etc/mail/credentialsलिए पढ़ने के लिए अनुमतियाँ सेट करें ।_smtpd_dovecot
  • vmailसिस्टम यूजर, ग्रुप और होम डायरेक्टरी बनाएं ।

    • जब आप vmail सिस्टम उपयोगकर्ता बनाते हैं, तो आपको निम्न चेतावनी मिलेगी useradd: Warning: home directory '/var/vmail' doesn't exist, and -m was not specified:। यह अपेक्षित है। यह डॉट फ़ाइलों से निर्देशिका को अव्यवस्थित करने से बचता है /etc/skel। इनकी आवश्यकता नहीं है क्योंकि vmail खाता लॉगिन की अनुमति नहीं देता है।

      doas chmod 0440 / etc / mail / क्रेडेंशियल्स doas chown smtpd: dovecot / etc / mail / क्रेडेंशियल्स doas useradd -c "वर्चुअल मेल अकाउंट" -d / var / vmail-v / sbin nologin -u 2000 -g = uid -L कर्मचारी vmail doas mkdir / var / vmail doas chown vmail: vmail / var / vmail

वर्चुअल यूजर मैपिंग बनाएं

/etc/mail/virtualsमान्य ईमेल पतों को परिभाषित करने के लिए बनाएँ ।

  • पहली चार लाइनें दुरुपयोग , होस्टमास्टर , पोस्टमास्टर और वेबमास्टर के लिए [email protected] उपनाम प्रदान करती हैं ।
  • अंतिम तीन पंक्तियाँ ईमेल पते को vmail खाते में मैप करती हैं। OpenSMTPD संदेशों को वितरित करेगा /var/vmail/example.com/<user>
  • इस फ़ाइल में परिभाषित नहीं किए गए पते के लिए किए गए मेल वितरण को डिलीवरी स्थिति अधिसूचना के साथ बाउंस किया जाएगा।

    दुर्व्यवहार @example.com: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected] vmail [email protected]: vmail [email protected]: vmail

OpenSMTPD के लिए सार्वजनिक / निजी कुंजी बनाएँ

यह उदाहरण एक स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करता है। यदि आपके पास एक वैध हस्ताक्षरित प्रमाणपत्र का उपयोग करें। जब सामान्य नाम के लिए संकेत दिया जाता है, तो सुनिश्चित करें कि यह सर्वर के FQDN से मेल खाता है। यह उदाहरण mail.example.com का उपयोग करता है।

doas su
cd /etc/ssl
openssl genrsa -out private/mail.key 4096
openssl req -x509 -new -nodes -key private/mail.key -out mail.crt -days 3650 -sha256
chmod 0400 /etc/ssl/private/mail.key
exit

सर्वर का परीक्षण करें

OpenSMTPD कॉन्फ़िगरेशन सिंटैक्स चेकर का उपयोग करें। यदि कोई समस्या नहीं मिलती है, तो smtpd डेमॉन को पुनरारंभ करें।

doas smtpd -n
doas rcctl restart smtpd

बाहरी मेल खाते से, किसी एक उपयोगकर्ता को एक परीक्षण ईमेल भेजें।

  • OpenSMTPD नीचे maildir फ़ोल्डर संरचना बनाएगा /var/vmailऔर मेल को वितरित करेगा /var/vmail/example.com/<username>/new
  • जड़ उपयोगकर्ता, इस स्थान पर और यह सत्यापित ब्राउज़ के रूप में आप इस के समान नाम की एक फ़ाइल है: 1576339842.4d64757b.example.com:2,
  • ईमेल डिलीवरी कार्यों को ठीक से सत्यापित करने के लिए सभी मेल हेडर सहित फ़ाइल की सामग्री की समीक्षा करें।

    Return-Path: <n0244e80da3-54b1ed125c5342fc-adam===example.org@bounce.example.org>
    Delivered-To: [email protected]
    Received: from spruce-goose-ba.twitter.com (spruce-goose-ba.twitter.com [199.59.150.96])
        by mail.example.com (OpenSMTPD) with ESMTPS id 75b514d3 (TLSv1.2:ECDHE-RSA-AES256-GCM-    SHA384:256:NO)
        for <[email protected]>;
        Sat, 14 Dec 2019 11:10:40 -0500 (EST)
    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com;
        s=dkim-201406; t=1576339839;
        bh=jhKB5/w9v87GaXSuizT576ntJ/72gvLRDhsqmGQQrCE=;
        h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:
        Message-ID;
        b=TWn/QVUJ1VDlWiweWoanwHLABCL1nqmm0+TBzh3PjmYNm0quRMXB7QL2ykzHGME5A
        DTz/JFHa0cOvQsrdhxxbjOLFKimK0nF+Ou5kI+2HzTzfVNZS0qGnTVP/tZyaIsWjjl
        an5EiR6HFOHG4iClOOEOJW4oLDEZfPTefrlW+378bmHGIRUNDvVKrbXKunL9fJFAb3
        JSrhWQNwbrF/aARFzw4nKfb1I7vTRSrN1eXE5JxzGwI2XAjqDIWdR5ExwUNbJH5ZPs
        wQ85j8KLZEEgQkbH9CypgeUMJWsVK95FqOCCaqKMS10M7intGMb3aeiiFcB7yDHi9t
        u7rVESm4eGp/g==
    X-MSFBL: DM7pSZns+YDRgNEmGNre9aPjZTtc1tDlN97w5rQDBts=|eyJ1IjoibWF0dEBnb2J
        sYWNrY2F0LmNvbUBpaWQjIzU0YjFlZDEyNWM1MzQyZmNiNThiMzVmNzI0NDZlMGF
        mQHVzYiMjNkAyNDRAMTA4MjgwNTAxMDYzNzk1MDk3NkAwQDA4MjY5ZWI4OTI3YzR
        kNTFiNTZkMjY3YzY2OGRmN2IwY2Y4M2ExZGIiLCJyIjoibWF0dEBnb2JsYWNrY2F
        0LmNvbSIsImciOiJCdWxrIiwiYiI6InNtZjEtYmd4LTM0LXNyMS1CdWxrLjE4NiJ
        9
    Date: Sat, 14 Dec 2019 16:10:39 +0000
    ...
    

Dovecot IMAP कॉन्फ़िगर करें

लॉगिन क्लास सेट करें

Dovecot को पढ़ने और लिखने के लिए तयशुदा वर्ग की अनुमति से बड़ी संख्या में फाइल खोलने की क्षमता की आवश्यकता होती है। ऐसा करने में विफल रहने से त्रुटियों का निवारण होगा।

Dovecot डेमॉन के लिए एक लॉगिन वर्ग परिभाषित करें। /etc/login.confनिम्नलिखित पंक्तियों को जोड़ने के तल पर ।

    dovecot:\
        :openfiles-cur=1024:\
        :openfiles-max=2048:\
        :tc=daemon:    

Dovecot कॉन्फ़िगरेशन फ़ाइल बनाएँ

बनाएँ /etc/dovecot/local.conf

auth_mechanisms = plain
first_valid_uid = 2000
first_valid_gid = 2000
mail_location = maildir:/var/vmail/%d/%n
mail_plugin_dir = /usr/local/lib/dovecot
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex  imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
mbox_write_locks = fcntl
mmap_disable = yes
namespace inbox {
  inbox = yes
  location =
  mailbox Archive {
  auto = subscribe
  special_use = \Archive
  }
  mailbox Drafts {
  auto = subscribe
  special_use = \Drafts
  }
  mailbox Junk {
  auto = subscribe
  special_use = \Junk
  }
  mailbox Sent {
  auto = subscribe
  special_use = \Sent
  }
  mailbox Trash {
  auto = subscribe
  special_use = \Trash
  }
  prefix =
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/mail/credentials
  driver = passwd-file
  name =
}
plugin {
  imapsieve_mailbox1_before = file:/usr/local/lib/dovecot/sieve/report-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_name = *
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve
  sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = imap sieve
service imap-login {
  inet_listener imaps {
  port = 0
  }
}
service managesieve-login {
  inet_listener sieve {
  port = 4190
  }
  inet_listener sieve_deprecated {
  port = 2000
  }
}
ssl_cert = </etc/ssl/mail.crt
ssl_key = </etc/ssl/private/mail.key
userdb {
  args = username_format=%u /etc/mail/credentials
  driver = passwd-file
  name =
}
protocol imap {
  mail_plugins = " imap_sieve"
}

डवकोट बग फिक्स

डवकोट में एक बग है जहां फ़ाइल में सेटिंग्स ssl_certऔर ssl_keyसेटिंग्स ओवरराइड नहीं होती हैं, local.confइसलिए हमें उन्हें टिप्पणी करना होगा। यदि आप इस चरण को याद करते हैं, तो डॉवकोट सही ढंग से शुरू करने में विफल रहेगा।

/etc/dovecot/conf.d/10-ssl.confदिखाए अनुसार संपादित करें ।

...
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/ssl/dovecotcert.pem
#ssl_key = </etc/ssl/private/dovecot.pem
...

छलनी लिपियों बनाएँ

चलनी स्क्रिप्ट स्पैम और हैम पर Rspamd को प्रशिक्षित करती हैं । रद्दी फ़ोल्डर को ईमेल में और उसके बाहर स्थानांतरित करना Rspamd को प्रशिक्षित करने के लिए एक घटना को ट्रिगर करता है।

इन फ़ाइलों पर स्थित हैं /usr/local/lib/dovecot/sieve

report-ham.sieveफ़ाइल बनाएँ ।

require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];

if environment :matches "imap.mailbox" "*" {
  set "mailbox" "${1}";
}

if string "${mailbox}" "Trash" {
  stop;
}

if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-ham.sh" [ "${username}" ];

report-spam.sieveफ़ाइल बनाएँ ।

require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];

if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-spam.sh" [ "${username}" ];

फ़ाइलों को संकलित करें।

sievec report-ham.sieve
sievec report-spam.sieve 

निम्नलिखित दो शेल स्क्रिप्ट बनाएं /usr/local/lib/dovecot/sieve

करने के लिए निम्नलिखित जोड़ें sa-learn-ham.sh

#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_ham

करने के लिए निम्नलिखित जोड़ें sa-learn-spam.sh

#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_spam

फ़ाइलों को निष्पादन योग्य बनाएं।

chmod 0755 sa-learn-ham.sh
chmod 0755 sa-learn-spam.sh

सक्षम करें और Dovecot प्रारंभ करें।

rcctl enable dovecot
rcctl start dovecot

जांचें कि डवकोट ठीक से शुरू हुआ।

ps ax | grep dovecot

88005 ??  I        0:00.11 /usr/local/sbin/dovecot
69640 ??  I        0:00.03 dovecot/anvil
91207 ??  I        0:00.03 dovecot/log
98178 ??  I        0:00.19 dovecot/config
34712 ??  I        0:00.06 dovecot/stats
96674 ??  I        0:00.03 dovecot/imap-login
 8891 ??  S        0:00.02 dovecot/imap

सत्यापित करें कि डॉवकोट सही ढंग से पढ़ सकता है /etc/mail/credentials

doveadm user [email protected]

field    value
uid      2000
gid      2000
home /var/vmail/example.com/john
mail maildir:/var/vmail/example.com/john

सत्यापित करें कि एक मेल उपयोगकर्ता लॉग इन कर सकता है।

doveadm auth login [email protected]

Password: ********
passdb: [email protected] auth succeeded
extra fields:
  [email protected]

userdb extra fields:
  [email protected]
  mail=maildir:/var/vmail/example.com/john
  uid=2000
  gid=2000
  home=/var/vmail/example.com/john
  auth_mech=PLAIN

Rspamd सेट करें

यह एक बुनियादी Rspamd विन्यास है, अधिक जानकारी के लिए आधिकारिक दस्तावेज देखें। यह उदाहरण डीकेआईएम पर हस्ताक्षर करने के लिए हमारे डोमेन के लिए एक परिभाषा बनाता है।

एक सार्वजनिक / निजी कीपर बनाएँ /etc/mail/dkimऔर सही अनुमतियाँ सेट करें।

doas su
mkdir /etc/mail/dkim
cd /etc/mail/dkim
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
chmod 0440 private.key
chown root:_rspamd private.key

सार्वजनिक कुंजी वाले DKIM के लिए DNS रिकॉर्ड बनाएं। DKIM रिकॉर्ड बनाने के तरीके के विवरण के लिए अपने DNS प्रदाता का संदर्भ लें। सामग्री को कॉपी करें /etc/mail/dkim/public.keyऔर p=नीचे दिखाए गए अनुसार DKIM रिकॉर्ड के भाग के बाद पेस्ट करें। ध्यान दें कि यह उदाहरण एक SPF रिकॉर्ड भी बनाता है।

default._domainkey.example.com. IN TXT "v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClcuK3FV3Ug64li8iFsuJ2ykgb7FMZsujk9uG79ppPUp57vCfjzO7F+HBfx5qIwvlGxv2IJXK86FZwhpUX+HFCDUtfB2z0ZNGerWcZfNzM1w1Bru/fdMd2tCYkiHEa5RWIkLfs/Fm+neXxRZfAG2UDWmAghNbgzYv7xViwgufDIQIDAQAB"
example.com. IN TXT "v=spf1 a ip4:192.0.2.1 mx ~all"

DMARC रिकॉर्ड बनाएं।

_dmarc.example.com. IN TXT "v=DMARC1;p=none;pct=100;rua=mailto:[email protected]"

/etc/rspamd/local.d/dkim_signing.confकॉन्फ़िगरेशन फ़ाइल बनाएँ ।

  • selector="default";लाइन DKIM DNS रिकॉर्ड (के पहले भाग से ली गई है default._domainkey....) के ऊपर बनाया।

    domain {
        example.com {
            path = "/etc/mail/dkim/example.com.key";
            selector = "default";
        }
    }
    

Rspamd को सक्षम और प्रारंभ करें।

doas rcctl enable redis rspamd
doas rcctl start redis rspamd

/etc/mail/smtpd.confRspamd को सक्षम करने के लिए OpenSMTPD को पुनः आरंभ करें और नीचे की पंक्तियों को बदलें ।

...
listen on all tls pki "mail" hostname "mail.example.com" filter "rspamd"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
  auth <credentials> filter "rspamd"
...
rcctl restart smtpd

POP3 या IMAP ईमेल क्लाइंट के साथ मेल सर्वर का परीक्षण करें। यदि आपको वेबमेल की आवश्यकता नहीं है, तो यहां रुकें।

(वैकल्पिक) RainLoop वेबमेल कॉन्फ़िगर करें

पूर्वापेक्षा पैकेज स्थापित करें

जब संकेत दिया जाता है, तो कृपया PHP का सबसे वर्तमान संस्करण चुनें।

pkg_add php php-curl php-pdo_sqlite php-zip pecl73-mcrypt zip unzip wget curl

रेनहेल्प वेबमेल टारबॉल को लाएं और इसे निकालें /var/www/htdocs/

मानक संस्करण का उपयोग करें जिसमें एक स्वचालित अपडेटर शामिल है।

cd /tmp
wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip
unzip rainloop-latest.zip -d /var/www/htdocs/rainloop
chown -R www:www /var/www/htdocs

SSL सर्टिफिकेट क्रिएट करें

  • को कॉपी /etc/examples/acme-client.confकरें/etc
  • फ़ाइल के नीचे निम्नलिखित पंक्तियाँ जोड़ें:

    domain webmail.example.com {
    domain key "/etc/ssl/private/webmail.example.com.key"
    domain full chain certificate "/etc/ssl/webmail.example.com.crt"
    sign with letsencrypt
    }
    

Httpd कॉन्फ़िगर करें

  • उपडोमेन के लिए DNS प्रविष्टि (या तो CNAME या A रिकॉर्ड) बनाएँ webmail.example.com
  • /etc/httpd.confनीचे दिए गए उदाहरण को संपादित करें ।

    prefork 3
    types { include "/usr/share/misc/mime.types" }
    
    server "default" {
        listen on egress port 80 
        root "/htdocs"
        directory index index.html
    
        location "/.well-known/acme-challenge/*" {
                root "/acme"
                request strip 2
        }
    }
    

Httpd सिंटैक्स चेक चलाएँ।

httpd -n

सक्षम और httpd शुरू करें।

rcctl enable httpd
rcctl start httpd

लेट्स एनक्रिप्ट सर्टिफिकेट का अनुरोध करें।

acme-client -v webmail.example.com

RainLoop के लिए सर्वर परिभाषाएँ जोड़ें /etc/httpd.conf

server "webmail.example.com" {
    listen on egress port 80
    block return 302 "https://$SERVER_NAME$REQUEST_URI"
}

server "webmail.example.com" {
    listen on egress tls port 443
    root "/htdocs/rainloop"
    directory index "index.php"

    tcp { nodelay, backlog 10 }

    tls {
            certificate "/etc/ssl/webmail.example.com.crt"
            key "/etc/ssl/private/webmail.example.com.key"
    }

    hsts {
            max-age 31556952
            preload
    }

    # Value below is 25MB in bytes. 1MB = 1048576 bytes
    connection max request body 26214400

    location "/data*" {
            block return 403
    }

    location "*.php*" {
            fastcgi socket "/run/php-fpm.sock"
    }
}

25 मेगाबाइट तक अटैचमेंट की अनुमति देने के लिए PHP को कॉन्फ़िगर करें। निम्नलिखित बदलाव करें /etc/php-7.3.ini:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 25M
...
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 29M

अपनी कॉन्फ़िगरेशन फ़ाइलों को कॉपी करके आवश्यक PHP मॉड्यूल सक्षम करें /etc/php-7.3/

cp /etc/php-7.3.sample/* /etc/php-7.3/.

के वाक्यविन्यास की जाँच करें /etc/httpd.conf

httpd -n

Httpd और php-fpm को सक्षम और शुरू करें।

rcctl reload httpd
rcctl enable php73_fpm
rcctl start php73_fpm

अंतिम परीक्षण

के लिए ब्राउज़ करें https://webmail.example.com/?admin

डिफ़ॉल्ट उपयोगकर्ता नाम है: व्यवस्थापक
डिफ़ॉल्ट पासवर्ड है: 12345

प्रत्येक कॉन्फ़िगरेशन अनुभाग में ब्राउज़ करें और अपने इच्छित परिवर्तन करें। एक बार जब आप कॉन्फ़िगरेशन समाप्त कर लेते हैं, तो वेबमेल पर लॉग ऑन करेंhttps://webmail.example.com



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ