OpenVPN 是一种安全可靠的 VPN 软件,本文中介绍了 Debian Testing 中 OpenVPN 的安装与配置过程。
安装
sudo apt-get install iptables easy-rsa openvpn
准备证书和密钥
使用easy-rsa
脚本来生成密钥,首先把脚本复制到当前目录中
cp -r /usr/share/easy-rsa ./
cd easy-rsa
编辑vars
,设置KEY_COUNTRY,KEY_PROVINCE, KEY_CITY,KEY_ORG和KEY_EMAIL
export KEY_COUNTRY="**"
export KEY_PROVINCE="**"
export KEY_CITY="**"
export KEY_ORG="**"
export KEY_EMAIL="**"
执行下面的命令来创建服务器需要的证书和密钥:
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
生成的证书、密钥保存在keys
中,然后复制到/etc/openvpn/keys
中:
sudo cp -r keys /etc/openvpn/
build-key
脚本用于创建客户端证书和密钥:
./build-key username1
./build-key username2
...
生成的证书和密钥发送给客户。
配置服务器
复制默认配置文件为/etc/openvpn/server.conf
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip /etc/openvpn/server.conf.gz
修改下面几项:
# 端口号,可自定义
port 1194
# 证书/密钥
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh2048.pem
server 192.168.8.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
重新启动openvpn
sudo service openvpn restart
启用IPv4转发
sudo sysctl net.ipv4.ip_forward=1
# net0 为WAN接口
sudo iptables -t nat -I POSTROUTING -o net0 -j MASQUERADE
sudo iptables -A FORWARD -s 192.168.8.0/24 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.8.0/24 -j ACCEPT
可以把这些指令添加到/etc/rc.local
中以便开机自动执行。
配置客户端
客户端使用如下配置:
client
dev tun
proto udp
# 服务器的IP和端口
remote *.*.*.* 1194
resolv-retry infinite
nobind
persist-key
ping 25
ping-restart 60
# 客户端证书/密钥
ca ca.crt
cert clientname.crt
key clientname.key
ns-cert-type server
comp-lzo
verb 3
tun-mtu 1356