áá»áœááºá¯ááºáá¡áááºáááºáá±á¬ááºááŸá¯áá±ážáá°á NAT (á¡ááŒá°áá±á¬áẠIP ááááºá
á¬ááá«áá²) á NAT áá±á¬ááºááœááºááŸá VPN áá¬áá¬ááᯠáá»áœááºá¯áẠáááºááá¯á·áááºáááºááá¯ááºáá¯á¶á¡ááŒá±á¬ááºáž áá±á¬ááºážáá«ážáá
áºáá¯ááºá áá»ááºáá»ááºáž booking áá¯ááºáá«áá
á± á€á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá
áœááºážáá±á¬ááºáááºááẠááá·áºáááºáá±á¬ááºááŸá¯áá±ážáá°á¡áá¯á¶ážááŒá¯ááá·áº NAT á¡áá»áá¯ážá¡á
á¬ážá¡ááŒáẠrouter áá±á«áºááœááºáááºáž ááá¯ááºááá¯ááºáá°áááºáá«áááºá.
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá Android á
áááºáá¯ááºážá០áá»áœááºá¯ááºáá¡áááºááœááºááŒá°áá¬ááá¯á· áá»áááºáááºááẠááá¯á¡ááºáááºá á
ááºáá
á¹á
ááºážááŸá
áºáá¯áá¯á¶ážááᯠáá¶á·ááá¯ážáá±ážáá° NATs áá»á¬ážááŸáá
áºááá·áº á¡ááºáá¬áááºááá¯á· áá»áááºáááºáá¬ážááá·áºá¡ááŒáẠááœááºáá»á°áá¬ááá¯áááºáž NATs áá»áááºáááºááŸá¯áá»á¬ážááŒá
áºááá·áº á¡áááºáá±á¬ááºáá±á¬ááºáá¬ááŸáááá·áº áá»áááºáááºáá¬ážáááºá
á¡ááŒá°áá±á¬áẠIP ááááºá
á¬áá«ááá·áº ááŸá¬ážáááºážáá¬ážáá±á¬ VPS/VDS ááᯠá¡áá¯á¶ážááŒá¯á ááá¹ááááºá¡á
á®á¡á
á¥áºááᯠáá¶á·ááá¯ážáá±ážáá°áá¶á០á¡ááŒá°áá±á¬áẠIP ááááºá
á¬ááᯠááŸá¬ážáááºážááŒááºážá¡á¬áž á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá
áœá¬ááŒáá·áº ááá·áºááœááºážá
ááºážá
á¬ážááŒááºážáááŒá¯áá«á
ááá·áºááœááºážá
ááºážá
á¬ážááŒááºážá
$ stun stun.sipnet.ru
ááááºááᯠáááŸááá²á·áááº
STUN client áá¬ážááŸááºáž 0.97
áá°ááááºáž- á¡ááŸá®á¡ááá¯áááºážáá±á¬ááŒá±áá¯á¶ááœá²ááŒááºážá á¡ááŸá®á¡ááá¯áááºážáá±á¬á á áºáá¯ááºááŒááºážá áá»áááºážááá¯á·ááºá áá¶áááºááŸááºáá«áááºá
ááŒááºáá¬áááºááá¯áž 0x000002
á¡áá¹ááá¬áá¬áá¬ááŒááºáá»ááº
Independent Mapping - ááœááºáááºáá±á¬ááŒá±áá¯á¶ááœá²ááŒááºážá
Independent Filter - áá®ážááŒá¬ážá
á
áºáá¯ááºááŸá¯
random port - áá»áááºážááááºáááºáž
áá¶áááºááŸááºááẠ- áá¶ááŸááºáá
áºáá¯ááŸááááá·áºáááºá
áá»áœááºá¯ááºá PC ááœáẠá¡áá¬ážáá° command ááᯠrun áááºážá áá»áœááºá¯ááºááá«áááº-
STUN client áá¬ážááŸááºáž 0.97
á¡ááá- á¡ááŸá®á¡ááá¯áááºážáá±á¬ááŒá±áá¯á¶ááœá²ááŒááºážá ááááºáááºážááŸá®ááá¯ááá·áº á á áºáá¯ááºááŒááºážá áá»áááºážááá¯á·ááºá áá¶áááºááŸááºáá«áááºá
ááŒááºáá¬áááºááá¯áž 0x000006
Port Dependent Filter - ááááºáááºážááŸá®ááá¯ááá·áº á
á
áºáá¯ááºááŸá¯
command output áááááºáá»á¬ážáááœá¬ááŒá¬ážáá»ááºááŸá¬ home router áááºá¡ááºáá¬áááºá០packet áá»á¬ážááá¯áá¯ááºááœáŸáá·áºááŒááºážáá¯ááºáááºážá
ááºá¡ááœáẠ"áááºážááá¶á·ááá¯ážáá°áá®ááŸá¯" ááá¯ááŒá¯áá¯ááºáá±ááŒá±á¬ááºážááœáŸááºááŒáá±áááº; ááœááºáá»á°áá¬ááŸá command ááá¯áá¯ááºáá±á¬ááºáá±á¬á¡áá«áááºážáááºáááºááŸá¬ážáááºá
stun stun.sipnet.ru -p 11111 -v
ááááºááᯠááá²á·áááº
...
MappedAddress = XX.1XX.1X4.2XX:4398
...
á€á¡ááá¯ááºá¡ááá·áºááœáẠáááºááẠUDP áá±á¬ááºážááá¯áá»ááºáá
áºáᯠáá±ážááá¯á·áá«á UDP á
ááºááŸááºááᯠá¡áá»áááºá¡áááºááŒá¬ ááœáá·áºáá¬ážáááºááá¯áá»áŸáẠ(á¥ááá¬- netcat XX.1XX.1X4.2XX 4398 -u)á ááá¯á·áá±á¬áẠáá±á¬ááºážááá¯áá»ááºááŒá
áºááá·áº á¡áááºáá±á¬ááºáá¬áá®ááá¯á· áááºážááᯠáá¯ááºáá±á¬ááºáá±ááá·áº TCPDump á០á¡áááºááŒá¯áá²á·áá±á¬áºáááºáž áá±á¬ááºážááá¯áá»ááºááẠááœááºáá»á°áá¬ááá¯á· ááá±á¬ááºáá²á·áá« - Router áá±á«áºááŸá NAT áá¬áá¬ááŒááºááá¯áá°á¡áá±ááŒáá·áº IPtables ááẠáááºážááᯠááŒá¯ááºáá»áá²á·áááºá
ááá¯á·áá±á¬áº 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 ááááºá
á¬ááŸáááᯠá¡ááºáá¬áááºá០áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááºáá¶ááá¯ááºáá²á·áááºá á€á¡ááá¯ááºá¡ááá·áºááœááºá áá»áœááºá¯ááºááẠá
áááºáá¯ááºážáá±á«áºááŸá ááŒááºá IP ááááºá
á¬ááŸáá·áº ááá¯á·áẠ(XX.11111XX.1X1XX:4.2) ááᯠUDP/4398 ááááºáááºážááᯠáá¬ážáá±á¬ááºááŒá®áž (ááááºá ááŒááºáááºáááºááŸááºáá¬ážáááº) OpenVPN-áá¬áá¬ááᯠááœáá·áºááŒá®áž á
áááºáá¯ááºážá០á¡á±á¬ááºááŒááºá
áœá¬áá»áááºáááºáá¬ážáááºá ááœááºáá»á°áá¬á ááá¯á·áá±á¬áºá€á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááœááºááŒá¿áá¬áá
áºáá¯áá±á«áºáá±á«ááºáá²á·áááº- OpenVPN áááá¯ááºážááá·áºáá¬áá¬ááŸáá·áºáá»áááºáááºááá·áºá¡áá»áááºá¡áá UDP ááá¯áááºáááºááááºážááááºážáá¬ážáááºááá¯á¡ááºáááºá STUN client ááá¯á¡áá«á¡á¬ážáá»á±á¬áºá
áœá¬ááœáá·áºááŒááºážáááœá±ážáá»ááºááŸá¯ááá¯áá»áœááºáá±á¬áºáááŒáá¯ááºáá« - áááºááá¯áááŒá¯ááºážáá®ážáá»ááºáá«á STUN áá¬áá¬áá»á¬ážá
áááºááœáá·áºááá¯áááºáž ááááá¬ážáááááº"
Hairpinning ááẠNAT áá±á¬ááºááœááºááŸá áá±áááœááºáž ááœááºáááºáá áºáá¯á០á ááºáá áºáá¯á¡á¬áž router á ááŒááºáááááºá á¬ááœáẠáá°áá®áá±á¬ááœááºáááºááŸá á¡ááŒá¬ážá ááºáá áºáá¯á¡á¬áž áááºáá±á¬ááºá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá
ááááºá¡áá±áá²á·á UDP session áá
áºáá¯ááááºážááááºážáá¬ážááá²á· ááŒá¿áá¬ááᯠáá»áœááºáá±á¬áº ááá¯ážááá¯ážááŸááºážááŸááºážáá² ááŒá±ááŸááºážáá²á·ááẠ- client ááᯠserver áá²á· áá°áá®áá²á· computer áá±á«áºááŸá¬ áááºáá²á·áááºá
á€áá²á·ááá¯á· áá¯ááºáá±á¬ááºáá²á·áááº-
- local port 11111 ááœáẠSTUN client ááᯠá áááºáá²á·áááºá
- ááŒááºá IP ááááºá á¬ááŸáá·áº ááá¯á·áẠXX.1XX.1X4.2XX:4398 ááŒáá·áº áá¯á¶á·ááŒááºááŸá¯ááᯠáááºáá¶áááŸááá²á·áááºá
- á áááºáá¯ááºážáá±á«áºááœáẠááŒááºáááºáááºááŸááºáá¬ážáá±á¬ ááŒááºá IP ááááºá á¬ááŸáá·áº á¡á®ážáá±ážááºááá¯á· ááá¯á·ááºááŒáá·áº áá±áá¬áá±ážááá¯á·ááŒááºáž (á¡ááŒá¬ážáááºáá±á¬ááºááŸá¯áá áºáá¯áᯠááŒá áºááá¯ááºáááº)
- UDP/11111 á¡áá±á«ááºááᯠáá¬ážáá±á¬ááºááá·áº ááœááºáá»á°áá¬ááœáẠOpenVPN áá¬áá¬ááᯠá áááºáá²á·áááºá
- áá»áááºáááºááŸá¯á¡ááœáẠXX.1XX.1X4.2XX:4398 áá¯áááºááŸááºáá¬ážáá±á¬ ááœááºáá»á°áá¬áá±á«áºááœáẠOpenVPN áááá¯ááºážááá·áºááᯠá áááºáá²á·áááº
- áá»áááºáááºááẠIP ááááºá á¬ááŸáá·áº ááááºáááºážááᯠááœáŸááºááŒáá±á¬ OpenVPN áááá¯ááºážááá·áºááᯠáááºááá·áºá¡áá»áááºááœááºáááᯠá áááºáá¯ááºážááœáẠá áááºááœáá·áºááŸá áºáá²á·ááẠ(áá»áœááºá¯ááºáá¡ááŒá±á¡áá±ááœáẠIP ááááºá á¬áááŒá±á¬ááºážáá²áá«)
á€áááºážááŒáá·áº áá»áœááºá¯ááºáá
áááºáá¯ááºážá០áá»áœááºá¯ááºáááœááºáá»á°áá¬ááŸáá·áº áá»áááºáááºááá¯ááºáá²á·áá«áááºá á€á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠááá·áºá¡á¬áž áááºááá·áº OpenVPN á¡áá¯á¶ážááŒá¯áá°ááá¯áááᯠáá»áááºáááºááá¯ááºá
á±áá«áááºá
á¡áá±á·á¡áá»áá·áº
áááºááá¯á¡ááºáá«ááááºá·áááº:
# apt install openvpn stun-client sendemail
Script ááŸá áºáá¯á ááœá²á·á ááºážááŸá¯ááá¯ááºá¡áá»áá¯á·ááᯠáá±ážáá¬ážááŒá®áž ááá¯á¡ááºáá±á¬ áááºááŸááºáá»á¬ážááᯠáá¯ááºáá±ážááŒá®áž (á áááºáá¯ááºážáá±á«áºááœáẠáá¯á¶ážá áœá²áá°ááẠáááºááŸááºáá»á¬ážááŸáá·áºáᬠá¡áá¯ááºáá¯ááºáá±á¬ááŒá±á¬áá·áº) 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
á¡á®ážáá±ážááºááŒáá·áº áá±áá¬áá±ážááá¯á·ááŒááºážá¡ááœáẠScript
# 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
á áááºáá¯ááºážáááºááŸá¬
áá»áŸá±á¬ááºááœáŸá¬ááá¯ááá·áºááœááºážááŒááºážááŒáá·áº Android á¡ááœáẠOpenVPNconfiguration ááá¯ááºá áááºááŸááºáá»á¬ážááᯠáá°ážáá°ááŒá®áž áááºážááᯠconfigure áá¯ááºááŒááºážááŒáá·áºá áááºážááẠá€áá²á·ááá¯á· ááœááºáá¬áááº-
áá»áœááºá¯ááºáá
áááºáá¯ááºážáá±á«áºááœááºáá»áœááºá¯ááºáá¡á®ážáá±ážááºááá¯á
á
áºáá±ážáá«á
áááºáááºáá»á¬ážááœáẠáá»áœááºá¯ááºááẠááááºáááºážáá¶áá«ááºááᯠáááºážááŒááºáááºá
áá« client ááá¯ááœáá·áºááŒá®ážáá»áááºáááºáá«á
á€áá±á¬ááºážáá«ážááá¯áá±ážáá±á
ááºááœááºá áá»áœááºá¯ááºáááœááºááŒá°áá¬ááŸááœá²á·á
ááºážáá¯á¶ááᯠRaspberry Pi 3 ááá¯á·ááœáŸá²ááŒá±á¬ááºážááŒá®áž LTE modem ááœááºá¡áá¬á¡á¬ážáá¯á¶ážááá¯áá¯ááºáá±á¬ááºáááºááŒáá¯ážá
á¬ážáá±á¬áºáááºážá¡áá¯ááºáááŒá
áºáá«á á¡áááá·áºááááº
# stun stun.ekiga.net -p 11111
STUN client áá¬ážááŸááºáž 0.97
á¡ááá- á¡ááŸá®á¡ááá¯áááºážáá±á¬ááŒá±áá¯á¶ááœá²ááŒááºážá ááááºáááºážááŸá®ááá¯ááá·áº á á áºáá¯ááºááŒááºážá áá»áááºážááá¯á·ááºá áá¶áááºááŸááºáá«áááºá
ááŒááºáá¬áááºááá¯áž 0x000006
á¡ááááºáá«áá» Port Dependent Filter á
áá
áºááᯠá
áááºááœáá·áºáááŒá¯áá²á·áá«á
ááá¯á·áá±á¬áº á¡áááºáááºáá±á¬ááºááŸá¯áá±ážáá°á á¡ááá¯áá«á
áá
áºááᯠRaspberry Pi 3 ááœáẠááŒá¿áá¬áá
áºá
á¯á¶áá
áºáá¬áááŸááá² á
áááºááœáá·áºááŒá¯áá²á·áááºá
webcam ááŸáá·áºááœá²áááºá VLC for
áááºáááºááá¬á០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 áá¬áá¬ááᯠá
á¯á
ááºážáááºá ááŸá¬ážáááºážáá¬ážáá±á¬ VPS/VDS áá²á·ááá¯á· áááºáá±ážáá±á¬ááºááẠááá¯á¡ááºááá·áº ááŒááºá IP ááááºá
á¬ááá«áá² áááºáá¯ááºáá±á¬ááºááá¯ááºáááºá áá«áá±ááá·áº á¡á¬ážáá¯á¶ážá áá¶á·ááá¯ážáá±ážáá°áá±á«áºááŸá¬ áá°áááºáá«áááºá áá¯ááºáá«áááºá á¡áá¯á¶ážááŒá¯áá²á· ááá°áá®áá²á· áá¶á·ááá¯ážáá±ážáá°ááœá±áá²á· NAT á¡áá»áá¯ážá¡á
á¬ážááœá±á¡ááŒá±á¬ááºáž áá±á¬ááºááẠá¡áá»ááºá¡áááºááœá± áááºááá»ááºáá±ááá·áº áá«á á¡á
áá²...
СпаÑОбПзавМОЌаМОе!
source: www.habr.com