openwrt 的 OpenVPN 服务器和客户端配置

openwrt 的 OpenVPN 服务器和客户端配置

我有一个带有 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 后,请配置防火墙。

相关内容