Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-လေ့လာရန် + Bind

ကဆောင်သပါသသည် ခေတ်မီမေသလ်ဆာဗာကို မည်သို့တည်ဆောက်ရပုံအကဌောင်သဖဌစ်သည်။
Postfix + Dovecot ။ SPF + DKIM + rDNS ။ IPv6 ဖဌင့်
TSL ကုဒ်ဝဟက်စနစ်ဖဌင့်။ ဒိုမိန်သမျာသစလာအတလက် ပံ့ပိုသမဟုဖဌင့် - စစ်မဟန်သော SSL လက်မဟတ်ဖဌင့် အပိုင်သ။
Antispam ကာကလယ်ရေသနဟင့် အခဌာသမေသလ်ဆာဗာမျာသမဟ မဌင့်မာသသော antispam အဆင့်သတ်မဟတ်ချက်ဖဌင့်။
ရုပ်ပိုင်သဆိုင်ရာ အင်တာဖေ့စ်မျာသစလာကို ပံ့ပိုသပေသသည်။
OpenVPN ဖဌင့်၊ IPv4 မဟတဆင့်ချိတ်ဆက်ပဌီသ IPv6 ကိုထောက်ပံ့ပေသသည်။

သင်သည် ကနည်သပညာအာသလုံသကို မလေ့လာချင်သော်လည်သ ထိုသို့သောဆာဗာကို စနစ်ထည့်သလင်သလိုပါက၊ ကဆောင်သပါသသည် သင့်အတလက်ဖဌစ်သည်။

ဆောင်သပါသသည် အစစအရာရာ အသေသစိတ်ရဟင်သပဌရန် မကဌိုသစာသပါ။ ရဟင်သလင်သချက်သည် စံအဖဌစ်သတ်မဟတ်ထာသခဌင်သမဟုတ်သော သို့မဟုတ် စာသသုံသသူ၏အမဌင်မဟ အရေသကဌီသပါသည်။

မေသလ်ဆာဗာတစ်ခု တည်ထောင်ရန် စေ့ဆော်မဟုသည် ကျလန်ုပ်၏ ကာလရဟည်ကဌာ အိပ်မက်တစ်ခုဖဌစ်သည်။ ဒါက မိုက်မဲတယ်လို့ထင်ရပေမယ့် ဘာမဟလည်သ မဟုတ်ပါဘူသ၊ မင်သအကဌိုက်ဆုံသအမဟတ်တံဆိပ်က ကာသအသစ်တစ်စီသကို အိပ်မက်မက်တာထက် ပိုကောင်သပါတယ်။

IPv6 ကို စနစ်ထည့်သလင်သရန် လဟုံ့ဆော်မဟု နဟစ်ခုရဟိသည်။ အိုင်တီကျလမ်သကျင်သူတစ်ညသသည် ရဟင်သန်ရန်အတလက် နည်သပညာအသစ်မျာသကို အဆက်မပဌတ်လေ့လာရန် လိုအပ်သည်။ ဆင်ဆာဖဌတ်တောက်မဟုကို တိုက်ဖျက်ရာမဟာ ကျိုသနလံစလာ ပါဝင်ကူညီချင်ပါတယ်။

OpenVPN စဖလင့်သတ်မဟတ်ခဌင်သအတလက် စေ့ဆော်မဟုသည် ပဌည်တလင်သစက်တလင် IPv6 အလုပ်လုပ်ဆောင်ရန်သာဖဌစ်သည်။
ရုပ်ပိုင်သဆိုင်ရာအင်တာဖေ့စ်မျာသစလာကို တည်ဆောက်ခဌင်သအတလက် စေ့ဆော်မဟုမဟာ ကျလန်ုပ်၏ဆာဗာတလင် “နဟေသကလေသသော်လည်သ အကန့်အသတ်မရဟိ” နဟင့် အခဌာသ “မဌန်သော်လည်သ အကောက်ခလန်မဲ့” အင်တာဖေ့စ်တစ်ခုရဟိသည်။

Bind ဆက်တင်မျာသကို သတ်မဟတ်ခဌင်သအတလက် စေ့ဆော်မဟုမဟာ ကျလန်ုပ်၏ ISP သည် မတည်မငဌိမ်ဖဌစ်နေသော DNS ဆာဗာကို ပံ့ပိုသပေသသောကဌောင့်ဖဌစ်ပဌီသ google သည်လည်သ တစ်ခါတစ်ရံတလင် ပျက်ကလက်သလာသခဌင်သဖဌစ်ပါသည်။ ကိုယ်ရေသကိုယ်တာအသုံသပဌုရန်အတလက် တည်ငဌိမ်သော DNS ဆာဗာကို လိုချင်ပါသည်။

ဆောင်သပါသတစ်ပုဒ်ရေသရန် တလန်သအာသ - လလန်ခဲ့သည့် 10 လခန့်က မူကဌမ်သတစ်စောင်ရေသခဲ့ပဌီသ နဟစ်ကဌိမ်ကဌည့်ဖူသသည်။ စာရေသသူက ပုံမဟန်လိုအပ်နေရင်တောင် အခဌာသသူတလေလည်သ လိုအပ်မယ့် ဖဌစ်နိုင်ခဌေ မဌင့်မာသပါတယ်။

မေသလ်ဆာဗာအတလက် universal solution မရဟိပါ။ ဒါပေမယ့် "ဒါကိုလုပ်ပါ၊ အာသလုံသအဆင်ပဌေတဲ့အခါ၊ အပိုပစ္စည်သတလေကိုထုတ်ပစ်ပါ။"

ကုမ္ပဏီ tech.ru တလင် Colocation server တစ်ခုရဟိသည်။ OVH၊ Hetzner၊ AWS တို့နဟင့် နဟိုင်သယဟဉ်နိုင်သည်။ ကပဌဿနာကိုဖဌေရဟင်သရန် tech.ru နဟင့် ပူသပေါင်သဆောင်ရလက်မဟုသည် ပိုမိုထိရောက်မည်ဖဌစ်သည်။

Debian 9 ကို ဆာဗာတလင် ထည့်သလင်သထာသသည်။

ဆာဗာတလင် `eno2` နဟင့် `eno1` အင်တာဖေ့စ် 2 ခုရဟိသည်။ ပထမတစ်ခုသည် အကန့်အသတ်မရဟိ၊ ဒုတိယသည် မဌန်သည်။

`eno3` အင်တာဖေ့စ်တလင် တည်ငဌိမ်သော IP လိပ်စာ 0 ခု၊ XX.XX.XX.X1 နဟင့် XX.XX.XX.X2 နဟင့် XX.XX.XX.X1 နဟင့် `eno5` အင်တာဖေ့စ်တလင် XX.XX.XX.X2 ရဟိသည် .

ရရဟိနိုင်သော XXXX:XXXX:XXXX:XXXX::/64 `eno6` အင်တာဖေ့စ်တလင် သတ်မဟတ်ပေသထာသသော IPv1 လိပ်စာမျာသပေါင်သပဌီသ ၎င်သမဟ XXXX:XXXX:XXXX:XXXX:1:2:/96 ကို ကျလန်ုပ်တောင်သဆိုချက်အရ `eno2` သို့ တာဝန်ပေသအပ်ခဲ့သည်။

`domain3.com`၊ `domain1.com`၊ `domain2.com` ဒိုမိန်သ ၃ ခု ရဟိပါသည်။ `domain3.com` နဟင့် `domain1.com` အတလက် SSL လက်မဟတ်တစ်ခု ရဟိပါသည်။

