我有一个带有WAN(eth1)和LAN(eth0)接口的OpenWRT路由器。
我想在这个路由器上安装一个openVPN服务器,所以我可以从WAN端访问到LAN端。
我的LAN(eth0)configuration了一个DHCP服务器,其静态IP为172.20.51.61/24。 当我连接任何一台PC到局域网(eth0)时,它的IP地址范围是172.20.51.100/24到172.20.51.150/24。
我已经安装openvpn easy rsa和其他必需的实用程序,也为客户端和服务器生成密钥。 我已经将这些密钥复制到客户端。
我想要的是一个非常基本的步骤和configuration,以获得一些信心,build立从客户端到服务器的连接。
基于networking的博客提到了这么多额外的信息,对于networking初学者来说,这变得很难遵循。
编辑:/ 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:我给广域网一个静态IP 192.168.18.100/24 IP地址为192.168.18.100/24的VPN客户端将尝试访问。
服务器configuration是:
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中的客户端configuration
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错误:(检查您的networking连接)
和服务器上的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显示数据包来回)
首先,我从不build议在直接连接到WAN的设备上保留SSL CA私钥。 这是不安全的。
在OpenWRT中,OpenVPN的configuration位于/ etc / config / openvpn中 – 除了OpenWRT连字符( – )应该转换为下划线(_)外,选项名称几乎与OpenVPN原始configuration相同。
遵循这个howto 。 如果您不需要静态地址,请移除ifconfig_pool_persist ,或使用/ etc / openvpn / ccd对此(更可靠)使用ccd选项。 用你自己的replaceIP子网和路由。 在接口名称末尾添加一个数字以避免防火墙configuration问题。 我也推荐使用tap界面(更灵活),而不是tun ,但这取决于你。 添加tls_auth以更好地防御DoS攻击,在OpenVPN手册中有一个示例如何生成密钥(search–genkey )。
要启用服务自动启动,请使用/etc/init.d/openvpn enable 。
当你有OpenVPN的时候,configuration防火墙。