ቅርቅብ OpenVPN ላይ Windows Server እና ሚክሮቲክ ከዚህ ነገር ፍልሰት ጋር በ Linux

ሀሎ!

እያንዳንዱ ንግድ ይዋል ይደር እንጂ በድንገት የርቀት መዳረሻ ያስፈልገዋል።
እያንዳንዱ የአይቲ ስፔሻሊስት ማለት ይቻላል በድርጅቱ ውስጥ ወደ አውታረ መረቦቻቸው የርቀት መዳረሻን የማደራጀት አስፈላጊነት ያጋጥመዋል።

ለእኔ፣ ልክ እንደሌሎች ብዙ፣ ይህ ፍላጎት እንደ “ትላንትና” መታኝ። ሁሉንም ጥቅሞችን እና ጉዳቶችን ከመረመርኩ በኋላ ፣ እንዲሁም ብዙ መረጃዎችን በማጣራት እና በንድፈ ሀሳብ ውስጥ ትንሽ ካነሳሁ በኋላ ፣ መጫኑን ለመቀጠል ወሰንኩ ።

ለደህንነት ሲባል የተመረጠው OpenVPN በሚቀጥለው ትግበራ፡- ኦፕሬቲንግ ሲስተም ባለው አገልጋይ ላይ Windows Server በ2012 አንድ ምናባዊ ማሽን በላዩ ላይ ተጭኗል፣ Windows Server 2012፣ እና በላዩ ላይ ደግሞ አገልጋዩ OpenVPNየምስክር ወረቀቶችን የሰጠ እና የፈረመ።

ለምቾት ሲባል "የሰርተፊኬሽን ሰርቨር" እንበል። በመቀጠልም የሰርቨሩን ሰርተፊኬት ወስጄ ወደ ሚክሮቲክ ገፋሁት፣ ከዚያም በሚክሮቲክ ራውተር ራሱ አነቃሁት። OpenVPN ከመለያዎች እና መገለጫዎች ጋር። የደንበኛ የምስክር ወረቀቶችን ለመስጠት የምስክር ወረቀት አገልጋይም ጥቅም ላይ ውሏል።

በእርግጥ አፈፃፀሙ በጣም አስፈሪ ነበር፣ እና ምንም እንኳን በዚያን ጊዜ እንደዚህ ባሉ ጉዳዮች ላይ ያለኝ ልምድ ፣ በለው ፣ በቂ አይደለም ፣ በፀጥታ ጉዳዮች ፣ ይህ በጣም መጥፎ ውሳኔ አልነበረም።

ይህ ግንኙነት ለተወሰነ ጊዜ ሰርቷል እና አዲስ ግብዓት ተሰጠኝ፡ የምስክር ወረቀቱን አገልጋይ ወደ Linuxከሚክሮቲክ ጋር ያለውን ግንኙነት እየጠበቀ እያለ - ደንበኞች ሊጎዱ አይገባም።

የኔ እውቀት Linux በዚያን ጊዜ የሚያበቃው እ.ኤ.አ. Ubuntu 16.04LTS በግራፊክ በይነገጽ፣ ይህም በ RDP በኩል ከአገልጋዩ ጋር ለመገናኘት እንደ ተርሚናል ያገለግል ነበር። Windowsማለትም፣ sudo apt-get -f install -y፣ እና ከአንድ ሴንቲሜትር በላይ አይደለም።

የትኛው ስርዓተ ክወና ነው የሚለውን ጥያቄ ካጠናሁ በኋላ Linux ቤተሰቡ ለድርጅቴ የበለጠ የተረጋጋ እና ተስፋ ሰጪ ነው፣ ተስማማሁ CentOS 7 ዝቅተኛ።

ለመጀመር, በአጠቃላይ እንዴት እንደሚሰራ እና እንደሚሰራ ለመረዳት, ወደ ንድፈ ሀሳቡ ትንሽ ለመፈተሽ ወሰንኩ. በሰርጡ ላይ የቪዲዮ ትምህርቶችን ተመልክተዋል። www.youtube.com/channel/UCKdRgZWgy42YxoFcTJ30LTA (በፍፁም ማስታወቂያ ሳይሆን መጀመሪያ ያገኘኋቸው እነሱ ናቸው)። ደስ የሚል ድምፅ ያላት ልጅ በተመረጠው ስርዓተ ክወና ውስጥ የመስራትን መሰረታዊ ነገሮች አስተዋወቀችኝ።

