DD-WRT路由上配置openvpn

来源:互联网 发布:文档电子目录软件 编辑:程序博客网 时间:2024/05/21 11:21
DD-wrt是一款开源路由系统,许多路由也都支持vpn的配置,但本文只介绍dd-wrt的配置。
dd-wrt上的配置都是设置各类参数和填入各类密钥文本,密钥文本的生成可以在任何一个openvpn程序下生成。

一、在windows下创建OpenVPN证书和密钥

这是官方配置文档,但在国内大陆被封锁了,需要想办法翻墙查阅
http://openvpn.net/index.php/open-source/documentation/howto.html#pki

1.打开\Program Files\OpenVPN\easy-rsa

2.运行以下批处理脚本来生成配置文件到key目录(如果目录中已经有vars.bat和openssl.cnf配置文件将会被覆盖)
    init-config
3.现在修改vars文件,设置KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL,这几个值不能为空
4.运行
    vars
    clean-all
    build-ca
    最后一个命令(build-ca)会通过调用openssl命令创建证书授权(CA)和密钥。
    唯一一个必须要输入的参数是 Common Name。在以上示例中我用“OpenVPN-CA”
5.为服务器生成证书和密钥
    build-key-server server
    在前面这一步,大多数参数可以使用默认值,Common Name 这里输入 “server”。还需要进行两次确认:
     "Sign the certificate? [y/n]" and "1 out of 1 certificate requests certified, commit? [y/n]".
    
    build-key client1
    build-key client2
    build-key client3
    记住,每个client都要输入正确并唯一的 Common Name。
6.生成 Diffie Hellman 参数
    build-dh
7.现在我们在keys目录就可以看到新生成的keys和证书
  ca.crt
  ca.key
  dh{n}.pem
  server.crt
  server.key
  client1.crt
  client1.key
  client2.crt
  client2.key
  client3.crt
  client3.key

注意:
如果如果需要实现 TLS 验证
点击 "Start > Programs ->OpenVPN ->Utility-> Generate a static OpenVPN key"
Note: this will create a c:\Program Files\OpenVPN\config\key.txt file, you will can rename it as ta.key which is to be used in the later configuration steps.
server(DD-WRT)和client(Windows/Android/DD-WRT)需要配置一致的ta.key才能连接。


二、配置DD-WRT为 OPENVPN 服务器

    以下版本固件测试通过
    DD-WRT v24-sp2 (05/17/11) vpn-small - build 17084M NEWD Eko
    DD-WRT v24-sp2 (01/04/15) std
    链接 : dd-wrt webpage -> Other downloads -> others -> eko -> V24_TNG -> svn_17084 -> dd-wrt.v24-17084_NEWD_openvpn_jffs_small.bin (17-May-2011) 
1.重要:同步路由的时间到正确时间 Setup > BasicSetup > Time Settings
2.GUI > Service > VPN
3. Enable OpenVPN Daemon >
  OpenVPN = "Enable" ; Startup Type = "Wan Up"
  Config via - GUI
  Server mode - Router(Tun) or Bridge (TAP) , I used Router(Tun)
  Network - 192.168.60.0
  Netmask - 255.255.255.0
  port - 1194 or 用其他不會被官方 block 的 Port number
  Tunnel Protocol - TCP or UDP, I used TCP
  Encryption Cipher - Blowfish CBC
  Hash Algorithm - SHA1
  Advanced Options - Enable
  Use LZO Compression - Enable
  Redirect default Gateway - Enable
  Allow Client to Client - Enable
  Allow duplicate cn - Enable
  TLS Cipher - Disable
  Additional Config - 
  push "dhcp-option DNS <Your DNS server IP>"
  push "dhcp-option DNS 8.8.8.8"

  CA Cert = ca.crt
  Certificate Revoke List = blank
  Public Server Cert = server.crt
  Private Server Key = server.key
  DH PEM = dh1024/2048.pem
4. GUI > Administration > Commands

  iptables -I INPUT -p tcp --dport 1194 -j ACCEPT
  iptables -I INPUT -p udp --dport 1194 -j ACCEPT

  iptables -I FORWARD 1 --source 192.168.60.0/24 -j ACCEPT

  # These next two lines may or may not be necessary.
  # Thus, we include them so that this works for more people:
  iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
  iptables -I FORWARD -i tun0 -o br0 -j ACCEPT

  >>Save Firewall

Attention : 1194 is Port number, must match with OPENVPN server config

5.保存设置并“应用”,或者重启路由,查看 Status > OpenVPN
  如果 VPN 设置正确,GUI>Status > OpenVPN, State 会显示信息:
"Server: CONNECTED:Local Address:Remote Address 192.168.60.1".

注意:
1) 如果运营商给你的服务器ip不是固定的,那你需要使用动态代理,国内有花生壳可以提供免费的动态代理。

2) 如果实现 TLS认证, 则粘贴 ta.key (在第一步生成的 #1 remark) 到 "TLS Auth Key "一栏
从 "-----BEGIN OpenVPN Static key V1-----" 开始到 "-----END OpenVPN Static key V1-----" 结束.

原创粉丝点击