ืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ

ืึทืŸ ืึทืจื˜ื™ืงืœ ื•ื•ืขื’ืŸ ื•ื•ื™ ืื™ืš ื’ืขืจืื˜ืŸ ืฆื• ืœื•ื™ืคืŸ ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ืžื™ื™ืŸ ื”ื™ื™ื ืฉืคึผื™ื™ึทื–ืขืจ (ืึธืŸ ืึท ื•ื•ื™ื™ึทืก IP ืึทื“ืจืขืก). ืœืึธื–ืŸ ืžื™ืจ ืžืึทื›ืŸ ืึท ืจืขื–ืขืจื•ื•ืึทืฆื™ืข ื’ืœื™ื™ืš: ืึทื– ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ืขื ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื’ืœื™ื™ึทืš ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ื˜ื™ืคึผ ืคื•ืŸ NAT ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ื“ื™ื™ืŸ ืฉืคึผื™ื™ึทื–ืขืจ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื“ื™ ืจืึทื•ื˜ืขืจ.
ืึทื–ื•ื™, ืื™ืš ื“ืืจืฃ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืคื•ืŸ ืžื™ื™ืŸ ืึทื ื“ืจื•ื™ื“ ืกืžืึทืจื˜ืคืึธื ืข ืฆื• ืžื™ื™ืŸ ื”ื™ื™ื ืงืึธืžืคึผื™ื•ื˜ืขืจ, ื‘ื™ื™ื“ืข ื“ืขื•ื•ื™ืกืขืก ื–ืขื ืขืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ื“ื•ืจืš ืคึผืจืึทื•ื•ื™ื™ื“ืขืจ NATs, ืคึผืœื•ืก ื“ื™ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืื™ื– ืงืึธื ื ืขืงื˜ืขื“ ื“ื•ืจืš ืึท ื”ื™ื™ื ืจืึทื•ื˜ืขืจ, ื•ื•ืึธืก ืื•ื™ืš NAT ืงืึทื ืขืงืฉืึทื ื–.
ื“ืขืจ ืงืœืึทืกื™ืฉ ืกื›ืขืžืข ื ื™ืฆืŸ ืึท ืœื™ืกื˜ VPS / VDS ืžื™ื˜ ืึท ื•ื•ื™ื™ึทืก IP ืึทื“ืจืขืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืจืขื ื˜ื™ื ื’ ืึท ื•ื•ื™ื™ึทืก IP ืึทื“ืจืขืก ืคื•ืŸ ืึท ืฉืคึผื™ื™ึทื–ืขืจ, ืื™ื– ื ื™ืฉื˜ ืงืึทื ืกื™ื“ืขืจื“ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื•ืช.
ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืคืึทืจื’ืึทื ื’ืขื ื”ื™ื™ื˜ ืึทืจื˜ื™ืงืœืขืŸ, ื•ื•ื™ื™ืœ ื’ืขืคื™ืจื˜ ืขื˜ืœืขื›ืข ื™ืงืกืคึผืขืจืึทืžืึทื ืฅ ืžื™ื˜ STUNs ืื•ืŸ NATs ืคื•ืŸ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื–. ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื˜ืึธืŸ ืึท ื‘ื™ืกืœ ืขืงืกืคึผืขืจื™ืžืขื ื˜ ื“ื•ืจืš ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืื•ื™ืฃ ืึท ื”ื™ื™ื ืจืึทื•ื˜ืขืจ ืžื™ื˜ OpenWRT ืคื™ืจืžื•ื•ืึทืจืข:

$ stun stun.sipnet.ru

ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜:

STUN ืงืœื™ืขื ื˜ ื•ื•ืขืจืกื™ืข 0.97
ืขืจืฉื˜ื™ืง: ืื•ืžืึธืคึผื”ืขื ื’ื™ืง ืžืึทืคึผื™ื ื’, ืื•ืžืึธืคึผื”ืขื ื’ื™ืง ืคึฟื™ืœื˜ืจื™ืจ, ื˜ืจืึทืค ืคึผืึธืจื˜, ื•ื•ืขื˜ ื–ื™ื™ืŸ ื”ืึทื™ืจืคึผื™ืŸ
ืฆื•ืจื™ืงืงื•ืžืขืŸ ื•ื•ืขืจื˜ ืื™ื– 0x000002

