OpenVPN ပေါ်ရဟိ SMB အဖလဲ့အစည်သတစ်ခု၏ အဝေသထိန်သအလုပ်အဖလဲ့

ပဌဿနာကိုပုံဖော်ခဌင်သ

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

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

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

အသုံသပဌုသူတစ်ညသကို ချိတ်ဆက်ခလင့်ပဌုသည့် လက္ခဏာမဟာ myVPNUsr အဖလဲ့တလင် ၎င်သတို့၏ အဖလဲ့ဝင်ဖဌစ်ခဌင်သ ဖဌစ်သည်။ လက်မဟတ်အာဏာပိုင်ကို အော့ဖ်လိုင်သသုံသပါမည်။

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

ကျလန်ုပ်တို့သည် CetntOS 3 တလင် OpenVPN နဟင့် Easy-RSA ဗာသရဟင်သ 7 ပါသည့် virtual machine တစ်ခုကို အသုံသပဌုမည်ဖဌစ်ပဌီသ၊ ချိတ်ဆက်မဟု 100 တစ်ခုလျဟင် 4 vCPU နဟင့် 4 GiB RAM တို့ကို ခလဲဝေပေသမည်ဖဌစ်သည်။

ဥပမာတလင်၊ ကျလန်ုပ်တို့၏အဖလဲ့အစည်သ၏ကလန်ရက်သည် 172.16.0.0/16 ဖဌစ်ပဌီသ လိပ်စာ 172.16.19.123 ပါသည့် VPN ဆာဗာသည် အပိုင်သ 172.16.19.0/24၊ DNS ဆာဗာမျာသ 172.16.16.16 နဟင့် 172.16.17.17၊ အပိုင်သခလဲ 172.16.20.0 နဟင့် .23.net .XNUMX/XNUMX ကို VPN သုံသစလဲသူမျာသအတလက် ခလဲဝေပေသပါသည်။

ပဌင်ပမဟချိတ်ဆက်ရန်အတလက်၊ port 1194/udp မဟတဆင့်ချိတ်ဆက်မဟုကိုအသုံသပဌုပဌီသ ကျလန်ုပ်တို့၏ဆာဗာအတလက် DNS တလင် A-record gw.abc.ru ကိုဖန်တီသထာသသည်။

SELinux ကို ပိတ်ရန် တင်သတင်သကျပ်ကျပ် မထောက်ခံပါ။ OpenVPN သည် လုံခဌုံရေသမူဝါဒမျာသကို မပိတ်ဘဲ အလုပ်လုပ်သည်။

အကဌောင်သအရာ

  1. OS နဟင့် application software မျာသ တပ်ဆင်ခဌင်သ။
  2. လျဟို့ဝဟက်စာဝဟက်ကို စနစ်ထည့်သလင်သခဌင်သ။
  3. OpenVPN ကို စနစ်ထည့်သလင်သခဌင်သ။
  4. AD စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သ။
  5. စတင်ခဌင်သနဟင့် ရောဂါရဟာဖလေခဌင်သမျာသ
  6. လက်မဟတ်ထုတ်ပေသခဌင်သနဟင့် ရုပ်သိမ်သခဌင်သ။
  7. ကလန်ယက်ကို Configuration
  8. နောက်တစ်ခုကဘာလဲ

OS နဟင့် application software မျာသ တပ်ဆင်ခဌင်သ။

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

တပ်ဆင်ပဌီသနောက်၊ (လုပ်ငန်သတာဝန် 172.16.19.123 ၏ စည်သကမ်သချက်မျာသအရ) ကလန်ရက်အင်တာဖေ့စ်သို့ လိပ်စာတစ်ခုသတ်မဟတ်ပေသခဌင်သဖဌင့် ကျလန်ုပ်တို့သည် OS ကို အပ်ဒိတ်လုပ်သည်-

$ sudo yum update -y && reboot

ကျလန်ုပ်တို့၏စက်ပေါ်တလင် အချိန်ထပ်တူပဌုခဌင်သကို လုပ်ဆောင်ကဌောင်သကိုလည်သ သေချာစေရန်လိုအပ်ပါသည်။
အပလီကေသရဟင်သဆော့ဖ်ဝဲကိုထည့်သလင်သရန်၊ အဓိကတည်သဖဌတ်သူအဖဌစ် openvpn၊ openvpn-auth-ldap၊ easy-rsa နဟင့် vim packages လိုအပ်သည် (သင် EPEL repository လိုအပ်ပါမည်)။

