공용 인터넷을 통해 SMB 트래픽을 암호화하기 위해 Arch Linux 서버에서 OpenVPN 2.3.6-1을 구성하고 있습니다. Linux 가상 머신 클라이언트 중 하나에서 설정을 테스트 할 때 오류가 발생 TLS Error: TLS handshake failed
합니다.
나는 빨리 ( OpenVZ의 OpenVPN TLS 오류 : TLS 핸드 셰이크가 실패했습니다 (Google이 제안한 솔루션은 도움이되지 않음) ) 기본 UDP에서 TCP로 전환하려고 시도했지만 클라이언트가 연결 시간 초과를 반복적으로보고했습니다. 또한 암호 및 TLS 인증을 비활성화하려고 시도했지만 서버에서 오류가 발생했습니다 Assertion failed at crypto_openssl.c:523
. 두 경우 모두, 클라이언트 및 서버 구성 모두에 필요한 변경이 이루어졌습니다.
( https://wiki.archlinux.org/index.php/OpenVPN )의 지침에 따라 OpenVPN을 설정하고 ( https://wiki.archlinux.org/index.php/Create_a_Public_Key_Infrastructure_Using_the_easy-rsa_Scripts )를 눌러 키와 인증서를 만듭니다. 이 지침에서 벗어난 유일한 차이점은 내 컴퓨터 이름과 해당 키 / 인증서 파일 이름을 지정하는 것입니다.
인터넷을 통해 SMB 트래픽을 확보에 대해도 내 원래의 질문을 참조 : ( Samba 공유에 대한 간단한 암호화 )
아무도이 문제를 해결할 수있는 방법을 설명 할 수 있습니까?
세부:
서버 : 이더넷 케이블을 통해 게이트웨이에 직접 연결된 아치 리눅스 (최신). iptables가 없습니다.
클라이언트 : VirtualBox 4.3.28r100309의 Windows 8.1 호스트, 브리지 된 네트워크 어댑터의 아치 Linux (최신) 가상 머신. iptables가 없습니다. Windows 방화벽이 비활성화되었습니다.
게이트웨이 : 포트 1194에 대한 포트 전달이 가능하며 방화벽 제한이 없습니다.
다음은 각각 서버와 클라이언트의 구성 파일입니다. 나는 Arch Wiki의 지침에 따라 이것을 만들었습니다.
/etc/openvpn/server.conf
(코멘트가 아닌 라인 만 해당) :
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server-name.crt
key /etc/openvpn/server-name.key
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
/etc/openvpn/client.conf
(코멘트가 아닌 라인 만 해당) :
client
dev tun
proto udp
remote [my public IP here] 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client-name.crt
key /etc/openvpn/client-name.key
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
comp-lzo
verb 3
위의 구성을 가진 시스템에서 openvpn을 실행 한 결과는 다음과 같습니다. 먼저 서버를 시작한 다음 클라이언트를 시작했습니다.
openvpn /etc/openvpn/server.conf
서버에서 의 출력 :
Thu Jul 30 17:02:53 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec 2 2014
Thu Jul 30 17:02:53 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 17:02:53 2015 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Thu Jul 30 17:02:53 2015 Diffie-Hellman initialized with 2048 bit key
Thu Jul 30 17:02:53 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 17:02:53 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 17:02:53 2015 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 IFACE=enp5s0 HWADDR=##:##:##:##:##:##
Thu Jul 30 17:02:53 2015 TUN/TAP device tun0 opened
Thu Jul 30 17:02:53 2015 TUN/TAP TX queue length set to 100
Thu Jul 30 17:02:53 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Jul 30 17:02:53 2015 /usr/bin/ip link set dev tun0 up mtu 1500
Thu Jul 30 17:02:53 2015 /usr/bin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Thu Jul 30 17:02:53 2015 /usr/bin/ip route add 10.8.0.0/24 via 10.8.0.2
Thu Jul 30 17:02:53 2015 GID set to nobody
Thu Jul 30 17:02:53 2015 UID set to nobody
Thu Jul 30 17:02:53 2015 UDPv4 link local (bound): [undef]
Thu Jul 30 17:02:53 2015 UDPv4 link remote: [undef]
Thu Jul 30 17:02:53 2015 MULTI: multi_init called, r=256 v=256
Thu Jul 30 17:02:53 2015 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Thu Jul 30 17:02:53 2015 IFCONFIG POOL LIST
Thu Jul 30 17:02:53 2015 Initialization Sequence Completed
openvpn /etc/openvpn/client.conf
클라이언트에서 의 출력 :
Thu Jul 30 21:03:02 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec 2 2014
Thu Jul 30 21:03:02 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/client-name.key' is group or others accessible
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/ta.key' is group or others accessible
Thu Jul 30 21:03:02 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 21:03:02 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 21:03:02 2015 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Thu Jul 30 21:03:02 2015 UDPv4 link local: [undef]
Thu Jul 30 21:03:02 2015 UDPv4 link remote: [AF_INET][my public IP here]:1194
Thu Jul 30 21:04:02 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Thu Jul 30 21:04:02 2015 TLS Error: TLS handshake failed
Thu Jul 30 21:04:02 2015 SIGUSR1[soft,tls-error] received, process restarting
Thu Jul 30 21:04:02 2015 Restart pause, 2 second(s)
tcpdump -ni eth0 udp and port 1194
서버에서 다음 과 같은 패킷 스니핑을 수행하고 패킷이 도착하는지 확인하십시오. 만약 그들이 패킷을 떨어 뜨리는 방화벽에 문제가 있다면, 라우터에 포트 포워딩에 문제가있을 것입니다. 라우터에서도 할 수 있습니다. 샷을 제공하고 더 높은 포트를 사용하십시오. 일반적이지 않지만 ISP가 포트 11194 / UDP 또는 53 / UDP와 같은 것을 엉망으로 만들 수 있습니다.