我有一个带有 WAN(eth1)和 LAN(eth0)接口的 OpenWRT 路由器。
我想在这个路由器上安装一个 openVPN 服务器,这样我就可以从 WAN 端访问 LAN 端。
我的 LAN(eth0) 配置了 DHCP 服务器,并且静态 IP 为 172.20.51.61/24。当我将任何 PC 连接到 LAN(eth0) 时,它会获取 172.20.51.100/24 至 172.20.51.150/24 范围内的某个 IP。
我已经安装了 openvpn easy rsa 和其他所需的实用程序,还为客户端和服务器生成了密钥。我还将这些密钥复制到了客户端。
我想要的是一个非常基本的步骤和配置以获得一些信心,建立从客户端到服务器的连接。
网络博客提到了太多额外的信息,这对于网络初学者来说很难理解。
编辑:/etc/easy-rsa/vars 文件有以下内容。
export EASY_RSA="/etc/easy-rsa"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`/usr/sbin/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
et PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="IN"
export KEY_PROVINCE="MH"
export KEY_CITY="Pune"
export KEY_ORG="My Org"
export KEY_EMAIL="[email protected]"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"
# PKCS11 Smart Card
# export PKCS11_MODULE_PATH="/usr/lib/changeme.so"
# export PKCS11_PIN=1234
# If you'd like to sign all keys with the same Common Name,
# uncomment the KEY_CN export below
# You will also need to make sure your OpenVPN server config
# has the duplicate-cn option set
# export KEY_CN="CommonName"
编辑 2:我已经为 WAN 提供了一个静态 IP 192.168.18.100/24
,具有该 IP 的 VPN 客户端192.168.18.101/24
将尝试访问该 IP。
服务器配置为:
package openvpn
config 'openvpn' 'samplevpnconfig'
option 'enable' '1'
option 'port' '1194'
option 'proto' 'udp'
option 'dev' 'tun0'
option 'client_to_client' '1'
option 'keepalive' '10 120'
option 'comp_lzo' '1'
option 'persist_key' '1'
option 'persist_tun' '1'
option 'verb' '3'
option 'mute' '20'
option 'ifconfig_pool_persist' '/tmp/ipp.txt'
option 'status' '/tmp/openvpn-status.log'
option 'ca' '/etc/openvpn/ca.crt'
option 'cert' '/etc/openvpn/server.crt'
option 'key' '/etc/openvpn/server.key'
option 'dh' '/etc/openvpn/dh1024.pem'
#this should be on a completely different subnet than your LAN
option 'server' '192.168.18.100 255.255.255.0'
list 'push' 'route 172.20.51.61 255.255.255.0' #this should MATCH your current LAN info
list 'push' 'dhcp-option DNS 172.20.51.1' #this should MATCH your current LAN info
list 'push' 'dhcp-option DOMAIN 172.20.51.1' #this should MATCH your current LAN info
其中 172.20.51.61 是 LAN (eth0) 静态 IP 地址。老实说,我不知道这些不明显的参数是什么意思。
客户端配置在客户端机器/etc/openvpn/client.conf中
client
proto udp
dev tun0
remote 192.168.18.100 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
comp-lzo
ca /etc/openvpn/ca.crt
cert /etc/openvpn/myclient.crt
key /etc/openvpn/myclient.key
当我尝试以下命令时:#openvpn client.conf
我收到 TLS 错误:(请检查您的网络连接)
服务器上的 tcpdump 显示:
13:57:19.026056 IP 192.168.18.101.34212 > 192.168.18.100.openvpn: UDP, length 14
13:57:19.026147 IP 192.168.18.100 > 192.168.18.101: ICMP 192.168.18.100 udp port openvpn unreachable, len0
但连接似乎正常(ping,tcpdump 显示数据包到来)
答案1
首先,我绝不建议将 SSL CA 私钥保存在直接连接到 WAN 的设备上。这是不安全的。
在 OpenWRT 中,OpenVPN 的配置位于/etc/config/openvpn- 选项名称与 OpenVPN 原始配置几乎相同,除了 OpenWRT 中的连字符 (-) 应转换为下划线 (_)。
跟随本指南。 消除删除池如果你不需要静态地址,或者使用电荷耦合器件此选项(更可靠)/etc/openvpn/ccd。将 IP 子网和路由替换为您自己的。在接口名称末尾添加一位数字,以避免防火墙配置问题。我还建议使用轻敲接口(更灵活),而不是屯,但这取决于你。添加tls_auth为了更好地防范 DoS 攻击,OpenVPN 手册中有一个如何生成密钥的示例(搜索--genkey)。
要启用服务自动启动,请使用/etc/init.d/openvpn enable
。
当您启动 OpenVPN 后,请配置防火墙。