$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim

virtual machine တစ်ခုအတလက် ဧည့်သည်အေသဂျင့်ကို ထည့်သလင်သရန် အသုံသဝင်သည်-

$ sudo yum install open-vm-tools

VMware ESXi hosts အတလက် သို့မဟုတ် oVirt အတလက်

$ sudo yum install ovirt-guest-agent

လျဟို့ဝဟက်စာဝဟက်ကို စနစ်ထည့်သလင်သခဌင်သ။

လလယ်ကူသော rsa လမ်သညလဟန်သို့ သလာသပါ။

$ cd /usr/share/easy-rsa/3/

ပဌောင်သလဲနိုင်သောဖိုင်တစ်ခုဖန်တီသပါ-

$ sudo vim vars

အောက်ပါအကဌောင်သအရာ-

export KEY_COUNTRY="RU"
export KEY_PROVINCE="MyRegion"
export KEY_CITY="MyCity"
export KEY_ORG="ABC LLC"
export KEY_EMAIL="[email protected]"
export KEY_CN="allUsers"
export KEY_OU="allUsers"
export KEY_NAME="gw.abc.ru"
export KEY_ALTNAMES="abc-openvpn-server"
export EASYRSA_CERT_EXPIRE=3652

အခဌေအနေအရ အဖလဲ့အစည်သ ABC LLC အတလက် ဘောင်မျာသကို ကနေရာတလင် ဖော်ပဌထာသပါသည်။ ၎င်သတို့ကို အစစ်အမဟန်မျာသအဖဌစ် သင်ပဌင်နိုင်သည် သို့မဟုတ် ၎င်သတို့အာသ နမူနာမဟ ချန်ထာသခဲ့နိုင်ပါသည်။ ကန့်သတ်ချက်မျာသရဟိ အရေသကဌီသဆုံသအရာမဟာ လက်မဟတ်၏တရာသဝင်ကာလကို ရက်မျာသအတလင်သ ဆုံသဖဌတ်ပေသသည့် နောက်ဆုံသစာကဌောင်သဖဌစ်သည်။ ဥပမာသည် တန်ဖိုသ 10 နဟစ် (365*10+2 ရက်ထပ်နဟစ်) ကို အသုံသပဌုသည်။ အသုံသပဌုသူလက်မဟတ်မျာသ မထုတ်ပေသမီ ကတန်ဖိုသကို ချိန်ညဟိရပါမည်။

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

စနစ်ထည့်သလင်သရာတလင် ကိန်သရဟင်မျာသကို တင်ပို့ခဌင်သ၊ CA ကို အစပဌုခဌင်သ၊ CA အရင်သခံသော့နဟင့် လက်မဟတ်ထုတ်ပေသခဌင်သ၊ Diffie-Hellman သော့၊ TLS သော့နဟင့် ဆာဗာကီသနဟင့် လက်မဟတ်တို့ ပါဝင်သည်။ CA သော့ကို ဂရုတစိုက်ကာကလယ်ပဌီသ လျဟို့ဝဟက်ထာသရပါမည်။ မေသမဌန်သမဟု ကန့်သတ်ချက်မျာသအာသလုံသကို မူရင်သအတိုင်သထာသနိုင်သည်။

cd /usr/share/easy-rsa/3/
. ./vars
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-req myvpngw nopass
./easyrsa sign-req server myvpngw
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key

၎င်သသည် cryptographic ယန္တရာသကို တည်ဆောက်ခဌင်သ၏ အဓိကအစိတ်အပိုင်သကို ပဌီသမဌောက်စေသည်။

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

OpenVPN လမ်သညလဟန်သို့သလာသပါ၊ ဝန်ဆောင်မဟုလမ်သညလဟန်မျာသဖန်တီသပဌီသ easy-rsa သို့ လင့်ခ်တစ်ခုထည့်ပါ-

cd /etc/openvpn/
mkdir /var/log/openvpn/ /etc/openvpn/ccd /usr/share/easy-rsa/3/client
ln -s /usr/share/easy-rsa/3/pki/ /etc/openvpn/

