海运的博客

Centos下yum安装配置OpenVPN服务器

发布时间:April 7, 2012 // 分类:VPN // 12 Comments

OpenVPN是一款开源的VPN软件,使用ssl加密交换数据,数据比较安全,可使用TCP/UDP协议,自定义端口,不易被ISP控制,是替代PPTPD很好的选择。
Centos官方源无OpenVPN软件,可先安装EPEL源
安装:

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install openvpn

配置:

cp -R /usr/share/openvpn/easy-rsa/ /etc/openvpn/ #也有可能是下面的目录
#cp -R /usr/share/doc/openvpn-*/easy-rsa /etc/openvpn
#最新版本不包含easy-ras,需独立下载
#wget https://github.com/OpenVPN/easy-rsa/releases/download/2.2.2/EasyRSA-2.2.2.tgz
cd /etc/openvpn/easy-rsa/2.0
chmod +x ./*
source ./vars 此文件内变量可编辑,默认即可

生成密钥,默认回车即可。

./clean-all #清除所有生成的证书
./build-ca server #生成CA证书
./build-key-server server #生成服务器证书
./build-key client1 #生成客户端证书,多个请多次执行
#./build-key client2
./build-dh #生成Diffie Hellman参数
openvpn --genkey --secret ta.key #使用tls-auth防攻击,可选

编辑服务端配置文件:

vim /etc/openvpn/server.conf  #添加以下内容
port 1194 #默认监听端口,可修改
proto udp #默认udp协议,网络状况不好可选tcp
dev tun
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
tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 0
server 10.8.0.0 255.255.255.0 #客户端分配IP
client-to-client #允许客户端与客户端进行通信
keepalive 10 120 #每10秒询问在线,120秒无回应重新连接
#ping 10
#ping-restart 120 #类似于keepalive
comp-lzo
user nobody
group nogroup
#client-cert-not-required #使用密码验证
#auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env #使用文件内密码验证
#script-security 3 system #配合上面,允许文件内密码验证
#plugin /usr/lib/openvpn/openvpn-auth-pam.so login #使用系统用户验证
ifconfig-pool-persist ipp.txt #记录分配的IP
client-config-dir /etc/openvpn/client #针对特定用户的配置文件目录
persist-key #重新连接时不重新读取key
persist-tun #同上,不重新启用tun设备
status /var/log/openvpn-status.log
log   /var/log/openvpn.log
verb 4
duplicate-cn #一个证书可多次登录
push "dhcp-option DNS 10.8.0.1" #同步DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

打包并下载密钥

tar zcvf keys.tar.gz keys/

启动OpenVpn并开启内核转发:

service openvpn start #启动openvpn服务
chkconfig openvpn on #设置openvpn开机启动
echo 1 > /proc/sys/net/ipv4/ip_forward #启用转发
echo "echo 1 > /proc/sys/net/ipv4/ip_forward " >/etc/rc.local #加入启动项,也可修改sysctl

开启NAT路由:

iptables -t nat -A POSTROUTING  -o eth0 -j MASQUERADE
service iptalbes save #保存规则

到此服务端安装配置完成,然后安装配置Windows OpenVPN客户端
安装后将下载的密钥复制到安装目录config下,并新建配置文件client.ovpn,内容如下:

client 
dev tun 
proto udp
remote ip port #IP和端口请自定义填写
persist-key 
persist-tun 
ca ca.crt 
cert client1.crt 
key client1.key 
tls-auth ta.key 1
ns-cert-type server 
comp-lzo 
verb 3 
redirect-gateway def1 #设置为默认路由
script-security 2 system #允许使用系统命令添加路由
#route-method exe #同上,老版本使用
#route-delay 2

Ok,漫长的过程终于结束了,畅销您的安全互联网之旅吧。

标签:centos, vpn, openvpn, centos安装配置openvpn

有 12 条 关于" Centos下yum安装配置OpenVPN服务器 "的评论

  1. John Kou John Kou

    source ./vars
    ***********************************************************************
    No /etc/openvpn/easy-rsa/2.0/openssl.cnf file could be found
    further invocation will fail
    ***********************************************************************

    我怎麼樣解決? 2.0文件夾有這個問題

    1. 海运 海运

      我安装的没遇到此问题,你可以尝试以下:
      yum -y install openssl-devel
      查看openssl版本:
      openssl version
      OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
      修改当前目录openssl-0.9.8.cnf为openssl.cnf

      1. John Kou John Kou

        這個解決!!

  2. John Kou John Kou

    想問問有沒 GUI Server 操作? 非 AS 版是否沒有用戶數限制呢? 因為我下載過 AS 版,有Web介面委方便的,
    另外問多少少問題,我發覺有些網介紹要
    ifconfig-pool-persist /etc/openvpn/server/log/ipp.txt
    push "redirect-gateway def1 bypass-dhcp"
    crl-verify /etc/openvpn/server/keys/crl.pem
    註釋掉,到底做什麼呢???

    1. 海运 海运

      GUI版本不清楚,有web版本的。
      ifconfig-pool-persist /etc/openvpn/server/log/ipp.txt
      记忆客户端用过的IP
      push "redirect-gateway def1 bypass-dhcp"
      push到客户端为vpn默认路由
      crl-verify /etc/openvpn/server/keys/crl.pem
      当注销客户端证书时可能会用到此参数

  3. John Kou John Kou

    想問問 echo 1 > /proc/sys/net/ipv4/ip_forward #启用转发 是否那台 Server 開了 Firewall 才配置的?

    1. 海运 海运

      echo 1 > /proc/sys/net/ipv4/ip_forward此为开启linux内核转发数据包功能。
      然后还要配置iptables SNAT数据包。

      1. John Kou John Kou

        但我那個 Server 沒開 firewall 的,是否不用 echo 1 > /proc/sys/net/ipv4/ip_forward?

        1. 海运 海运

          都需开启,不然客户端不能通过openvpn连通外网。

  4. John Kou John Kou

    ./build-key-server server

  5. John Kou John Kou

    如果 client.crt client.key ca.crt ta.key 被人拿來用的話,那不是不安全了嗎,有什麼辨識方式可不能同一時間 Login? 或其它解決的方式呢?

    1. 海运 海运

      duplicate-cn #一个证书可多次登录
      此参数允许相同证书不同客户端同时登录,证书为开门钥匙,如是固定IP使用可使用防火墙限制特定IP连接。

评论已关闭

分类
最新文章
最近回复
  • 海运: 正常情况下编译整个内核执行make menuconfig后就不会出现此提示,当单独编译单个模块...
  • oijq: 就是用的armbian的配置文件哈,按你的教程做的,在执行make LOCALVERSION=...
  • 海运: 使用armbian的配置文件,其它添加或修改自己懂的部分,不懂的就不要碰了。
  • oijq: 编译时这些选项全部选Y吗?Actions Semi Platforms (ARCH_ACTIO...
  • 海运: n1编译bbr内核模块参考这个:https://www.haiyun.me/archives/...
  • jiqz: make M=net/ipv4/ CONFIG_TCP_CONG_BBR=m modules编...
  • ruralhunter: 哦,文档里应该是对的,是.config
  • ruralhunter: cp /mnt/boot/config-4.18.7-aml-s9xxx .config这里应...
  • 海运: 你是编译不成功呢?还是编译后不能运行呢?还是运行后不能访问web界面呢?
  • 白墨: 可能不清楚就是编译安装后启动后访问不了web界面