`
lydawen
  • 浏览: 464560 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

centos 5.5 安装配置 openvpn

 
阅读更多

经常在外办公,数据库又在公司内网服务器,叫公司的IT大爷来帮忙架个VPN又架了三个月都没个人影过来,于是准备自己动手。

 

在外,先叫公司的同事帮忙做了个ssh 22端口在路由器上映射,这样先能ssh到那台机器以便下一步操作。

 

第一步,下载相关安装包,进入/opt/soft/openvpn目录,下载以下2个包,版本可以用更新的。

# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz
# wget http://openvpn.net/release/openvpn-2.1_rc22.tar.gz

 包不大,下载很快,然后解压

 

# tar -zxvf lzo-2.04.tar.gz 
# tar -zxvf openvpn-2.1_rc22.tar.gz

分别进入两个目录,分别执行

# ./configure && make && make install

 

在configure openvpn时报错:configure: error: OpenSSL Crypto headers not found. 缺少OpenSSL组件。安装之,centos还是挺方便,如没报这个错就无视这一步

 

# yum -y install openssl-devel

 再重新安装openvpn就可以安装了。到这一步,安装就成功结束了,接下来是配置。

 

二、配置

1. 用easy-rsa生成服务器证书客户端证书

# cp /opt/openvpn-2.1_rc22/easy-rsa/2.0 -r /etc/openvpn
# cd /etc/openvpn/2.0

编辑所需的参数再调用之

# vim vars
# source ./vars

下面这个命令在第一次安装时可以运行,以后在添加客户端时千万别运行,这个命令会清除所有已经生成的

证书密钥。

# ./clean-all

生成服务器端ca证书

# ./build-ca

生成服务器端密钥证书, 后面这个server-name就是服务器名,可以自定义。

# ./build-key-server server-name

一路Enter之后证书生成。

再依次生成所需客户端证书密钥文件:

# ./build-key client-name1
# ./build-key client-name2

再生成 diffie hellman 参数

# ./build-dh

创建并编辑服务器端配置文件

cp /opt/openvpn-2.1_rc22/sample-config-files/server.conf /etc/openvpn/
vi /etc/openvpn/server.conf

修改完成之后,以下面这个命令启动openvpn server

# /usr/local/sbin/openvpn --config /etc/openvpn/server.conf &

每次都运行上面这个命令有点麻烦,这里有一个script,把它复制到 /etc/init.d 文件夹下,可以实现启动,状态查询,重启等。该文件适应于CentOS 5.5, 如果密钥及配置文件位置不一样,也许要作一些小的修改。

再在rcX.d文件夹下作几个软链接就可以实现开机自动启动了。

也可以修改 /etc/rc.local文件实现开机启动。

密钥分发

把ca.crt 及相应client 的三个密钥证书文件一共四个分别分发出去就可以了。注意不需要将ca.key分发出去,

ca.key应该保密。

四、客户端配置

1. Linux

相应比较简单,安装好openvpn后,把收到的ca及lient文件放到相应的位置,配置好client.conf就可以了。

2. Windows

到openvpn官方网站下载windows安装包进行安装,在安装文件夹下有下个config文件夹,把你的ca及client文件放到该文件夹下,从sample-config下拷贝一个client.ovpn并作相应修改即可。

五、固定IP地址分配

在服务器端配置文件(server.conf)里取消下面行的注释:

;client-config-dir ccd
;route 10.8.0.0 255.255.255.252

在 /etc/openvpn文件夹下新建名为ccd文件夹,在ccd 文件夹里以客户名为名新建文件,内容格式如下:

ifconfig-push 10.8.0.20 10.8.0.120

客户端启动后即获得IP地: 10.8.0.20

但要注意上面格式只对linux有效,如果客户端为windows,则客户端会连接不成功。因为openvpn在windows下时,

其local IP 与 remote IP 必须在网址掩码为255.255.255.252的同一网段内,而且不能取头尾两端的IP,因此

一个openvpn连接在windows下最少要占用4个ip地址。

windows 下的 客户端IP配置必须为如下形式:

ifconfig-push 10.8.0.30 10.8.0.29

因为10.8.0.28/30网段包含以下IP: 10.8.0.28-31, 去除头尾,只有29与30可用。其他类推。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics