web-dev-qa-db-ja.com

OpenVPNがリモートの場所から接続しない

地下室のLinuxマシンにOpenVPNをセットアップしました。

ローカルネットワークに接続している場合、Windows 8.1マシンから問題なく接続できます。

この例では、remote 192.168.0.111 1194を使用するように構成ファイルを設定しました

ローカルネットワークを離れるときは、その構成ファイルを次のように変更します。remote 63.xxx.x.xxx 119463.xxx.xx.xxは私のパブリックIPです。

ローカルネットワークの外にいると、接続できません。これが、外部ネットワークから接続するための最新の試行のログエントリです。

Mon Oct 06 13:59:54 2014 OpenVPN 2.3.4 i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on May  2 2014
Mon Oct 06 13:59:54 2014 library versions: OpenSSL 1.0.1g 7 Apr 2014, LZO 2.05
Mon Oct 06 13:59:54 2014 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Mon Oct 06 13:59:54 2014 Need hold release from management interface, waiting...
Mon Oct 06 13:59:55 2014 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Mon Oct 06 13:59:55 2014 MANAGEMENT: CMD 'state on'
Mon Oct 06 13:59:55 2014 MANAGEMENT: CMD 'log all on'
Mon Oct 06 13:59:55 2014 MANAGEMENT: CMD 'hold off'
Mon Oct 06 13:59:55 2014 MANAGEMENT: CMD 'hold release'
Mon Oct 06 13:59:55 2014 Socket Buffers: R=[65536->65536] S=[65536->65536]
Mon Oct 06 13:59:55 2014 UDPv4 link local: [undef]
Mon Oct 06 13:59:55 2014 UDPv4 link remote: [AF_INET]63.xxx.xx.xx:1194
Mon Oct 06 13:59:55 2014 MANAGEMENT: >STATE:1412625595,WAIT,,,
Mon Oct 06 14:00:55 2014 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Oct 06 14:00:55 2014 TLS Error: TLS handshake failed
Mon Oct 06 14:00:55 2014 SIGUSR1[soft,tls-error] received, process restarting
Mon Oct 06 14:00:55 2014 MANAGEMENT: >STATE:1412625655,RECONNECTING,tls-error,,
Mon Oct 06 14:00:55 2014 Restart pause, 2 second(s)
Mon Oct 06 14:00:57 2014 Socket Buffers: R=[65536->65536] S=[65536->65536]
Mon Oct 06 14:00:57 2014 UDPv4 link local: [undef]
Mon Oct 06 14:00:57 2014 UDPv4 link remote: [AF_INET]63.xxx.xx.xx:1194
Mon Oct 06 14:00:57 2014 MANAGEMENT: >STATE:1412625657,WAIT,,,

ファイアウォールの問題である可能性があります ですが、そのページの各箇条書きのポイントを何度も繰り返したので、問題を見つけることができません。

  • サーバーのネットワーク上の境界ファイアウォールが着信OpenVPNパケットをフィルターで除外しています(デフォルトでは、OpenVPNはUDPまたはTCPポートを使用します
    番号1194)。

私はルーターの設定を確認して再確認しました。ポート1194は間違いなく私のLinuxボックスに転送されるはずです...これが私のルーターのiptables設定です:

 > iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
drop       all  --  anywhere             63.xxx.xx.xx
ACCEPT     2    --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
DROP       tcp  --  anywhere             anywhere            tcp dpt:www
DROP       tcp  --  anywhere             anywhere            tcp dpt:https
DROP       tcp  --  anywhere             anywhere            tcp dpt:telnet
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ftp
DROP       tcp  --  anywhere             anywhere            tcp dpt:domain
DROP       tcp  --  anywhere             anywhere            tcp dpt:44401
DROP       tcp  --  anywhere             anywhere            tcp dpt:49431
DROP       udp  --  anywhere             anywhere            udp dpt:domain
DROP       udp  --  anywhere             anywhere            udp dpt:tftp
DROP       udp  --  anywhere             anywhere            udp dpt:1900
DROP       udp  --  anywhere             anywhere            udp dpt:37000
DROP       udp  --  anywhere             anywhere            udp dpt:38000
DROP       udp  --  anywhere             anywhere            udp dpts:5098:5100
DROP       udp  --  anywhere             anywhere            udp dpt:50032
DROP       udp  --  anywhere             anywhere            udp dpt:54008
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere            udp dpt:500
ACCEPT     esp  --  anywhere             anywhere
ACCEPT     ah   --  anywhere             anywhere
ACCEPT    !esp  --  anywhere             anywhere            MARK match 0x10000000/0x10000000
ACCEPT    !ah   --  anywhere             anywhere            MARK match 0x10000000/0x10000000
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:4567
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             224.0.1.60
ACCEPT     udp  --  anywhere             192.168.0.111       udp dpt:1194
ACCEPT     tcp  --  anywhere             192.168.0.111       tcp dpt:1194
ACCEPT     tcp  --  anywhere             192.168.0.111       tcp dpt:https
ACCEPT     udp  --  anywhere             192.168.0.17        udp dpt:51490
ACCEPT     udp  --  anywhere             192.168.0.25        udp dpt:53681
ACCEPT     udp  --  anywhere             192.168.0.111       udp dpt:1194
ACCEPT     tcp  --  anywhere             192.168.0.111       tcp dpt:1194
ACCEPT     udp  --  anywhere             192.168.0.111       udp dpt:https
ACCEPT     tcp  --  anywhere             192.168.0.111       tcp dpt:https
ACCEPT     tcp  --  anywhere             5.5.126.125         tcp dpt:15979
ACCEPT     udp  --  anywhere             192.168.0.22        udp dpt:16402
ACCEPT     all  --  anywhere             224.0.0.0/3
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-reply
ACCEPT     icmp --  anywhere             anywhere            icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere            icmp type 30
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
ACCEPT     tcp  --  anywhere             192.168.0.111       tcp dpt:www
ACCEPT     udp  --  anywhere             192.168.0.18        udp dpt:62558
ACCEPT     udp  --  anywhere             192.168.0.17        udp dpt:57874
ACCEPT     udp  --  anywhere             192.168.0.17        udp dpt:51621
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:58670
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:50209
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:60530
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:60285
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:59415
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:62603
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:52438
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:53919
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:62384
ACCEPT     tcp  --  anywhere             192.168.0.3         tcp dpt:35689
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:35689
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:55287
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:50487
ACCEPT     udp  --  anywhere             192.168.0.3         udp dpt:51697
urlfilter  tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST/NONE
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT    !esp  --  anywhere             anywhere            MARK match 0x10000000/0x10000000
ACCEPT    !ah   --  anywhere             anywhere            MARK match 0x10000000/0x10000000
DROP       udp  --  192.168.0.9          anywhere            udp dpt:l2tp
DROP       tcp  --  192.168.0.9          anywhere            tcp dpt:1723
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:5060:5061
ACCEPT     udp  --  anywhere             anywhere            udp dpts:5060:5061
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     udp  --  205.171.2.65         anywhere            udp dpt:domain
ACCEPT     udp  --  205.171.3.65         anywhere            udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:27167:27169
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:27164:27166
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:27161:27163
drop       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain drop (2 references)
target     prot opt source               destination
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
LOG        all  --  anywhere             anywhere            LOG level info prefix `firewall drop: '
DROP       all  --  anywhere             anywhere

Chain urlfilter (1 references)
target     prot opt source               destination
SKIPLOG    tcp  --  anywhere             anywhere            tcp dpt:www
QUEUE      tcp  --  anywhere             anywhere            tcp dpt:www

私のルーターはポート1194をLinuxボックスに転送するように思えます。同じボックスに問題なくポート80を転送することもできます。

私のISPがポート1194をブロックするのではなく、ポート80をブロックするのではないかと思います...

  • OpenVPNサーバーマシン自体で実行されているソフトウェアファイアウォールが、ポート1194で着信接続をフィルタリングしています。多くのOS
    構成されていない限り、デフォルトで着信接続をブロックします
    さもないと。

ローカルボックスでYastを使用して、Linuxマシンのポート1194を開きました。私は自分のローカルネットワークに接続している間にLinuxボックスに接続できるので、これは問題ではないと確信しています。 Linuxボックスのファイアウォールに問題があった場合、ローカルアドレスからも接続できません。

  • A NATサーバーのネットワーク上のゲートウェイには、OpenVPNサーバーの内部アドレスへのTCP/UDP 1194のポート転送ルールがありません
    機械。

これもルーターで適切に構成されていると確信しています。これがルーターのiptables nat設定です:

 > iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             224.0.0.0/3
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:4567
DNAT       udp  --  anywhere             anywhere            udp dpt:51697 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:50487 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:55287 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:35689 to:192.168.0.3
DNAT       tcp  --  anywhere             anywhere            tcp dpt:35689 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:62384 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:53919 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:52438 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:62603 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:59415 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:60285 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:60530 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:50209 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:58670 to:192.168.0.3
DNAT       udp  --  anywhere             anywhere            udp dpt:51621 to:192.168.0.17
DNAT       udp  --  anywhere             anywhere            udp dpt:57874 to:192.168.0.17
DNAT       udp  --  anywhere             anywhere            udp dpt:62558 to:192.168.0.18
DNAT       tcp  --  anywhere             anywhere            tcp dpt:www to:192.168.0.111
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:webcache redir ports 80
DNAT       udp  --  anywhere             anywhere            udp dpt:57106 to:192.168.0.22:16402
DNAT       tcp  --  anywhere             anywhere            tcp dpt:15980 to:5.5.126.125:15979
DNAT       tcp  --  anywhere             anywhere            tcp dpt:https to:192.168.0.111
DNAT       udp  --  anywhere             anywhere            udp dpt:https to:192.168.0.111
DNAT       tcp  --  anywhere             anywhere            tcp dpt:1194 to:192.168.0.111
DNAT       udp  --  anywhere             anywhere            udp dpt:1194 to:192.168.0.111
DNAT       udp  --  anywhere             anywhere            udp dpt:53681 to:192.168.0.25
DNAT       udp  --  anywhere             anywhere            udp dpt:51490 to:192.168.0.17
DNAT       tcp  --  anywhere             anywhere            tcp dpt:https to:192.168.0.111
DNAT       tcp  --  anywhere             anywhere            tcp dpt:1194 to:192.168.0.111
DNAT       udp  --  anywhere             anywhere            udp dpt:1194 to:192.168.0.111

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
  • OpenVPNクライアント構成の構成ファイルに正しいサーバーアドレスがありません。クライアント構成ファイルのリモートディレクティブは、サーバー自体またはサーバーネットワークのゲートウェイのパブリックIPアドレスをポイントする必要があります。

接続しているこのIPをチェック、ダブルチェック、トリプルチェックしましたが、正しいことです。

  • 別の考えられる原因は、Windowsファイアウォールがopenvpn.exeバイナリへのアクセスをブロックしていることです。ホワイトリストに登録する必要があるかもしれません(追加してください)
    「例外」リストに追加)OpenVPNが機能するようにします。

私は自分のローカルネットワークから接続できるので、これが問題ではないと確信しています。私が間違っている? Windows 8.1は、リモートアドレスに接続しているときはバイナリをブロックしますが、ローカルアドレスに接続しているときはしませんか?これは私には非常にありそうにないようです...

編集-

これが私の設定ファイルです

##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server.     #
#                                            #
# This configuration can be used by multiple #
# clients, however each client should have   #
# its own cert and key files.                #
#                                            #
# On Windows, you might want to rename this  #
# file so it has a .ovpn extension           #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client client1

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
;remote 192.168.0.111 1194
remote 63.xxx.xx.xx 1194

# Choose a random Host from the remote
# list for load-balancing.  Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# Host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here.  See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\client1.crt"
key "C:\\Program Files\\OpenVPN\\config\\client1.key"

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
#  http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo yes

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20

auth-nocache
script-security 2
remote-cert-tls server

私が持っている接続の問題があるかもしれない理由を誰か他の考えがありますか?

EDIT2-これを使用してopenVPNを設定しました: http://en.opensuse.org/SDB:OpenVPN_Installation_and_Setup

Openvzもkvmも持っていないので私には適用されなかった「ファイアウォール設定」のセクションがあります。 yastを使用してSuSEfirewall2のポート1194を開きました

5
tmsimont

リモートの場所がほとんどの発信トラフィックをブロックしていました。特定の場所から機能させるには、ポート443(SSLポート)でOpenVPNを実行する必要がありました。リモートの場所が443をブロックすることはありません。

3
tmsimont

ゲートウェイトラフィックを転送するようにシステムに指示します。

$ sysctl -w net.ipv4.ip_forward=1
sysctl: permission denied on key 'net.ipv4.ip_forward'
[user@localhost udp]$ Sudo !!
Sudo sysctl -w net.ipv4.ip_forward=1
[Sudo] password for user:
net.ipv4.ip_forward = 1
[user@localhost udp]$
0
Jack