내부 웹사이트 및 웹 애플리케이션에 액세스하려면 회사의 VPN에 연결해야 하지만, 특정 양말5 프록시를 통하지 않으면 VPN에 연결할 때 일반 내부에 액세스할 수 없습니다. Mac 또는 PC에서는 openVPN에 연결한 다음 SwitchyOmega를 사용하여 정기적인 인터넷 액세스가 필요한 웹 사이트의 양말5 프록시에 연결할 수 있지만 Android 또는 iOS에서는 openVPN과 양말5를 함께 사용할 수 없습니다.
내 트래픽을 통해 라우팅하기 위해 openVPN 터널 뒤에 있는 양말5 프록시를 지정하기 위해 클라이언트 구성 파일을 수정할 수 있는지(및 수정 방법)를 알고 싶습니다. 참고로 저는 서버 측 구성을 변경할 권한이 없습니다.
##############################################
# 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
# 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
;roto udp
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote fake.com 7777
;remote my-server-2 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 nogroup
# 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 ca.crt
;cert client.crt
;key client.key
# Verify server certificate by checking that the
# certicate has the correct key usage set.
# 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 keyUsage set to
# digitalSignature, keyEncipherment
# and the extendedKeyUsage to
# serverAuth
# EasyRSA can do this for you.
remote-cert-tls server
# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1
key-direction 1
reneg-sec 21600
# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
cipher AES-256-CBC
auth SHA256
# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo
# Set log file verbosity.
verb 3
# Silence repeating messages
;mute 20
# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
xxx
-----END OpenVPN Static key V1-----
</tls-auth>
auth-user-pass
auth-nocache
위는 내 클라이언트 측의 .opvn 파일의 모의 버전입니다.
답변1
귀하가 제시하는 구성에는 라우팅에 대한 내용이 전혀 포함되어 있지 않습니다. 이는 OpenVPN 서버에서 경로가 푸시된다는 의미입니다. 성공적인 연결에 대한 로그 파일을 살펴보고 어떤 경로가 푸시되는지 확인해야 합니다. 만 얻은 경우 redirect-gateway def1
경로를 직접 알아내야 합니다. 기본적으로 연결하는 IP 주소를 살펴봅니다(예:1.2.3.4) 라우팅 대상 테이블을 직접 만듭니다.
- 1.2.3.4/24
- 4.3.2.1/24
- …
그런 다음 얻은 정보로 클라이언트 구성을 수정합니다.
route 1.2.3.4 255.255.255.0
route 4.3.2.1 255.255.255.0
route …
pull-filter ignore "route"
이렇게 하면 필요한 목표에 도달하는 데 필요한 명시적인 규칙을 설정하는 동안 클라이언트가 서버의 경로를 무시하게 됩니다.
한 가지 문제가 발생할 수 있습니다. 회사 네트워크가 홈 네트워크와 동일한 서브넷인 경우 쉽게 작동하지 않습니다. 이 경우 가장 좋은 옵션은 로컬 서브넷을 변경하는 것입니다.
매우 특정한 대상에만 연결하는 경우(충돌 없음) 넷마스크를 사용하지 않음으로써 문제를 피할 수 있습니다. 그러면 기본값은 다음과 같습니다.255.255.255.255.
이 모든 것에 신경쓰고 싶지 않고 회사가 내부 IP 범위만 사용하는 경우 다음을 수행할 수도 있습니다.
route 10.0.0.0 255.0.0.0
route 172.16.0.0 255.224.0.0
route 192.168.0.0 255.255.0.0
pull-filter ignore "route"
이는 홈 네트워크의 접두사가 더 길어서 더 높은 특이도로 인해 경로가 일치하기 때문에 작동할 것입니다.
회사에 내부 DNS 서버가 있는 경우 어딘가에 내부 DNS 서버를 설정하고 싶을 수도 있습니다.