ืœื™ื˜ืขืจืึทืœืข ืื™ื‘ืขืจื–ืขืฆื•ื ื’:
ืคืจื™ื™ึท ืžืึทืคึผื™ื ื’ - ืคืจื™ื™ึท ืžืึทืคึผื™ื ื’
ืคืจื™ื™ึท ืคื™ืœื˜ืขืจ - ืคืจื™ื™ึท ืคื™ืœื˜ืขืจ
ื˜ืจืึทืค ืคึผืึธืจื˜ - ื˜ืจืึทืค - ืคึผืึธืจื˜
ื™ึดืฉึฐื‚ืจึธืึตืœ ื™ึดืฉึฐื‚ืจึธืึตืœ - ื™ึดื”ึฐื™ึถื” ืึถืช ื”ึทืฉึฐึผื‚ืจึดื™ืคึธื”
ื•ื•ืขืŸ ืื™ืš ืœื•ื™ืคืŸ ืึท ืขื ืœืขืš ื‘ืึทืคึฟืขืœ ืื•ื™ืฃ ืžื™ื™ืŸ ืคึผื™ืกื™, ืื™ืš ื’ืึทื˜:

STUN ืงืœื™ืขื ื˜ ื•ื•ืขืจืกื™ืข 0.97
ืขืจืฉื˜ื™ืง: ืื•ืžืึธืคึผื”ืขื ื’ื™ืง ืžืึทืคึผื™ื ื’, ืคึผืึธืจื˜ ืึธืคืขื ื’ื™ืง ืคึฟื™ืœื˜ืจื™ืจ, ื˜ืจืึทืค - ืคึผืึธืจื˜, ื”ืึทื™ืจืคึผื™ืŸ
ืฆื•ืจื™ืงืงื•ืžืขืŸ ื•ื•ืขืจื˜ ืื™ื– 0x000006

ืคึผืึธืจื˜ ืึธืคืขื ื’ื™ืง ืคื™ืœื˜ืขืจ - ืคึผืึธืจื˜ ืึธืคืขื ื’ื™ืง ืคื™ืœื˜ืขืจ
ื“ืขืจ ื—ื™ืœื•ืง ืื™ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืื˜ืŸ ืคื•ืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืจืขื–ื•ืœื˜ืึทื˜ ื”ืื˜ ืื ื’ืขื•ื•ื™ื–ืŸ ืึทื– ื“ืขืจ ื”ื™ื™ื ืจืึทื•ื˜ืขืจ ืื™ื– ื’ืขื•ื•ืขืŸ "ื–ื™ื™ึทืŸ ืฆื•ืฉื˜ื™ื™ึทืขืจ" ืฆื• ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ืคึผืึทืงื™ืฅ ืคึฟื•ืŸ ื“ืขืจ ืื™ื ื˜ืขืจื ืขืฅ; ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืืจื•ื™ืกื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ืคืึทืงื˜ ืึทื– ื•ื•ืขืŸ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ ื“ื™ ื‘ืึทืคึฟืขืœ ืื•ื™ืฃ ื“ื™ ืงืึธืžืคึผื™ื•ื˜ืขืจ:

stun stun.sipnet.ru -p 11111 -v

ืื™ืš ื”ืื‘ ื‘ืืงื•ืžืขืŸ ื“ื™ ืชื•ืฆืื”:

...
ืžืึทืคึผื˜ืึทื“ ืึทื“ืจืขืก = XX.1XX.1X4.2XX:4398
...

ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜, ืึท ื•ื“ืคึผ ืกืขืกื™ืข ืื™ื– ื’ืขื•ื•ืขืŸ ืึธืคึผืขื ืขื“ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืžืึธืœ, ืื•ื™ื‘ ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ืื™ืจ ืฉื™ืงืŸ ืึท ื•ื“ืคึผ ื‘ืขื˜ืŸ (ืœืžืฉืœ: netcat XX.1XX.1X4.2XX 4398 -u), ื“ืขืžืึธืœื˜ ื“ืขืจ ื‘ืงืฉื” ื’ืขืงื•ืžืขืŸ ืฆื• ื“ื™ ื”ื™ื™ื ืจืึทื•ื˜ืขืจ, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืืฉื˜ืขื˜ื™ืงื˜ ื“ื•ืจืš TCPDump ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ืขืก, ืึธื‘ืขืจ ื“ื™ ื‘ืงืฉื” ื”ืื˜ ื ื™ืฉื˜ ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืขื ืงืึธืžืคึผื™ื•ื˜ืขืจ - IPtables, ื•ื•ื™ ืึท NAT ืื™ื‘ืขืจื–ืขืฆืขืจ ืื•ื™ืฃ ื“ื™ ืจืึทื•ื˜ืขืจ, ื“ืจืึทืคึผื˜ ืขืก.
ืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ
ืึธื‘ืขืจ ื“ืขืจ ืคืึทืงื˜ ืึทื– ื“ื™ UDP ื‘ืขื˜ืŸ ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ื“ื•ืจืš ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ ื”ืื˜ ื”ืึธืคืขื ื•ื ื’ ืคึฟืึทืจ ื”ืฆืœื—ื”. ื–ื™ื ื˜ ื“ืขืจ ืจืึทื•ื˜ืขืจ ืื™ื– ืœื™ื’ืŸ ืื™ืŸ ืžื™ื™ืŸ ื“ื–ืฉื•ืจื™ืกื“ื™ืงืฉืึทืŸ, ืื™ืš ืกืึทืœื•ื•ื“ ื“ืขื ืคึผืจืึธื‘ืœืขื ื“ื•ืจืš ืจื™ื“ืขืจืขืงื˜ื™ื ื’ ื“ื™ UDP/11111 ืคึผืึธืจื˜ ืฆื• ื“ื™ ืงืึธืžืคึผื™ื•ื˜ืขืจ:

iptables -t nat -A PREROUTING -i eth1 -p udp -d 10.1XX.2XX.XXX --dport 11111 -j DNAT --to-destination 192.168.X.XXX

ืื–ื•ื™, ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ื™ื›ื•ืœืช ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืึท UDP ืกืขืกื™ืข ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ืจื™ืงื•ื•ืขืก ืคึฟื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ืคึฟื•ืŸ ืงื™ื™ืŸ IP ืึทื“ืจืขืก. ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜, ืื™ืš ืœืึธื ื˜ืฉื˜ OpenVPN-ืกืขืจื•ื•ืขืจ (ืžื™ื˜ ืคืจื™ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื“ ืขืก) ืฆื•ื’ืขื”ืขืจื˜ ืฆื• UDP/11111 ืคึผืึธืจื˜, ืื ื’ืขื•ื•ื™ื–ืŸ ื“ื™ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืื•ืŸ ืคึผืึธืจื˜ (XX.1XX.1X4.2XX:4398) ืื•ื™ืฃ ื“ื™ ืกืžืึทืจื˜ืคืึธื ืข ืื•ืŸ ื”ืฆืœื—ื” ืงืึธื ื ืขืงื˜ืขื“ ืคึฟื•ืŸ ื“ื™ ืกืžืึทืจื˜ืคืึธื ืข ืฆื• ื“ื™ ืงืึธืžืคึผื™ื•ื˜ืขืจ. ืึธื‘ืขืจ ืื™ืŸ ื“ืขื ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ืึท ืคึผืจืึธื‘ืœืขื ืื™ื– ืื•ื™ืคื’ืขืฉื˜ืื ืขืŸ: ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืขืคืขืก ื”ืึทืœื˜ืŸ ื“ื™ UDP ืกืขืกื™ืข ื‘ื™ื– ื“ื™ OpenVPN ืงืœื™ืขื ื˜ ืื™ื– ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ; ืื™ืš ื”ืึธื‘ ื ื™ื˜ ืœื™ื‘ ื“ื™ ืึธืคึผืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืงืึทื˜ืขืจ ื“ื™ STUN ืงืœื™ืขื ื˜ - ืื™ืš ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื•ื•ื™ืกื˜ ื“ื™ ืžืึทืกืข ืื•ื™ืฃ ื“ื™ STUN ืกืขืจื•ื•ืขืจืก.
ืื™ืš ืื•ื™ืš ื‘ืืžืขืจืงื˜ ื“ื™ ืคึผืึธื–ื™ืฆื™ืข "ื™ึดืฉึฐื‚ืจึธืึตืœ ื™ึดืฉึฐื‚ืจึธืึตืœ - ื™ึดื”ึฐื™ึถื” ืึถืช ื”ึทืฉึฐึผื‚ืจึดื™ืคึธื”", ื“ืขื ืžืึธื“ืข

