详解Centos6.5 Openvpn的安装与配置

一、安装准备

yum -y install openssl-devel openssl
yum -y install gcc gcc-c++

二、OpenVPN服务端安装过程

1.lzo下载与安装

cd /apps  #安装目录
wget ftp://www.wudonghang.com/soft/openvpn-2.1_rc15.tar.gz #下载lzo
tar zxvf lzo-2.04.tar.gz  #解压
cd lzo-2.04
./configure ; make ; make install  #编译与安装 

2.openvpn下载与安装

cd /apps
wget http://openvpn.net/release/openvpn-2.1_rc15.tar.gz
tar zxvf openvpn-2.1_rc15.tar.gz
cd openvpn-2.1_rc15
./configure ; make ; make install

3.服务器端设置

cp -r /apps/openvpn-2.1_rc15/ /etc/openvpn #用easy-rsa生成服务器证书客户端证书 

4.初始化参数

将解压目录的easy-rsa目录复制到 /etc/openvpn下

cd /etc/openvpn/easy-rsa/2.0
./vars
source vars 

5.生成CA证书

./clean-all
./build-ca 

6.建立server key(一直回车)

./build-key-server server

7.生成diffie hellman参数

./build-dh 

8.复制ca证书,服务端证书到OpenVPN配置目录

代码如下:

cp keys/{ca.crt,ca.key,server.crt,server.key,dh1024.pem} /etc/openvpn/

9.生成client key

./build-key client1 #与server key 设置一致

如要生成多个vpn账户,则与client1一样生成其他客户端证书如

./build-key client2
./build-key client3

10.生成客户端配置文件client1.ovpn

vi /etc/openvpn/easy-rsa/2.0/keys/client1.ovpn
client
remote 192.168.80.129 1194
dev tun #说明连接方式是点对点的连接,如要以以太网的方式则可以将tun修改为tap
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
route-delay 2
route-method exe
verb 3

11.打包客户端配置文件证书等

tar czf keys.tgz ca.crt ca.key client1.crt client1.csr client1.key client1.ovpn
mv keys.tgz /root 

12.创建并编辑服务器端配置文件server.conf

port 1194
proto tcp
dev tun #说明连接方式是点对点的连接,如要以以太网的方式则可以将tun修改为tap
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway"
push "route 172.18.2.0 255.255.255.0" #路由转发到内网网段
push "dhcp-option DNS 172.18.2.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
persist-key
persist-tun
client-to-client #如果不加则各个客户端之间将无法连接 

13.对防火墙的相关设置

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
sed -i 's/eth0/venet0/g' /etc/sysconfig/iptables # dirty vz fix for iptables-save
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

如果VPN服务器上的内网ip不是网关那么必须加上下面这一句(如果不加则客户端无法连接其他内网机器):

代码如下:

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -d 172.18.2.0/255.255.255.0 -j SNAT –to-source 172.18.2.30

14.启动openvpn

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

如要设置开机启动则执行命令:

代码如下:

echo “/usr/local/sbin/openvpn --config /etc/openvpn/server.conf ” >> /etc/rc.local

也可以做服务

cp /apps/openvpn-2.1_rc15/sample-scripts/openvpn.init /etc/init.d/openvpn
chmod 700 /etc/init.d/openvpn
chkconfig --add openvpn
chkconfig --level 345 openvpn on 
service openvpn start

15.查看是否安装成功

lsof -i:1194

注意:以上是公司内网中有一台机器可以连接外网的情况,如果内网中都没有机器可连接外网,那么如果内网中该网段机器(假设为B子网网段为192.168.1.0/24)要想连接另一台也无外网ip的某个网段的机器(A ip为172.9.2.100)该怎么办呢?请往下看
找到一台可以随意设置的拥有外网ip的机器假设为C

将C设置成openVPN的服务器,然后将A和B设置为openVPN客户端

在C的配置文件中加上:

client-to-client
client-config-dir ccd
route 192.168.1.0 255.255.255.0

B在ccd中的配置为:

iroute 192.168.1.0 255.255.255.0

A在ccd中的配置为:

push "route 192.168.1.0 255.255.255.0"

B的SNAT配置:

代码如下:

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -j SNAT –-to-source 172.9.2.100

三、openvpn客户端安装(Windows)

安装OpenVPN脚本 install_OpenVPN.sh

#!/bin/bash
# Quick and dirty OpenVPN install script
# Tested on Centos 5.x 32bit, openvz minimal CentOS OS templates
# Please submit feedback and questions at support@vpsnoc.com

# John Malkowski vpsnoc.com 01/04/2010

ip=`grep IPADDR /etc/sysconfig/network-scripts/ifcfg-venet0:0 | awk -F= '{print $2}'`

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -iv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rm -rf rpmforge-release-0.3.6-1.el5.rf.i386.rpm

yum -y install openvpn openssl openssl-devel
cd /etc/openvpn/
cp -R /usr/share/doc/openvpn-2.2.0/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0/
chmod +rwx *
./vars
./clean-all
source ./vars