በመጀመሪያ፣ በኮምፒውተሬ ላይ Hyper-Vን አስጀመርኩና እዚያው ጫንኩት። CentOS 7 አነስተኛ። በመጫን ጊዜ የአስተዳዳሪ ተጠቃሚን ፈጠርኩ እና ለ root SSH ሙሉ በሙሉ አሰናክዬዋለሁ። ውብ የሆነውን ባለብዙ ቀለም ስክሪን ከተሰናበትኩ በኋላ፣ ወደ ተርሚናሉ ጥቁር እና ነጭ ዓለም ውስጥ ገባሁ።

እኔ እንደማስበው ሶፍትዌሩን የመጫን ሂደትን መግለጽ ምንም ፋይዳ የለውም ፣ በሂደቱ ውስጥ በተከሰቱት ችግሮች ላይ ማተኮር እና ትንሽ ስክሪፕት ለመፃፍ የተገደድኩትን መፍታት የተሻለ ነው (ከተቆረጠው በታች ነው ። የእያንዳንዳቸው መግለጫዎች መገልገያዎቹ በይነመረብ ላይ ሊገኙ ይችላሉ ፣ ግን ይህንን ባደረግሁበት ጊዜ ፣ ​​ይህ ስክሪፕት እስካሁን አልተገኘም ፣ ሁሉም ነገር ለመጀመሪያ ጊዜ በንክኪ እና በዘፈቀደ ተከናውኗል)

በስክሪፕቱ ውስጥ ለአገልጋዩ የሚያስፈልጉትን አነስተኛ መገልገያዎች መጫንን በራስ-ሰር ለማድረግ፣ ሴሊኑክስን ለማሰናከል፣ የኤፔል ማከማቻን ለማገናኘት፣ ለመጫን ሞክሬያለሁ። OpenVPNወዘተ. ከታች ያለው ስክሪፕቱ ራሱ ነው፤ ቀላል ቢሆንም ጥቅም ላይ ሊውል የሚችል ነው። በዝርዝር አልናገርም፤ ነገር ግን የሚፈልግ ሰው ካለ ያሳውቁኝ።

ስክሪፕቱን ከተጠቀሙ በኋላ፣ አስቀድሞ የተዋቀረ አገልጋይ ይታያል። OpenVPN፣ አረንጓዴ አይን እያጣቀሰ።

#!/bin/bash
cd /etc/sysconfig/
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' selinux
sudo setenforce 0
cd /home/Admin
sudo yum update -y
sudo yum install epel-release -y
sudo yum install mc -y
sudo yum install nano -y
sudo cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
sudo yum install chrony -y
sudo systemctl start chronyd
sudo systemctl enable chronyd
sudo yum install net-tools -y
sudo yum install iftop -y
sudo yum install htop -y
sudo yum install lsof -y
sudo yum install dos2unix -y
sudo yum install wget -y
sudo yum install tcpdump -y
sudo yum install openvpn -y
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.3/EasyRSA-3.0.3.tgz
sudo tar -xvzf EasyRSA-3.0.3.tgz
sudo chown -R Admin:Admin /var/log
sudo chmod 755 /var/log
mkdir /var/log/openvpn
mkdir /etc/openvpn/ccd	
sudo chown -R Admin:Admin /etc/openvpn/ccd
sudo chown -R Admin:Admin /var/log/openvpn
chmod 755 /etc/openvpn/ccd
chmod 755 /var/log/openvpn
echo >/var/log/openvpn/openvpn-status.log
echo >/var/log/openvpn/openvpn.log
sudo chown -R Admin:Admin /etc/resolv.conf
chmod 755 /etc/resolv.conf
echo  nameserver 8.8.8.8 >>/etc/resolv.conf
cd /etc/openvpn/ 
sudo /home/Admin/EasyRSA-3.0.3/easyrsa init-pki
sudo chown -R Admin:Admin /etc/openvpn
chmod 755 /etc/openvpn
 echo  set_var EASYRSA_DN "org" >/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_COUNTRY "RU" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_KEY_SIZE 4096 >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_PROVINCE "LIP" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_CITY "Lipetsk" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_ORG "Cool-Admin" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_EMAIL "xxx.ru" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_OU "Our_ORG" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_REQ_CN "changeme" >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_CERT_EXPIRE 3650 >>/home/Admin/EasyRSA-3.0.3/test
 echo	set_var EASYRSA_DH_KEY_SIZE=2048 >>/home/Admin/EasyRSA-3.0.3/test
