yango公司现在在弄各种的VPN 这里是我自己研究的一种,后期会分享很多给大家。 有otp做VPN ,有公司内网VPN 加密。 后期整理出来,爱运维一起学。
yango的运维派可以扣扣群加:459096184 运维派大家一起讨论。
有什么不懂的,有什么不太明白的,直接给我留言或者加入扣扣群问我,都会帮你解决。
学习中
工具百度云里面 http://pan.baidu.com/s/1bnnnj1H
这里我已经有将openvpn软件进行打包(包含了openvpn-2.3.3.tar.gz服务器安装包 openvpn 32/64位客户端 lzo-2.0.6.tar.gz依赖包 easy-rsa证书制作工具)
1.时间校对
开始没有对时,导致后来无法联入VPN
1
2
3
4
|
yum -y install unzip pam-devel ntpdate openssl openssl-devel #unzip用于解压软件 #pam-devel是安装openvpn必要的依赖包 #ntpdate是网络校时工具 |
1
2
3
|
ntpdate time .nist.gov 同步时间 echo "/usr/sbin/ntpdate time.nist.gov" >> /etc/rc . local echo "* */2 * * * /usr/sbin/ntpdate time.nist.gov" >> /etc/crontab |
2.lzo的安装
1
2
3
4
5
6
7
8
|
unzip openvpn-2.3.3.zip cd openvpn-2.3.3
tar zxvf lzo-2.06. tar .gz
cd lzo-2.06
. /configure --prefix= /usr
make && make install
/sbin/ldconfig cd ..
|
3.openvpn的安装
1
2
3
4
5
6
7
8
9
10
11
12
13
|
mkdir -p /data/openvpn/conf #用于存放配置文件 mkdir -p /data/openvpn/log #用于存放openvpn日志 mkdir -p /data/openvpn/easy-rsa
#用于存放密钥生成工具及密钥 tar zxvf openvpn-2.3.3. tar .gz
cd openvpn-2.3.3
. /configure --prefix= /data/openvpn
make && make install
cp sample /sample-config-files/server .conf /data/openvpn/conf/
#拷贝实例配置文件 cd ..
|
4.easy-rsa的解压
1
2
3
4
5
|
unzip easy-rsa.zip cd easy-rsa /2 .0/
cp -rf * /data/openvpn/easy-rsa/
cd /data/openvpn/easy-rsa/
chmod +x *
|
5.修改vars文件
1
2
3
4
5
6
7
8
9
10
11
|
vim vars export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=365
export KEY_COUNTRY= "CN"
export KEY_PROVINCE= "GD"
export KEY_CITY= "ShenZhen" 城市随便填一个即可
export KEY_ORG= "Example INC" 组织单位
export KEY_EMAIL= "ca@example.com" 邮箱地址可以随便填写
export KEY_OU= "Manager" 组织容器可以随便填写
export KEY_NAME= "VPNService" 名称可以随便填写
|
1
2
|
source vars
#使之生效 |
6.生成证书
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
. /clean-all
#初始化 . /build-ca
#创建根证书,一路回车即可 Generating a 2048 bit RSA private key ........+++ .+++ writing new private key to 'ca.key'
----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.' , the field will be left blank.
----- Country Name (2 letter code) [CN]: State or Province Name (full name) [GD]: Locality Name (eg, city) [ShenZhen]: Organization Name (eg, company) [Example INC]: Organizational Unit Name (eg, section) [Manager]: Common Name (eg, your name or your server's hostname ) [Example INC CA]:
Name [VPNService]: Email Address [ca@example.com]: |
创建服务器端密钥
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
. /build-key-server server
Country Name (2 letter code) [CN]: #回车
State or Province Name (full name) [GD]: #回车
Locality Name (eg, city) [ShenZhen]: #回车
Organization Name (eg, company) [Example INC]: #回车
Organizational Unit Name (eg, section) [Manager]: #回车
Common Name (eg, your name or your server's hostname ) [server]: #回车
Name [VPNService]: #回车
Email Address [ca@example.com]: #回车
Please enter the following 'extra' attributes
to be sent with your certificate request A challenge password []: #回车
An optional company name []: #回车
Using configuration from /data/openvpn/easy-rsa/openssl-1 .0.0.cnf
Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE: 'CN'
stateOrProvinceName :PRINTABLE: 'GD'
localityName :PRINTABLE: 'ShenZhen'
organizationName :PRINTABLE: 'Example INC'
organizationalUnitName:PRINTABLE: 'Manager'
commonName :PRINTABLE: 'server'
name :PRINTABLE: 'VPNService'
emailAddress :IA5STRING: 'ca@example.com'
Certificate is to be certified until May 5 02:35:08 2015 GMT (365 days)
Sign the certificate? [y /n ]:y #输入y,回车
1 out of 1 certificate requests certified, commit? [y /n ]y #输入y,回车
Write out database with 1 new entries Data Base Updated |
创建用户
1
2
3
|
. /build-key client
#创建client用户 #方法和创建服务器密钥是一样的 |
创建Diffie-Hellman文件
1
|
. /build-dh
|
7.配置openvpn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#本机要侦听使用的IP地址 local 192.168.1.201
#使用的端口,默认1194 port 1194 #使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议 proto udp #使用的设备可选tap和tun,tap是二层设备,支持链路层协议。 #tun是ip层的点对点协议,限制稍微多一些,建议使用tun,如果使用桥接的话,就必须要使用tap dev tun #OpenVPN使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法 ca /data/openvpn/easy-rsa/keys/ca .crt
#Server使用的证书文件 cert /data/openvpn/easy-rsa/keys/server .crt
#Server使用的证书对应的key,注意文件的权限,防止被盗 key /data/openvpn/easy-rsa/keys/server .key # This file should be kept secret
#上面提到的生成的Diffie-Hellman文件 dh /data/openvpn/easy-rsa/keys/dh2048 .pem
#防止注销用户登录 #crl-verify /data/openvpn/easy-rsa/keys/crl.pem #客户端使用的地址、子网掩码 server 10.8.0.0 255.255.255.0 #用于记录某个Client获得的IP地址,类似于dhcpd.lease文件, #防止openvpn重新启动后“忘记”Client曾经使用过的IP地址 ifconfig -pool-persist /data/openvpn/log/ipp .txt
#DHCP的DNS选项 push “dhcp-option DNS 114.114.114.114" push “dhcp-option DNS 8.8.4.4" #通过VPN Server往Client push路由,client通过pull指令获得Server push的所有选项并应用 push "route 192.168.100.0 255.255.255.0"
#如果可以让VPN Client之间相互访问直接通过openvpn程序转发, #不用发送到tun或者tap设备后重新转发,优化Client to Client的访问效率 client-to-client #如果Client使用的CA的Common Name有重复了,或者说客户都使用相同的CA #和keys连接VPN,一定要打开这个选项,否则只允许一个人连接VPN,建议一人一个证书 duplicate-cn #定义最大连接数 max-clients 10 #NAT后面使用VPN,如果VPN长时间不通信,NAT Session可能会失效, #导致VPN连接丢失,为防止之类事情的发生,keepalive提供一个类似于ping的机制, #下面表示每10秒通过VPN的Control通道ping对方,如果连续120秒无法ping通, #认为连接丢失,并重新启动VPN,重新连接 #(对于mode server模式下的openvpn不会重新连接)。 keepalive 10 120 #对数据进行压缩,注意Server和Client一致 comp-lzo #通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys persist-key #通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的, #否则网络连接会先linkdown然后linkup persist-tun #定期把openvpn的一些状态信息写到文件中,以便自己写程序计费或者进行其它操作 status /data/openvpn/log/openvpn-status .log
#和log一致,每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后 log-append /data/openvpn/log/openvpn .log
#相当于debug level,具体查看manual verb 3 |
8.启动openvpn服务
1
|
/data/openvpn/sbin/openvpn --config /data/openvpn/conf/server .conf &
|
查看是否启动成功
1
2
3
4
5
6
|
[root@VPNServer easy-rsa] # netstat -ntlup
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 810 /sshd
tcp 0 0 :::22 :::* LISTEN 810 /sshd
udp 0 0 0.0.0.0:1194 0.0.0.0:* 16470 /openvpn
|
可以看到1194端口已经启动,说明openvpn启动成功
9.注销证书
同事离职了,需要将证书进行注销
1
2
3
4
5
6
7
8
9
|
#注销账户test /data/openvpn/easy-rsa/revoke-full test
Using configuration from /data/openvpn/easy-rsa/openssl-1 .0.0.cnf
Revoking Certificate 03. Data Base Updated Using configuration from /data/openvpn/easy-rsa/openssl-1 .0.0.cnf
lushare.crt: C = CN, ST = GD, L = ShenZhen, O = Example INC, OU = Manager, CN = test , name = VPNService, emailAddress = ca@example.com
error 23 at 0 depth lookup:certificate revoked #error 23说明证书已经注销 |
这个时候还是可以利用此证书登录服务器的,在/data/openvpn/conf/server.conf下增加一行
1
|
crl-verify /data/openvpn/easy-rsa/keys/crl .pem
|
再重启下openvpn服务即可
1
2
|
killall openvpn /data/openvpn/sbin/openvpn --config /data/openvpn/conf/server .conf &
|
这个时候openvpn下的test账户已经不能登录服务器了
10.修改/etc/sysctl.conf
1
2
3
4
5
|
vim /etc/sysctl .conf
将下面值修改为1,开启Linux ip跳转 net.ipv4.ip_forward = 1 #保存后执行 sysctl -p |
11.防火墙修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLEISHED -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p udp --dport 1194 -j ACCEPT #对IP进行转发 iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0 /24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 10.8.0.0 /24 -j MASQUERADE
service iptables save service iptables restart |
12.客户端安装配置
里面有一个32位的安装客户端,也有一个64位的,按需安装即可
,安装完成后,将C:\Program Files\OpenVPN\sample-config(我这里安装在C:\Program Files\OpenVPN)目录下的client.ovpn
拷贝到C:\Program Files\OpenVPN\config
修改client.ovpn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
client dev tun #设备类型tun、tap根据服务器来设置
proto udp #所使用的协议有udp、tcp根据服务器来设置
remote 192.168.100.201 1194 #主服务器
#remote 250.250.250.250 1194 #备用服务器 #remote-random #开启服务器的轮询,如果设置了多台服务器的话 resolv-retry infinite nobind ;user nobody ;group nobody persist-key persist-tun ca ca.crt #ca证书是从服务器上下载来的
cert client.crt #生成的客户端证书
key client.key #服务器上生成的密码
ns-cert- type server
comp-lzo #压缩类型
verb 3 |
相关推荐
### Centos6.5镜像文件下载与安装详解 #### 一、CentOS 6.5简介 CentOS是Community ENTerprise Operating System的缩写,是一个基于Linux内核的操作系统,它主要提供了企业级的计算环境。CentOS 6.5作为CentOS 6...
CentOs6.5镜像源
CentOS6.5的64位镜像文件iso。CentOS是基于linux内核而扩展的操作系统。
centos 6.5 telnet 客户端 安装文件 rpm包 centos 6.5 telnet 服务端 安装文件 rpm包 http://vault.centos.org/6.5/os/x86_64/Packages/ 从官网下载亲测可以用
CentOS 6.5 的 软件源很多官方已经停止维护,该文件包内配置好的yum源是可以正常使用的。将原/etc/yum.repos.d/目录下原来的 .repo 备份, 然后把本文件包内的repo文件复制过去, yum clean all 后,再 yum ...
CentOS6.5 是一个基于 Linux 的开源操作系统,广泛应用于服务器领域。下面将详细介绍如何使用 VMware 创建虚拟机并安装 CentOS6.5 操作系统。 步骤一:创建 CentOS6.5 虚拟机 1. 打开 VMware 软件,点击“文件”...
CentOS 6.5 安装教程详解 CentOS 6.5 是一个稳定、功能强大且广泛应用的 Linux 发行版,本文将详细介绍 CentOS 6.5 的安装步骤,包括虚拟机的安装、CentOS 镜像文件的下载和使用、连接工具的配置等内容。 一、...
本文将详细讲解如何在CentOS 6.5系统上升级OpenSSH。 首先,升级OpenSSH通常涉及升级其依赖的库,特别是openssl。openssl是提供加密功能的核心库,新的版本通常会包含更强的加密算法和修复的安全漏洞。在升级...
在Linux系统中,CentOS 6.5是一个广泛使用的版本,而MySQL 5.6则是一个流行的开源数据库管理系统。本文将详细介绍如何在CentOS 6.5上进行MySQL 5.6的一键安装过程,包括必要的环境准备、安装步骤、配置优化以及安全...
centos6.5 邮件服务器安装视频 自己录制
本文将详细介绍如何在服务器上安装并配置CentOS 6.5系统,特别是针对Oracle数据库环境的优化和配置方法。CentOS 6.5是一款稳定且广泛使用的Linux发行版,尤其适合企业级应用,包括Oracle数据库部署。 #### 二、安装...
Centos6.5升级openssh-9.1p1包括32位和9.3版本的63位的全部rpm包,附带telnet客户端的rpm包 32位: openssh-9.1p1-1.el6.i386.rpm openssh-clients-9.1p1-1.el6.i386.rpm openssh-server-9.1p1-1.el6.i386.rpm ...
VMware安装CentOS6.5的详细教程涵盖了从下载CentOS6.5系统文件到配置虚拟机设置,再到操作系统安装过程中的每一步骤。首先,我们需要了解Linux操作系统和CentOS6.5的基本概念。Linux是一个开源的操作系统内核,而...
centos6.5 64位 gcc离线安装包,内含所有离线安装gcc所有rpm包。可依次安装,也可一起安装。内有安装说明。 cloog-ppl-0.15.7-1.2.el6.x86_64.rpm cpp-4.4.7-4.el6.x86_64.rpm gcc-4.4.7-4.el6.x86_64.rpm gcc-c++-...
"centos6.5-ntp安装包.rar"显然包含了在CentOS 6.5上安装和配置NTP服务所需的文件和步骤。 安装NTP服务首先需要解压下载的rar文件,通常这需要使用像unrar这样的工具。在CentOS上,你可以通过以下命令安装unrar: ...
在本案例中,我们有"CentOS6.5离线安装openssh8.6p1软件包-步骤及依赖.rar"这个压缩包文件,它应该包含了openssh 8.6p1以及所有必需的依赖项。在拥有互联网连接的机器上,你需要访问OpenSSH的官方网站或者通过yum...
在Linux系统中,CentOS 6.5是一个广泛使用的版本,它提供了稳定和安全的环境来运行各种服务,包括FTP(File Transfer Protocol)服务器。FTP允许用户从远程服务器上传、下载文件,对于开发者和系统管理员来说是必备...
"U盘安装CentOS 6.5" U盘安装CentOS 6.5是相对于光盘安装的一种更快速、更方便的安装方式。使用U盘安装CentOS 6.5可以跳过刻盘的步骤,速度也更快,而且没有硬件限制(新机器USB口都有,光驱不一定有)。 U盘安装...
- 使用虚拟光驱或物理光驱将 CentOS 6.5 的 ISO 文件挂载至服务器。 #### 手动加载430-16iHBA驱动步骤 1. **启动 CentOS 6.5 安装程序**: - 从挂载的 ISO 文件启动 CentOS 6.5 安装程序。 2. **处理硬件不匹配...