ื”ืึทื™ืจืคึผื™ื ื ื™ื ื’ ืึทืœืึทื•ื– ืื™ื™ืŸ ืžืึทืฉื™ืŸ ืื•ื™ืฃ ืึท ื”ื™ื’ืข ื ืขืฅ ื”ื™ื ื˜ืขืจ ืึท NAT ืฆื• ืึทืงืกืขืก ืืŸ ืื ื“ืขืจ ืžืึทืฉื™ืŸ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื ืขืฅ ืื™ืŸ ื“ื™ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืจืึทื•ื˜ืขืจ.

ืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ
ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืื™ืš ืคืฉื•ื˜ ืกืึทืœื•ื•ื“ ื“ื™ ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ืžื™ื™ื ื˜ื™ื™ื ื™ื ื’ ืึท ื•ื“ืคึผ ืกืขืกื™ืข - ืื™ืš ืœืึธื ื˜ืฉื˜ ื“ืขื ืงืœื™ืขื ื˜ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืžื™ื˜ ื“ื™ ืกืขืจื•ื•ืขืจ.
ืขืก ื’ืขืืจื‘ืขื˜ ื•ื•ื™ ื“ืึธืก:

  • ืœืึธื ื˜ืฉื˜ ื“ื™ STUN ืงืœื™ืขื ื˜ ืื•ื™ืฃ ื”ื™ื’ืข ืคึผืึธืจื˜ 11111
  • ื‘ืืงื•ืžืขืŸ ืึท ืขื ื˜ืคืขืจ ืžื™ื˜ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืื•ืŸ ืคึผืึธืจื˜ XX.1XX.1X4.2XX:4398
  • ื’ืขืฉื™ืงื˜ ื“ืึทื˜ืŸ ืžื™ื˜ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืื•ืŸ ืคึผืึธืจื˜ ืฆื• E- ื‘ืจื™ื•ื• (ืงื™ื™ืŸ ืื ื“ืขืจืข ื“ื™ื ืกื˜ ืื™ื– ืžืขื’ืœืขืš) ืงืึทื ืคื™ื’ื™ืขืจื“ ืื•ื™ืฃ ื“ื™ ืกืžืึทืจื˜ืคืึธื ืข
  • ืœืึธื ื˜ืฉื˜ ื“ื™ OpenVPN ืกืขืจื•ื•ืขืจ ืื•ื™ืฃ ืึท ืงืึธืžืคึผื™ื•ื˜ืขืจ ืฆื•ื’ืขื”ืขืจื˜ ืฆื• UDP/11111 ืคึผืึธืจื˜
  • ืœืึธื ื˜ืฉื˜ ื“ื™ OpenVPN ืงืœื™ืขื ื˜ ืื•ื™ืฃ ื“ืขื ืงืึธืžืคึผื™ื•ื˜ืขืจ ื•ื•ืึธืก ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ XX.1XX.1X4.2XX: 4398 ืคึฟืึทืจ ืงืฉืจ
  • ืื™ืŸ ืงื™ื™ืŸ ืฆื™ื™ื˜ ืœืึธื ื˜ืฉื˜ ื“ื™ OpenVPN ืงืœื™ืขื ื˜ ืื•ื™ืฃ ื“ื™ ืกืžืึทืจื˜ืคืึธื ืข ื•ื•ืึธืก ื™ื ื“ื™ืงื™ื™ืฅ ื“ื™ IP ืึทื“ืจืขืก ืื•ืŸ ืคึผืึธืจื˜ (ืื™ืŸ ืžื™ื™ืŸ ืคืึทืœ ื“ื™ IP ืึทื“ืจืขืก ื”ืื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ) ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ

ืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ
ื“ืขื ื•ื•ืขื’ ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ื™ื›ื•ืœืช ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ืžื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืคึฟื•ืŸ ืžื™ื™ืŸ ืกืžืึทืจื˜ืคืึธื ืข. ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืงื™ื™ืŸ OpenVPN ืงืœื™ืขื ื˜.

ืคื™ืจ

ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ:

# apt install openvpn stun-client sendemail

ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืฉืจื™ื‘ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืกืงืจื™ืคึผืก, ืึท ืคึผืึธืจ ืคื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก ืื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื™ ื ื™ื™ื˜ื™ืง ืกืขืจื˜ื™ืคื™ืงืึทืฅ (ื–ื™ื ื˜ ื“ืขืจ ืงืœื™ืขื ื˜ ืื•ื™ืฃ ืึท ืกืžืึทืจื˜ืคืึธื ืข ืึทืจื‘ืขื˜ ื‘ืœื•ื™ื– ืžื™ื˜ ืกืขืจื˜ื™ืคื™ืงืึทืฅ), ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืึทืŸ OpenVPN ืกืขืจื•ื•ืขืจ.

ื”ื•ื™ืคึผื˜ ืฉืจื™ืคื˜ ืื•ื™ืฃ ื“ื™ ืงืึธืžืคึผื™ื•ื˜ืขืจ

# cat vpn11.sh

#!/bin/bash
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
ABSOLUTE_FILENAME=`readlink -f "$0"`
DIR=`dirname "$ABSOLUTE_FILENAME"`
localport=11111
until [[ $a ]]; do
	address=`stun stun.sipnet.ru -v -p $localport 2>&1 | grep "MappedAddress" | sort | uniq | head -n 1 | sed 's/:/ /g' | awk '{print $3" "$4}'`
        ip=`echo "$address" | awk {'print $1'}`
        port=`echo "$address" | awk {'print $2'}`
	srv="openvpn --config $DIR/server.conf --port $localport --daemon"
	$srv
	echo "$(date) ะกะตั€ะฒะตั€ ะทะฐะฟัƒั‰ะตะฝ ั ะฒะฝะตัˆะฝะธะผ ะฐะดั€ะตัะพะผ $ip:$port"
	$DIR/sendemail.sh "OpenVPN-Server" "$ip:$port"
	sleep 1
	openvpn --config $DIR/client.conf --remote $ip --port $port
	echo "$(date) Cะพะตะดะธะฝะตะฝะธะต ะบะปะธะตะฝั‚ะฐ ั ัะตั€ะฒะตั€ะพะผ ั€ะฐะทะพั€ะฒะฐะฝะพ"
	for i in `ps xa | grep "$srv" | grep -v grep | awk '{print $1}'`; do
		kill $i && echo "$(date) ะ—ะฐะฒะตั€ัˆะตะฝ ะฟั€ะพั†ะตัั ัะตั€ะฒะตั€ะฐ $i ($srv)"
		done
	echo "ะ–ะดัƒ 15 ัะตะบ"
	sleep 15
	done

ืฉืจื™ืคื˜ ืคึฟืึทืจ ืฉื™ืงื˜ ื“ืึทื˜ืŸ ื“ื•ืจืš ื‘ืœื™ืฆืคึผืึธืกื˜:

# cat sendemail.sh 

#!/bin/bash
from="ะžั‚ ะบะพะณะพ"
pass="ะŸะฐั€ะพะปัŒ"
to="ะšะพะผัƒ"
theme="$1"
message="$2"
server="smtp.yandex.ru:587"
sendEmail -o tls=yes -f "$from" -t "$to" -s "$server" -xu "$from" -xp "$pass" -u "$theme" -m "$message"