sudo /home/Admin/EasyRSA-3.0.3/easyrsa build-ca nopass
sudo /home/Admin/EasyRSA-3.0.3/easyrsa build-server-full Serv nopass
sudo /home/Admin/EasyRSA-3.0.3/easyrsa build-client-full Client1 nopass
sudo /home/Admin/EasyRSA-3.0.3/easyrsa --vars=vars gen-dh
sudo /home/Admin/EasyRSA-3.0.3/easyrsa --vars=vars gen-crl
 mkdir keys
sudo chown -R Admin:Admin /etc/openvpn/keys
chmod 755 /etc/openvpn/keys
sudo cp /etc/openvpn/pki/ca.crt /etc/openvpn/keys
sudo cp /etc/openvpn/pki/dh.pem /etc/openvpn/keys
sudo cp /etc/openvpn/pki/crl.pem /etc/openvpn/keys
sudo cp /etc/openvpn/pki/issued/Serv.crt /etc/openvpn/keys
sudo cp /etc/openvpn/pki/private/Serv.key /etc/openvpn/keys
echo port 443 						>/etc/openvpn/server.conf
echo proto udp					>>/etc/openvpn/server.conf
echo dev tun						>>/etc/openvpn/server.conf
echo ca /etc/openvpn/keys/ca.crt			>>/etc/openvpn/server.conf		
echo cert /etc/openvpn/keys/Serv.crt			>>/etc/openvpn/server.conf
echo key /etc/openvpn/keys/Serv.key		>>/etc/openvpn/server.conf
echo dh /etc/openvpn/keys/dh.pem			>>/etc/openvpn/server.conf
echo crl-verify /etc/openvpn/keys/crl.pem		>>/etc/openvpn/server.conf
echo client-config-dir /etc/openvpn/ccd		>>/etc/openvpn/server.conf
echo topology subnet					>>/etc/openvpn/server.conf
echo server 172.21.0.0 255.255.255.0		>>/etc/openvpn/server.conf
echo route 172.21.0.0 255.255.255.0			>>/etc/openvpn/server.conf
echo push "dhcp-option DNS 8.8.8.8"		>>/etc/openvpn/server.conf
echo push "dhcp-option DNS 8.8.4.4"		>>/etc/openvpn/server.conf
echo keepalive 10 120				>>/etc/openvpn/server.conf
echo persist-key					>>/etc/openvpn/server.conf
echo persist-tun					>>/etc/openvpn/server.conf
echo status /var/log/openvpn/openvpn-status.log	>>/etc/openvpn/server.conf
echo log-append /var/log/openvpn/openvpn.log	>>/etc/openvpn/server.conf
echo verb 2						>>/etc/openvpn/server.conf
echo mute 20						>>/etc/openvpn/server.conf
echo daemon						>>/etc/openvpn/server.conf
echo mode server					>>/etc/openvpn/server.conf
echo user nobody					>>/etc/openvpn/server.conf
echo group nobody					>>/etc/openvpn/server.conf
sudo chown -R Admin:Admin /etc/sysctl.conf
chmod 755 /etc/sysctl.conf
echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server
sudo systemctl status openvpn@server

ቅንብር OpenVPN ሙሉ በሙሉ በተሳካ ሁኔታ አልሄደም።

