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 的 软件源很多官方已经停止维护,该文件包内配置好的yum源是可以正常使用的。将原/etc/yum.repos.d/目录下原来的 .repo 备份, 然后把本文件包内的repo文件复制过去, yum clean all 后,再 yum ...
centos 6.5 telnet 客户端 安装文件 rpm包 centos 6.5 telnet 服务端 安装文件 rpm包 http://vault.centos.org/6.5/os/x86_64/Packages/ 从官网下载亲测可以用
CentOS6.5 是一个基于 Linux 的开源操作系统,广泛应用于服务器领域。下面将详细介绍如何使用 VMware 创建虚拟机并安装 CentOS6.5 操作系统。 步骤一:创建 CentOS6.5 虚拟机 1. 打开 VMware 软件,点击“文件”...
CentOS 6.5 安装教程详解 CentOS 6.5 是一个稳定、功能强大且广泛应用的 Linux 发行版,本文将详细介绍 CentOS 6.5 的安装步骤,包括虚拟机的安装、CentOS 镜像文件的下载和使用、连接工具的配置等内容。 一、...
CentOS 6.5 下安装 Oracle 11g 本文档旨在指导用户在 CentOS 6.5 操作系统下安装 Oracle 11g 数据库management system。安装过程中需要满足一定的硬件和软件要求,并进行相应的网络设置和 RPM 依赖包安装。 一、...
本文将详细讲解如何在CentOS 6.5系统上升级OpenSSH。 首先,升级OpenSSH通常涉及升级其依赖的库,特别是openssl。openssl是提供加密功能的核心库,新的版本通常会包含更强的加密算法和修复的安全漏洞。在升级...
在Linux系统中,CentOS 6.5是一个广泛使用的版本,而MySQL 5.6则是一个流行的开源数据库管理系统。本文将详细介绍如何在CentOS 6.5上进行MySQL 5.6的一键安装过程,包括必要的环境准备、安装步骤、配置优化以及安全...
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 ...
centos6.5 邮件服务器安装视频 自己录制
本文将详细介绍如何在服务器上安装并配置CentOS 6.5系统,特别是针对Oracle数据库环境的优化和配置方法。CentOS 6.5是一款稳定且广泛使用的Linux发行版,尤其适合企业级应用,包括Oracle数据库部署。 #### 二、安装...
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. **处理硬件不匹配...