由于有些网路地区都会阻挡pptp 或 l2tp服务,因此我们需要一个比较安全又不会被阻挡的VPN环境,因此我决定用OPENVpn
等下教程的软体要下载,都从这里来源
OpenVPN http://openvpn.net/index.php/open-source/downloads.html
LZO http://www.oberhumer.com/opensource/lzo/download/
OpenSSL http://www.openssl.org/
1,安装基础软件包
yum install openssl openssl-devel pam pam-devel
2, 安装Lzo
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz tar zxvf lzo-2.06.tar.gz cd lzo-2.06 ./configure make && make install
3,安装OpenVPN
tar -zxvf openvpn-2.2.2.tar.gz mv openvpn-2.2.2 /usr/local/openvpn cd /usr/local/openvpn ./configure --enable-password-save --with-ssl-headers=/usr/include/openssl --with-ssl-lib=/usr/lib --with-lzo-headers=/usr/local/include/lzo --with-lzo-lib=/usr/local/lib make && make install
二,生成CA证书、Server Key和Client Key
1,环境参数文件修改
cd /usr/local/openvpn/easy-rsa/2.0/ vim ./vars,将最后几行修改为如下内容: export KEY_COUNTRY="CN" export KEY_PROVINCE="GD" export KEY_CITY="GZ" export KEY_ORG="cctv" export KEY_EMAIL="[email protected]" export [email protected] export KEY_CN=cctv export KEY_NAME=cctv export KEY_OU=cctv export PKCS11_MODULE_PATH=changeme export PKCS11_PIN=1234 从上到下依次是国家,省份,城市,组织名,邮箱,CN指Common Name,OU指Organizational Unit Name source ./vars #使修改的变量生效
2,生成CA证书
./clean-all #清除原有不需要的证书文件 ./build-ca #生成证书,初始化参数一路按回车默认即可
3,建立服务端证书Server Key
./build-key-server myserver #这里指定服务端的证书名为myserver 初始化参数一路按回车默认即可,下面几项需要手动填写: A challenge password []:123.com #输入一个密码 Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
4,建立客户端证书Client Key
./build-key client1 #这里指定客户端的证书名为client1 初始化参数一路按回车默认即可,下面几项需要手动填写: A challenge password []:123.com #输入刚才的密码 Name [changeme]:client1 Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y 如果要创建多个vpn帐户,则同样如client1一样生成其他客户端证书 ./build-dh #证书加密,dh指Diffie Hellman
三,创建openvpn服务端和客户端配置文件
1,建立服务端配置文件
mkdir /usr/local/openvpn/etc #建立目录以存放配置文件 配置文件的样例位于sample-config-files/server.conf,但这里我们不使用样例,直接手动建立配置文件 vim /usr/local/openvpn/etc/server.conf,将以下内容复制其中
local 1.1.1.1(改为你的VPS IP地址) port 1194 proto udp dev tun ca /usr/local/openvpn/easy-rsa/2.0/keys/ca.crt cert /usr/local/openvpn/easy-rsa/2.0/keys/myserver.crt key /usr/local/openvpn/easy-rsa/2.0/keys/myserver.key dh /usr/local/openvpn/easy-rsa/2.0/keys/dh1024.pem server 10.8.0.0 255.255.255.0 client-to-client keepalive 10 120 comp-lzo persist-key persist-tun status /usr/local/openvpn/easy-rsa/2.0/keys/openvpn-status.log verb 4 push "dhcp-option DNS 10.8.0.1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"
2,建立客户端配置文件
vim /usr/local/openvpn/etc/client.ovpn,将以下内容复制其中 client dev tun proto udp remote VPS的IP地址 1194 persist-key persist-tun ca ca.crt cert client1.crt key client1.key ns-cert-type server comp-lzo verb 3 redirect-gateway def1
3,下载client key和client.ovpn文件
cp /usr/local/openvpn/etc/client.ovpn /usr/local/openvpn/easy-rsa/2.0/keys/ tar -zcvf /root/keys.tar.gz /usr/local/openvpn/easy-rsa/2.0/keys/
然后把/root/keys.tar.gz文件下载到本地。
四,配置OpenVPN启动和设置
1,修改本机OpenVPN VPS域名服务器
vim /etc/resolv.conf,加入如下两行: nameserver 8.8.8.8 nameserver 8.8.4.4
2,打开转发功能
vim /etc/sysctl.conf 把net.ipv4.ip_forward的值改为1 sysctl -p
3,设置iptables
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source VPS的IP地址 /etc/init.d/iptables save /etc/init.d/iptables restart
4,启动OpenVPN服务器
/usr/local/sbin/openvpn --config /usr/local/openvpn/etc/server.conf
5,设置OpenVPN开机自动启动
vim /etc/rc.d/rc.local,在最后面加入如下几行 iptables -F -t nat iptables -X -t nat iptables -Z -t nat sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source VPS的IP地址 service iptables save service iptables restart /usr/local/sbin/openvpn --config /usr/local/openvpn/etc/server.conf > /dev/null 2>&1 &
五,windows客户端安装设置
终于配置到了客户端了,接下来在用户Windows 系统下的安装OpenVPN GUI程序就比较简单了。
1,下载安装和服务器端配套的OpenVPN GUI For Windows(http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe),直接点next安装即可;
2,将刚才下载到本地的keys.tar解压,全部放到OpenVPN GUI For Windows安装目录下的config目录下,检查一下至少要包含以下6个文件:
ca.crt | ca.key | client1.crt | client1.csr | client1.key | client.ovpn
3,在客户端双击client.ovpn即可启动OpenVPN GUI For Windows客户端,不用输入账号密码即可连接至vpn服务器。
4,如果多个客户端要用到多个vpn账号,OpenVPN的配置和上面相同,再将config文件目录里的 client1.crt,client1.csr,client1.key 替换成对应的 client2harry.xxx 即可,最后在
client.ovpn 中将cert client1.crt 和key client1.key的值改成client2harry.crt和client2harry.key。