የመብቶች ፖሊሲን ዝርዝር ሁኔታ አለማወቅ Linux ሲስተሞች፣ ምዝግብ ማስታወሻዎቹን በማጥናት እና ለሁሉም ፋይሎች የሚያስፈልጉትን ፈቃዶች በመመደብ ብዙ ጊዜ አሳልፌያለሁ።

አዝራሩ መቼ OpenVPN ወደ አረንጓዴነት ተለወጥኩ፣ በጣም ደስተኛ ነበርኩ፣ ግን እንደ ተለወጠ፣ ይህ መጀመሪያ ብቻ ነበር። በብልህነት፣ ሁሉም ነገር እንደሚሰራ ተስፋ በማድረግ የስር ሰርተፊኬቶችን እና የcrl.pem ፋይልን መተካት ላይ ተስፋ አድርጌ ነበር። በመጨረሻም፣ ከአገልጋዩ ወደ Windows የሚከተሉት ፋይሎች:

Serv.crt — የአገልጋይ የምስክር ወረቀት
Serv.key - የአገልጋይ ቁልፍ
Ca.crt - የስር የምስክር ወረቀት
Ca.key - የስር ቁልፍ
Crl.pem - የምስክር ወረቀት መሻሪያ ፋይል
Dh.pem - Diffie-Hellman ቁልፍ
Index.txt - ስለ ወቅታዊ የምስክር ወረቀቶች መረጃ የያዘ ፋይል ያድርጉ
ተከታታይ - የምስክር ወረቀቶችን አስፈላጊነትም ተጠያቂ ነው

እንዲሁም የcerts_by_serial ማህደር፣ የvars ፋይል እና ሁሉም የደንበኛ ቁልፎች እና ሰርተፊኬቶች ያስፈልጉዎታል።
በሚክሮቲክ ላይ, የምስክር ወረቀቶች በቦታው ቀርተዋል, ስለዚህ ሁሉም ነገር ሠርቷል.

የምስክር ወረቀቱን ለመሻር ስሞክር ችግሮች ታዩ ፣ ምንም አልሰራም - index.txt ፋይል ወደ ዩኒክስ ቅርጸት መለወጥ ነበረበት ፣ ግን ወዲያውኑ አላደረግሁትም። እኔ dos2unix utility ተጠቀምሁ።

አሁን የምስክር ወረቀቶቹ ተሰርዘዋል, ነገር ግን ያለምንም ችግር መስራታቸውን ቀጥለዋል, ምክንያቱም ሚክሮቲክ እንደተሻሩ ስላላወቀ እና ስለ እሱ በሆነ መንገድ ማሳወቅ አለበት.

መመሪያውን ካነበብኩ በኋላ እና ከአሌክሳንደር ኢአርአይ ጋር ከተማከርኩ በኋላ (በጣም አመሰግናለሁ!)፣ በእውቅና ማረጋገጫ አገልጋዩ ላይ ቀላል Apache http አገልጋይ ጫንኩ እና የተሻሩ የምስክር ወረቀቶችን ፋይል አሳትሜያለሁ። ከአንድ አይፒ ከታተመው ፋይል በስተቀር ወደ እሱ መድረስን ሙሉ በሙሉ ታግዷል።

በሚክሮቲክ ተርሚናል፣ በ/System/Certificates/CRL ትር ውስጥ፣ ወደታተመው crl.pem የሚወስደውን መንገድ አመልክቷል። እዚህ ላይ ግልጽ መሆን ያለበት ሚክሮቲክ የሚቀበለው http ብቻ እና ለ CRL ትር ፍጹም አድራሻ ነው, ማለትም. እንደዚህ ያለ ነገር መምሰል ነበረበት። 127.0.0.1/crl/1.crl
ሁሉም ነገር ሰርቷል, ቢያንስ ለ 6.4.2.x የ RouterOS ስሪቶች, ነገር ግን የደንበኛ ውቅሮች በእጅ መፈጠር ነበረባቸው, እና ይህ ለእኔ አሳዛኝ ነበር እና ብዙ ችግር አስከትሏል. ከሳምንት በኋላ ለ 50 ያህል ደንበኞች አወቃቀሮችን መፍጠር ሲያስፈልገኝ ይህን ሂደት ለማፋጠን ወሰንኩ እና ለዚህም በበይነመረብ ላይ የተገኘ የሌላ ሰው ስክሪፕት ተጠቀምኩ.