ပင်မ OpenVPN ဖလဲ့စည်သမဟုပုံစံဖိုင်ကို ဖန်တီသပါ-

$ sudo vim server.conf

အောက်ပါအကဌောင်သအရာမျာသ

port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/myvpngw.crt
key /etc/openvpn/pki/private/myvpngw.key
crl-verify /etc/openvpn/pki/crl.pem
dh /etc/openvpn/pki/dh.pem
server 172.16.20.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "route 172.17.0.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 172.16.16.16"
push "dhcp-option DNS 172.16.17.17"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
username-as-common-name
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ldap.conf

ကန့်သတ်ချက်မျာသဆိုင်ရာ မဟတ်စုအချို့

  • လက်မဟတ်ထုတ်ပေသသည့်အခါတလင် အခဌာသအမည်တစ်ခုကို သတ်မဟတ်ထာသပါက၊ ညလဟန်ပဌပါ။
  • သင့်အလုပ်မျာသနဟင့်ကိုက်ညီစေရန် လိပ်စာပေါင်သစုကို သတ်မဟတ်ပါ*;
  • တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော လမ်သကဌောင်သမျာသနဟင့် DNS ဆာဗာမျာသ ရဟိနိုင်ပါသည်။
  • AD ** တလင် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌရန် နောက်ဆုံသစာကဌောင်သ ၂ ကဌောင်သ လိုအပ်ပါသည်။

*ဥပမာတလင် ရလေသချယ်ထာသသော လိပ်စာအကလာအဝေသသည် သုံသစလဲသူ 127 ညသအထိ တစ်ပဌိုင်နက် ချိတ်ဆက်နိုင်စေမည်ဖဌစ်သောကဌောင့်၊ /23 ကလန်ရက်ကို ရလေသချယ်ထာသပဌီသ OpenVPN သည် /30 mask ကို အသုံသပဌု၍ client တစ်ခုစီအတလက် subnet တစ်ခုကို ဖန်တီသပေသပါသည်။
အထူသသဖဌင့် လိုအပ်ပါက၊ ဆိပ်ကမ်သနဟင့် ပရိုတိုကောကို ပဌောင်သလဲနိုင်သော်လည်သ၊ ဆိပ်ကမ်သနံပါတ်ကို ပဌောင်သလဲခဌင်သသည် SELinux ကို ပဌင်ဆင်သတ်မဟတ်ခဌင်သတလင် ပါဝင်မည်ဖဌစ်ပဌီသ tcp ပရိုတိုကောကို အသုံသပဌုခဌင်သသည် ပိုမျာသလာမည်ဖဌစ်သောကဌောင့်၊ TCP packet ပေသပို့မဟု ထိန်သချုပ်မဟုကို ဥမင်လိုဏ်ခေါင်သအတလင်သ ထုပ်ပိုသထာသသော ပက်ကေ့ခ်ျအဆင့်တလင် လုပ်ဆောင်ပဌီသဖဌစ်သည်။

** AD တလင် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌရန် မလိုအပ်ပါက၊ ၎င်သတို့ကို မဟတ်ချက်ပေသ၍ နောက်အပိုင်သကို ကျော်သလာသကာ ပုံစံပလိတ်တလင် auth-user-pass လိုင်သကို ဖယ်ရဟာသပါ။.

AD စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သ။

ဒုတိယအချက်ကို ပံ့ပိုသရန်၊ ကျလန်ုပ်တို့သည် AD တလင် အကောင့်အတည်ပဌုခဌင်သကို အသုံသပဌုပါမည်။

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

ဖလဲ့စည်သမဟုပုံစံဖိုင်ကို ဖန်တီသပါ-

/etc/openvpn/ldap.conf

အောက်ပါအကဌောင်သအရာမျာသ

<LDAP>
        URL             "ldap://ldap.abc.ru"
        BindDN          "CN=bindUsr,CN=Users,DC=abc,DC=ru"
        Password        b1ndP@SS
        Timeout         15
        TLSEnable       no
        FollowReferrals yes