echo -e "\n\n\n\n\n\n\n" | ./build-ca
clear
echo "####################################"
echo "Feel free to accept default values"
echo "Wouldn't recommend setting a password here"
echo "Then you'd have to type in the password each time openVPN starts/restarts"
echo "####################################"
./build-key-server server
./build-dh
cp keys/{ca.crt,ca.key,server.crt,server.key,dh1024.pem} /etc/openvpn/

clear
echo "####################################"
echo "Feel free to accept default values"
echo "This is your client key, you may set a password here but it's not required"
echo "####################################"
./build-key client1
cd keys/

client="
client
remote $ip 1194
dev tun
comp-lzo
ca ca.crt
cert client1.crt
key client1.key
route-delay 2
route-method exe
redirect-gateway def1
dhcp-option DNS 10.8.0.1
verb 3"

echo "$client" > $HOSTNAME.ovpn

tar czf keys.tgz ca.crt ca.key client1.crt client1.csr client1.key $HOSTNAME.ovpn
mv keys.tgz /root

opvpn='
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway"
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
group nobody
daemon'

echo "$opvpn" > /etc/openvpn/openvpn.conf

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
sed -i 's/eth0/venet0/g' /etc/sysconfig/iptables # dirty vz fix for iptables-save
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

/etc/init.d/openvpn start
clear

echo "OpenVPN has been installed
Download /root/keys.tgz using winscp or other sftp/scp client such as filezilla
Create a directory named vpn at C:\Program Files\OpenVPN\config\ and untar the content of keys.tgz there
Start openvpn-gui, right click the tray icon go to vpn and click connect
For support/bug reports email us at support@vpsnoc.com"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 在CentOS上MySQL数据库服务器配置方法

    无意中还找到了CentOS的专业论坛,记住:http://www.centospub.com 于是,开始的学习配置 本次环境: CentOS系统, mysql-server(版本忘了,因为是使用yum安装的) 过程如下(转载,根据本人安装详细要求,略加修改) : 在提到网站构架的时候,我们经常能够看到"LAMP"的说法,它就是"Linux + Apache + MySQL + PHP". MySQL+PHP的协同成功案例已经很多了.比如国外的PHPBB,VBB,国内

  • CentOs6.5中安装和配置vsftp简明教程

    一.vsftp安装篇 复制代码 代码如下: # 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd on 二.vsftp相关命令之服务篇 复制代码 代码如下: # 启动ftp服务service vsftpd start# 查看ftp服务状态service vsftpd status # 重启ftp服务service vsftpd restart# 关闭ftp服务service vsftpd sto

  • 64位CentOS 6.0下搭建LAMP环境详细步骤

    1.确认搭建LAMP所需要的环境是否已经安装 [root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio 备注:安装libpng时候需要zlib-devel              安装mysql时候需要libaio 2.如果没安装则yum安装 [root@centos6 ~]# yum install make gcc gcc-c++ zlib-devel libaio -y 3.由于要使用编译安装,所以查看httpd.mysql.

  • CentOS+Nginx+PHP+MySQL详细配置(图解)

    一.安装MySQL 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/b

  • centos下更新Python版本的步骤

    安装完CentOS5.9(Final)后,执行#Python与#python -V,看到版本号是2.4.3,很老了,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,有兴趣的朋友可以参考下这篇文章: http://www.jb51.net/article/34011.htm 更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令.软件包都要依赖预装的老版本python的,比如yum. 更新python: 第1步:更新gcc,因为gcc版本太老会导致新版

  • CentOS 5.5使用yum来安装LAMP(php运行环境)

    1. 换源,sohu的相当好用. 1.1备份CentOS-Base.repo cd /etc/yum.repos.d/ cp CentOS-Base.repo CentOS-Base.repo.bak 1.2替换源 用vi打开CentOS-Base.repo,并将内容清空,然后将下面的内容复制进去,并保存. # CentOS-Base.repo # # This file uses a new mirrorlist system developed by Lance Davis for Cent

  • CentOS 5 上安装yum的方法

    下面有两种办法可以安装yum: 一.下载yum的rpm包直接安装 http://centos.ustc.edu.cn/centos/5.4/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm http://centos.ustc.edu.cn/centos/5.4/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm 下载到某个目录之后,执行下面的命令rpm -ivh y

  • centos 5 手动分区来安装系统的方法

    对于centos.fedora和redhat的关系这里无需赘述.redhat我用不起,它的防盗版工作做的又相当好,所以我从来没有用过redhat.fedora是我刚接触linux就用的一个系统,我觉得它很好用,只是它版本更新太快了,相信很多像我这样的菜鸟都曾在新版本出来时犹豫过要不要更新.centos据说与redhat如出一辙,有人说除了logo不同外,两者完全一致,不过也有人说两者其实并不完全相同,编译的不同导致两者在应用上有着细微的差别:它是否好用,有待于考察. 在安装时我采用的是手动分区,

  • CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)

    准备篇 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正确

  • linux服务器用centos还是ubuntu系统

    linux服务器系统多使用CentOS.uBuntu.Gentoo.FreeBSD.Debian. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS ,CENTOS现在市场占有率第一了 [小议]centos与ubuntu的区别 CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高

随机推荐