centos 6.5 安装openvpn
内网IP:10.1××.×.×
外网IP:119.195.xxx.xxx
1、安装前准备
# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度
yum -y install openssl openssl-devel
yum -y install lzo
# 安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
2、安装及配置OpenVPN和easy-rsa
# 安装openvpn和easy-rsa
yum -y install openvpn easy-rsa
# 修改vars文件
cd /usr/share/easy-rsa/2.0/
vim vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。××× 下面的随便填 ×××××
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Shandong"
export KEY_CITY="Qingdao"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
# 初始化环境变量
source vars
# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里
./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca
# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server
# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key jack
./build-key client2
# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh
# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key
3、创建服务器端配置文件
# 在openvpn的配置目录下新建一个keys目录
mkdir /etc/openvpn/keys
# 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
# 复制一份服务器端配置文件模板server.conf到/etc/openvpn/
cp /usr/share/doc/openvpn-2.3.8/sample/sample-config-files/server.conf /etc/openvpn/
################ 查看server.conf里的配置参数 grep '^[^#;]' /etc/openvpn/server.conf
# 编辑server.conf===========server.conf=============================
vim /etc/openvpn/server.conf
port 1194 # 默认端口,可以修改
# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议
proto tcp
dev tun
# 路径前面加keys,全路径为/etc/openvpn/keys/ca.crt
ca keys/ca.crt
cert keys/server.crt
key keys/server.key # This file should be kept secret
dh keys/dh2048.pem
# 默认虚拟局域网网段,不要和本地、服务器上的的局域网冲突即可 #
server 10.9.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# ,读者应该根据自身实际情况进行修改
push "route 10.0.0.0 255.0.0.0"
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
在使用OpenVPN时,有的时候需要使用VPN的DNS,有的时候却需要使用本地网络的DNS。OpenVPN可以在配置中支持DNS设置,如果是server来配置客户端DNS, 需要在配置文件中加入:
push “dhcp-option DNS 202.106.0.20″
push “dhcp-option DNS 8.8.8.8″
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log
log-append openvpn.log
# 改成verb 5可以多查看一些调试信息
verb 5
4、配置内核和防火墙,启动服务
# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf (其实是在/etc/sysctl.conf 里加一句:net.ipv4.ip_forward = 1)
sysctl -p
# 配置防火墙,别忘记保存
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart
再用 iptables -L 看看
# 启动openvpn并设置为开机启动
service openvpn start
chkconfig openvpn on
5、创建客户端配置文件( linux ) ================================================
# 复制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn-2.3.8/sample/sample-config-files/client.conf client.ovpn
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote vpn.domain.com 1194 #vpn服务器外网ip
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3
up /etc/openvpn/update-resolv-conf #下面这两句 可以 让 服务器推送的 DNS 地址到本地的/etc/resolv.conf ,当断开连接时,又会自动从 /etc/resolv.conf 清除
down /etc/openvpn/update-resolv-conf #
-------------------------------------------------------
库户端 需要复制 client1.crt , client1.key , ca.crt , client.conf ( client.ovpn for windows )
到 /etc/openvpn/ 目录下 ,然后执行:
$ sudo openvpn --config client.conf --script-security 2 #启动openvpn 客户端
u Apr 14 11:36:04 2016 ERROR: Linux route add command failed: external program exited with error status: 2
Thu Apr 14 11:36:04 2016 Initialization Sequence Completed
看到上面的就说明成功连接到openvpn 服务器了,就可以上谷歌了 ,,上面的ERROR 忽略就行。
===============下面是windows 客户端配置=======================
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote vpn.domain.com 1194 #vpn服务器外网ip
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3
dhcp-option DNS 202.106.0.20 # 这两个可以解析域名,浏览不了网页
dhcp-option SNS 8.8.8.8
--------------------------------------the following are question:solution --------------------------------------
问题:MULTI: bad source address from client [192.168.1.224], packet dropped
解决方法:
在openvpn servers 端 加入如下iptables 规则:
# iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
# /etc/init.d/iptables save # 保存 规则
# /etc/init.d/iptables restart 重启iptables
2.---------------Openvpn – MULTI: bad source address from client –
-----------------solution:(add the following two line into server.conf,and restart openvpn)
client-config-dir ccd
route 192.168.1.0 255.255.255.0
××××××××××××××××××××××××××××××××××××
-
分享到:
相关推荐
centos配置openmeetings
Centos搭建OpenACS服务器用到的包,包含jdk-8u311-linux-x64.rpm,mysql-connector-java-8.0.28.zip,jboss-4.2.2.GA.zip,openacs-bin-0.5.0.3.zip,是自己在搭建OpenACS服务器过程中真实用到的包,目前服务器已...
Centos搭建KMS服务器
centos搭建安卓模拟器实现自动化抓包分析,内含所需全部安装包、模拟器搭建详细步骤、启动脚本、抓包脚本、自动化脚本,适合安卓开发或者APP接入服务分析。
centos7搭建mysql集群,包含整个搭建步骤,部分错误解决方案
Centos8 搭建DNS服务器
本文介绍Centos搭建EasyDarwin流媒体服务器的基本流程,给初学者做一个参考,少走一些没必要的弯路。
centos6下搭建socket5的教程非常全面,拥有这个教程可以让你快速搭建,省去很多碰壁的麻烦
CentOS-Linux搭建SVN-Server配置详解
centos7 svnserver 安装
文中附上下载地址,官方文档操作地址,以及本人亲自实操的过程!
CentOS搭建NFS服务器步骤_2020022_完成版,搭建NFS必备,简单易行 CentOS搭建NFS服务器步骤_2020022_完成版,搭建NFS必备,简单易行
CentOS 7上安装FTP教程(参考文档中url操作,并记录)
本文档使用CentOS7、mariadb、nginx、PHP7搭建PHP服务器(LNMP)
linux centos搭建ftp服务器.zip
centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...
本文档介绍基于centos7平台的liunx系统下,安装+还原+卸载sqlserver方法,亲测有效
在centos linux环境下快速搭建SVN服务器环境的文档教程
centos_下搭建postfix邮件服务器
此文档介绍了centos7环境下搭建nas服务并完成数据迁移