ስክሪፕቱ እንደዚህ ነው የሚሰራው: ከጀመርን በኋላ "የደንበኛ ስም" የሚለውን እንጠቁማለን, "የይለፍ ቃል ለማዘጋጀት ወይም ላለማድረግ" የሚለውን ጥያቄ ይመልሱ, ከዚያ በኋላ የተዘጋጀውን የማዋቀሪያ ፋይል "client.ovpn" እንወስዳለን, የምስክር ወረቀቶች እና ቅንጅቶች የተዋሃዱ ናቸው. ወደ ውስጥ. እሱን ለመጠቀም በ /etc/openvpn ውስጥ መሆን አለብዎት። መንገዱ በራስዎ መተካት ያለበትን መስመሮች በአስተያየቶች እፈርማለሁ። እንዲሁም በማዋቀር ሂደት ውስጥ ስክሪፕቱ እንዲተካ ከደንበኛ ቅንብሮች ጋር ፋይል መፍጠር አስፈላጊ ነው።

#!/bin/bash
function newClient () {
	echo ""
	echo "Tell me a name for the client."
	echo "Use one word only, no special characters."

	until [[ "$CLIENT" =~ ^[a-zA-Z0-9_]+$ ]]; do
		read -rp "Client name: " -e CLIENT
	done

	echo ""
	echo "Do you want to protect the configuration file with a password?"
	echo "(e.g. encrypt the private key with a password)"
	echo "   1) Add a passwordless client"
	echo "   2) Use a password for the client"

	until [[ "$PASS" =~ ^[1-2]$ ]]; do
		read -rp "Select an option [1-2]: " -e -i 1 PASS
	done

	#cd /etc/openvpn/easy-rsa/ || return
	case $PASS in
		1)
		sudo /home/admin/EasyRSA-3.0.3/easyrsa build-client-full "$CLIENT" nopass
		;;
		2)
		echo "You will be asked for the client password below"
			./easyrsa build-client-full "$CLIENT"
		;;
	esac
# Generates the custom client.ovpn
	cp /etc/openvpn/client-template.txt "$home/home/admin/IT/Temp/$CLIENT.ovpn" 
#Директория в которой хранится файл с настройками клиента.
#Директория, в которой сформируется файл конфигурации
	{
		echo "<ca>"
		cat "/etc/openvpn/pki/ca.crt" #Директория хранения корневого сертификата
		echo "</ca>"

		echo "<cert>"
		awk '/BEGIN/,/END/' "/etc/openvpn/pki/issued/$CLIENT.crt" #Директория с созданным #сертификатом клиента
		echo "</cert>"

		echo "<key>"
		cat "/etc/openvpn/pki/private/$CLIENT.key" #Директория с созданным ключом клиента
		echo "</key>"

} >> "$home/home/admin/IT/Temp/$CLIENT.ovpn" #Директория, в которой сформируется файл #конфигурации

	echo ""
	echo "Client $CLIENT added, the configuration file is available at $home/admin/IT/OVPN/Temp/$CLIENT.ovpn."
	echo "Download the .ovpn file and import it in your OpenVPN client."
exit 0;
}
newClient

ከተወሰነ ጊዜ በኋላ፣ በርቀት መዳረሻ ላይ የተፈጠረ አዲስ ገደብ ይህ አገልጋይም ሆነ አሁን ያለው የሚክሮቲክ ግንኙነት እንዲጠፋ አስገደደ። አዲስ አገልጋይ ተፈጠረ። OpenVPN፣ አሁን ሙሉ በሙሉ የሚሰሩ የአይቲ ክፍል ሰራተኞች CentOSግን ያ ፈጽሞ የተለየ ታሪክ ነው።

ጽሑፉን በማረም ረገድ ለረዱት ኢቫን እና ፓቬል ያለኝን ጥልቅ ምስጋና አቀርባለሁ።

ምንጭ: hab.com

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster