Debian 7(Wheezy)下配置Open×××
系统环境:Debian 7
Open×××版本:2.2.1
1.安装openvpn
# apt-get install openvpn
2.将/usr/share/doc/openvpn/examples/easy-rsa目录拷贝到/etc/openvpn/目录下
# cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
//如果是以二进制包的方式安装的,则应将整个easy-rsa目录拷贝到/etc/openvpn目录,以便将来升级openvpn包时不至于抹掉现有的配置
3.编辑/etc/openvpn/easy-rsa/2.0/vars文件,根据实际情况,修改以下字段:
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
4.当修改/etc/openvpn/easy-rsa/2.0/vars文件后,必须使用source命令使其中的配置立即生效
# cd /etc/openvpn/easy-rsa/2.0
# source ./vars
#./clean-all
//clean-all命令会清除keys目录下的所有证书及密钥文件,并不是每次都需要执行./clean-all命令
5.设置自己的Certificate Authority (CA)
# ./build-ca
6.为Open××× Server生成证书及密钥
# ./build-key-server server
7.为Open××× Client生成证书及密钥
# ./build-key client1
8.为Open××× Server生成Diffie Hellman parameters
# ./build-dh
9.将/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz文件复制到/etc/openvpn目录,并解压
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
# gzip -d /etc/openvpn/server.conf.gz
10.编辑/etc/openvpn/server.conf文件
A.将ca、cert、key和dh的路径都设为绝对路径
B.设置Open×××的子网,如10.9.8.0/24
server 10.9.8.0 255.255.255.0
C.添加以下三行:
push "redirect-gateway def1"       //重定向客户端的网关为Open×××服务器的网关
push "dhcp-option DNS 8.8.8.8"    //推送8.8.8.8作为客户端的DNS
push "dhcp-option DNS 8.8.4.4"    //推送8.8.4.4作为客户端的备份DNS
D.开启Open×××的日志
log-append   openvpn.log
E.增强安全性,去掉指令user、group前的分号";"
;user nobody
;group nogroup
11.开启ipv4的包转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward   
//立即生效,重启后失效
编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward的值设为1
//重启系统后永久生效
12.在iptables的INPUT链中开启UDP的1194端口
# iptables -A INPUT -m state --state NEW -p udp --dport 1194 -j ACCEPT
13.允许Open×××的子网访问服务器的tun0端口
# iptables -A INPUT -s 10.9.8.0/24 -j ACCEPT
14.转发Open×××子网的所有数据
# iptables -I FORWARD 1 -s 10.9.8.0/24 -j ACCEPT
# iptables -I FORWARD 2 -d 10.9.8.0/24 -j ACCEPT
# iptables -I FORWARD 3 -j LOG --log-prefix "FORWARD-LOG "
# iptables -I FORWARD 4 -j DROP
15.对Open××× Client的IP地址进行网络地址转换
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
16.Windows客户端的配置
将 /etc/openvpn/easy-rsa/2.0/keys目录下的ca.crt、client1.crt、client1.key文件下载到 windows openvpn的安装目录下的config目录下,并将windows openvpn安装目录下的sample-config目录下的client.ovpn文件也复制到config目录中,之后编辑client.ovpn 文件中的remote my-server-1 1194、client.crt和client.key三项即可。
备注:
1.每次创建客户端证书和密钥时都必须先执行. ./vars,但不用每次都执行./clean-all
2.如果Open××× clinet访问是是tun0的网络,则会经过filter表的INPUT链,如果访问的是Internet,则会经过filter表的FORWARD链及nat表的POSTROUTING链