ගැටලුව ප්රකාශ කිරීම
විවෘත කේත නිෂ්පාදනවල සේවකයින් සඳහා දුරස්ථ ප්රවේශය සංවිධානය කිරීම ලිපිය විස්තර කරන අතර සම්පූර්ණයෙන්ම ස්වයංක්රීය පද්ධතියක් ගොඩනැගීමට යන දෙකම භාවිතා කළ හැකි අතර පවතින වාණිජ පද්ධතියේ බලපත්ර හිඟයක් ඇති විට හෝ එහි ක්රියාකාරිත්වය ප්රමාණවත් නොවන විට එය පුළුල් කිරීම සඳහා ප්රයෝජනවත් වනු ඇත.
ලිපියේ පරමාර්ථය වන්නේ සංවිධානයකට දුරස්ථ ප්රවේශය සැපයීම සඳහා සම්පූර්ණ පද්ධතියක් ක්රියාත්මක කිරීමයි, එය “විනාඩි 10 කින් OpenVPN ස්ථාපනය කිරීමට” වඩා මඳක් වැඩි ය.
එහි ප්රතිඵලයක් වශයෙන්, පරිශීලකයන් සත්යාපනය කිරීම සඳහා සහතික සහ (විකල්ප වශයෙන්) ආයතනික සක්රීය නාමාවලිය භාවිතා කරන පද්ධතියක් අපට ලැබෙනු ඇත. එම. අපට සත්යාපන සාධක දෙකක් සහිත පද්ධතියක් ලැබෙනු ඇත - මා සතුව ඇති දේ (සහතිකය) සහ මා දන්නා දේ (මුරපදය).
පරිශීලකයෙකුට සම්බන්ධ වීමට අවසර ඇති බවට ලකුණක් වන්නේ myVPNUsr සමූහයේ ඔවුන්ගේ සාමාජිකත්වයයි. සහතික අධිකාරිය නොබැඳිව භාවිතා කරනු ඇත.
විසඳුම ක්රියාත්මක කිරීමේ පිරිවැය කුඩා දෘඪාංග සම්පත් සහ පද්ධති පරිපාලකගේ වැඩ පැය 1 ක් පමණි.
අපි CetntOS 3 හි OpenVPN සහ Easy-RSA අනුවාදය 7 සමඟ අතථ්ය යන්ත්රයක් භාවිතා කරන්නෙමු, එය සම්බන්ධතා 100 කට vCPU 4 ක් සහ 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.net172.16.20.0, 23 යන කොටසෙහි පිහිටා ඇත. .XNUMX/XNUMX VPN සේවාලාභීන් සඳහා වෙන් කර ඇත.
පිටත සිට සම්බන්ධ වීමට, port 1194/udp හරහා සම්බන්ධතාවයක් භාවිතා කරනු ලබන අතර, අපගේ සේවාදායකය සඳහා DNS හි A-record gw.abc.ru නිර්මාණය කර ඇත.
SELinux අක්රිය කිරීම දැඩි ලෙස නිර්දේශ නොකරයි! OpenVPN ආරක්ෂක ප්රතිපත්ති අක්රිය නොකර ක්රියා කරයි.
අන්තර්ගතය
OS සහ යෙදුම් මෘදුකාංග ස්ථාපනය කිරීම ගුප්ත ලේඛන සැකසීම OpenVPN පිහිටුවීම AD සත්යාපනය ආරම්භය සහ රෝග විනිශ්චය සහතික නිකුත් කිරීම සහ අවලංගු කිරීම ජාල සැකසුම ඊළඟට කුමක්ද
OS සහ යෙදුම් මෘදුකාංග ස්ථාපනය කිරීම
අපි CentOS 7.8.2003 බෙදාහැරීම භාවිතා කරමු. අපි OS එක අවම වින්යාසයකින් ස්ථාපනය කළ යුතුයි. භාවිතයෙන් මෙය සිදු කිරීම පහසුය
ස්ථාපනය කිරීමෙන් පසු, ජාල අතුරුමුහුණත වෙත ලිපිනයක් පැවරීම (කාර්යය 172.16.19.123 හි කොන්දේසි අනුව), අපි OS යාවත්කාලීන කරන්නෙමු:
$ sudo yum update -y && reboot
අපගේ යන්ත්රය කාල සමමුහුර්තකරණය ක්රියාත්මක වන බවටද අප සහතික විය යුතුය.
යෙදුම් මෘදුකාංග ස්ථාපනය කිරීමට, ඔබට ප්රධාන සංස්කාරකය ලෙස openvpn, openvpn-auth-ldap, easy-rsa සහ vim පැකේජ අවශ්ය වේ (ඔබට EPEL ගබඩාව අවශ්ය වේ).
$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim
අතථ්ය යන්ත්රයක් සඳහා ආගන්තුක නියෝජිතයෙකු ස්ථාපනය කිරීම ප්රයෝජනවත් වේ:
$ sudo yum install open-vm-tools
VMware ESXi සත්කාරක සඳහා, හෝ 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
මෙය ගුප්ත ලේඛන යාන්ත්රණය සැකසීමේ ප්රධාන කොටස සම්පූර්ණ කරයි.
OpenVPN පිහිටුවීම
OpenVPN බහලුම වෙත ගොස්, සේවා නාමාවලි සාදන්න සහ පහසු-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** හි සත්යාපනය ක්රියාත්මක කිරීමට අවසාන පේළි 2 අවශ්ය වේ.
*උදාහරණයේ තෝරාගත් ලිපින පරාසය සේවාදායකයින් 127 ක් දක්වා එකවර සම්බන්ධ වීමට ඉඩ සලසයි, මන්ද /23 ජාලය තෝරාගෙන ඇති අතර, OpenVPN විසින් /30 මාස්ක් එක භාවිතා කරමින් එක් එක් සේවාදායකයා සඳහා උපජාලයක් නිර්මාණය කරයි.
විශේෂයෙන් අවශ්ය නම්, වරාය සහ ප්රොටෝකෝලය වෙනස් කළ හැකිය, කෙසේ වෙතත්, වරාය වරාය අංකය වෙනස් කිරීමෙන් SELinux වින්යාස කිරීමට සිදු වන බව මතක තබා ගත යුතු අතර, tcp ප්රොටෝකෝලය භාවිතා කිරීම උඩින් වැඩි වනු ඇත. TCP පැකට් බෙදාහැරීමේ පාලනය දැනටමත් උමග තුළ ආවරණය කර ඇති පැකට් මට්ටමින් සිදු කෙරේ.
** 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>
ප්රධාන පරාමිතීන්:
- URL "ldap://ldap.abc.ru" - වසම් පාලක ලිපිනය;
- BindDN “CN=bindUsr,CN=Users,DC=abc,DC=ru” - LDAP (UZ - bindUsr abc.ru/Users කන්ටේනරයේ) බන්ධනය කිරීම සඳහා කැනොනිකල් නම;
- මුරපදය b1ndP@SS — බන්ධනය සඳහා පරිශීලක මුරපදය;
- BaseDN “OU=allUsr,DC=abc,DC=ru” — පරිශීලකයා සෙවීම ආරම්භ කළ යුතු මාර්ගය;
- BaseDN "OU=myGrp,DC=abc,DC=ru" - ඉඩ දෙන කණ්ඩායමේ බහාලුම (abc.rumyGrp කන්ටේනරයේ myVPNUsr සමූහය);
- 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 සේවාලාභියා වෙත ආයාත කරනු ලැබේ. මෙය සිදු කිරීම සඳහා, අපි පැතිකඩ උත්පාදනය කරන සැකසුම් අච්චුවක් සහ ස්ක්රිප්ට් එකක් සාදන්නෙමු.
ඔබ මූල සහතිකයේ (ca.crt) සහ TLS යතුරු (ta.key) ගොනු වල අන්තර්ගතය පැතිකඩ වෙත එක් කිරීමට අවශ්ය වේ.
පරිශීලක සහතික නිකුත් කිරීමට පෙර සහතික සඳහා අවශ්ය වලංගු කාලය සැකසීමට අමතක නොකරන්න පරාමිති ගොනුවේ. ඔබ එය දිගු නොකළ යුතුය; උපරිම දින 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 විධානය භාවිතා වේ.
නිවාස නාමාවලියෙහි (හෝ වෙනත් පහසු ස්ථානයක) අපි සහතිකයක් ඉල්ලීම සහ පැතිකඩක් නිර්මාණය කිරීම සඳහා ස්ක්රිප්ට් එකක් සාදන්නෙමු:
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 (වලංගු) - වලංගු;
- R (අවලංගු කරන ලදී) - නැවත කැඳවන ලදී.
ජාල සැකසුම
අවසාන පියවර වන්නේ සම්ප්රේෂණ ජාලය වින්යාස කිරීමයි - රවුටින් සහ ෆයර්වෝල්.
දේශීය ෆයර්වෝලයේ සම්බන්ධතා වලට ඉඩ දීම:
$ 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
ආයතනික පරිසරයක් තුළ, උපජාලයක් තිබිය හැකි අතර අපගේ VPN සේවාලාභීන් සඳහා නියම කර ඇති පැකට් යවන ආකාරය අපි රවුටරයට (ය) පැවසිය යුතුය. විධාන රේඛාවේදී අපි විධානය ක්රියාත්මක කරන්නේ (භාවිතා කරන උපකරණ මත පදනම්ව):
# ip route 172.16.20.0 255.255.254.0 172.16.19.123
සහ වින්යාසය සුරකින්න.
මීට අමතරව, බාහිර ලිපිනය gw.abc.ru සේවය කරන මායිම් රවුටර අතුරුමුහුණත මත, udp/1194 පැකට් ගමන් කිරීමට ඉඩ දීම අවශ්ය වේ.
සංවිධානයට දැඩි ආරක්ෂක නීති තිබේ නම්, අපගේ VPN සේවාදායකයේ ෆයර්වෝලයක් ද වින්යාස කළ යුතුය. මගේ මතය අනුව, 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 නීති වේ, එසේ නොමැතිනම් ෆයර්වෝල්ඩ් පැමිණීමෙන් පසුව ඇසුරුම් කර ඇත.
පෙරනිමි සැකසුම් සහිත ගමනාන්ත අතුරුමුහුණත tun0 වන අතර, උමග සඳහා බාහිර අතුරු මුහුණත වෙනස් විය හැක, උදාහරණයක් ලෙස, ens192, භාවිතා කරන වේදිකාව මත පදනම්ව.
අන්තිම පේළිය වැටුණු පැකට් ලොග් කිරීම සඳහා ය. වැඩ කිරීමට ලොග් වීම සඳහා, ඔබ ෆයර්වෝල්ඩ් වින්යාසයෙහි නිදොස් කිරීමේ මට්ටම වෙනස් කළ යුතුය:
vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2
සිටුවම් යෙදීම සාමාන්ය ෆයර්වෝල්ඩ් විධානය වේ සිටුවම් නැවත කියවීමට:
$ sudo firewall-cmd --reload
පහත වැටුණු පැකට් ඔබට පහත පරිදි බැලිය හැක:
grep forward_fw /var/log/messages
ඊළඟට කුමක්ද
මෙය සැකසුම සම්පූර්ණ කරයි!
ඉතිරිව ඇත්තේ සේවාදායක මෘදුකාංගය සේවාදායකයා පැත්තෙන් ස්ථාපනය කිරීම, පැතිකඩ ආනයනය කර සම්බන්ධ කිරීම පමණි. වින්ඩෝස් මෙහෙයුම් පද්ධති සඳහා, බෙදාහැරීමේ කට්ටලය පිහිටා ඇත
අවසාන වශයෙන්, අපි අපගේ නව සේවාදායකය අධීක්ෂණ සහ සංරක්ෂිත පද්ධති වෙත සම්බන්ධ කරන අතර නිතිපතා යාවත්කාලීන ස්ථාපනය කිරීමට අමතක නොකරන්න.
ස්ථාවර සම්බන්ධතාවය!
මූලාශ්රය: www.habr.com