เปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™

เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบ‚เป‰เบญเบเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPN เบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบšเป‰เบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ (เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบชเบตเบ‚เบฒเบง). เปƒเบซเป‰เบ‚เป‰เบญเบเบˆเบญเบ‡เบ—เบฑเบ™เบ—เบต: เบงเปˆเบฒ เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เป‚เบ”เบเบเบปเบ‡เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ NAT เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš router.
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ” Android เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป€เบฎเบทเบญเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เบญเบธเบ›เบฐเบเบญเบ™เบ—เบฑเบ‡เบชเบญเบ‡เปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เป‚เบ”เบเบœเปˆเบฒเบ™ NATs เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™, เบšเบงเบเบเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบœเปˆเบฒเบ™ router เป€เบฎเบทเบญเบ™, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ NATs.
เป‚เบ„เบ‡เบเบฒเบ™เบ„เบฅเบฒเบชเบชเบดเบเบ—เบตเปˆเปƒเบŠเป‰ VPS / VDS เบ—เบตเปˆเป€เบŠเบปเปˆเบฒเบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบชเบตเบ‚เบฒเบง, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบŠเบปเปˆเบฒเบ—เบตเปˆเบขเบนเปˆ IP เบชเบตเบ‚เบฒเบงเบˆเบฒเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™, เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡.
เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡ เบ›เบฐเบชเบปเบšเบเบฒเบ™เบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡เบเบฑเบš STUNs เปเบฅเบฐ NATs เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฎเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™ router เป€เบฎเบทเบญเบ™เบ—เบตเปˆเปƒเบŠเป‰ OpenWRT firmware:

$ stun stun.sipnet.ru

เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบœเบปเบ™โ€‹:

เบฅเบนเบเบ„เป‰เบฒ STUN เบฅเบธเป‰เบ™ 0.97
เบ›เบฐเบ–เบปเบก: เปเบœเบ™เบ—เบตเปˆเป€เบญเบเบฐเบฅเบฒเบ”, เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เป€เบญเบเบฐเบฅเบฒเบ”, เบžเบญเบ”เบชเบธเปˆเบก, เบˆเบฐ hairpin
เบกเบนเบ™เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เปเบกเปˆเบ™ 0x000002

เบเบฒเบ™เปเบ›เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบท:
เปเบœเบ™เบ—เบตเปˆเป€เบญเบเบฐเบฅเบฒเบ” - เปเบœเบ™เบ—เบตเปˆเป€เบญเบเบฐเบฅเบฒเบ”
Independent Filter - เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เป€เบญเบเบฐเบฅเบฒเบ”
port random - เบžเบญเบ”เบชเบธเปˆเบก
will hairpin - เบˆเบฐโ€‹เบกเบต hairpin เป„เบ”เป‰โ€‹
เปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบขเบนเปˆเปƒเบ™ PC เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบš:

เบฅเบนเบเบ„เป‰เบฒ STUN เบฅเบธเป‰เบ™ 0.97
เบ›เบฐเบ–เบปเบก: เปเบœเบ™เบ—เบตเปˆเป€เบญเบเบฐเบฅเบฒเบ”, Port Dependent Filter, เบžเบญเบ”เบชเบธเปˆเบก, เบˆเบฐ hairpin
เบกเบนเบ™เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เปเบกเปˆเบ™ 0x000006

Port dependent Filter - เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบžเบญเบ”
เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เป„เบ”เป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ router เป€เบฎเบทเบญเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ "เบเบฒเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™" เบ‚เบญเบ‡เบ•เบปเบ™เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบˆเบฒเบเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”; เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบต:

stun stun.sipnet.ru -p 11111 -v

เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

...
MappedAddress = XX.1XX.1X4.2XX:4398
...

เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เบเบญเบ‡เบ›เบฐเบŠเบธเบก UDP เป„เบ”เป‰เป€เบ›เบตเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบงเบฅเบฒ, เบ–เป‰เบฒเปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป UDP (เบ•เบปเบงเบขเปˆเบฒเบ‡: netcat XX.1XX.1X4.2XX 4398 -u), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบกเบฒเบฎเบญเบ” router เป€เบฎเบทเบญเบ™, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™. เบขเบทเบ™เบขเบฑเบ™เป‚เบ”เบ TCPDump เปเบฅเปˆเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบกเบฑเบ™, เปเบ•เปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบšเปเปˆเบกเบฒเบฎเบญเบ”เบ„เบญเบกเบžเบดเบงเป€เบ•เบต - IPtables, เปƒเบ™เบ–เบฒเบ™เบฐเบ™เบฑเบเปเบ› NAT เปƒเบ™ router, เบซเบผเบธเบ”เบฅเบปเบ‡เบกเบฑเบ™.
เปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™
เปเบ•เปˆเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป UDP เป„เบ”เป‰เบœเปˆเบฒเบ™ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰เปƒเบซเป‰เบ„เบงเบฒเบกเบซเบงเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ router เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบ‚เบ”เบญเปเบฒเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ UDP / 11111 port เบเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบต:

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-server (เบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰) เบŸเบฑเบ‡เบžเบญเบ” UDP/11111, เบŠเบตเป‰เบšเบญเบเบ—เบตเปˆเบขเบนเปˆ IP เบžเบฒเบเบ™เบญเบเปเบฅเบฐเบžเบญเบ” (XX.1XX.1X4.2XX:4398) เปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เป„เบ›เบซเบฒ. เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบต. เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบกเบตเบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™: เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒเบเบญเบ‡เบ›เบฐเบŠเบธเบก UDP เบˆเบปเบ™เบเปˆเบงเบฒเบฅเบนเบเบ„เป‰เบฒ OpenVPN เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ; เบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบฅเบนเบเบ„เป‰เบฒ STUN เป€เบ›เบฑเบ™เป„เบฅเบเบฐ - เบ‚เป‰เบญเบเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบชเบเป€เบงเบฅเบฒเป‚เบซเบผเบ”. เป€เบŠเบตเบšเป€เบงเบต STUN.
เบ‚เป‰เบญเบเบเบฑเบ‡เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒ "will hairpin - เบˆเบฐโ€‹เบกเบต hairpin เป„เบ”เป‰โ€‹", เบฎเบนเบšเปเบšเบšเบ™เบตเป‰

Hairpinning เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เปœเบถเปˆเบ‡เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ”เบฝเบงเบเบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡ router.

เปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบฎเบฑเบเบชเบฒเบเบญเบ‡เบ›เบฐเบŠเบธเบก UDP - เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบงเบฅเบนเบเบ„เป‰เบฒเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.
เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเบ™เบตเป‰:

  • เป€เบ›เบตเบ”เบ•เบปเบงเบฅเบนเบเบ„เป‰เบฒ STUN เปƒเบ™เบžเบญเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ 11111
  • เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡เบ”เป‰เบงเบเบ—เบตเปˆเบขเบนเปˆ IP เบžเบฒเบเบ™เบญเบ เปเบฅเบฐเบžเบญเบ” XX.1XX.1X4.2XX:4398
  • เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบžเบฒเบเบ™เบญเบเปเบฅเบฐเบžเบญเบ”เป„เบ›เบซเบฒเบญเบตเป€เบกเบฅเปŒ (เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰) เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบขเบนเปˆเปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”
  • เป€เบ›เบตเบ”เป€เบŠเบตเบšเป€เบงเบต OpenVPN เปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบŸเบฑเบ‡เบžเบญเบ” UDP/11111
  • เป€เบ›เบตเบ”เบฅเบนเบเบ„เป‰เบฒ OpenVPN เปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‚เบ”เบเบฅเบฐเบšเบธ XX.1XX.1X4.2XX:4398 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
  • เป„เบ”เป‰เบ—เบธเบเป€เบงเบฅเบฒเป€เบ›เบตเบ”เบฅเบนเบเบ„เป‰เบฒ OpenVPN เปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เบ—เบตเปˆเบŠเบตเป‰เบšเบญเบเบ—เบตเปˆเบขเบนเปˆ IP เปเบฅเบฐเบžเบญเบ” (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ—เบตเปˆเบขเบนเปˆ IP เบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡) เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™