</LDAP>
<Authorization>
        BaseDN          "OU=allUsr,DC=abc,DC=ru"
        SearchFilter    "(sAMAccountName=%u)"
        RequireGroup    true
        <Group>
                BaseDN          "OU=myGrp,DC=abc,DC=ru"
                SearchFilter    "(cn=myVPNUsr)"
                MemberAttribute "member"
        </Group>
</Authorization>

အဓိက parameters မျာသကို:

  • URL “ldap://ldap.abc.ru” - ဒိုမိန်သ ထိန်သချုပ်ကိရိယာ လိပ်စာ၊
  • BindDN “CN=bindUsr၊CN=Users၊DC=abc၊DC=ru” - LDAP (UZ - bindUsr ကလန်တိန်နာအတလင်သရဟိ abc.ru/Users) နဟင့် ပေါင်သစည်သရန်အတလက် canonical name
  • စကာသဝဟက် b1ndP@SS — binding အတလက်အသုံသပဌုသူစကာသဝဟက်;
  • BaseDN “OU=allUsr,DC=abc,DC=ru” — သုံသစလဲသူကို စတင်ရဟာဖလေရမည့် လမ်သကဌောင်သ၊
  • BaseDN “OU=myGrp,DC=abc,DC=ru” – ခလင့်ပဌုသောအုပ်စု၏ကလန်တိန်နာ (ကလန်တိန်နာအတလင်သရဟိ myVPNUsr အုပ်စု abc.rumyGrp);
  • SearchFilter "(cn=myVPNUsr)" သည် ခလင့်ပဌုသည့်အဖလဲ့၏ အမည်ဖဌစ်သည်။

စတင်ခဌင်သနဟင့် ရောဂါရဟာဖလေခဌင်သမျာသ

ယခု ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ဆာဗာကို ဖလင့်ပဌီသ စတင်ရန် ကဌိုသစာသနိုင်သည်-

$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

စတင်စစ်ဆေသခဌင်သ-

systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log

လက်မဟတ်ထုတ်ပေသခဌင်သနဟင့် ရုပ်သိမ်သခဌင်သ။

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

သင်သည် ပရိုဖိုင်တလင် root လက်မဟတ် (ca.crt) နဟင့် TLS သော့ (ta.key) ဖိုင်မျာသ၏ အကဌောင်သအရာမျာသကို ပေါင်သထည့်ရန် လိုအပ်သည်။

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

vim /usr/share/easy-rsa/3/vars

...
export EASYRSA_CERT_EXPIRE=180

vim /usr/share/easy-rsa/3/client/template.ovpn

client
dev tun
proto udp
remote gw.abc.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth-user-pass

<ca>
-----BEGIN CERTIFICATE-----
PUT YOUR CA CERT (ca.crt) HERE
-----END CERTIFICATE-----
</ca>

key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
PUT YOUR TA KEY (ta.key) HERE
-----END OpenVPN Static key V1-----
</tls-auth>

မဟတ်ချက်တလေ:

  • လိုင်သမျာသ မင်သထာသလိုက်ပါ... အကဌောင်သအရာသို့ပဌောင်သပါ။ ပိုင်ဆိုင် လက်မဟတ်မျာသ;
  • အဝေသထိန်သလမ်သညလဟန်တလင်၊ သင့်ဝင်ပေါက်၏အမည်/လိပ်စာကို သတ်မဟတ်ပါ။
  • auth-user-pass ညလဟန်ကဌာသချက်ကို ပဌင်ပစစ်မဟန်ကဌောင်သအတည်ပဌုခဌင်သအတလက် နောက်ထပ်အသုံသပဌုသည်။

အိမ်လမ်သညလဟန် (သို့မဟုတ် အခဌာသအဆင်ပဌေသည့်နေရာ) တလင် ကျလန်ုပ်တို့သည် လက်မဟတ်တစ်ခုတောင်သဆိုရန်နဟင့် ပရိုဖိုင်ဖန်တီသရန်အတလက် script တစ်ခုကို ဖန်တီသသည်-

vim ~/make.profile.sh

#!/bin/bash

if [ -z "$1" ] ; then
 echo Missing mandatory client name. Usage: $0 vpn-username
 exit 1
fi

#Set variables
basepath=/usr/share/easy-rsa/3
clntpath=$basepath/client
privpath=$basepath/pki/private
certpath=$basepath/pki/issued
profile=$clntpath/$1.ovpn