ืกืขืจื•ื•ื™ืจืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข:

# cat server.conf

proto udp
dev tun
ca      /home/vpn11-srv/ca.crt
cert    /home/vpn11-srv/server.crt
key     /home/vpn11-srv/server.key
dh      /home/vpn11-srv/dh2048.pem
server 10.2.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
tls-server
tls-auth /home/vpn11-srv/ta.key 0
tls-timeout 60
auth    SHA256
cipher  AES-256-CBC
client-to-client
keepalive 10 30
comp-lzo
max-clients 10
user nobody
group nogroup
persist-key
persist-tun
log /var/log/vpn11-server.log
verb 3
mute 20

ืงืœื™ืขื ื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข:

# cat client.conf

client
dev tun
proto udp
ca      "/home/vpn11-srv/ca.crt"
cert    "/home/vpn11-srv/client1.crt"
key     "/home/vpn11-srv/client1.key"
tls-client
tls-auth "/home/vpn11-srv/ta.key" 1
auth SHA256
cipher AES-256-CBC
auth-nocache
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
log /var/log/vpn11-clent.log
verb 3
mute 20
ping 10
ping-exit 30

ืกืขืจื˜ื™ืคื™ืงืึทืฅ ื–ืขื ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื ื™ืฆืŸ ื“ืขื ืึทืจื˜ื™ืงืœ.
ืœื•ื™ืคืŸ ื“ื™ ืฉืจื™ืคื˜:

# ./vpn11.sh

ื“ื•ืจืš ืขืจืฉื˜ืขืจ ืžืื›ืŸ ืขืก ืขืงืกืขืงื•ื˜ืึทื‘ืœืข

# chmod +x vpn11.sh

ืื•ื™ืฃ ื“ื™ ืกืžืึทืจื˜ืคืึธื ืข ื–ื™ื™ึทื˜

ื“ื•ืจืš ื™ื ืกื˜ืึธืœื™ื ื’ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ OpenVPN ืคึฟืึทืจ ืึทื ื“ืจื•ื™ื“, ื ืึธืš ืงืึทืคึผื™ื“ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข, ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื“ ืขืก, ืขืก ืคืืจืงืขืจื˜ ืื•ื™ืก ื•ื•ื™ ื“ืึธืก:
ืื™ืš ื˜ืฉืขืง ืžื™ื™ืŸ ืื™ืžืขื™ืœ ืื•ื™ืฃ ืžื™ื™ืŸ ืกืžืึทืจื˜ืคืึธื ืขืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ
ืื™ืš ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ืคึผืึธืจื˜ ื ื•ืžืขืจ ืื™ืŸ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืกืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ
ืื™ืš ืงืึทื˜ืขืจ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ืคืึทืจื‘ื™ื ื“ืŸืคืœื™ืกื ื“ื™ืง ืึท VPN ืกืขืจื•ื•ืขืจ ื”ื™ื ื˜ืขืจ ื“ื™ NAT โ€‹โ€‹ืคื•ืŸ ื“ื™ ืฉืคึผื™ื™ึทื–ืขืจ

ื‘ืฉืขืช ืฉืจื™ื™ื‘ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ื˜ืจืึทื ืกืคืขืจื“ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืžื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืฆื• ื“ื™ Raspberry Pi 3 ืื•ืŸ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ืœื•ื™ืคืŸ ื“ื™ ื’ืื ืฆืข ื–ืึทืš ืื•ื™ืฃ ืึท ืœื˜ืข ืžืึธื“ืขื, ืึธื‘ืขืจ ืขืก ื”ืื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ! ื‘ืึทืคึฟืขืœ ืจืขื–ื•ืœื˜ืึทื˜

# stun stun.ekiga.net -p 11111

