Extension
แจแแกแแแแแ
แฌแแแ แแแกแขแแก แแแแแแขแแ แแแแก แฌแแแแแฎแแแก แจแแแแแ แแแแฎแแแ, แ แแ แแแแฎแแ แชแแแแแแแก แแแแแแ แ แแแแแ แแงแ แจแฃแแแแแแแก แแแแแงแแแแแ - แแแกแแแ แแฎแแ แแก (VPS), แ แแแแแแช แแแฃแแแแแแแ แแแแแซแแก แแแแแแแแ แ แแแ แแแแขแ แแแแ, แกแแ แแ แ แแแแ แฃแแแ แแแแแแจแแ แแแ. แแ STUN-แแก แแแแแงแแแแแแก แ แแแแแแแแแชแแแแแก แแแแแแแแกแฌแแแแแแ (
ะขะตะพัะธั
แแฎแแแฎแแ แแแแแฌแแ STUN แกแแ แแแ แแก แแแงแแแแแ Debian-แแ แแแแแขแแแแ
# apt install stun-server
แแ แแแแแแแแแแฃแแแแแแจแ แแแแฎแ stun-client แแแแแขแ, แแแแ แแ แ แแขแแแฆแแช แแ แแแแแฅแชแแ แงแฃแ แแแฆแแแ. แแแแ แแ แแแแแแแแแแแ แแแแแฎแกแแแแ stun-client แแแแแขแแก แจแแกแแฎแแ แแ แแแแแแฌแงแแแขแ แแแแแแ, แ แแแแ แแฃแจแแแแก แแก, แแฃแแแแก แแ Yandex-แจแ แซแแแแแก แจแแแแแ แแแแแฆแ:
# apt install stun-client
# stun stun.ekiga.net -p 21234 -v
แแแกแฃแฎแแ แแแแแฆแ:
STUN แแแแแแขแแก แแแ แกแแ 0.97
แแแแฎแกแแ แแแ แขแ 21234 fd 3-แแ
แแแแฎแกแแ แแแ แขแ 21235 fd 4-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 028-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแฆแแแฃแแ แแแแกแแชแแแคแ แแแแแ แจแแขแงแแแแแแแ: 92 แแแแขแ
MappedAddress = <แฉแแแ IP>:2885
แฌแงแแ แแแแกแแแแ แแ = 216.93.246.18:3478
ChangedAddress = 216.93.246.17:3479
แฃแชแแแแ แแขแ แแแฃแขแ: 32800
ServerName = Vovida.org 0.98-CPC
แแแฆแแแฃแแแ 257 แขแแแแก id=1 แจแแขแงแแแแแแแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 028-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.17:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 0แแแแ แแแก len 28-แแก แแแกแแฏแแก แแแแแแแแแก <แฉแแแ IP>:2885-แแ
แแแฆแแแฃแแ แแแแกแแชแแแคแ แแแแแ แจแแขแงแแแแแแแ: 28 แแแแขแ
ChangeRequest = 0
แแแฆแแแฃแแแ 1 แขแแแแก id=11 แจแแขแงแแแแแแแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 028-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.17:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแฆแแแฃแแ แแแแกแแชแแแคแ แแแแแ แจแแขแงแแแแแแแ: 92 แแแแขแ
MappedAddress = <แฉแแแ IP>:2885
แฌแงแแ แแแแกแแแแ แแ = 216.93.246.17:3479
ChangedAddress = 216.93.246.18:3478
แฃแชแแแแ แแขแ แแแฃแขแ: 32800
ServerName = Vovida.org 0.98-CPC
แแแฆแแแฃแแแ 257 แขแแแแก id=10 แจแแขแงแแแแแแแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 428-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แแแแแแแแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแ:
แแแแแ แแแแก แชแแแแแแแแก แแแแฎแแแแ: 228-แแก แจแแขแงแแแแแแแแก แแแแแแแแ 216.93.246.18:3478-แแ
แขแแกแขแ I = 1
แขแแกแขแ II = 0
แขแแกแขแ III = 0
แขแแกแขแ I(2) = 1
แแ แแก nat = 1
แจแแแแแแแแ IP แแแแแ = 1
แแแแก แกแแแแแ แ = 1
แแแแชแแแ แแแ แขแ = 0
แซแแ แแแแแ: แแแแแฃแแแแแแแแ แ แฃแฅแ, แแแ แขแแ แแแแแแแแแแฃแแ แคแแแขแ แ, แจแแแแฎแแแแแแ แแแ แขแ, แแแแก แแแแแแ แแแ
แแแกแแแ แฃแแแแแแ แฆแแ แแแฃแแแแแ 0x000006
แกแแแแแแแแ แฆแแ แแแฃแแแแแ
MappedAddress = <แฉแแแ IP>:2885
แแฎแแแแ แแก, แ แแช แแญแแ แแแแแ! แแแ แแฉแแแแแแแ แแแแจแแ แแก แแแแแแแแ แ แกแขแแขแฃแกแก แแแแแแแแ แแ UDP แแแ แขแแ 21234. แแแแ แแ แแก แแฎแแแแ แแ แซแแแแก แแแฎแแแแ แแ; แแแฉแแแ แแแแฎแแ, แ แแแแ แแแแแแแขแแแแ แแก แแแแแชแแแแแ แแแกแขแแแชแแฃแ แฐแแกแขแแ แแ แแแแแฌแงแแ VPN แแแแจแแ แ. แคแแกแขแแก แแ แแขแแแแแแ, แแ แแฅแแแ Telegram-แแ?! แแแแ แ แแแ แแแแขแแ แแ แแแแแแฌแงแแแขแ แแแแแแแงแแแ Yandex.disk, แ แแแแแ แจแแแฎแแแ
- แกแแแแแแ แแแแกแ, แ แแ แแแแแซแแแ แแแแ แแ แแแ แแแแจแแ แแก แแแกแแแงแแ แแแแแ Yandex.disk-แแ แแแแแ แแขแฃแแ แคแแแแแก แแ แกแแแแแแ แแ แแแก แจแขแแแแแ;
- แแฃ แแแแแซแแแ แแแแ แแ แแก, แแแจแแ แแแแฆแแ แแแแแแแแ แ แแแ แแแแขแ แแแ STUN แกแแ แแแ แแแแ;
- แแขแแแ แแแ แแแแแแแแ แ แแแ แแแแขแ แแแ Yandex.disk-แแ;
- แจแแแแแฌแแแ แแแกแขแแแชแแฃแ แ แแแแแซแแก แแแ แแแแขแ แแแแก แแ แกแแแแแ แแ แฌแแแแแฎแแ แคแแแแแแแ Yandex.disk-แแ;
- แแแกแขแแแชแแฃแ แฐแแกแขแแแ แแแแจแแ แแก แแแแงแแ แแแ OpenVPN-แแก แแแแแงแแแแแแ.
แแ แแฅแขแแแ
แชแแขแ แคแแฅแ แแก แจแแแแแ, แแแแ แกแขแแขแแแก แแแแแชแแแแแแแก แแแแแแแแกแฌแแแแแแ, แกแฌแ แแคแแ แแแแฌแแ แ แกแชแแแแ แ. แฉแแแ แแแแแญแแ แแแแ:
# apt install openvpn stun-client curl
แแแแแ แกแชแแแแ แ:
แกแแฌแงแแกแ แแแ แกแแ
# cat vpn8.sh
#!/bin/bash
######################## ะะฐะดะฐะตะผ ัะฒะตัะฝะพะน ัะตะบัั ###
WARN='33[37;1;41m' #
END='33[0m' #
RED='33[0;31m' # ${RED} #
GREEN='33[0;32m' # ${GREEN} #
#################################################
####################### ะัะพะฒะตััะตะผ ะฝะฐะปะธัะธะต ะฝะตะพะฑั
ะพะดัะผะธั
ะฟัะธะปะพะถะตะฝะธะน #########################################################
al="echo readlink dirname grep awk md5sum shuf nc curl sleep openvpn cat stun"
ch=0
for i in $al; do which $i > /dev/null || echo -e "${WARN}ะะปั ัะฐะฑะพัั ะฝะตะพะฑั
ะพะดะธะผ $i ${END}"; which $i > /dev/null || ch=1; done
if (( $ch > 0 )); then echo -e "${WARN}ะะน, ะพััััััะฒััั ะฝะตะพะฑั
ะพะดะธะผัะต ะดะปั ะบะพััะตะบัะฝะพะน ัะฐะฑะพัั ะฟัะธะปะพะถะตะฝะธั${END}"; exit; fi
#######################################################################################################################
if [[ $1 == '' ]]; then echo -e "${WARN}ะะฒะตะดะธัะต ะธะดะตะฝัะธัะธะบะฐัะพั ัะพะตะดะธะฝะตะฝะธั (ะปัะฑะพะต ัะฝะธะบะฐะปัะฝะพะต ัะปะพะฒะพ, ะดะพะปะถะฝะพ ะฑััั ะพะดะธะฝะฐะบะพะฒะพะต ั ะดะฒัั
ััะพัะพะฝ!) ${END} t
${GREEN}ะะปั ะทะฐะฟััะบะฐ ะฒ ะฐะฒัะพะผะฐัะธัะตัะบะพะผ ัะตะถะธะผะต ะฟัะธ ะฒะบะปััะตะฝะธะธ ะบะพะผะฟัััะตัะฐ ะผะพะถะฝะพ ะฟัะพะฟะธัะฐัั ะฒ /etc/rc.local ัััะพะบั nohup /<ะฟััั ะบ ัะฐะนะปั>/vpn8.sh > /var/log/vpn8.log 2>/dev/hull & ${END}"; exit; fi
ABSOLUTE_FILENAME=`readlink -f "$0"` # ะฟะพะปะฝัะน ะฟััั ะดะพ ัะบัะธะฟัะฐ
DIR=`dirname "$ABSOLUTE_FILENAME"` # ะบะฐัะฐะปะพะณ ะฒ ะบะพัะพัะพะผ ะปะตะถะธั ัะบัะธะฟั
############################### ะัะพะฒะตัะบะฐ ะฝะฐะปะธัะธั ัะตะบัะตัะฝะพะณะพ ะบะปััะฐ ##################################
key="$DIR/secret.key"
if [ ! -f "$key" ]; then
echo -e "${WARN}ะกะตะบัะตัะฝัะน ะบะปัั VPN-ัะพะตะดะธะฝะตะฝะธั ะฝะต ะฝะฐะนะดะตะฝ, ะดะปั ะณะตะฝะตัะฐัะธะธ ะบะปััะฐ ะฒัะฟะพะปะฝะธัะต:
openvpn --genkey --secret secret.key ะะฝะธะผะฐะฝะธะต: ะบะปัั ะธัะฟะพะปัะทัะตััั ะดะปั ะฐะฒัะพัะธะทะฐัะธะธ ะธ ะดะพะปะถะตะฝ
ะฑััั ะพะดะธะฝะฐะบะพะฒัะผ ั ะดะฒัั
ััะพัะพะฝ!!!${END}
# ls -l secret.key
-rw------- 1 root root 637 ะฝะพั 27 11:12 secret.key
# chmod 600 secret.key";
exit;
fi
########################################################################################################################
ABSOLUTE_FILENAME=`readlink -f "$0"` # ะฟะพะปะฝัะน ะฟััั ะดะพ ัะบัะธะฟัะฐ
DIR=`dirname "$ABSOLUTE_FILENAME"` # ะบะฐัะฐะปะพะณ ะฒ ะบะพัะพัะพะผ ะปะตะถะธั ัะบัะธะฟั
name=$(uname -n | md5sum | awk '{print $1}')
vpn=$(echo $1 | md5sum | awk '{print $1}')
stun="stun.ekiga.net" # STUN ัะตัะฒะตั
username="Yandex" # ะะพะณะธะฝ ะพั ะฏะฝะดะตะบั.ะดะธัะบะฐ
password="Password" # ะะฐัะพะปั ะพั ะฏะฝะดะตะบั.ะดะธัะบะฐ
localport=`shuf -i 20000-65000 -n 1` # ะณะตะฝะตัะฐัะธั ะปะพะบะฐะปัะฝะพะณะพ ะฟะพััะฐ
echo "$(date) ะกะพะทะดะฐั ะฟะฐะฟะบั ะฝะฐ ะฏะฝะดะตะบั.ะดะธัะบะต"
curl -X MKCOL --user "${username}:${password}" https://webdav.yandex.ru/vpn-$vpn
echo "$(date) ะัะธัะฐั ะฟะฐะฟะบั ะพั ะฒััะบะพะณะพ ะผััะพัะฐ"
for i in `curl --silent --user "$username:$password" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></n/g' | grep "d:displayname" | sed 's/d:displayname//g' | sed 's/>//g' | sed 's/<//' | sed 's////g' | grep -v $(date +%Y-%m-%d-%H-%M)`; do
echo "$(date) Delete: $i"
curl -X DELETE --user "${username}:${password}" https://webdav.yandex.ru/vpn-$vpn/$i
done
until [ $c ];do
until [[ $b ]]; do
echo "$(date) ะัะพะฒะตััั ะฟะฐะฟะบั"
date=`date +%Y-%m-%d-%H-%M`
mydata=`curl --silent --user "${username}:${password}" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></>n</g' | grep $name | grep $date | grep "d:displayname"`
if [[ -z $mydata ]]; then
echo "$(date) ะคะฐะนะป ะณะพัะพะฒะฝะพััะธ ัะพะทะดะฐะฝ"
echo "$date" > "/tmp/$date-$name-ready.txt"
curl -T "/tmp/$date-$name-ready.txt" --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$date-$name-ready.txt
else
echo "$(date) ะคะฐะนะป ะณะพัะพะฒะฝะพััะธ ัะถะต ัััะตััะฒัะตั - $date"
fi
remote=`curl --silent --user "${username}:${password}" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></>n</g' | grep -v $name | grep $date | grep "d:displayname"`
if [[ -z $remote ]]; then
echo -e "$(date) ${RED} ะฃะดะฐะปะตะฝะฝัะน ัะทะตะป ะฝะต ะณะพัะพะฒ ${END}"
echo "$(date) ะะดั"
sleep 20
else
echo -e "$(date) ${GREEN} ะฃะดะฐะปะตะฝะฝัะน ัะทะตะป ะณะพัะพะฒ ${END}"
b=1
a=''
fi
done
until [ $a ]; do
echo "$(date) ะะพะดะบะปััะตะฝะธะต ะธ ะฟะพะปััะตะฝะธะต ะดะฐะฝะฝัั
ะพั STUN ัะตัะฒะตัะฐ: $stun"
mydata=`stun $stun -p $localport -v 2>&1 | grep MappedAddress | sort | uniq`
echo -e "$(date) ${GREEN}ะะพะธ ะดะฐะฝะฝัะต ัะพะตะดะธะฝะตะฝะธั: $mydata${END}"
echo "$mydata" > "$DIR/mydata"
echo "$(date) ะะฐะณััะทะบะฐ ะดะฐะฝะฝัั
ะฝะฐ ะฏะฝะดะตะบั.ะดะธัะบ"
curl -T "$DIR/mydata" --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$name.txt
echo "$(date) ะะพะปััะตะฝะธะต ัะฐะนะปะฐ ะดะฐะฝะฝัั
ัะดะฐะปะตะฝะฝะพะณะพ ัะทะปะฐ"
filename=$(curl --silent --user "${username}:${password}" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></n/g' | grep "d:displayname>" | grep "txt" | grep -v "$name" | grep -v "ready" | sed 's|.*d:displayname>||' | sed 's/</ /g' | awk '{print $1}')
echo "$(date) ะงัะตะฝะธะต ัะฐะนะปะฐ ะดะฐะฝะฝัั
ัะดะฐะปะตะฝะฝะพะณะพ ัะทะปะฐ: $filename"
address=$(curl --silent --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$filename | sort | uniq | head -n1 | sed 's/:/ /g')
echo "$(date) ะะฟัะตะดะตะปะตะฝะธะต IP-ะฐะดัะตัะฐ ะธ ะฟะพััะฐ"
ip=$(echo "$address" | awk '{print $3}')
port=$(echo "$address" | awk '{print $4}')
if [[ -n "$ip" && -n "$port" ]]; then
echo -e "$(date) ${GREEN} ะกะพะตะดะธะฝะตะฝะธะต $ip $port ${END}"
openvpn --remote $ip --rport $port --lport $localport
--proto udp --dev tap --float --auth-nocache --verb 3 --mute 20
--ifconfig 10.45.54.2 255.255.255.252
--secret "$DIR/secret.key"
--auth SHA256 --cipher AES-256-CBC
--ncp-disable --ping 10 --ping-exit 30
--comp-lzo yes
echo -e "$(date) ${WARN} ะกะพะตะดะธะฝะตะฝะธะต ัะฐะทะพัะฒะฐะฝะพ${END}"
a=1
b=''
else
a=1
b=''
fi
done
done
แแแแกแแแแแก, แ แแ แกแแ แแแขแแ แแแฃแจแแแก, แแญแแ แแแแแ:
- แแแแแแแแ แแ แแฃแคแแ แจแ แแ แฉแแกแแแ แ แแแแฅแขแแ แจแ, แแแแแแแแแ:
# nano vpn8.sh
- แแแฃแแแแแ แแแแฎแแแ แแแแแก แกแแฎแแแ แแ แแแ แแแ Yandex.disk-แแกแแแแก.
- แแแแจแ "โifconfig 10.45.54.(1 แแ 2) 255.255.255.252" แแแฃแแแแแ แแแขแแ แคแแแกแแก แจแแแ IP แแแกแแแแ แแ
- แจแแฅแแแ แกแแแแฃแแแ.แแแกแแฆแแแ แแ แซแแแแแแ:
# openvpn --genkey --secret secret.key
- แแแฎแแแ แกแแ แแแขแ แจแแกแ แฃแแแแแแ:
# chmod +x vpn8.sh
- แแแฃแจแแแ แกแแ แแแขแ:
# ./vpn8.sh nZbVGBuX5dtturD
แกแแแแช nZbVGBuX5dtturD แแ แแก แแแแแ แแ แแแฃแแ แแแแจแแ แแก ID
แแฅ
แแแกแขแแแชแแฃแ แแแแแซแแ แงแแแแแคแแ แ แแแแแ แแแแแแแแ แกแแแแฃแแแ แแแกแแฆแแแแกแ แแ แแแแจแแ แแก ID-แแก แแแแแ แแ แแแแก แแแ แแ, แแกแแแ แฃแแแ แแงแแก แแแแแขแฃแ แ.
แแแแแฎแแแแฃแแ แแแ แกแแ (แแ แ แฃแแแ แแงแแก แกแแแฅแ แแแแแแแฃแแ แกแฌแแ แ แแฃแจแแแแแกแแแแก):
cat vpn10.sh
#!/bin/bash
stuns="stun.sipnet.ru stun.ekiga.net" # ะกะฟะธัะพะบ STUN ัะตัะฒะตัะพะฒ ัะตัะตะท ะฟัะพะฑะตะป
username=" Login " # ะะพะณะธะฝ ะพั ะฏะฝะดะตะบั.ะดะธัะบะฐ
password=" Password " # ะะฐัะพะปั ะพั ะฏะฝะดะตะบั.ะดะธัะบะฐ
intip="10.23.22.1" # IP-ะฐะดัะตั ะฒะฝัััะตะฝะฝะตะณะพ ะธะฝัะตััะตะนัะฐ
WARN='33[37;1;41m'
END='33[0m'
RED='33[0;31m'
GREEN='33[0;32m'
al="ip echo readlink dirname grep awk md5sum openssl sha256sum shuf curl sleep openvpn cat stun"
ch=0
for i in $al; do which $i > /dev/null || echo -e "${WARN}ะะปั ัะฐะฑะพัั ะฝะตะพะฑั
ะพะดะธะผ $i ${END}"; which $i > /dev/null || ch=1; done
if (( $ch > 0 )); then echo -e "${WARN}ะะน, ะพััััััะฒััั ะฝะตะพะฑั
ะพะดะธะผัะต ะดะปั ะบะพััะตะบัะฝะพะน ัะฐะฑะพัั ะฟัะธะปะพะถะตะฝะธั${END}"; exit; fi
if [[ $1 == '' ]];
then
echo -e "${WARN}ะะฒะตะดะธัะต ะธะดะตะฝัะธัะธะบะฐัะพั ัะพะตะดะธะฝะตะฝะธั (ะปัะฑะพะต ัะฝะธะบะฐะปัะฝะพะต ัะปะพะฒะพ, ะดะพะปะถะฝะพ ะฑััั ะพะดะธะฝะฐะบะพะฒะพะต ั ะดะฒัั
ััะพัะพะฝ!) ${END} t
${GREEN}ะะปั ะทะฐะฟััะบะฐ ะฒ ะฐะฒัะพะผะฐัะธัะตัะบะพะผ ัะตะถะธะผะต ะฟัะธ ะฒะบะปััะตะฝะธะธ ะบะพะผะฟัััะตัะฐ ะผะพะถะฝะพ ะฟัะพะฟะธัะฐัั ะฒ /etc/rc.local ัััะพะบั nohup /<ะฟััั ะบ ัะฐะนะปั>/vpn10.sh > /var/log/vpn10.log 2>/dev/hull & ${END}"
exit
fi
ABSOLUTE_FILENAME=`readlink -f "$0"` # ะฟะพะปะฝัะน ะฟััั ะดะพ ัะบัะธะฟัะฐ
DIR=`dirname "$ABSOLUTE_FILENAME"` # ะบะฐัะฐะปะพะณ ะฒ ะบะพัะพัะพะผ ะปะตะถะธั ัะบัะธะฟั
key="$DIR/secret.key"
until [[ -n "$iftosrv" ]]
do
echo "$(date) ะะฟัะตะดะตะปัั ัะตัะตะฒะพะน ะธะฝัะตััะตะนั"; iftosrv=`ip route get 8.8.8.8 | head -n 1 | sed 's|.*dev ||' | awk '{print $1}'`
sleep 5
done
timedatectl
name=$(uname -n | md5sum | awk '{print $1}')
vpn=$(echo $1 | md5sum | awk '{print $1}')
echo "$(date) ะกะพะทะดะฐั ะฟะฐะฟะบั ะฝะฐ ะฏะฝะดะตะบั.ะดะธัะบะต"
curl -X MKCOL --user "${username}:${password}" https://webdav.yandex.ru/vpn-$vpn
echo "$(date) ID ะฝะฐ ะดะธัะบะต: $vpn"
until [ $c ];do
echo "$(date) ะัะธัะฐั ะฟะฐะฟะบั ะพั ะฒััะบะพะณะพ ะผััะพัะฐ"
for i in `curl --silent --user "$username:$password" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></n/g' | grep "d:displayname" | sed 's/d:displayname//g' | sed 's/>//g' | sed 's/<//' | sed 's////g' | grep -v $(date +%Y-%m-%d-%H-%M)`
do
echo -e "$(date)${RED} ะฃะดะฐะปัั ััะฐััะน ัะฐะนะป: $i${END}"
curl -X DELETE --user "${username}:${password}" https://webdav.yandex.ru/vpn-$vpn/$i
done
echo "$(date) ID ะฝะฐ ะดะธัะบะต: $vpn"
openvpn --genkey --secret "$key"
passwd=`echo "$vpn-tt" | sha256sum | awk '{print $1}'`
openssl AES-256-CBC -e -in "$key" -out "$DIR/file.enc" -k "$passwd" -base64
curl -T "$DIR/file.enc" --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/key.enc
rm "$DIR"/file.enc
echo -e "$(date) ${GREEN}ะคะฐะทะฐ 1 - ะะพะปััะตะฝะธะต ะณะพัะพะฒะฝะพััะธ ัะดะฐะปะตะฝะฝะพะณะพ ัะทะปะฐ${END}"
go=3
localport=`shuf -i 20000-65000 -n 1` # ะณะตะฝะตัะฐัะธั ะปะพะบะฐะปัะฝะพะณะพ ะฟะพััะฐ
start=''
remote=''
timeout1=''
nextcheck=''
timestart=''
until [[ $b ]]
do
echo "$(date) ะัะพะฒะตััั ะฟะฐะฟะบั"
date=`date +%s`
timeout1=60
echo "$(date) ะกะพะทะดะฐะฝะธะต ัะฐะนะปะฐ ะณะพัะพะฒะฝะพััะธ $date"
echo "$date" > "/tmp/ready-$date-$name.txt"
curl -T "/tmp/ready-$date-$name.txt" --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/ready-$name.txt
readyfile=`curl --silent --user "${username}:${password}" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></>n</g' | grep -v $name | grep "ready" | grep "d:displayname" | sed 's/<d:displayname>//g' | sed 's/</d:displayname>//g'`
if [[ -z $readyfile ]]
then
echo -e "$(date) ${RED} ะฃะดะฐะปะตะฝะฝัะน ัะทะตะป ะฝะต ะณะพัะพะฒ ${END}"
echo "$(date) ะะดั 60 ัะตะบัะฝะด"
sleep $timeout1
else
remote=$(curl --silent --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$readyfile)
echo -e "$(date) ${GREEN} ะฃะดะฐะปะตะฝะฝัะน ัะทะตะป ะณะพัะพะฒ ${END}"
start=`curl --silent --user "${username}:${password}" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></>n</g' | grep "start" | grep "d:displayname" | sed 's/-/ /g' | awk '{print $2}'`
if [[ -z $start ]]
then
let nextcheck=$timeout1-$date+$remote
let timestart=$date+$timeout1-$nextcheck
go=$nextcheck
echo "$timestart" > "/tmp/start-$date-$name.txt"
curl -T "/tmp/start-$date-$name.txt" --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/start-$date-$name.txt
else
echo "$(date) ะถะดั $go ัะตะบัะฝะด"
sleep $go
b=1
a=''
fi
fi
done
echo -e "$(date) ${GREEN}ะคะฐะทะฐ 2 - ะะฑะผะตะฝ ะดะฐะฝะฝัะผะธ ะธ ัััะฐะฝะพะฒะบะฐ ัะพะตะดะธะฝะตะฝะธั${END}"
mydata=''
filename=''
address=''
myip=''
ip=''
port=''
ex=0
until [ $a ]; do
until [[ -n "$mydata" ]]; do
k=`echo "$stuns" | wc -w`
x=1
z=`shuf -i 1-$k -n 1`
for st in $stuns; do
if [[ $x == $z ]]; then
stun=$st;
fi;
(( x++ ));
done
echo "$(date) ะะพะดะบะปััะตะฝะธะต ะธ ะฟะพะปััะตะฝะธะต ะดะฐะฝะฝัั
ะพั STUN ัะตัะฒะตัะฐ: $stun"
sleep 5 && for pid in $(ps xa | grep "stun "$stun" 1 -p "$localport" -v" | grep -v grep | awk '{print $1}'); do kill $pid; done &
mydata=`stun "$stun" 1 -p "$localport" -v 2>&1 | grep "MappedAddress" | sort | uniq`
done
echo -e "$(date) ${GREEN}ะะพะธ ะดะฐะฝะฝัะต ัะพะตะดะธะฝะตะฝะธั: $mydata${END}"
echo "$(date) ะะฐะณััะทะบะฐ ะดะฐะฝะฝัั
ะฝะฐ ะฏะฝะดะตะบั.ะดะธัะบ"
echo "$mydata" > "$DIR/mydata"
echo "IntIP $intip" >> "$DIR/mydata"
curl -T "$DIR/mydata" --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$name-ipport.txt
rm "$DIR/mydata"
sleep 5
echo "$(date) ะะพะปััะตะฝะธะต ัะฐะนะปะฐ ะดะฐะฝะฝัั
ัะดะฐะปะตะฝะฝะพะณะพ ัะทะปะฐ"
filename=$(curl --silent --user "${username}:${password}" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/vpn-$vpn/ | sed 's/></n/g' | grep "d:displayname>" | grep "ipport" | grep -v "$name" | sed 's|.*d:displayname>||' | sed 's/</ /g' | awk '{print $1}')
if [[ -n "$filename" ]]
then
echo "$(date) ะงัะตะฝะธะต ัะฐะนะปะฐ ะดะฐะฝะฝัั
ัะดะฐะปะตะฝะฝะพะณะพ ัะทะปะฐ: $filename"
address=$(curl --silent --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$filename | grep "MappedAddress" | head -n1 | sed 's/:/ /g')
intip2=$(curl --silent --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/$filename | grep "IntIP" | head -n1 | awk '{print $2}')
echo "$(date) ะะฟัะตะดะตะปะตะฝะธะต IP-ะฐะดัะตัะฐ ะธ ะฟะพััะฐ: $address $sesid2 $tunid2"
ip=$(echo "$address" | awk '{print $3}')
port=$(echo "$address" | awk '{print $4}')
myip=`ip route get "$ip" | head -n 1 | sed 's|.*src ||' | awk '{print $1}'`
if [[ -n "$ip" && -n "$port" && -n "$myip" && -n "$localport" ]];
then
echo -e "$(date) ${GREEN} ะกะพะตะดะธะฝะตะฝะธะต $ip $port ${END}"
echo -e "`date` ${GREEN} $myip:$localport -> $ip:$port ${END}"
curl --silent --user "$username:$password" https://webdav.yandex.ru/vpn-$vpn/key.enc > "$DIR/secret.enc"
openssl AES-256-CBC -d -in "$DIR/secret.enc" -out "$key" -k "$passwd" -base64
chmod 600 "$key"
rm "$DIR/secret.enc"
openvpn --remote $ip --rport $port --lport $localport
--proto udp --dev tun --float --auth-nocache --verb 3 --mute 20
--ifconfig "$intip" "$intip2"
--secret "$key"
--auth SHA256 --cipher AES-256-CBC
--ncp-disable --ping 10 --ping-exit 20
--comp-lzo yes
a=1
b=''
fi
else
if (( $ex >= 5 ))
then
echo "$(date) ะกะฑัะพั"
a=1
b=''
fi
(( ex++ ))
sleep 5
fi
done
done
แแแแกแแแแแก, แ แแ แกแแ แแแขแแ แแแฃแจแแแก, แแญแแ แแแแแ:
- แแแแแแแแ แแ แแฃแคแแ แจแ แแ แฉแแกแแแ แ แแแแฅแขแแ แจแ, แแแแแแแแแ:
# nano vpn10.sh
- แแแฃแแแแแ แจแแกแแแ (แแ-2 แฎแแแ) โโแแ แแแ แแแ Yandex.disk-แแกแแแแก (แแ-3 แฎแแแ).
- แแแฃแแแแแ แแแแ แแแแก แจแแแ IP แแแกแแแแ แแ (แแ-4 แฎแแแ).
- แแแฎแแแ แกแแ แแแขแ แจแแกแ แฃแแแแแแ:
# chmod +x vpn10.sh
- แแแฃแจแแแ แกแแ แแแขแ:
# ./vpn10.sh nZbVGBuX5dtturD
แกแแแแช nZbVGBuX5dtturD แแ แแก แแแแแ แแ แแแฃแแ แแแแจแแ แแก ID
แแฅ
แแแกแขแแแชแแฃแ แแแแแซแแ, แแแแแ แแแแแแแแ, แแแฃแแแแแ แแแแ แแแแก แจแแกแแแแแแกแ แจแแแ IP แแแกแแแแ แแ แแ แแแแจแแ แแก ID.
แกแแ แแแขแแก แแแขแแแแขแฃแ แ แแแกแแจแแแแแ, แ แแแแกแแช แฉแแ แแฃแแแ, แแแงแแแแ แแ แซแแแแแแก โnohup /<แกแแ แแแขแแก แแแ>/vpn10.sh nZbVGBuX5dtturD > /var/log/vpn10.log 2>/dev/null &โ แ แแแแแแช แจแแแชแแแก แคแแแแจแ /etc/ rc.แแแแแแแแ แแแ
แแแกแแแแ
แกแแ แแแขแ แแฃแจแแแแก, แขแแกแขแแ แแแ Ubuntu-แแ (18.04, 19.10, 20.04) แแ Debian 9-แแ. แแแแแแชแแแแ แจแแแแซแแแแ แแแแแแงแแแแ แแแแแกแแแแ แ แกแฎแแ แกแแ แแแกแ, แแแแ แแ แแแแแชแแแแแแแกแแแแก แแแแแแแงแแแ Yandex.disk.
แแฅแกแแแ แแแแแขแแแแก แแ แแก แแแแ แแแ, แ แแ แแแแแแ แแ แขแแแแก NAT แแ แแแแแแแ แ แแ แแซแแแแ แแแแจแแ แแก แแแแงแแ แแแแก แกแแจแฃแแแแแแก. แซแแ แแแแแแ แแแแแแฃแ แ แแแแ แแขแแ แแแแแแ, แกแแแแช แขแแ แแแขแแแ แแแแแแแแแแ.
แแแแแแแ แแแฃแแฏแแแแกแแแแก:
- Secret.key-แแก แแแขแแแแขแฃแ แ แแแแแ แแ แแแ แงแแแแ แฏแแ แแ, แ แแแแกแแช แแแแฌแงแแแ, แแแจแแคแแ แแ แแ แแแแแแแแ แแ Yandex.disk-แแ แแแกแขแแแชแแฃแ แแแแแซแจแ แแแแแกแแขแแแแ (แแแแแฎแแแแฃแแ แแแ แกแแแก แแแแแแแแกแฌแแแแแแ)
- แแแขแแ แคแแแกแแแแก IP แแแกแแแแ แแแแแก แแแขแแแแขแฃแ แ แแแแแญแแแ
- แแแแแชแแแแ แแแจแแคแแ แ Yandex.disk-แแ แแขแแแ แแแแแแ
- แแแแแก แแแขแแแแแแชแแ
แแแ แแงแแก IPv6 แงแแแแ แกแแฎแแจแ!
แแแแแฎแแแแฃแแแ! แฃแแฎแแแกแ แคแแแแแแ แแ DEB แแแแแขแ แแฅ -
แฌแงแแ แ: www.habr.com