เบงเบดเบ—เบตเบ™เบตเป‰เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบนเบเบ„เป‰เบฒ OpenVPN เปƒเบ”เป†.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒ:

# apt install openvpn stun-client sendemail

เป‚เบ”เบเป„เบ”เป‰เบ‚เบฝเบ™เบชเบฐเบ„เบดเบšเบชเบญเบ‡เบชเบฒเบกเบญเบฑเบ™, เบชเบญเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปเบฅเบฐเบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™ (เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบฅเบนเบเบ„เป‰เบฒเปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™), เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ OpenVPN.

script เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบต

# 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 เบชเปเบฒเบฅเบฑเบš Android, เป‚เบ”เบเป„เบ”เป‰เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปเบฅเบฐ configured เบกเบฑเบ™, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบ™เบตเป‰:
เบ‚เป‰เบญเบเบเบงเบ”เป€เบšเบดเปˆเบ‡เบญเบตเป€เบกเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™
เบ‚เป‰เบญเบเปเบเป‰เป„เบ‚เป€เบฅเบเบžเบญเบ”เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™
เบ‚เป‰เบญเบเป€เบ›เบตเบ”เบ•เบปเบงเบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเปˆเบ™เป€เบŠเบตเบšเป€เบงเบต VPN เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡ NAT เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป‚เบญเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบˆเบฒเบเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ›เปƒเบชเปˆ Raspberry Pi 3 เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป‚เบกเป€เบ”เบฑเบก LTE, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบœเบปเบ™! เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡

# stun stun.ekiga.net -p 11111

เบฅเบนเบเบ„เป‰เบฒ STUN เบฅเบธเป‰เบ™ 0.97
เบ›เบฐเบ–เบปเบก: เปเบœเบ™เบ—เบตเปˆเป€เบญเบเบฐเบฅเบฒเบ”, Port Dependent Filter, เบžเบญเบ”เบชเบธเปˆเบก, เบˆเบฐ hairpin
เบกเบนเบ™เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เปเบกเปˆเบ™ 0x000006

เบกเบนเบ™เบ„เปˆเบฒ Port Dependent Filter เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
เปเบ•เปˆเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบšเป‰เบฒเบ™เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Raspberry Pi 3 เป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปƒเบ”เป†.
เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบชเบปเบกโ€‹เบ—เบปเบšโ€‹เบเบฑเบš webcam เป€เบ›เบฑเบ™โ€‹, เบกเบต 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

เปเบฅเบฐ VLC เปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡ (stream rtsp://10.2.0.1:8554/), เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบปเป‰เบฒเบฅเบฐเบงเบฑเบ‡เบงเบดเบ”เบตเป‚เบญเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบ—เบตเปˆเบ”เบต, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Samba, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบœเปˆเบฒเบ™ VPN, เบ„เบงเบšเบ„เบธเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเปเบฅเบฐเบซเบผเบฒเบ. เป€เบžเบตเปˆเบกเป€เบ•เบตเบก...

เบชเบฐเบซเบฅเบธเบš

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™, เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPN, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบžเบฒเบเบ™เบญเบเบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบˆเปˆเบฒเบ, เบ„เบทเบเบฑเบ™เบเบฑเบš VPS / VDS เบ—เบตเปˆเป€เบŠเบปเปˆเบฒ. เปเบ•เปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™. เปเบ™เปˆเบ™เบญเบ™, เบ‚เป‰เบญเบเบขเบฒเบเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ NATs เบ—เบตเปˆเปƒเบŠเป‰, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ ...
เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™!

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™