STUN ืงืœื™ืขื ื˜ ื•ื•ืขืจืกื™ืข 0.97
ืขืจืฉื˜ื™ืง: ืื•ืžืึธืคึผื”ืขื ื’ื™ืง ืžืึทืคึผื™ื ื’, ืคึผืึธืจื˜ ืึธืคืขื ื’ื™ืง ืคึฟื™ืœื˜ืจื™ืจ, ื˜ืจืึทืค - ืคึผืึธืจื˜, ื”ืึทื™ืจืคึผื™ืŸ
ืฆื•ืจื™ืงืงื•ืžืขืŸ ื•ื•ืขืจื˜ ืื™ื– 0x000006

ื•ื•ืขืจื˜ ืคึผืึธืจื˜ ืึธืคืขื ื’ื™ืง ืคื™ืœื˜ืขืจ ื”ืื˜ ื ื™ืฉื˜ ืœืึธื–ืŸ ื“ื™ ืกื™ืกื˜ืขื ืฆื• ืึธื ื”ื™ื™ื‘ืŸ.
ืึธื‘ืขืจ ื“ืขืจ ื”ื™ื™ื ืฉืคึผื™ื™ึทื–ืขืจ ืขืจืœื•ื™ื‘ื˜ ื“ื™ ืกื™ืกื˜ืขื ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืื•ื™ืฃ ื“ื™ Raspberry Pi 3 ืึธืŸ ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ.
ืื™ืŸ ืงืึทื ื“ื–ืฉืึทื ื’ืงืฉืึทืŸ ืžื™ื˜ ืึท ื•ื•ืขื‘ืงืึทื, ืžื™ื˜ VLC ืคึฟืึทืจ
ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท RTSP ื˜ื™ื™ึทืš ืคึฟื•ืŸ ืึท ื•ื•ืขื‘ืงืึทื

$ cvlc v4l2:///dev/video0:chroma=h264 :input-slave=alsa://hw:1,0 --sout '#transcode{vcodec=x264,venc=x264{preset=ultrafast,profile=baseline,level=31},vb=2048,fps=12,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{sdp=rtsp://10.2.0.1:8554/}' --no-sout-all --sout-keep

ืื•ืŸ ื•ื•ืœืง ืื•ื™ืฃ ืึท ืกืžืึทืจื˜ืคืึธื ืข ืคึฟืึทืจ ื•ื•ื™ื•ื™ื ื’ (ืกื˜ืจื™ื rtsp://10.2.0.1:8554/), ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ื’ื•ื˜ ื•ื•ื™ื™ึทื˜ ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขื, ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ื™ื ืกื˜ืึทืœื™ืจืŸ ืกืึทืžื‘ืึท, ืžืึทืจืฉืจื•ื˜ ืคืึทืจืงืขืจ ื“ื•ืจืš ื•ื•ืคึผืŸ, ืจื™ืžืึธื•ื˜ืœื™ ืงืึธื ื˜ืจืึธืœ ื“ื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืื•ืŸ ืคื™ืœ. ืžืขืจ...

ืจืขื–ื•ืœื˜ืึทื˜

ื•ื•ื™ ืคื™ืจ ื”ืื˜ ื’ืขื•ื•ื™ื–ืŸ, ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืึท ื•ื•ืคึผืŸ ืกืขืจื•ื•ืขืจ, ืื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ืึธืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืคึฟืึทืจ ื•ื•ืึธืก ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทืฆืึธืœืŸ, ืคึผื•ื ืงื˜ ื•ื•ื™ ืคึฟืึทืจ ืึท ืจืขื ื˜ืึทื“ ื•ื•ืคึผืก / ื•ื•ื“ืก. ืื‘ืขืจ ืขืก ืึทืœืข ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ืขืจ ืฉืคึผื™ื™ึทื–ืขืจ. ื“ืึธืš, ืื™ืš ื’ืขื•ื•ืืœื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืžืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ืื•ืŸ ื˜ื™ื™ืคึผืก ืคื•ืŸ NAT ื’ืขื ื™ืฆื˜, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ืึธืจ ื“ืขืจ ืึธื ื”ื™ื™ื‘ ...
ื’ื•ื˜ ื’ืœื™ืง!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’