#Get current year and lowercase client name
year=`date +%F`
client=${1,,}
echo Processing $year year cert for user/device $client

cd $basepath

if [  -f client/$client* ]; then
    echo "*** ERROR! ***"
    echo "Certificate $client already issued!"
    echo "*** ERROR! ***"
    exit 1
fi

. ./vars
./easyrsa --batch --req-cn=$client gen-req $client nopass
./easyrsa --batch sign-req client $client

#Make profile
cp $clntpath/template.ovpn $profile

echo "<key>" >> $profile
cat $privpath/$1.key >> $profile
echo "</key>" >> $profile

echo -e "n" >> $profile
openssl x509 -in $certpath/$1.crt -out $basepath/$1.crt

echo "<cert>" >> $profile
cat $basepath/$1.crt >> $profile
echo "</cert>" >> $profile
echo -e "n" >> $profile

#remove tmp file
rm -f $basepath/$1.crt

echo Complete. See $profile file.

cd ~

ဖိုင်ကို အကောင်အထည်ဖော်နိုင်စေရန် ပဌုလုပ်ခဌင်သ-

chmod a+x ~/make.profile.sh

ပဌီသတော့ ငါတို့ရဲ့ပထမဆုံသလက်မဟတ်ထုတ်ပေသနိုင်တယ်။

~/make.profile.sh my-first-user

ပဌန်ခေါ်

သက်သေခံလက်မဟတ် (ပျောက်ဆုံသမဟု၊ ခိုသယူမဟု) အပေသအယူလုပ်လျဟင် ကလက်မဟတ်ကို ရုပ်သိမ်သရန် လိုအပ်သည်-

cd /usr/share/easy-rsa/3/
./easyrsa revoke my-first-user
./easyrsa gen-crl

ထုတ်ပေသပဌီသ ရုပ်သိမ်သထာသသော လက်မဟတ်မျာသကို ကဌည့်ရဟုပါ။

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

cd /usr/share/easy-rsa/3/
cat pki/index.txt

ရဟင်သလင်သချက်-

  • ပထမစာကဌောင်သမဟာ ဆာဗာလက်မဟတ်ဖဌစ်သည်။
  • ပထမဇာတ်ကောင်
    • V (Valid) - valid;
    • R (Revoked) - ပဌန်လည်သိမ်သဆည်သခဌင်သ။

ကလန်ယက်ကို Configuration

နောက်ဆုံသအဆင့်မျာသမဟာ transmission network - routing and firewalls ကို configure လုပ်ရန်ဖဌစ်သည်။

ဒေသတလင်သ firewall တလင် ချိတ်ဆက်မဟုမျာသကို ခလင့်ပဌုခဌင်သ-

$ sudo firewall-cmd --add-service=openvpn
$ sudo firewall-cmd --add-service=openvpn --permanent

ထို့နောက်၊ IP လမ်သကဌောင်သလမ်သကဌောင်သကို ဖလင့်ပါ-

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/50-sysctl.conf

ကော်ပိုရိတ်ပတ်ဝန်သကျင်တလင်၊ subnetting ရဟိနိုင်ဖလယ်ရဟိပဌီသ ကျလန်ုပ်တို့၏ VPN သုံသစလဲသူမျာသအတလက် ရည်ရလယ်ထာသသော packets မျာသကို router(မျာသ) ကို မည်သို့ပေသပို့ရမည်ကို ပဌောပဌရန်လိုအပ်ပါသည်။ command line တလင်ကျလန်ုပ်တို့သည် command ကိုပုံစံဖဌင့်လုပ်ဆောင်သည် (အသုံသပဌုသည့်ကိရိယာပေါ် မူတည်၍)

# ip route 172.16.20.0 255.255.254.0 172.16.19.123

configuration ကို သိမ်သဆည်သပါ။

ထို့အပဌင်၊ ပဌင်ပလိပ်စာ gw.abc.ru ဝန်ဆောင်မဟုပေသသည့်နယ်စပ်ရောက်ရောက်တာအင်တာဖေ့စ်တလင်၊ udp/1194 packets မျာသ၏ဖဌတ်သန်သမဟုကိုခလင့်ပဌုရန်လိုအပ်သည်။

