openvpn

来源:互联网 发布:用算法实现100以内质数 编辑:程序博客网 时间:2024/05/22 03:05
1、openvpn通信过程A要和B通信1)、A先向CA请求B的数字证书:CA把B的数字证书做输入参数生成一个Hash,然后CA用自己的私钥加密Hash,生成一个数字签名,再把数字签名附在B的数字证书后,即B的数字证书+CA数字签名,发给A2)、A得到CA发过来的文件后处理:A拥有CA的公钥,可以解密CA的数字签名得到Hash,同时对接收到的B的数字证书做Hash运算,得到一个Hash,两个相等,则认为此证书可靠,在传输中没有被篡改。3)、A请求认证B:B用自己的私钥加密自己的身份信息发送给A,由于A已经从CA处获得B的公钥,所以可以解密B的加密报文。2、服务器端日志方便排查连接问题:C:\OpenVPN\log\server.log3、openvpn的server服务器会和多个client客户端组建成一个独立的局域网,客户端和服务器端都会生成一个虚拟网卡,客户端和服务器端组成一个网段4、C:/OpenVPN/easy-rsa/keys/ 目录下要有客户端证书才能吊销该客户端证书,并且这个目录下要有CA.crt和CA.key才能进行新建客户端证书和吊销操作5、吊销证书在服务器端dos命令中:revoke-full 客户端名称  会生成keys/crl.pem文件,还需要在server.opvn 中加crl-verify "C:/OpenVPN/easy-rsa/keys/crl.pem"6、keys/crl.pem文件包含里被吊销证书的名单,如果删除这个文件,那么就需要重新吊销,不然之前的证书还是能用的。如果该文件没被删除时,再吊销另一个证书则该文件会包含之前被吊销的证书7、如果两台电脑用相同的客户端证书就行连接openvpn安装配置1、安装windows:安装时所有复选框打勾。win10的话会出现”An error occurred installing the TAP device driver”这样的报错。虚拟网卡无法安装上,需要点击任务栏右下角通知,高级启动下的立即重启--疑难解答—高级选项—启动设置---点击重启,重启后,跳出选择界面,按数字“7”或者F7 选择禁用驱动程序强制签名,重启后,即可正常安装openVPN客户端。2、配置服务器端:1)、修改OpenVPN服务器端的vars.bat.sample文件(客户端的无需做任何修改)set HOME=C:\OpenVPN\easy-rsa  --表示easy-rsa文件夹的路径set KEY_SIZE=1024   --表示生成的私钥大小以下更改默认配置(可选)--稍后给服务器和客户端生成对应加密证书(公钥)和私钥时,程序会要求我们输入一些注册信息,配置后如果该信息项不输入就会采用默认值。set KEY_COUNTRY=CN 国家set KEY_PROVINCE=shaghai 省份set KEY_CITY=Shanghai 城市set KEY_ORG=baiwang 组织机构set KEY_EMAIL=mail@host.domain 邮件地址set KEY_CN=CNset KEY_NAME=changemeset KEY_OU=changemeset PKCS11_MODULE_PATH=changemeset PKCS11_PIN=12342)、打开DOS命令窗口,并进入到安装目录的easy-rsa目录下,输入:init-config(初始化配置,将vars.bat.sample文件的内容复制到vars.bat。实际上,你也可以直接双击执行easy-rsa目录下的init-config.bat文件来代替这一步。)vars(设置相应的局部环境变量,就是我们在vars.bat.sample文件中设置的内容)clean-all(相关设置和清理工作,该命令会初始化keys目录会清空之前用命令创建的证书,做之前应备份keys目录下文件,该命令在easy-rsa目录下生成\keys目录,另外keys目录下要有客户端证书才能吊销该客户端证书,并且这个目录下要有CA.crt和CA.key才能进行新建客户端证书和吊销操作)注意:不需要再执行init-config命令,除非你再次改动了vars.bat.sample文件;每一次打开新窗口时都需要先执行vars命令,后面才能执行其他命令。3)、创建CA根证书DOS下输入:build-ca在build-ca的时候需要输入一些注册信息。在输入信息的时候,如果你不输入任何信息,就表示采用默认值;如果你输入.,则表示当前信息项留空白。证书的通用名称(Common Name),相当于我们常说的账号,你也可以自行输入其他名称,但Common Name不能重复,这是OpenVPN用来区分不同用户的关键所在。4)、创建服务器端证书:build-key-server server 后面那个server表示服务器端证书名称需要输入强密码,最后程序会询问是否注册并提交证书,两次均输入y即可。5)、创建迪菲·赫尔曼密钥:build-dh这是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。6)、创建客户端证书:build-key client --这里的client是客户端名称7)、生成ta.key:openvpn --genkey --secret keys/ta.key (可选操作)生成的ta.key主要用于防御DoS、UDP淹没等恶意攻击。命令中的第3个参数keys/ta.key表示生成的文件路径(含文件名)8)、创建完证书后,我们会发现easy-rsa目录下多了一个keys文件夹。现在我们将keys文件夹中对应的文件复制到OpenVPN服务器或客户端的安装目录的config文件夹下。9)、服务器端config目录需要的文件包括:ca.crtca.key(核心CA证书和私钥)dh1024.pem(如果最初的变量KEY_SIZE设为2048,这里就是dh2048.pem)server.crtserver.key(名称server根据个人设置可能有所不同)ta.key(名称也可自行设置,如果不需要防御攻击,可以不创建或复制此文件)10)、编辑服务器端配置文件server.ovpn在OpenVPN安装目录的sample-config文件夹中存放有3个示例模板文件:server.ovpn、client.ovpn、sample.ovpn。其中,server.ovpn是服务器的配置模板,client.ovpn是客户端的配置模板(sample.ovpn也可用作客户端配置模板,不过配置比较简单,不够全面。按照官方的说法,client.ovpn可用于连接具有多个客户端的服务器端配置文件)。复制server.ovpn到服务器的config目录,前面带「#」或「;」的表示注释内容local 192.168.0.2     #指定监听的本机IP(因为有些计算机具备多个IP地址),该命令是可选的,默认监听所有IP地址。port 1194             #指定监听的本机端口号proto udp             #指定采用的传输协议,可以选择tcp或udpdev tun               #指定创建的通信隧道类型,可选tun或tapca ca.crt             #指定CA证书的文件路径cert server.crt       #指定服务器端的证书文件路径key server.key    #指定服务器端的私钥文件路径dh dh1024.pem         #指定迪菲赫尔曼参数的文件路径server 10.0.0.0 255.255.255.0   #指定虚拟局域网占用的IP地址段和子网掩码,此处配置的服务器自身占用10.0.0.1。ifconfig-pool-persist ipp.txt   #服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。tls-auth ta.key 0     #开启TLS,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。keepalive 10 120      #每10秒ping一次,连接超时时间设为120秒。comp-lzo              #开启VPN连接压缩,如果服务器端开启,客户端也必须开启client-to-client      #允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接persist-keypersist-tun           #持久化选项可以尽量避免访问在重启时由于用户权限降低而无法访问的某些资源。status openvpn-status.log    #指定记录OpenVPN状态的日志文件路径verb 3                #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细客户端:1、需要将服务器端生成的部分证书拷贝到客户端客户端config目录需要的文件包括:ca.crtclient.crtclient.key(名称client根据个人设置可能有所不同)ta.key(如果服务器端具备此文件,客户端也应具备)2、复制client.ovpn到客户端的config目录,编辑客户端配置文件client.ovpnclient         #指定当前VPN是客户端dev tun        #必须与服务器端的保持一致proto udp      #必须与服务器端的保持一致remote 192.168.0.2 1194      #指定连接的远程服务器的实际IP地址和端口号resolv-retry infinite    #断线自动重新连接,在网络不稳定的情况下(例如:笔记本电脑无线网络)非常有用。nobind         #不绑定特定的本地端口号persist-keypersist-tunca ca.crt      #指定CA证书的文件路径cert client.crt       #指定当前客户端的证书文件路径key client.key    #指定当前客户端的私钥文件路径ns-cert-type server      #指定采用服务器校验方式tls-auth ta.key 1     #如果服务器设置了防御DoS等攻击的ta.key,则必须每个客户端开启;如果未设置,则注释掉这一行;comp-lzo              #与服务器保持一致verb 3                #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细3、测试服务器端的Windows运行框中输入services.msc,进入windows服务界面,启动服务OpenVPN Service客户端打开OpenVPN GUI(win10需要右击图标以管理员身份运行),在任务栏右击点击连接,此时可以在网络中看到被分配的独立局域网ip问题:服务器端创建客户端证书时由于serial值的问题无法签署The Subject's Distinguished Name is as followscountryName           :PRINTABLE:'CN'stateOrProvinceName   :PRINTABLE:'shaghai'localityName          :PRINTABLE:'Shanghai'organizationName      :PRINTABLE:'baiwang'organizationalUnitName:PRINTABLE:'changeme'commonName            :PRINTABLE:'client4'name                  :PRINTABLE:'client4'ERROR:Serial number 01 has already been issued,      check the database/serial_file for corruptionThe matching entry has the following detailsType      :RevokedWas revoked on:270122071707ZExpires on    :270122071707ZSerial Number :01File name     :unknown解决:easy-rsa\keys目录下的serial文件改为02,原因是由于原先做实验时由于01签署的是https协议,故无法正常签署


0 0
原创粉丝点击