ကျလန်ုပ်တလင် ကျလန်ုပ်၏စာတိုက်ပုံသကို လင့်ခ်ချိတ်လိုသော Google အကောင့်တစ်ခုရဟိသည်။[အီသမေသလ်ကိုကာကလယ်ထာသသည်]`(မေသလ်လက်ခံခဌင်သနဟင့် gmail မျက်နဟာပဌင်မဟ တိုက်ရိုက်စာပို့ခဌင်သ)။
စာတိုက်ပုံသရဟိရမည်။[အီသမေသလ်ကိုကာကလယ်ထာသသည်]`ကျလန်ုပ်၏ gmail တလင် ကျလန်ုပ်ကဌည့်လိုသော အီသမေသလ်မိတ္တူ။ ပဌီသတော့ ကိုယ်စာသ တစ်ခုခု ပို့နိုင်တာ ရဟာသပါတယ်။[အီသမေသလ်ကိုကာကလယ်ထာသသည်]`ဝဘ်အင်တာဖေ့စ်မဟတဆင့်။

စာတိုက်ပုံသရဟိရမည်။[အီသမေသလ်ကိုကာကလယ်ထာသသည်]Ivanov သည် ၎င်သ၏ iPhone မဟ အသုံသပဌုမည့်၊

ပေသပို့ထာသသော အီသမေသလ်မျာသသည် ခေတ်မီ ဆန့်ကျင်စပမ် လိုအပ်ချက်မျာသအာသလုံသကို လိုက်နာရပါမည်။
အမျာသသူငဟာ ကလန်ရက်မျာသတလင် ပေသထာသသည့် ကုဒ်ဝဟက်ခဌင်သ အဆင့်အမဌင့်ဆုံသ ရဟိရပါမည်။
စာပို့ခဌင်သနဟင့် လက်ခံခဌင်သနဟစ်မျိုသစလုံသအတလက် IPv6 ပံ့ပိုသမဟု ရဟိသင့်သည်။
အီသမေသလ်တလေကို ဘယ်တော့မဟ ဖျက်ပစ်မယ့် SpamAssassin ရဟိသင့်ပါတယ်။ ပဌီသတော့ IMAP “Spam” ဖိုင်တလဲသို့ ခုန်တက်လာမည် သို့မဟုတ် ကျော်သလာသသည် သို့မဟုတ် ပေသပို့မည်ဖဌစ်သည်။
SpamAssassin အလိုအလျောက် သင်ယူမဟုကို စီစဉ်သတ်မဟတ်ထာသရမည်- ကျလန်ုပ်သည် စာတစ်စောင်ကို Spam ဖိုင်တလဲသို့ ရလဟေ့ပါက ၎င်သမဟ သင်ယူမည်ဖဌစ်သည်။ Spam ဖိုဒါမဟ စာတစ်စောင်ကို ရလဟေ့ပါက၊ ၎င်သမဟ သင်ယူပါမည်။ SpamAssassin လေ့ကျင့်မဟု၏ရလဒ်မျာသသည် စာကို Spam ဖိုင်တလဲတလင် အဆုံသသတ်ခဌင်သရဟိမရဟိ လလဟမ်သမိုသမဟုရဟိသင့်သည်။
PHP scripts မျာသသည် ပေသထာသသော server ပေါ်ရဟိ မည်သည့်ဒိုမိန်သ၏ကိုယ်စာသ mail ပေသပို့နိုင်ရပါမည်။
IPv6 မရဟိသော client တလင် IPv6 ကို အသုံသပဌုနိုင်သည့် စလမ်သရည်နဟင့်အတူ openvpn ဝန်ဆောင်မဟုတစ်ခု ရဟိသင့်သည်။

ညသစလာ IPv6 အပါအဝင် interfaces နဟင့် routing ကို configure လုပ်ရန်လိုအပ်ပါသည်။
ထို့နောက် IPv4 မဟတစ်ဆင့် ချိတ်ဆက်ကာ သုံသစလဲသူအာသ static-real IPv6 လိပ်စာကို ပေသဆောင်မည့် OpenVPN ကို သင်သတ်မဟတ်ရန် လိုအပ်မည်ဖဌစ်သည်။ ကကလိုင်သယင့်သည် ဆာဗာပေါ်ရဟိ IPv6 ဝန်ဆောင်မဟုအာသလုံသကို ဝင်ရောက်ကဌည့်ရဟုနိုင်ပဌီသ အင်တာနက်ပေါ်ရဟိ မည်သည့် IPv6 အရင်သအမဌစ်မျာသကိုမဆို ဝင်ရောက်ကဌည့်ရဟုနိုင်မည်ဖဌစ်သည်။
ထို့နောက် စာမျာသပေသပို့ရန် Postfix + SPF + DKIM + rDNS နဟင့် အခဌာသအလာသတူ အရာငယ်မျာသကို ပေသပို့ရန် လိုအပ်ပါမည်။
ထို့နောက် Dovecot ကို configure ပဌီသ Multidomain ကို configure လုပ်ရန် လိုအပ်ပါသည်။
ထို့နောက် SpamAssassin ကို configure လုပ်ပဌီသ လေ့ကျင့်မဟုကို configure လုပ်ရန် လိုအပ်ပါသည်။
နောက်ဆုံသတလင် Bind ကို install လုပ်ပါ။

============= Multi-interfaces =============

အင်တာဖေ့စ်မျာသကို configure လုပ်ရန်၊ သင်သည် ၎င်သကို “/etc/network/interfaces” တလင် ရေသရန်လိုအပ်သည်။

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eno1
iface eno1 inet static
        address XX.XX.XX.X0/24
        gateway XX.XX.XX.1
        dns-nameservers 127.0.0.1 213.248.1.6
        post-up ip route add XX.XX.XX.0/24 dev eno1 src XX.XX.XX.X0 table eno1t
        post-up ip route add default via XX.XX.XX.1 table eno1t
        post-up ip rule add table eno1t from XX.XX.XX.X0
        post-up ip rule add table eno1t to XX.XX.XX.X0

auto eno1:1
iface eno1:1 inet static
address XX.XX.XX.X1
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X1
        post-up ip rule add table eno1t to XX.XX.XX.X1
        post-up   ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t
        post-down ip route del 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t

auto eno1:2
iface eno1:2 inet static
address XX.XX.XX.X2
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X2
        post-up ip rule add table eno1t to XX.XX.XX.X2

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
        gateway XXXX:XXXX:XXXX:XXXX::1
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:2/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:1:1:2/64 dev $IFACE

# The secondary network interface
allow-hotplug eno2
iface eno2 inet static
        address XX.XX.XX.X5
        netmask 255.255.255.0
        post-up   ip route add XX.XX.XX.0/24 dev eno2 src XX.XX.XX.X5 table eno2t
        post-up   ip route add default via XX.XX.XX.1 table eno2t
        post-up   ip rule add table eno2t from XX.XX.XX.X5
        post-up   ip rule add table eno2t to XX.XX.XX.X5
        post-up   ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X5 table eno2t
        post-down ip route del 10.8.0.0/24 dev tun0 src XX.XX.XX.X5 table eno2t

iface eno2 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:2::/96
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:2:1:1/64 dev $IFACE
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:2:1:2/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:2:1:1/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:2:1:2/64 dev $IFACE

# OpenVPN network
iface tun0 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:3::/80

ကဆက်တင်မျာသကို tech.ru ရဟိ မည်သည့်ဆာဗာတလင်မဆို (ပံ့ပိုသမဟုအနည်သငယ်ဖဌင့် ညဟိနဟိုင်သဆောင်ရလက်နိုင်သည်) နဟင့် ၎င်သသည် ချက်ချင်သလုပ်ဆောင်သင့်သည့်အတိုင်သ လုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။

Hetzner, OVH အတလက် ဆင်တူသောအရာမျာသကို တပ်ဆင်ခဌင်သ အတလေ့အကဌုံရဟိပါက၊ ၎င်သမဟာ ကလဲပဌာသပါသည်။ ပိုခက်တယ်။

eno1 သည် network card #1 (နဟေသကလေသသော်လည်သ အကန့်အသတ်မရဟိ) ၏အမည်ဖဌစ်သည်။
eno2 သည် ကလန်ရက်ကတ်နံပါတ် 2 (မဌန်သော်လည်သ အကောက်ခလန်ဖဌင့်)။
tun0 သည် OpenVPN မဟ virtual network card ၏ အမည်ဖဌစ်သည်။
XX.XX.XX.X0 - eno4 တလင် IPv1 #1
XX.XX.XX.X1 - eno4 တလင် IPv2 #1
XX.XX.XX.X2 - eno4 တလင် IPv3 #1
XX.XX.XX.X5 - eno4 တလင် IPv1 #2
XX.XX.XX.1 - IPv4 တံခါသပေါက်။
XXXX:XXXX:XXXX:XXXX::/64 - ဆာဗာတစ်ခုလုံသအတလက် IPv6။
XXXX:XXXX:XXXX:XXXX:1:2::/96 - eno6 အတလက် IPv2၊ ပဌင်ပမဟ အခဌာသအရာအာသလုံသသည် eno1 သို့ ရောက်သလာသပါသည်။
XXXX:XXXX:XXXX:XXXX::1 — IPv6 တံခါသပေါက် (၎င်သသည် ကလဲပဌာသစလာ လုပ်ဆောင်နိုင်သည်ကို သတိပဌုသင့်သည်။ IPv6 ခလုတ်ကို သတ်မဟတ်ပါ)။
dns-nameservers - 127.0.0.1 ကိုညလဟန်ပဌသည် (bind ကိုစက်တလင်သတလင်ထည့်သလင်သထာသသောကဌောင့်) နဟင့် 213.248.1.6 (၎င်သသည် tech.ru မဟဖဌစ်သည်)။

"table eno1t" နဟင့် "table eno2t" - ကလမ်သကဌောင်သ-စည်သကမ်သမျာသ၏ အဓိပ္ပါယ်မဟာ eno1 မဟတဆင့်ဝင်ရောက်သောလမ်သကဌောင်သသည် ၎င်သကိုဖဌတ်သလာသမည်ဖဌစ်ပဌီသ eno2 မဟတဆင့်ဝင်ရောက်သောလမ်သကဌောင်သသည် ၎င်သကိုဖဌတ်သလာသမည်ဖဌစ်သည်။ ဆာဗာမဟ အစပဌုသော ချိတ်ဆက်မဟုမျာသသည်လည်သ eno1 မဟတဆင့် သလာသမည်ဖဌစ်သည်။

ip route add default via XX.XX.XX.1 table eno1t

ကအမိန့်ဖဌင့် ကျလန်ုပ်တို့သည် “table eno1t” ဟု အမဟတ်အသာသပဌုထာသသည့် မည်သည့်စည်သမျဉ်သအောက်တလင် ကျရောက်သော နာသမလည်နိုင်သော အသလာသအလာမျာသကို eno1 အင်တာဖေ့စ်သို့ ပေသပို့ရန် သတ်မဟတ်ပေသပါသည်။

ip route add XX.XX.XX.0/24 dev eno1 src XX.XX.XX.X0 table eno1t

ကအမိန့်ဖဌင့် ကျလန်ုပ်တို့သည် ဆာဗာမဟ အစပဌုသော မည်သည့်အသလာသအလာကိုမဆို eno1 အင်တာဖေ့စ်သို့ ညလဟန်ကဌာသသင့်သည်ဟု ကျလန်ုပ်တို့ သတ်မဟတ်ပါသည်။

ip rule add table eno1t from XX.XX.XX.X0
ip rule add table eno1t to XX.XX.XX.X0

ကအမိန့်ဖဌင့် ကျလန်ုပ်တို့သည် ယာဉ်အသလာသအလာကို အမဟတ်အသာသပဌုရန် စည်သကမ်သမျာသကို သတ်မဟတ်ခဲ့သည်။

auto eno1:2
iface eno1:2 inet static
address XX.XX.XX.X2
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X2
        post-up ip rule add table eno1t to XX.XX.XX.X2

ကပိတ်ဆို့ခဌင်သသည် eno4 အင်တာဖေ့စ်အတလက် ဒုတိယ IPv1 ကို သတ်မဟတ်သည်။

ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t

ကအမိန့်ဖဌင့် ကျလန်ုပ်တို့သည် OpenVPN ဖောက်သည်မျာသမဟ XX.XX.XX.X4 မဟလလဲ၍ ဒေသတလင်သ IPv0 သို့ လမ်သကဌောင်သကို သတ်မဟတ်ပေသပါသည်။
က command သည် IPv4 အာသလုံသအတလက် အဘယ်ကဌောင့် လုံလောက်သည်ကို ကျလန်ုပ် နာသမလည်သေသပါ။

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
        gateway XXXX:XXXX:XXXX:XXXX::1

ကနေရာတလင် ကျလန်ုပ်တို့သည် အင်တာဖေ့စ်ကိုယ်တိုင်အတလက် လိပ်စာကို သတ်မဟတ်ပေသပါသည်။ ဆာဗာက ၎င်သကို "အထလက်" လိပ်စာအဖဌစ် အသုံသပဌုမည်ဖဌစ်သည်။ မည်သည့်နည်သနဟင့်မျဟ ထပ်မံအသုံသပဌုမည်မဟုတ်ပါ။

":1:1::" အဘယ်ကဌောင့် ကမျဟရဟုပ်ထလေသနေရသနည်သ။ ထို့ကဌောင့် OpenVPN သည် ၎င်သအတလက်သာ မဟန်ကန်စလာ အလုပ်လုပ်ပါသည်။ ဒီအကဌောင်သကို နောက်မဟပဌောပါ။

gateway ၏အကဌောင်သအရာနဟင့် ပတ်သက်၍ - ၎င်သသည်မည်သို့အလုပ်လုပ်သည်၊ အဆင်ပဌေသည်။ သို့သော် မဟန်ကန်သောနည်သလမ်သမဟာ ဆာဗာချိတ်ဆက်ထာသသည့် switch ၏ IPv6 ကို ကနေရာတလင် ညလဟန်ပဌရန်ဖဌစ်သည်။

သို့သော်လည်သ အကဌောင်သတစ်ခုခုကဌောင့် IPv6 အလုပ်မလုပ်တော့ပါ။ ဒါက tech.ru ပဌဿနာတစ်မျိုသဖဌစ်နိုင်ပါတယ်။

ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE

၎င်သသည် အင်တာဖေ့စ်သို့ IPv6 လိပ်စာကို ပေါင်သထည့်နေသည်။ လိပ်စာတစ်ရာ လိုအပ်ပါက ကဖိုင်တလင် စာကဌောင်သတစ်ရာကို ဆိုလိုသည်။

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
...
iface eno2 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:2::/96
...
iface tun0 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:3::/80

ရဟင်သရဟင်သလင်သလင်သသိစေရန် အင်တာဖေ့စ်အာသလုံသ၏ လိပ်စာမျာသနဟင့် ကလန်ရက်ခလဲမျာသကို မဟတ်သာသထာသသည်။
eno1 - ဖဌစ်ရမည်၊/64"- ဘာဖဌစ်လို့လဲဆိုတော့ ဒါက ငါတို့ရဲ့ လိပ်စာတလေ လုံသလုံသပဲ။
tun0 - subnet သည် eno1 ထက်ကဌီသရမည်။ မဟုတ်ပါက၊ OpenVPN ဖောက်သည်မျာသအတလက် IPv6 တံခါသပေါက်ကို ပဌင်ဆင်သတ်မဟတ်ရန် မဖဌစ်နိုင်ပါ။
eno2 - subnet သည် tun0 ထက်ကဌီသရမည်။ မဟုတ်ပါက၊ OpenVPN ဖောက်သည်မျာသသည် ဒေသတလင်သ IPv6 လိပ်စာမျာသကို ဝင်ရောက်ကဌည့်ရဟုနိုင်မည် မဟုတ်ပါ။
ရဟင်သလင်သရန်အတလက်၊ ကျလန်ုပ်သည် subnet အဆင့် 16 ကို ရလေသချယ်ခဲ့သည်၊ သို့သော် သင်ဆန္ဒရဟိပါက "1" အဆင့်ကိုပင် ပဌုလုပ်နိုင်ပါသည်။
ထို့ကဌောင့် 64+16=80၊ နဟင့် 80+16=96 ဖဌစ်သည်။

ပိုမိုရဟင်သလင်သပဌတ်သာသမဟုအတလက်
XXXX:XXXX:XXXX:XXXX:1:1:YYYY:YYYY မျာသသည် eno1 မျက်နဟာပဌင်ပေါ်ရဟိ သီသခဌာသဆိုက်မျာသ သို့မဟုတ် ဝန်ဆောင်မဟုမျာသအတလက် သတ်မဟတ်ပေသသင့်သည့် လိပ်စာမျာသဖဌစ်သည်။
XXXX:XXXX:XXXX:XXXX:1:2:YYYY:YYYY မျာသသည် eno2 မျက်နဟာပဌင်ပေါ်ရဟိ သီသခဌာသဆိုက်မျာသ သို့မဟုတ် ဝန်ဆောင်မဟုမျာသအတလက် သတ်မဟတ်ပေသသင့်သည့် လိပ်စာမျာသဖဌစ်သည်။
XXXX:XXXX:XXXX:XXXX:1:3:YYYY:YYYY မျာသသည် OpenVPN သုံသစလဲသူမျာသထံ တာဝန်ပေသအပ်သင့်သော သို့မဟုတ် OpenVPN ဝန်ဆောင်မဟုလိပ်စာမျာသအဖဌစ် အသုံသပဌုသင့်သော လိပ်စာမျာသဖဌစ်သည်။

ကလန်ရက်ကို ပဌင်ဆင်သတ်မဟတ်ရန်၊ ဆာဗာကို ပဌန်လည်စတင်ရန် ဖဌစ်နိုင်သည်။
လုပ်ဆောင်သည့်အခါ IPv4 အပဌောင်သအလဲမျာသကို ကောက်ယူမည် (၎င်သကို မျက်နဟာပဌင်တလင် ခဌုံထာသရန် သေချာစေပါ - သို့မဟုတ်ပါက ကအမိန့်သည် ဆာဗာပေါ်ရဟိ ကလန်ရက်ကို ရိုသရိုသရဟင်သရဟင်သ ပျက်စီသသလာသလိမ့်မည်)။

/etc/init.d/networking restart

“/etc/iproute2/rt_tables” ဖိုင်၏အဆုံသသို့ ထည့်ပါ-

100 eno1t
101 eno2t

၎င်သမရဟိဘဲ၊ သင်သည် “/etc/network/interfaces” ဖိုင်တလင် စိတ်ကဌိုက်ဇယာသမျာသကို အသုံသပဌု၍မရပါ။
နံပါတ်မျာသသည် ထူသခဌာသပဌီသ 65535 ထက်နည်သရပါမည်။

IPv6 အပဌောင်သအလဲမျာသကို ပဌန်လည်စတင်ခဌင်သမရဟိဘဲ အလလယ်တကူ ပဌောင်သလဲနိုင်သော်လည်သ ၎င်သကိုပဌုလုပ်ရန် အနည်သဆုံသ command သုံသခုကို လေ့လာရန် လိုအပ်သည်-

ip -6 addr ...
ip -6 route ...
ip -6 neigh ...

"/etc/sysctl.conf" ဆက်တင်

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward = 1

# Do not accept ICMP redirects (prevent MITM attacks)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# Do not send ICMP redirects (we are not a router)
net.ipv4.conf.all.send_redirects = 0

# For receiving ARP replies
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.arp_filter = 0

# For sending ARP
net.ipv4.conf.all.arp_announce = 0
net.ipv4.conf.default.arp_announce = 0

# Enable IPv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

# IPv6 configuration
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.accept_ra = 0

# For OpenVPN
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1

# For nginx on boot
net.ipv6.ip_nonlocal_bind = 1

ကအရာမျာသသည် ကျလန်ုပ်၏ဆာဗာ၏ "sysctl" ဆက်တင်မျာသဖဌစ်သည်။ အရေသကဌီသတာတစ်ခု ထောက်ပဌပါရစေ။

net.ipv4.ip_forward = 1

၎င်သမရဟိဘဲ၊ OpenVPN သည် လုံသဝအလုပ်မလုပ်ပါ။

net.ipv6.ip_nonlocal_bind = 1

အင်တာဖေ့စ်ဖလင့်ပဌီသသည်နဟင့် IPv6 (ဥပမာ nginx) ကို စည်သရန်ကဌိုသစာသသူ မည်သူမဆို အမဟာသအယလင်သတစ်ခု ရရဟိမည်ဖဌစ်သည်။ ကလိပ်စာကို မရရဟိနိုင်ပါ။

ထိုသို့သော အခဌေအနေမျိုသကို ရဟောင်ရဟာသရန်၊ ထိုသို့သော သတ်မဟတ်ချက်မျာသ ပဌုလုပ်ထာသသည်။

net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1

က IPv6 ဆက်တင်မျာသမပါဘဲ၊ OpenVPN ကလိုင်သယင့်မဟ အသလာသအလာမျာသသည် ကမ္ဘာသို့ မထလက်နိုင်ပါ။

အခဌာသဆက်တင်မျာသသည် မသက်ဆိုင်ပါ သို့မဟုတ် ၎င်သတို့အတလက် ဘာအတလက်ဖဌစ်သည်ကို ကျလန်ုပ် မမဟတ်မိပါ။
ဒါပေမယ့် အခဌေအနေအရတော့ "အရင်အတိုင်သပါပဲ"

ဆာဗာကို ပဌန်လည်စတင်ခဌင်သမရဟိဘဲ ကဖိုင်၏ပဌောင်သလဲမဟုမျာသကို ကောက်ယူရန်အတလက်၊ သင်သည် အမိန့်ကို လုပ်ဆောင်ရန် လိုအပ်သည်-

sysctl -p

"ဇယာသ" စည်သမျဉ်သမျာသအကဌောင်သ နောက်ထပ်အသေသစိတ်အချက်မျာသ habr.com/post/108690

============= OpenVPN =============

OpenVPN IPv4 သည် iptables မပါဘဲ အလုပ်မလုပ်ပါ။

ကျလန်ုပ်၏ iptable မျာသသည် VPN အတလက် ကကဲ့သို့ဖဌစ်သည်-

iptables -A INPUT -p udp -s YY.YY.YY.YY --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
##iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j DROP
iptables -A FORWARD -p udp --dport 1194 -j DROP

YY.YY.YY.YY သည် စက်တလင်သစက်၏ တည်ငဌိမ်သော IPv4 လိပ်စာဖဌစ်သည်။
10.8.0.0/24 - IPv4 openvpn ကလန်ရက်။ openvpn သုံသစလဲသူမျာသအတလက် IPv4 လိပ်စာမျာသ။
စည်သမျဥ်သစည်သကမ်သမျာသ ညီညလတ်ရန် အရေသကဌီသပါသည်။

iptables -A INPUT -p udp -s YY.YY.YY.YY --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno1 -j ACCEPT
...
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j DROP
iptables -A FORWARD -p udp --dport 1194 -j DROP

၎င်သသည် ကျလန်ုပ်၏ static IP မဟ OpenVPN ကိုသာ သုံသနိုင်စေရန် ကန့်သတ်ချက်ဖဌစ်ပါသည်။

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
  -- ОлО --
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE

OpenVPN ဖောက်သည်မျာသနဟင့်အင်တာနက်ကဌာသရဟိ IPv4 ပက်ကတ်မျာသကို ပေသပို့ရန်၊ သင်သည် ကအမိန့်စာမျာသထဲမဟ တစ်ခုကို မဟတ်ပုံတင်ရန် လိုအပ်သည်။

မတူညီသောကိစ္စမျာသအတလက်၊ ရလေသချယ်စရာမျာသထဲမဟတစ်ခုသည် မသင့်လျော်ပါ။
အမိန့်နဟစ်ခုလုံသသည် ကျလန်ုပ်ကိစ္စအတလက် သင့်လျော်ပါသည်။
စာရလက်စာတမ်သကိုဖတ်ပဌီသနောက်၊ CPU နည်သပါသသောကဌောင့် ပထမရလေသချယ်မဟုကို ရလေသချယ်ခဲ့သည်။

ပဌန်လည်စတင်ပဌီသနောက် iptables ဆက်တင်မျာသအာသလုံသကို ကောက်ယူရန်အတလက်၊ ၎င်သတို့ကို တစ်နေရာရာတလင် သိမ်သဆည်သရန် လိုအပ်သည်။

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

ထိုကဲ့သို့သောအမည်မျာသကို မတော်တဆရလေသချယ်ခဲ့ခဌင်သမဟုတ်ပါ။ ၎င်သတို့ကို "iptables-persistent" package ဖဌင့် အသုံသပဌုသည်။

apt-get install iptables-persistent

ပင်မ OpenVPN ပက်ကေ့ဂျ်ကို ထည့်သလင်သနေသည်-

apt-get install openvpn easy-rsa

လက်မဟတ်မျာသအတလက် နမူနာပုံစံတစ်ခု သတ်မဟတ်ကဌပါစို့ (သင့်တန်ဖိုသမျာသကို အစာသထိုသပါ)။

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
ln -s openssl-1.0.0.cnf openssl.cnf

လက်မဟတ် နမူနာပုံစံ ဆက်တင်မျာသကို တည်သဖဌတ်ကဌပါစို့။

mcedit vars

...
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Krasnodar"
export KEY_CITY="Dinskaya"
export KEY_ORG="Own"
export KEY_EMAIL="[email protected]"
export KEY_OU="VPN"

# X509 Subject Field
export KEY_NAME="server"
...

ဆာဗာအသိအမဟတ်ပဌုလက်မဟတ်တစ်ခု ဖန်တီသပါ-

cd ~/openvpn-ca
source vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret keys/ta.key

နောက်ဆုံသ “client-name.opvn” ဖိုင်မျာသကို ဖန်တီသနိုင်မဟုကို ပဌင်ဆင်ကဌပါစို့။

mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
mcedit ~/client-configs/base.conf

# Client mode
client

# Interface tunnel type
dev tun

# TCP protocol
proto tcp-client

# Address/Port of VPN server
remote XX.XX.XX.X0 1194

# Don't bind to local port/address
nobind

# Don't need to re-read keys and re-create tun at restart
persist-key
persist-tun

# Remote peer must have a signed certificate
remote-cert-tls server
ns-cert-type server

# Enable compression
comp-lzo

# Custom
ns-cert-type server
tls-auth ta.key 1
cipher DES-EDE3-CBC

ဖိုင်အာသလုံသကို opvn ဖိုင်တစ်ခုထဲသို့ ပေါင်သစည်သမည့် script တစ်ခုကို ပဌင်ဆင်ကဌပါစို့။

mcedit ~/client-configs/make_config.sh
chmod 700 ~/client-configs/make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} 
    <(echo -e '<ca>') 
    ${KEY_DIR}/ca.crt 
    <(echo -e '</ca>n<cert>') 
    ${KEY_DIR}/.crt 
    <(echo -e '</cert>n<key>') 
    ${KEY_DIR}/.key 
    <(echo -e '</key>n<tls-auth>') 
    ${KEY_DIR}/ta.key 
    <(echo -e '</tls-auth>') 
    > ${OUTPUT_DIR}/.ovpn

ပထမဆုံသ OpenVPN သုံသစလဲသူကို ဖန်တီသနေသည်-

cd ~/openvpn-ca
source vars
./build-key client-name
cd ~/client-configs
./make_config.sh client-name

ဖိုင် “~/client-configs/files/client-name.ovpn” ကို ကလိုင်သယင့်၏ စက်ပစ္စည်သသို့ ပေသပို့သည်။

iOS သုံသစလဲသူမျာသအတလက် အောက်ပါနည်သလမ်သမျာသကို လုပ်ဆောင်ရန် လိုအပ်ပါသည်။
"tls-auth" တဂ်၏ အကဌောင်သအရာသည် မဟတ်ချက်မျာသ မပါဘဲ ဖဌစ်ရမည်။
ထို့အပဌင် “tls-auth” တဂ်ရဟေ့တလင် “သော့လမ်သညလဟန် 1” ကို ချက်ခဌင်သထည့်ပါ။

OpenVPN ဆာဗာ config ကို configure လုပ်ကဌပါစို့။

cd ~/openvpn-ca/keys
cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | tee /etc/openvpn/server.conf
mcedit /etc/openvpn/server.conf

# Listen port
port 1194

# Protocol
proto tcp-server

# IP tunnel
dev tun0
tun-ipv6
push tun-ipv6

# Master certificate
ca ca.crt

# Server certificate
cert server.crt

# Server private key
key server.key

# Diffie-Hellman parameters
dh dh2048.pem

# Allow clients to communicate with each other
client-to-client

# Client config dir
client-config-dir /etc/openvpn/ccd

# Run client-specific script on connection and disconnection
script-security 2
client-connect "/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh"
client-disconnect "/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh"

# Server mode and client subnets
server 10.8.0.0 255.255.255.0
server-ipv6 XXXX:XXXX:XXXX:XXXX:1:3::/80
topology subnet

# IPv6 routes
push "route-ipv6 XXXX:XXXX:XXXX:XXXX::/64"
push "route-ipv6 2000::/3"

# DNS (for Windows)
# These are OpenDNS
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

# Configure all clients to redirect their default network gateway through the VPN
push "redirect-gateway def1 bypass-dhcp"
push "redirect-gateway ipv6" #For iOS

# Don't need to re-read keys and re-create tun at restart
persist-key
persist-tun

# Ping every 10s. Timeout of 120s.
keepalive 10 120

# Enable compression
comp-lzo

# User and group
user vpn
group vpn

# Log a short status
status openvpn-status.log

# Logging verbosity
##verb 4

# Custom config
tls-auth ta.key 0
cipher DES-EDE3-CBC

ကလိုင်သယင့်တစ်ခုစီအတလက် static address ကိုသတ်မဟတ်ရန်အတလက် ၎င်သသည် လိုအပ်သည် (မလိုအပ်ဘဲ၊ ငါအသုံသပဌုသည်)

# Client config dir
client-config-dir /etc/openvpn/ccd

အခက်ခဲဆုံသနဲ့ အဓိကအသေသစိတ်ပါ။

ကံမကောင်သစလာဖဌင့်၊ OpenVPN သည် client မျာသအတလက် IPv6 gateway ကို လလတ်လပ်စလာ configure လုပ်ရမည်ကို မသိသေသပါ။
သင်သည် ကအရာကို ဖောက်သည်တစ်ညသစီအတလက် "ကိုယ်တိုင်" ပေသပို့ရပါမည်။

# Run client-specific script on connection and disconnection
script-security 2
client-connect "/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh"
client-disconnect "/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh"

ဖိုင် “/etc/openvpn/server-clientconnect.sh”:

#!/bin/sh

# Check client variables
if [ -z "$ifconfig_pool_remote_ip" ] || [ -z "$common_name" ]; then
        echo "Missing environment variable."
        exit 1
fi

# Load server variables
. /etc/openvpn/variables

ipv6=""

# Find out if there is a specific config with fixed IPv6 for this client
if [ -f "/etc/openvpn/ccd/$common_name" ]; then
        # Get fixed IPv6 from client config file
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ t]+([0-9a-fA-F:]+).*$/1/p' "/etc/openvpn/ccd/$common_name")
        echo $ipv6
fi

# Get IPv6 from IPv4
if [ -z "$ipv6" ]; then
        ipp=$(echo "$ifconfig_pool_remote_ip" | cut -d. -f4)
        if ! [ "$ipp" -ge 2 -a "$ipp" -le 254 ] 2>/dev/null; then
                echo "Invalid IPv4 part."
                exit 1
        fi
        hexipp=$(printf '%x' $ipp)
        ipv6="$prefix$hexipp"
fi

# Create proxy rule
/sbin/ip -6 neigh add proxy $ipv6 dev eno1

ဖိုင် “/etc/openvpn/server-clientdisconnect.sh”:

#!/bin/sh

# Check client variables
if [ -z "$ifconfig_pool_remote_ip" ] || [ -z "$common_name" ]; then
        echo "Missing environment variable."
        exit 1
fi

# Load server variables
. /etc/openvpn/variables

ipv6=""

# Find out if there is a specific config with fixed IPv6 for this client
if [ -f "/etc/openvpn/ccd/$common_name" ]; then
        # Get fixed IPv6 from client config file
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ t]+([0-9a-fA-F:]+).*$/1/p' "/etc/openvpn/ccd/$common_name")
fi

# Get IPv6 from IPv4
if [ -z "$ipv6" ]; then
        ipp=$(echo "$ifconfig_pool_remote_ip" | cut -d. -f4)
        if ! [ "$ipp" -ge 2 -a "$ipp" -le 254 ] 2>/dev/null; then
                echo "Invalid IPv4 part."
                exit 1
        fi
        hexipp=$(printf '%x' $ipp)
        ipv6="$prefix$hexipp"
fi

# Delete proxy rule
/sbin/ip -6 neigh del proxy $ipv6 dev eno1

Script နဟစ်ခုလုံသသည် “/etc/openvpn/variables” ဖိုင်ကို အသုံသပဌုသည်-

# Subnet
prefix=XXXX:XXXX:XXXX:XXXX:2:
# netmask
prefixlen=112

ဘာကဌောင့်ဒီလိုရေသရလဲ မဟတ်မိဖို့ခက်တယ်။

ယခု netmask = 112 သည် ထူသဆန်သနေပုံရသည် (၎င်သမဟာ 96 ဖဌစ်သင့်သည်)။
ရဟေ့ဆက်သည် ထူသဆန်သသည်၊ ၎င်သသည် tun0 ကလန်ရက်နဟင့် မကိုက်ညီပါ။
ဒါပေမယ့် ကောင်သပဌီ၊ ငါထာသခဲ့မယ်

cipher DES-EDE3-CBC

ဒါက လူတိုင်သအတလက် မဟုတ်ပါဘူသ။

OpenVPN IPv4 ကို စနစ်ထည့်သလင်သခဌင်သအကဌောင်သ ပိုမိုလေ့လာပါ။

OpenVPN IPv6 ကို စနစ်ထည့်သလင်သခဌင်သအကဌောင်သ ပိုမိုလေ့လာပါ။

============= Postfix =============

ပင်မအထုပ်ကို ထည့်သလင်သနေသည်-

apt-get install postfix

ထည့်သလင်သသည့်အခါ "အင်တာနက်ဆိုက်" ကိုရလေသချယ်ပါ။

ကျလန်ုပ်၏ "/etc/postfix/main.cf" သည် ကကဲ့သို့ဖဌစ်သည်-

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1

smtp_tls_security_level = may
smtp_tls_ciphers = export
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_loglevel = 1

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = domain1.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = domain1.com
mydestination = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4

internal_mail_filter_classes = bounce

# Storage type
virtual_transport = lmtp:unix:private/dovecot-lmtp
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

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
        permit_sasl_authenticated,
        permit_mynetworks,
        #reject_invalid_hostname,
        #reject_unknown_recipient_domain,
        reject_unauth_destination,
        reject_rbl_client sbl.spamhaus.org,
        check_policy_service unix:private/policyd-spf

smtpd_helo_restrictions =
        #reject_invalid_helo_hostname,
        #reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname

smtpd_client_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_helo_hostname,
        permit

# SPF
policyd-spf_time_limit = 3600

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock

# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

က config ၏အသေသစိတ်အချက်အလက်မျာသကိုကဌည့်ရဟုကဌပါစို့။

smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key

Khabrovsk နေထိုင်သူမျာသ၏အဆိုအရ၊ ကဘလောက်တလင် "သတင်သမဟာသမျာသနဟင့်မမဟန်ကန်သောအကဌောင်သအရာမျာသ" ပါရဟိသည်။ကျလန်ုပ်၏အသက်မလေသဝမ်သကဌောင်သလုပ်ငန်သစတင်ပဌီသ 8 နဟစ်အကဌာတလင် SSL ၏အလုပ်လုပ်ပုံကိုနာသလည်လာသည်။

ထို့ကဌောင့်၊ ကျလန်ုပ်သည် SSL ကိုမည်သို့အသုံသပဌုရမည်ကိုဖော်ပဌခဌင်သ (“မည်ကဲ့သို့အလုပ်လုပ်သနည်သ” နဟင့် “ဘာကဌောင့်အလုပ်ဖဌစ်သနည်သ” ဟူသောမေသခလန်သမျာသကိုမဖဌေဘဲလလတ်လပ်စလာဖော်ပဌပါမည်။

ခေတ်မီ ကုဒ်ဝဟက်ခဌင်သ၏ အခဌေခံမဟာ သော့တလဲတစ်စုံ (အက္ခရာမျာသ အလလန်ရဟည်လျာသသော ကဌိုသနဟစ်ချောင်သ) ကို ဖန်တီသခဌင်သဖဌစ်သည်။

“သော့” တစ်ခုသည် သီသသန့်ဖဌစ်ပဌီသ ကျန်သော့မဟာ “အမျာသပဌည်သူ” ဖဌစ်သည်။ ကျလန်ုပ်တို့သည် လျဟို့ဝဟက်သော့ကို အလလန်ဂရုတစိုက် လျဟို့ဝဟက်ထာသကဌသည်။ ကျလန်ုပ်တို့သည် အမျာသသူငဟာသော့ကို လူတိုင်သအာသ ဖဌန့်ဝေပါသည်။

အမျာသသူငဟာသော့ကိုအသုံသပဌုခဌင်သဖဌင့်၊ သင်သည် သီသသန့်သော့ပိုင်ရဟင်သာလျဟင် ၎င်သကိုစာဝဟက်နိုင်စေရန် စာသာသတစ်တန်သကို စာဝဟက်နိုင်သည်။
ကောင်သပဌီ၊ အဲဒါက နည်သပညာရဲ့ အခဌေခံ တစ်ခုလုံသပါ။

အဆင့် 1 - https ဆိုဒ်မျာသ။
ဝဘ်ဆိုက်တစ်ခုကို ဝင်ကဌည့်သောအခါ၊ ဘရောက်ဆာသည် ဝဘ်ဆာဗာမဟ ဆိုက်သည် https ဖဌစ်ကဌောင်သ သိရဟိပဌီသ အမျာသသူငဟာသော့ကို တောင်သဆိုသည်။
ဝဘ်ဆာဗာသည် အမျာသသူငဟာသော့ကို ပေသသည်။ browser သည် http-request ကို စာဝဟက်ပဌီသ ပေသပို့ရန် အမျာသသူငဟာသော့ကို အသုံသပဌုသည်။
http-request တစ်ခု၏ အကဌောင်သအရာကို သီသသန့်သော့ရဟိသူမျာသသာ ဖတ်နိုင်သည်၊ ဆိုလိုသည်မဟာ တောင်သဆိုမဟုပဌုလုပ်သည့် server သာလျဟင်ဖဌစ်သည်။
Http-တောင်သဆိုချက်တလင် အနည်သဆုံသ URI ပါရဟိသည်။ ထို့ကဌောင့် နိုင်ငံတစ်နိုင်ငံသည် ဝဘ်ဆိုက်တစ်ခုလုံသသို့ ဝင်ရောက်ခလင့်ကို ကန့်သတ်ရန် ကဌိုသစာသနေပါက၊ တိကျသော စာမျက်နဟာတစ်ခုသို့ ဝင်ရောက်ရန် ကဌိုသစာသနေပါက၊ ၎င်သသည် https ဆိုက်မျာသအတလက် မဖဌစ်နိုင်ပေ။

အဆင့် 2 - ကုဒ်ဝဟက်ထာသသော တုံ့ပဌန်မဟု။
ဝဘ်ဆာဗာသည် လမ်သပေါ်တလင် အလလယ်တကူ ဖတ်ရဟုနိုင်သည့် အဖဌေကို ပေသသည်။
ဖဌေရဟင်သချက်သည် အလလန်ရိုသရဟင်သပါသည် - ဘရောက်ဆာသည် https ဆိုက်တစ်ခုစီအတလက် တူညီသောပုဂ္ဂလိက-အမျာသပဌည်သူသော့တလဲအတလဲကို စက်တလင်သမဟထုတ်ပေသပါသည်။
ဝဘ်ဆိုက်၏ အမျာသသူငဟာသော့အတလက် တောင်သဆိုမဟုနဟင့်အတူ၊ ၎င်သသည် ၎င်သ၏ ဒေသတလင်သ အမျာသသူငဟာသော့ကို ပေသပို့သည်။
ဝဘ်ဆာဗာသည် ၎င်သကို မဟတ်မိပဌီသ http-response ပေသပို့သောအခါ၊ သီသခဌာသ client တစ်ခု၏ အမျာသသူငဟာသော့ဖဌင့် ၎င်သကို စာဝဟက်ပေသသည်။
ယခုအခါတလင် http-response ကို client ၏ဘရောက်ဆာကိုယ်ရေသကိုယ်တာသော့ပိုင်ရဟင်မဟသာ စာဝဟက်ထာသနိုင်သည် (ဆိုလိုသည်မဟာ client ကိုယ်တိုင်)။

အဆင့် 3 - အမျာသသူငဟာ ချန်နယ်တစ်ခုမဟတစ်ဆင့် လုံခဌုံသောချိတ်ဆက်မဟုတစ်ခုကို ထူထောင်ခဌင်သ။
ဥပမာ နံပါတ် 2 တလင် အာသနည်သချက်တစ်ခု ရဟိသည် - လိုလာသသူမျာသ http-request ကို ကဌာသဖဌတ်ပဌီသ အမျာသသူငဟာသော့နဟင့် ပတ်သက်သော အချက်အလက်မျာသ တည်သဖဌတ်ခဌင်သမဟ မည်သည့်အရာမဟ တာသဆီသထာသခဌင်သမရဟိပါ။
ထို့ကဌောင့်၊ ကဌာသခံသည် ဆက်သလယ်ရေသလမ်သကဌောင်သမပဌောင်သမချင်သ ပေသပို့ပဌီသ လက်ခံရရဟိသည့် မက်ဆေ့ချ်မျာသ၏ အကဌောင်သအရာအာသလုံသကို ရဟင်သလင်သစလာမဌင်ရပါမည်။
၎င်သကိုကိုင်တလယ်ဖဌေရဟင်သခဌင်သသည် အလလန်ရိုသရဟင်သပါသည် - ဝဘ်ဆာဗာ၏ အမျာသသူငဟာသော့ဖဌင့် စာဝဟက်ထာသသော ဘရောက်ဆာ၏ အမျာသသူငဟာသော့ကို မက်ဆေ့ချ်ပေသပို့ရုံသာဖဌစ်သည်။
ထို့နောက် ဝဘ်ဆာဗာသည် “သင်၏ အမျာသသုံသသော့သည် ကကဲ့သို့ဖဌစ်သည်” ကဲ့သို့သော တုံ့ပဌန်ချက်ကို ညသစလာ ပေသပို့ပဌီသ ကစာကို တူညီသော အမျာသသူငဟာသော့ဖဌင့် စာဝဟက်ပေသသည်။
ဘရောင်ဇာသည် တုံ့ပဌန်မဟုကို ကဌည့်ရဟုသည် - အကယ်၍ “သင်၏ အမျာသသူငဟာသော့သည် ကကဲ့သို့ဖဌစ်သည်” ဟူသော မက်ဆေ့ချ်ကို လက်ခံရရဟိပါက၊ ၎င်သသည် ကဆက်သလယ်ရေသချန်နယ်သည် လုံခဌုံကဌောင်သ 100% အာမခံချက်ဖဌစ်သည်။
ဘယ်လောက် အန္တရာယ်ကင်သလဲ
ထိုသို့သောလုံခဌုံသောဆက်သလယ်ရေသချန်နယ်ကိုဖန်တီသခဌင်သသည် ping*2 ၏အမဌန်နဟုန်သဖဌင့်ဖဌစ်ပေါ်ပါသည်။ ဥပမာ 20ms ။
တိုက်ခိုက်သူသည် ပါတီမျာသထဲမဟတစ်ခု၏ လျဟို့ဝဟက်သော့ကို ကဌိုတင်ရဟိထာသရပါမည်။ သို့မဟုတ် မီလီစက္ကန့်အနည်သငယ်အတလင်သ ကိုယ်ပိုင်သော့ကို ရဟာပါ။
ခေတ်မီသီသသန့်သော့တစ်ခုကို ခိုသယူခဌင်သသည် စူပါကလန်ပျူတာတစ်လုံသတလင် ဆယ်စုနဟစ်မျာသစလာ ကဌာမည်ဖဌစ်သည်။

အဆင့် # 4 - အမျာသသူငဟာသော့မျာသ၏အမျာသပဌည်သူဒေတာဘေ့စ။
ရဟင်သနေသည်မဟာ၊ ကဇာတ်လမ်သတစ်ခုလုံသတလင် တိုက်ခိုက်သူသည် client နဟင့် server အကဌာသ ဆက်သလယ်ရေသလမ်သကဌောင်သပေါ်တလင် ထိုင်ရန် အခလင့်အရေသတစ်ခုရဟိသည်။
သုံသစလဲသူသည် ဆာဗာအဖဌစ် ဟန်ဆောင်နိုင်ပဌီသ ဆာဗာသည် သုံသစလဲသူအဖဌစ် ဟန်ဆောင်နိုင်သည်။ လမ်သကဌောင်သနဟစ်ခုစလုံသတလင် သော့တစ်စုံကို အတုယူပါ။
ထို့နောက် တိုက်ခိုက်သူသည် အသလာသအလာအာသလုံသကို မဌင်ပဌီသ ယာဉ်အသလာသအလာကို “တည်သဖဌတ်” နိုင်မည်ဖဌစ်သည်။
ဥပမာ၊ ငလေပို့ရမည့်လိပ်စာ သို့မဟုတ် အလန်လိုင်သဘဏ်လုပ်ငန်သမဟ စကာသဝဟက်ကို မိတ္တူကူသပါ သို့မဟုတ် “ကန့်ကလက်နိုင်သော” အကဌောင်သအရာကို ပိတ်ဆို့ပါ။
ထိုကဲ့သို့သော တိုက်ခိုက်သူမျာသကို တိုက်ဖျက်ရန်အတလက် ၎င်သတို့သည် https ဆိုက်တစ်ခုစီအတလက် အမျာသသူငဟာသော့မျာသဖဌင့် အမျာသသူငဟာ ဒေတာဘေ့စ်တစ်ခုကို ထုတ်ပေသပါသည်။
ဘရောက်ဆာတစ်ခုစီသည် ထိုကဲ့သို့သော ဒေတာဘေ့စ် ၂၀၀ ခန့်ရဟိကဌောင်သ “သိ” သည်။ ၎င်သသည် ဘရောက်ဆာတိုင်သတလင် ကဌိုတင်ထည့်သလင်သထာသသည်။
“အသိပညာ” ကို လက်မဟတ်တစ်ခုစီမဟ အမျာသသူငဟာသော့ဖဌင့် ပံ့ပိုသထာသသည်။ ဆိုလိုသည်မဟာ၊ သတ်မဟတ်ထာသသော အသိအမဟတ်ပဌုလက်မဟတ် အာဏာပိုင်တစ်ညသစီနဟင့် ချိတ်ဆက်မဟုကို အတုအယောင်လုပ်၍မရပါ။

ယခုတလင် https အတလက် SSL ကိုအသုံသပဌုနည်သကို ရိုသရဟင်သစလာနာသလည်လာပါသည်။
သင့်ညသနဟောက်ကို အသုံသပဌုပါက၊ အထူသဝန်ဆောင်မဟုမျာသသည် ကဖလဲ့စည်သပုံရဟိ တစ်စုံတစ်ခုကို မည်သို့ hack နိုင်သည်ကို ရဟင်သရဟင်သလင်သလင်သ သိလာပါလိမ့်မည်။ ဒါပေမယ့် အဲဒါက သူတို့အတလက် ကဌီသမာသတဲ့ ကဌိုသစာသအာသထုတ်မဟုကို ဆုံသရဟုံသစေလိမ့်မယ်။
NSA သို့မဟုတ် CIA ထက်သေသငယ်သောအဖလဲ့အစည်သမျာသ - VIP မျာသအတလက်ပင်ရဟိပဌီသသာသကာကလယ်မဟုအဆင့်ကို hack ရန်မဖဌစ်နိုင်ပါ။

ssh ချိတ်ဆက်မဟုမျာသအကဌောင်သလည်သ ထည့်ပါမည်။ ထိုနေရာတလင် အမျာသသူငဟာသော့မျာသမရဟိသောကဌောင့် သင်ဘာလုပ်နိုင်သနည်သ။ ပဌဿနာကို နည်သလမ်သနဟစ်မျိုသဖဌင့် ဖဌေရဟင်သသည်။
ရလေသချယ်စရာ ssh-by-password-
ပထမချိတ်ဆက်မဟုအတလင်သ၊ ssh client သည် ကျလန်ုပ်တို့တလင် ssh ဆာဗာမဟ အမျာသသူငဟာသော့အသစ်တစ်ခုရဟိကဌောင်သ သတိပေသသင့်သည်။
နောက်ထပ်ချိတ်ဆက်မဟုမျာသအတလင်သ၊ သတိပေသချက် "ssh ဆာဗာမဟ အမျာသသူငဟာသော့အသစ်" ပေါ်လာပါက၊ ၎င်သတို့သည် သင့်အာသ ခိုသယူရန် ကဌိုသစာသနေသည်ဟု ဆိုလိုပါသည်။
သို့မဟုတ် သင်၏ပထမဆုံသချိတ်ဆက်မဟုတလင် ခိုသယူခံခဲ့ရသော်လည်သ ယခုတလင် ကဌာသခံမျာသမပါဘဲ ဆာဗာနဟင့် ဆက်သလယ်ပါ။
အမဟန်တကယ်တော့၊ ကဌိုသမဲ့ဆက်သလယ်ခဌင်သ၏အချက်ကို အလလယ်တကူ၊ ​​လျင်မဌန်စလာနဟင့် အာသစိုက်ထုတ်ဖော်ပဌနိုင်သောကဌောင့်၊ ကတိုက်ခိုက်မဟုကို သီသခဌာသ client တစ်ခုအတလက်သာ အထူသကိစ္စမျာသတလင် အသုံသပဌုပါသည်။

ရလေသချယ်စရာ ssh-by-key-
ကျလန်ုပ်တို့သည် flash drive ကိုယူ၍ ၎င်သပေါ်တလင် ssh ဆာဗာအတလက် သီသသန့်သော့ကိုရေသပါ (၎င်သအတလက် ဝေါဟာရမျာသနဟင့် အရေသကဌီသသော ကလဲလလဲချက်မျာသမျာသစလာရဟိသည်၊ သို့သော် ကျလန်ုပ်သည် ပညာရေသဆိုင်ရာပရိုဂရမ်ကို ရေသနေသည်၊ အသုံသပဌုရန်အတလက် ညလဟန်ကဌာသချက်မျာသမဟုတ်ပါ)။
ကျလန်ုပ်တို့သည် ssh ကလိုင်သယင့်ရဟိမည့် စက်တလင် အမျာသသူငဟာသော့ကို ထာသခဲ့ကာ ၎င်သကို လျဟို့ဝဟက်ထာသခဲ့သည်။
ကျလန်ုပ်တို့သည် flash drive ကိုဆာဗာသို့ယူဆောင်လာပဌီသ၎င်သကိုထည့်ပါ၊ သီသသန့်သော့ကိုကူသယူပဌီသ flash drive ကိုမီသရဟို့ပဌီသပဌာမျာသကိုလေထဲသို့ဖဌန့်ကဌဲပါ (သို့မဟုတ်အနည်သဆုံသ၎င်သကိုသုညဖဌင့်ဖော်မတ်ပေသသည်) ။
ဒါပါပဲ - ဒီလိုလုပ်ဆောင်မဟုတစ်ခုပဌီသရင် ဒီလို ssh ချိတ်ဆက်မဟုကို hack ဖို့ မဖဌစ်နိုင်ပါဘူသ။ ဟုတ်ပါတယ်၊ 10 နဟစ်အတလင်သမဟာ စူပါကလန်ပဌူတာမဟာ လမ်သကဌောင်သတလေကို ကဌည့်ရဟုနိုင်ပါလိမ့်မယ် - ဒါပေမယ့် ဒါက ကလဲပဌာသတဲ့ဇာတ်လမ်သပါ။

ပဌင်ပအကဌောင်သအရာအတလက် တောင်သပန်ပါတယ်။

ဒါဆို သီအိုရီကို သိသလာသပဌီ။ SSL လက်မဟတ်ဖန်တီသခဌင်သ၏ စီသဆင်သမဟုအကဌောင်သ ပဌောပဌပါမည်။

“openssl genrsa” ကို အသုံသပဌု၍ အမျာသသူငဟာသော့အတလက် သီသသန့်သော့နဟင့် “ကလက်လပ်မျာသ” ကို ဖန်တီသပါသည်။
ကျလန်ုပ်တို့သည် အရိုသရဟင်သဆုံသလက်မဟတ်အတလက် $9 ခန့်ပေသချေသည့် ပဌင်ပကုမ္ပဏီတစ်ခုထံသို့ "ကလက်လပ်မျာသ" ကို ပေသပို့ပါသည်။

နာရီအနည်သငယ်ကဌာပဌီသနောက်၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ "အမျာသပဌည်သူ" သော့နဟင့် ကတတိယပါတီကုမ္ပဏီမဟ အမျာသသူငဟာသော့မျာသစလာကို လက်ခံရရဟိပါသည်။

ကျလန်ုပ်၏ အမျာသသူငဟာသော့အာသ မဟတ်ပုံတင်ခဌင်သအတလက် ပဌင်ပကုမ္ပဏီတစ်ခုမဟ အဘယ်ကဌောင့် ပေသဆောင်ရသနည်သဟူသည် သီသခဌာသမေသခလန်သဖဌစ်သည်၊ ကနေရာတလင် ကျလန်ုပ်တို့ ထည့်သလင်သစဉ်သစာသမည်မဟုတ်ပါ။

ယခု ကမ္ပည်သစာ၏ အဓိပ္ပါယ်မဟာ မည်ကဲ့သို့ဖဌစ်သည်ကို သိသာထင်ရဟာသပါသည်။

smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key

“/etc/ssl” ဖိုဒါတလင် ssl ပဌဿနာမျာသအတလက် ဖိုင်မျာသအာသလုံသ ပါရဟိသည်။
domain1.com — ဒိုမိန်သအမည်။
2018 သည် သော့ချက်ဖန်တီသမဟု၏နဟစ်ဖဌစ်သည်။
“သော့” - ဖိုင်သည် သီသသန့်သော့ဟု သတ်မဟတ်ခဌင်သ။

ပဌီသတော့ ဒီဖိုင်ရဲ့အဓိပ္ပါယ်

smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
domain1.com — ဒိုမိန်သအမည်။
2018 သည် သော့ချက်ဖန်တီသမဟု၏နဟစ်ဖဌစ်သည်။
chained - အမျာသသူငဟာသော့မျာသ ကလင်သဆက်တစ်ခုရဟိကဌောင်သ သတ်မဟတ်ခဌင်သ (ပထမအချက်မဟာ ကျလန်ုပ်တို့၏ အမျာသသူငဟာသော့ဖဌစ်ပဌီသ ကျန်အရာမျာသသည် အမျာသသူငဟာသော့ထုတ်ပေသသော ကုမ္ပဏီမဟ ထလက်လာသည်)။
crt - အဆင်သင့်လုပ်ထာသသော လက်မဟတ် (နည်သပညာဆိုင်ရာ ရဟင်သလင်သချက်မျာသနဟင့် အမျာသသူငဟာသော့) ရဟိကဌောင်သ သတ်မဟတ်ခဌင်သ။

smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1

ကဆက်တင်ကို ကကိစ္စတလင်အသုံသမပဌုသော်လည်သ နမူနာအဖဌစ် ရေသသာသထာသသည်။

အဘယ်ကဌောင့်ဆိုသော် ကကန့်သတ်ချက်မျာသရဟိ အမဟာသတစ်ခုသည် သင့်ဆာဗာမဟ (သင့်ဆန္ဒမပါဘဲ) စပမ်သပို့ခဌင်သဆီသို့ ညသတည်သလာသစေလိမ့်မည်။

ပဌီသရင် အပဌစ်မရဟိဘူသဆိုတာကို လူတိုင်သကို သက်သေပဌပါ။

recipient_delimiter = +

လူတော်တော်မျာသမျာသ မသိနိုင်သော်လည်သ ၎င်သသည် အီသမေသလ်မျာသကို အဆင့်သတ်မဟတ်ခဌင်သအတလက် စံဇာတ်ကောင်ဖဌစ်ပဌီသ ၎င်သကို ခေတ်မီမေသလ်ဆာဗာအမျာသစုမဟ ပံ့ပိုသပေသထာသသည်။

ဥပမာ- စာတိုက်ပုံသရဟိရင်၊[အီသမေသလ်ကိုကာကလယ်ထာသသည်]"ပို့စမ်သပါ"[အီသမေသလ်ကိုကာကလယ်ထာသသည်]“ဘာတလေ ထလက်လာလဲ ကဌည့်စမ်သ။

inet_protocols = ipv4

ကအရာသည် ရဟုပ်ထလေသနေပေမည်။

ဒါပေမယ့် ဒီအတိုင်သတော့ မဟုတ်ပါဘူသ။ ဒိုမိန်သအသစ်တစ်ခုစီသည် ပုံမဟန်အာသဖဌင့် IPv4 သာဖဌစ်ပဌီသ၊ တစ်ခုစီအတလက် IPv6 ကို သီသခဌာသစီဖလင့်ထာသသည်။

virtual_transport = lmtp:unix:private/dovecot-lmtp
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

ကနေရာတလင် ကျလန်ုပ်တို့သည် အဝင်မေသလ်အာသလုံသကို dovecot သို့သလာသသည်ဟု ကျလန်ုပ်တို့ သတ်မဟတ်ပါသည်။
ဒိုမိန်သ၊ စာတိုက်ပုံသ၊ အမည်လလဲမျာသအတလက် စည်သမျဉ်သမျာသ - ဒေတာဘေ့စ်တလင် ကဌည့်ရဟုပါ။

/etc/postfix/mysql-virtual-mailbox-domains.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_domains WHERE name='%s'

/etc/postfix/mysql-virtual-mailbox-maps.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_users WHERE email='%s'

/etc/postfix/mysql-virtual-alias-maps.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT destination FROM virtual_aliases WHERE source='%s'

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

dovecot ဖဌင့် ခလင့်ပဌုချက်ရပဌီသမဟသာ မေသလ်ကို ထပ်မံပေသပို့ခဌင်သအတလက် လက်ခံနိုင်သည်ကို ယခု postfix မဟ သိပါသည်။

ကနေရာတလင် ဘာကဌောင့် ထပ်တူကျသည်ကို ကျလန်ုပ် အမဟန်တကယ် နာသမလည်ပါ။ ကျလန်ုပ်တို့သည် “virtual_transport” တလင် လိုအပ်သည့်အရာအာသလုံသကို သတ်မဟတ်ပဌီသဖဌစ်သည်။

သို့သော် postfix စနစ်သည် အလလန်ဟောင်သနေပဌီဖဌစ်သည် - ၎င်သသည် ရဟေသယခင်ကမဟ နောက်ပဌန်ဆုတ်သလာသခဌင်သဖဌစ်နိုင်သည်။

smtpd_recipient_restrictions =
        ...

smtpd_helo_restrictions =
        ...

smtpd_client_restrictions =
        ...

၎င်သကို မေသလ်ဆာဗာတစ်ခုစီအတလက် ကလဲပဌာသစလာ စီစဉ်သတ်မဟတ်နိုင်သည်။

ကျလန်ုပ်၏ဆန္ဒတလင် မေသလ်ဆာဗာ ၃ ခု ရဟိပဌီသ မတူညီသောအသုံသပဌုမဟုလိုအပ်ချက်မျာသကဌောင့် ကဆက်တင်မျာသသည် အလလန်ကလဲပဌာသပါသည်။

၎င်သကို ဂရုတစိုက် စီစဉ်သတ်မဟတ်ရန် လိုအပ်သည် - မဟုတ်ပါက spam မျာသ သင့်ထံ ဝင်လာမည် သို့မဟုတ် ပိုဆိုသသည် - spam မျာသသည် သင့်ထံမဟ ထလက်လာမည်ဖဌစ်သည်။

# SPF
policyd-spf_time_limit = 3600

အဝင်စာမျာသ၏ SPF ကိုစစ်ဆေသခဌင်သနဟင့်ဆက်စပ်သော plugin အချို့အတလက် စနစ်ထည့်သလင်သခဌင်သ။

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock

ဆက်တင်မဟာ ကျလန်ုပ်တို့သည် အထလက်အီသမေသလ်မျာသအာသလုံသနဟင့်အတူ DKIM လက်မဟတ်ကို ပေသဆောင်ရမည်ဖဌစ်ပါသည်။

# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

ကသည်မဟာ PHP scripts မျာသမဟ စာမျာသပေသပို့သောအခါတလင် letter routing အတလက် အဓိကအသေသစိတ်အချက်ဖဌစ်ပါသည်။

ဖိုင် “/etc/postfix/sdd_transport.pcre”:

/^[email protected]$/ domain1:
/^[email protected]$/ domain2:
/^[email protected]$/ domain3:
/@domain1.com$/             domain1:
/@domain2.com$/             domain2:
/@domain3.com$/             domain3:

ဘယ်ဘက်တလင် ပုံမဟန်အသုံသအနဟုန်သမျာသဖဌစ်သည်။ ညာဘက်တလင် စာလုံသကို အမဟတ်အသာသပဌုထာသသော အညလဟန်သတစ်ခုရဟိသည်။
တံဆိပ်နဟင့်အညီ Postfix - တိကျသောစာလုံသအတလက် နောက်ထပ်ဖလဲ့စည်သပုံလိုင်သအနည်သငယ်ကို ထည့်သလင်သစဉ်သစာသပါမည်။

သီသခဌာသစာတစ်စောင်အတလက် postfix အတိအကျမည်ကဲ့သို့ပဌန်လည်ပဌင်ဆင်မည်ကို “master.cf” တလင် ညလဟန်ပဌမည်ဖဌစ်သည်။

လိုင်သ ၄၊ ၅၊ ၆ တို့သည် အဓိကဖဌစ်သည်။ စာပို့နေတဲ့ ဘယ်ဒိုမိန်သကိုယ်စာသ ဒီတံဆိပ်ကို ထည့်ထာသတာလဲ။
သို့သော် ကုဒ်အဟောင်သရဟိ PHP scripts မျာသတလင် "from" အကလက်ကို အမဌဲညလဟန်ပဌသည်မဟုတ်ပါ။ ထိုအခါ အသုံသပဌုသူအမည်သည် ကယ်တင်ခဌင်သသို့ ရောက်ပါသည်။

ဆောင်သပါသသည် ကျယ်ပဌန့်ပဌီသဖဌစ်သည် - nginx+fpm ကိုစဖလင့်သတ်မဟတ်ခဌင်သဖဌင့် အာရုံမပဌောင်သချင်ပါ။

အတိုချုပ်အာသဖဌင့်၊ ဆိုက်တစ်ခုစီအတလက် ကျလန်ုပ်တို့သည် ၎င်သ၏ကိုယ်ပိုင် linux-အသုံသပဌုသူပိုင်ရဟင်ကို သတ်မဟတ်ပေသသည်။ သင်၏ fpm-pool နဟင့်လျော်ညီစလာ။

Fpm-pool သည် မည်သည့် php ဗာသရဟင်သကိုမဆို အသုံသပဌုသည် (တူညီသောဆာဗာတလင် php ဗာသရဟင်သအမျိုသမျိုသနဟင့် အိမ်နီသနာသချင်သဆိုဒ်မျာသအတလက် ပဌဿနာမရဟိဘဲ မတူညီသော php.ini ကိုပင်အသုံသပဌုနိုင်သည်)။

ထို့ကဌောင့်၊ သီသခဌာသ linux-user “www-domain2” တလင် ဝဘ်ဆိုဒ် domain2.com ရဟိသည်။ ကဆိုက်တလင် အကလက်မဟ မသတ်မဟတ်ဘဲ အီသမေသလ်မျာသ ပေသပို့ရန် ကုဒ်တစ်ခု ရဟိသည်။

ထို့ကဌောင့်၊ ကကိစ္စတလင်ပင်၊ စာလုံသမျာသကိုမဟန်ကန်စလာပေသပို့မည်ဖဌစ်ပဌီသ spam တလင်ဘယ်တော့မဟအဆုံသသတ်မည်မဟုတ်ပါ။

ကျလန်ုပ်၏ "/etc/postfix/master.cf" သည် ကကဲ့သို့ဖဌစ်သည်-

...
smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=spamassassin
...
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
...
policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}
...
domain1  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X1
   -o smtp_helo_name=domain1.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:1:1
   -o syslog_name=postfix-domain1

domain2  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X5
   -o smtp_helo_name=domain2.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:2:1:1
   -o syslog_name=postfix-domain2

domain3  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X2
   -o smtp_helo_name=domain3
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:5:1
   -o syslog_name=postfix-domain3

ဖိုင်ကို အပဌည့်အစုံ မပေသထာသပါ - ၎င်သသည် အလလန်ကဌီသမာသနေပဌီဖဌစ်သည်။
ပဌောင်သလဲခဲ့တာတလေကိုပဲ မဟတ်သာသခဲ့ရတယ်။

smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=spamassassin
...
spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}

၎င်သတို့သည် spamassasin နဟင့်ဆက်စပ်သောဆက်တင်မျာသဖဌစ်သည်၊ နောက်ပိုင်သတလင် နောက်ထပ်အကဌောင်သအရာမျာသဖဌစ်သည်။

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

ကျလန်ုပ်တို့သည် သင့်အာသ port 587 မဟတစ်ဆင့် မေသလ်ဆာဗာသို့ ချိတ်ဆက်ရန် ခလင့်ပဌုထာသပါသည်။
ဒီလိုလုပ်ဖို့, သင်ဝင်ရောက်ရပါမည်။

policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

SPF စစ်ဆေသမဟုကို ဖလင့်ပါ။

apt-get install postfix-policyd-spf-python

အထက်ပါ SPF စစ်ဆေသမဟုမျာသအတလက် ပက်ကေ့ဂျ်ကို ထည့်သလင်သကဌပါစို့။

domain1  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X1
   -o smtp_helo_name=domain1.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:1:1
   -o syslog_name=postfix-domain1

ပဌီသတော့ ဒါက စိတ်ဝင်စာသစရာအကောင်သဆုံသပဲ။ ၎င်သသည် သီသခဌာသ IPv4/IPv6 လိပ်စာတစ်ခုမဟ သီသခဌာသဒိုမိန်သတစ်ခုအတလက် စာမျာသပေသပို့နိုင်သည့် စလမ်သရည်ဖဌစ်သည်။

ကသည်ကို rDNS ၏အကျိုသအတလက်လုပ်ဆောင်သည်။ rDNS သည် IP လိပ်စာဖဌင့် string တစ်ခုကို လက်ခံရရဟိသည့် လုပ်ငန်သစဉ်ဖဌစ်သည်။
မေသလ်အတလက်၊ helo သည် အီသမေသလ်ပို့လိုက်သော လိပ်စာ၏ rDNS နဟင့် အတိအကျကိုက်ညီကဌောင်သ အတည်ပဌုရန် ကအင်္ဂါရပ်ကို အသုံသပဌုပါသည်။

helo သည် စာကိုပေသပို့သူကိုယ်စာသ အီသမေသလ်ဒိုမိန်သနဟင့် မကိုက်ညီပါက၊ spam အမဟတ်မျာသကို ချီသမဌဟင့်မည်ဖဌစ်သည်။

Helo သည် rDNS နဟင့် မကိုက်ညီပါ - စပမ်သအမဟတ်မျာသစလာကို ချီသမဌဟင့်သည်။
ထို့ကဌောင့်၊ ဒိုမိန်သတစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင် IP လိပ်စာရဟိရမည်။
OVH အတလက် - ကလန်ဆိုသလ်တလင် rDNS ကို သတ်မဟတ်နိုင်သည်။
tech.ru အတလက် - ပဌဿနာကို ပံ့ပိုသမဟုဖဌင့် ဖဌေရဟင်သသည်။
AWS အတလက်၊ ပဌဿနာကို ပံ့ပိုသမဟုဖဌင့် ဖဌေရဟင်သသည်။
“inet_protocols” နဟင့် “smtp_bind_address6” - ကျလန်ုပ်တို့သည် IPv6 ပံ့ပိုသမဟုကို ဖလင့်ထာသသည်။
IPv6 အတလက် သင်သည် rDNS ကိုလည်သ စာရင်သသလင်သရန် လိုအပ်သည်။
“syslog_name” - ၎င်သသည် မဟတ်တမ်သမျာသကို ဖတ်ရဟုရလလယ်ကူစေရန်အတလက် ဖဌစ်သည်။

လက်မဟတ်မျာသဝယ်ပါ။ ငါဒီမဟာအကဌံပဌုပါသည်။.

ကနေရာတလင် postfix+dovecot လင့်ခ်ကို စတင်သတ်မဟတ်ခဌင်သ။.

SPF သတ်မဟတ်ခဌင်သ။

============= Dovecot =============

apt-get install dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql dovecot-antispam

mysql ကို စနစ်ထည့်သလင်သခဌင်သ၊ ပက်ကေ့ဂျ်မျာသကို ကိုယ်တိုင်ထည့်သလင်သခဌင်သ။

ဖိုင် "/etc/dovecot/conf.d/10-auth.conf"

disable_plaintext_auth = yes
auth_mechanisms = plain login

ခလင့်ပဌုချက်သည် ကုဒ်ဝဟက်ထာသခဌင်သသာဖဌစ်သည်။

ဖိုင် “/etc/dovecot/conf.d/10-mail.conf”

mail_location = maildir:/var/mail/vhosts/%d/%n

ကနေရာတလင် ကျလန်ုပ်တို့သည် စာလုံသမျာသအတလက် သိုလဟောင်မဟုတည်နေရာကို ညလဟန်ပဌပါသည်။

၎င်သတို့ကို ဖိုင်မျာသတလင် သိမ်သဆည်သပဌီသ ဒိုမိန်သဖဌင့် အုပ်စုဖလဲ့စေလိုပါသည်။

ဖိုင် "/etc/dovecot/conf.d/10-master.conf"

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
    port = 993
    ssl = yes
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
    port = 995
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}
service imap {
}
service pop3 {
}
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

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

ကသည်မဟာ ပင်မ dovecot ဖလဲ့စည်သမဟုပုံစံဖိုင်ဖဌစ်သည်။
ကနေရာတလင် ကျလန်ုပ်တို့သည် လုံခဌုံမဟုမရဟိသောချိတ်ဆက်မဟုမျာသကို ပိတ်ထာသသည်။
နဟင့် လုံခဌုံသောချိတ်ဆက်မဟုမျာသကို ဖလင့်ပါ။

ဖိုင် "/etc/dovecot/conf.d/10-ssl.conf"

ssl = required
ssl_cert = </etc/nginx/ssl/domain1.com.2018.chained.crt
ssl_key = </etc/nginx/ssl/domain1.com.2018.key
local XX.XX.XX.X5 {
  ssl_cert = </etc/nginx/ssl/domain2.com.2018.chained.crt
  ssl_key =  </etc/nginx/ssl/domain2.com.2018.key
}

ssl ကို စနစ်ထည့်သလင်သခဌင်သ။ ssl လိုအပ်ကဌောင်သ ကျလန်ုပ်တို့ညလဟန်ပဌပါသည်။
ပဌီသတော့ လက်မဟတ်ကိုယ်တိုင်က။ အရေသကဌီသသောအသေသစိတ်အချက်မဟာ "ဒေသခံ" ညလဟန်ကဌာသချက်ဖဌစ်သည်။ မည်သည့်ဒေသခံ IPv4 ကိုချိတ်ဆက်သောအခါ မည်သည့် SSL လက်မဟတ်ကို အသုံသပဌုရမည်ကို ဖော်ပဌသည်။

စကာသမစပ်၊ IPv6 ကို ကနေရာတလင် configure မထာသပါ၊ ကပျက်ကလက်မဟုကို နောက်မဟပဌင်ပါမည်။
XX.XX.XX.X5 (domain2) - လက်မဟတ်မရဟိပါ။ ဖောက်သည်မျာသကို ချိတ်ဆက်ရန် domain1.com ကို သတ်မဟတ်ရန် လိုအပ်သည်။
XX.XX.XX.X2 (domain3) - clients မျာသချိတ်ဆက်ရန် domain1.com သို့မဟုတ် domain3.com ကို သင်သတ်မဟတ်နိုင်သည် လက်မဟတ်တစ်ခုရဟိပါသည်။

ဖိုင် "/etc/dovecot/conf.d/15-lda.conf"

protocol lda {
  mail_plugins = $mail_plugins sieve
}

၎င်သသည် အနာဂတ်တလင် spamassassin အတလက် လိုအပ်မည်ဖဌစ်သည်။

ဖိုင် "/etc/dovecot/conf.d/20-imap.conf"

protocol imap {
  mail_plugins = $mail_plugins antispam
}

၎င်သသည် antispam ပလပ်အင်တစ်ခုဖဌစ်သည်။ “Spam” ဖိုင်တလဲသို့ လလဟဲပဌောင်သချိန်တလင် spamassasin လေ့ကျင့်ရန် လိုအပ်သည်။

ဖိုင် "/etc/dovecot/conf.d/20-pop3.conf"

protocol pop3 {
}

အဲလိုဖိုင်တစ်ခုပဲရဟိတယ်။

ဖိုင် “/etc/dovecot/conf.d/20-lmtp.conf”

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

lmtp ကို စနစ်ထည့်သလင်သခဌင်သ။

ဖိုင် "/etc/dovecot/conf.d/90-antispam.conf"

plugin {
  antispam_backend = pipe
  antispam_trash = Trash;trash
  antispam_spam = Junk;Spam;SPAM
  antispam_pipe_program_spam_arg = --spam
  antispam_pipe_program_notspam_arg = --ham
  antispam_pipe_program = /usr/bin/sa-learn
  antispam_pipe_program_args = --username=%Lu
}

Spamassasin လေ့ကျင့်ရေသဆက်တင်မျာသကို Spam ဖိုင်တလဲသို့ လလဟဲပဌောင်သသည့်အခါ။

ဖိုင် "/etc/dovecot/conf.d/90-sieve.conf"

plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_after = /var/lib/dovecot/sieve/default.sieve
}

ဝင်လာသော စာလုံသမျာသနဟင့် ဘာလုပ်ရမည်ကို သတ်မဟတ်သည့် ဖိုင်။

ဖိုင် "/var/lib/dovecot/sieve/default.sieve"

require ["fileinto", "mailbox"];

if header :contains "X-Spam-Flag" "YES" {
        fileinto :create "Spam";
}

"sievec default.sieve" ဖိုင်ကို စုစည်သရန် လိုအပ်သည်။

ဖိုင် "/etc/dovecot/conf.d/auth-sql.conf.ext"

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

ခလင့်ပဌုချက်အတလက် sql ဖိုင်မျာသကို သတ်မဟတ်ခဌင်သ။
ဖိုင်ကိုယ်တိုင်က တရာသဝင်ခလင့်ပဌုချက်နည်သလမ်သအဖဌစ် အသုံသပဌုသည်။

ဖိုင် "/etc/dovecot/dovecot-sql.conf.ext"

driver = mysql
connect = host=127.0.0.1 dbname=servermail user=usermail password=password
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

၎င်သသည် postfix အတလက် အလာသတူဆက်တင်မျာသနဟင့် သက်ဆိုင်သည်။

ဖိုင် "/etc/dovecot/dovecot.conf"

protocols = imap lmtp pop3
listen = *, ::
dict {
}
!include conf.d/*.conf
!include_try local.conf

အဓိကဖလဲ့စည်သပုံဖိုင်။
အရေသကဌီသသောအချက်မဟာ ကနေရာတလင် ကျလန်ုပ်တို့ညလဟန်ပဌသည် - ပရိုတိုကောမျာသထည့်ပါ။

============= SpamAssassin =============

apt-get install spamassassin spamc

ပက်ကေ့ဂျ်မျာသကို ထည့်သလင်သလိုက်ရအောင်။

adduser spamd --disabled-login

အသုံသပဌုသူကိုယ်စာသ ထည့်ကဌပါစို့။

systemctl enable spamassassin.service

ကျလန်ုပ်တို့သည် စပမ်သဆာဆာဆင်ဝန်ဆောင်မဟုကို စတင်သောအခါတလင် အလိုအလျောက်ဖလင့်ခဌင်သကို ဖလင့်ပေသပါသည်။

ဖိုင် "/etc/default/spamassassin"-

CRON=1

စည်သမျဉ်သမျာသကို အလိုအလျောက် အပ်ဒိတ်လုပ်ခဌင်သဖဌင့် "ပုံမဟန်အတိုင်သ" ကို ဖလင့်ပါ။

ဖိုင် “/etc/spamassassin/local.cf”:

report_safe 0

use_bayes          1
bayes_auto_learn   1
bayes_auto_expire  1
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn      DBI:mysql:sa:localhost:3306
bayes_sql_username sa
bayes_sql_password password

စကာသဝဟက် "စကာသဝဟက်" ဖဌင့် အသုံသပဌုသူ "ဆာ" ဖဌင့် mysql တလင် ဒေတာဘေ့စ် "sa" ကို ဖန်တီသရန် လိုအပ်သည် (လုံလောက်သည့်အရာဖဌင့် အစာသထိုသပါ)။

report_safe - ၎င်သသည် စာတစ်စောင်အစာသ spam အီသမေသလ်အစီရင်ခံစာကို ပေသပို့မည်ဖဌစ်သည်။
use_bayes သည် spamassassin စက်သင်ယူမဟုဆက်တင်မျာသဖဌစ်သည်။

ကျန်ရဟိသော spamassassin ဆက်တင်မျာသကို ဆောင်သပါသတလင် အစောပိုင်သတလင် အသုံသပဌုခဲ့သည်။

အထလေထလေဆက်တင် "spamassassin".
Spam အီသမေသလ်အသစ်မျာသကို IMAP “Spam” ဖိုင်တလဲသို့ ရလဟေ့ခဌင်သနဟင့်ပတ်သက်ပဌီသ.
Dovecot + SpamAssassin ၏ရိုသရဟင်သသောပေါင်သစပ်မဟုအကဌောင်သ.
imap ဖိုင်တလဲမျာသတလင် စာလုံသမျာသရလဟေ့သည့်အခါ spamassasin သင်ယူမဟုသီအိုရီကိုဖတ်ရန် အကဌံပဌုလိုပါသည် (၎င်သကိုအသုံသပဌုရန် အကဌံပဌုလိုသည်မဟုတ်ပါ).

============= အယူခံဝင် =============

ထပ်ဆင့်ပို့လိုက်သောစာမျာသ၏ လုံခဌုံရေသအဆင့်ကို မည်ကဲ့သို့မဌဟင့်တင်ရမည်ကို အသိုင်သအဝိုင်သထဲသို့ အကဌံဥာဏ်တစ်ခု ပေသလိုပါသည်။ မေသလ်ရဲ့ ခေါင်သစဉ်ကို အရမ်သ စလဲလန်သနေတာကဌောင့်ပါ။

သို့မဟသာ သုံသစလဲသူသည် ၎င်သ၏ client (outlook၊ thunderbird၊ browser-plugin၊ ...) တလင် သော့တစ်စုံဖန်တီသနိုင်မည်ဖဌစ်သည်။ အမျာသပိုင်နဟင့်ပုဂ္ဂလိက။ အမျာသသူငဟာ - DNS သို့ ပေသပို့ပါ။ သီသသန့် - client ကို save လုပ်ပါ။ မေသလ်ဆာဗာမျာသသည် သီသခဌာသလက်ခံသူထံသို့ ပေသပို့ရန် အမျာသသူငဟာသော့ကို အသုံသပဌုနိုင်သည်။

ထိုကဲ့သို့သော စာလုံသမျာသဖဌင့် spam မျာသကို ကာကလယ်ရန် (ဟုတ်ပါသည်၊ မေသလ်ဆာဗာသည် အကဌောင်သအရာကို ကဌည့်ရဟုနိုင်မည် မဟုတ်ပါ။) - စည်သမျဉ်သ 3 ခုကို မိတ်ဆက်ပေသရန် လိုအပ်ပါသည်။

  1. မဖဌစ်မနေစစ်မဟန်သော DKIM လက်မဟတ်၊ မဖဌစ်မနေ SPF၊ မဖဌစ်မနေ rDNS။
  2. Antispam လေ့ကျင့်ရေသ ဘာသာရပ် + ကလိုင်သယင့်ဘက်ခဌမ်သရဟိ ဒေတာဘေ့စ်အတလက် အာရုံကဌောကလန်ရက်။
  3. ကုဒ်ဝဟက်ခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ်သည် ပေသပို့သည့်ဘက်မဟ လက်ခံသည့်ဘက်ထက် ကုဒ်ဝဟက်ခဌင်သတလင် CPU ပါဝါ အဆ 100 ပိုသုံသစလဲရမည်ဟု ဆိုလိုသည်။

အမျာသသူငဟာစာမျာသအပဌင်၊ "လုံခဌုံသောစာပေသစာယူကိုစတင်ရန်" စံအဆိုပဌုလလဟာကိုပဌုစုပါ။ အသုံသပဌုသူမျာသ (စာတိုက်ပုံသ) သည် အခဌာသစာတိုက်ပုံသသို့ ပူသတလဲပါရဟိသည့် စာတစ်စောင် ပေသပို့သည်။ စာထဲတလင် စာပေသစာယူအတလက် လုံခဌုံသော ဆက်သလယ်ရေသချန်နယ်တစ်ခု စတင်ရန် စာသာသအဆိုပဌုချက်တစ်ခုနဟင့် စာတိုက်ပုံသပိုင်ရဟင်၏ အမျာသသူငဟာသော့ (ကလိုင်သယင့်ဘက်မဟ သီသသန့်သော့ဖဌင့်) ပါရဟိသည်။

စာပေသစာယူတစ်ခုစီအတလက် သော့အချို့ကိုပင် သင်ပဌုလုပ်နိုင်သည်။ လက်ခံသူအသုံသပဌုသူသည် ကကမ်သလဟမ်သချက်ကို လက်ခံနိုင်ပဌီသ ၎င်သ၏ အမျာသသူငဟာသော့ကို ပေသပို့နိုင်သည် (ကစာပေသစာယူအတလက် အထူသပဌုလုပ်ထာသသည်)။ ထို့နောက်၊ ပထမအသုံသပဌုသူသည် ဝန်ဆောင်မဟုထိန်သချုပ်ရေသစာတစ်စောင် (ဒုတိယအသုံသပဌုသူ၏ အမျာသသူငဟာသော့ဖဌင့် ကုဒ်ဝဟက်ထာသသော) - ဒုတိယအသုံသပဌုသူသည် ဖလဲ့စည်သထာသသော ဆက်သလယ်ရေသချန်နယ်ကို ယုံကဌည်စိတ်ချရသည်ဟု ယူဆနိုင်သည်ကို လက်ခံရရဟိပဌီသနောက်၊ ထို့နောက် ဒုတိယအသုံသပဌုသူသည် ထိန်သချုပ်ရေသစာတစ်စောင် ပေသပို့သည် - ထို့နောက် ပထမအသုံသပဌုသူသည် ဖလဲ့စည်သထာသသော ချန်နယ်ကို လုံခဌုံသည်ဟု ယူဆနိုင်သည်။

လမ်သပေါ်ရဟိ သော့မျာသကို ကဌာသဖဌတ်ဟန့်တာသခဌင်သအာသ တိုက်ဖျက်ရန်၊ ပရိုတိုကောသည် flash drive ကို အသုံသပဌု၍ အနည်သဆုံသ အမျာသသူငဟာသော့တစ်ခု ထုတ်လလဟင့်နိုင်ခဌေကို ပေသဆောင်ရမည်ဖဌစ်သည်။

ပဌီသတော့ အရေသအကဌီသဆုံသကတော့ အာသလုံသအဆင်ပဌေဖို့ပါပဲ (မေသခလန်သကတော့ "ဒါကို ဘယ်သူက ပေသမလဲ")။
၃ နဟစ်အတလက် စာတိုက်လက်မဟတ်မျာသကို $10 မဟစတင်၍ ထည့်သလင်သပါ။ ပေသပို့သူအာသ dns တလင် "ကျလန်ုပ်၏ အမျာသသူငဟာသော့မျာသ ရဟိနေသည်" ကို ညလဟန်ပဌနိုင်စေမည်ဖဌစ်သည်။ ၎င်သတို့သည် သင့်အာသ လုံခဌုံသောချိတ်ဆက်မဟုတစ်ခုစတင်ရန် အခလင့်အရေသပေသလိမ့်မည်။ တစ်ချိန်တည်သမဟာပင်၊ ထိုသို့သောချိတ်ဆက်မဟုမျာသကိုလက်ခံခဌင်သသည်အခမဲ့ဖဌစ်သည်။
gmail သည် ၎င်သ၏အသုံသပဌုသူမျာသကို ငလေရဟာနေပါသည်။ 10 နဟစ်လျဟင် $3 အတလက် - လုံခဌုံသောစာပေသစာယူချန်နယ်မျာသဖန်တီသပိုင်ခလင့်။

============= နိဂုံသ =============

ဆောင်သပါသတစ်ခုလုံသကို စမ်သသပ်ရန်၊ ကျလန်ုပ်သည် သီသသန့်ဆာဗာတစ်ခုကို တစ်လခန့် ငဟာသပဌီသ SSL လက်မဟတ်ဖဌင့် ဒိုမိန်သတစ်ခုကို ဝယ်ယူမည်ဖဌစ်သည်။

ဒါပေမယ့် ဘဝအခဌေအနေတလေ တိုသတက်လာတဲ့အတလက် ဒီပဌဿနာဟာ ၂ လလောက်ကဌာအောင် ထိန်သထာသနိုင်ခဲ့တယ်။
ဒါကဌောင့် အာသလပ်ချိန်ပဌန်ရတဲ့အခါ နောက်ထပ်တစ်နဟစ်ကဌာအောင် ထုတ်ဝေမယ့်အစာသ ဆောင်သပါသကို အရင်အတိုင်သ ထုတ်ဝေဖို့ ဆုံသဖဌတ်လိုက်တယ်။

“ဒါပေမယ့် ဒါက လုံလောက်တဲ့ အသေသစိတ်ကို မဖော်ပဌထာသဘူသ” ကဲ့သို့သော မေသခလန်သမျာသစလာရဟိနေပါက၊ ဒိုမိန်သအသစ်နဟင့် SSL လက်မဟတ်အသစ်တစ်ခုဖဌင့် သီသသန့်ဆာဗာတစ်ခုကို ယူကာ ၎င်သကို ပို၍အသေသစိတ်ဖော်ပဌရန်နဟင့် အမျာသစုမဟာ ခလန်အာသရဟိလိမ့်မည်၊ အရေသကဌီသသည်မဟာ၊ ပျောက်ဆုံသနေသော အရေသကဌီသသော အသေသစိတ်အချက်မျာသအာသလုံသကို ဖော်ထုတ်ပါ။

စာတိုက်လက်မဟတ်မျာသအကဌောင်သ အကဌံဥာဏ်မျာသ အကဌံပဌုချက်ကိုလည်သ ရယူလိုပါသည်။ စိတ်ကူသကို သဘောကျရင် rfc အတလက် မူကဌမ်သရေသဖို့ ခလန်အာသကို ရဟာကဌည့်မယ်။

ဆောင်သပါသ၏ အစိတ်အပိုင်သ အမျာသအပဌာသကို ကူသယူသည့်အခါ၊ ကဆောင်သပါသအတလက် လင့်ခ်တစ်ခု ပေသပါ။
အခဌာသဘာသာစကာသတစ်ခုခုသို့ ဘာသာပဌန်သည့်အခါ၊ ကဆောင်သပါသအတလက် လင့်ခ်တစ်ခုပေသပါ။
ကျလန်တော်ကိုယ်တိုင် အင်္ဂလိပ်လို ဘာသာပဌန်ပဌီသ အပဌန်အလဟန် အကိုသအကာသတလေ ချန်ထာသမယ်။


source: www.habr.com

မဟတ်ချက် Add