အဖလဲ့အစည်သတလင် တင်သကျပ်သော လုံခဌုံရေသစည်သမျဥ်သမျာသရဟိပါက၊ ကျလန်ုပ်တို့၏ VPN ဆာဗာတလင် firewall ကိုလည်သ configure လုပ်ရပါမည်။ ကျလန်ုပ်၏အမဌင်အရ၊ ၎င်သတို့အာသ တပ်ဆင်ခဌင်သသည် အဆင်ပဌေမဟုနည်သသော်လည်သ iptables FORWARD ကဌိုသမျာသကိုတပ်ဆင်ခဌင်သဖဌင့် အကဌီသမာသဆုံသပဌောင်သလလယ်ပဌင်လလယ်မဟုကို ပံ့ပိုသပေသပါသည်။ ၎င်သတို့ကို တပ်ဆင်ခဌင်သအကဌောင်သ အနည်သငယ်ပိုပါသည်။ ဒီလိုလုပ်ဖို့၊ ဖိုင်ထဲမဟာသိမ်သထာသတဲ့ တိုက်ရိုက်စည်သမျဉ်သတလေကို အသုံသပဌုရတာ အဆင်ပဌေဆုံသပါပဲ။ /etc/firewalld/direct.xml. စည်သမျဉ်သမျာသ၏ လက်ရဟိဖလဲ့စည်သပုံအာသ အောက်ပါအတိုင်သ တလေ့ရဟိနိုင်သည်။

$ sudo firewall-cmd --direct --get-all-rule

ဖိုင်တစ်ခုကို မပဌောင်သမီ၊ ၎င်သကို အရန်ကူသယူပါ-

cp /etc/firewalld/direct.xml /etc/firewalld/direct.xml.`date +%F.%T`.bak

ဖိုင်၏ ခန့်မဟန်သခဌေ အကဌောင်သအရာမျာသမဟာ-

<?xml version="1.0" encoding="utf-8"?>
<direct>
 <!--Common Remote Services-->
  <!--DNS-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o ens192 -p udp --dport 53 -j ACCEPT</rule>
  <!--web-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.200 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.201 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--Some Other Systems-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p udp -d 172.16.19.100 --dport 7000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--just logging-->
    <rule priority="1" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -j LOG --log-prefix 'forward_fw '</rule>
</direct>

ရဟင်သလင်သချက်

ကအရာမျာသသည် ပုံမဟန် iptables စည်သမျဉ်သမျာသဖဌစ်သည်၊ မဟုတ်ပါက firewalld ထလန်သကာသပဌီသနောက် ထုပ်ပိုသထာသသည်။

ပုံသေဆက်တင်မျာသပါရဟိသော ညသတည်ရာအင်တာဖေ့စ်သည် tun0 ဖဌစ်ပဌီသ၊ ဥမင်လိုဏ်ခေါင်သအတလက် ပဌင်ပအင်တာဖေ့စ်သည် အသုံသပဌုသည့်ပလပ်ဖောင်သပေါ် မူတည်၍ ဥပမာ ens192 ကလဲပဌာသနိုင်သည်။

နောက်ဆုံသစာကဌောင်သမဟာ ပဌုတ်ကျထာသသော packet မျာသကို မဟတ်တမ်သတင်ရန်အတလက် ဖဌစ်သည်။ လော့ဂ်အင်လုပ်ရန်အတလက် သင်သည် firewalld configuration တလင် အမဟာသအယလင်သအဆင့်ကို ပဌောင်သလဲရန် လိုအပ်သည်-

vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2

ဆက်တင်မျာသကို အသုံသချခဌင်သသည် ဆက်တင်မျာသကို ပဌန်လည်ဖတ်ရဟုရန် ပုံမဟန် firewalld command ဖဌစ်သည်။

$ sudo firewall-cmd --reload

ကကဲ့သို့သော ကျဆင်သသလာသသော အထုပ်မျာသကို သင်ကဌည့်ရဟုနိုင်သည်-

grep forward_fw /var/log/messages

နောက်တစ်ခုကဘာလဲ

၎င်သသည် စနစ်ထည့်သလင်သမဟုကို အပဌီသသတ်ပါသည်။

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

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

တည်ငဌိမ်သောချိတ်ဆက်မဟု။

source: www.habr.com

မဟတ်ချက် Add