openvpn安装与配置

OpenVPN安装与配置 文档概述 本文档详细介绍了OpenVPN的安装与配置方法,包括在Linux环境(Ubuntu)和DD-WRT路由器环境下的配置步骤。 简介 OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。 它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。 目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Microsoft Windows以及Android和iOS上运行,并包含了许多安全性的功能。它并不是一个基于Web的VPN软件,也不与IPsec及其他VPN软件包兼容。 基础知识点 为什么使用PKI而不是静态密码呢? 静态加密使用的是静态密钥,它容易设置,但是缺点是: 一次只能有一个客户端使用服务器 如果密钥遭到丢失,将带来不可挽回的损失 使用PKI允许一次使用多个客户端,每个客户端都有自己的密钥。服务器不必具有客户端的任何特殊知识。OpenVPN只需要提供我们即将设置的OpenVPN CA签署的证书。反之,客户端也会验证服务器的证书 OpenVPN CA密钥不应放在OpenVPN服务器上。它仅用于签署客户端的证书,因此应该存储在可以执行操作的地方,但不能被盗。一旦CA密码被盗,你将无法再信任该CA颁发的任何证书。 什么是Certificate Authority(CA)? 你可能在应用中遇到过TLS网站证书,通常证书在WEB上下文中有两个作用 加密浏览器与服务器之间的数据 确保流览器连接到目标网站 只有当浏览器信任某个证书颁发机构颁发的证书时,才可以执行第二个任务。任何人都可以制作证书,但它并不能保证证书是合法的拥有者。因为证书颁发机构可以带来可靠的额外保证,因此CA证书分为收费与免费,创建自己的CA以签署OpenVPN客户端证书是一种可以控制谁可以连接到OpenVpn服务器的有效方法。这样您的Openvpn服务器只会信任你要创建的CA签署的客户端证书。同样如果一个政府机构在互联网提供一些便民服务,那么如何有效的避免钓鱼网站的信息套取呢,注册收费的CA证书是个有效的方法。 CA证书的作用 提供身份验证和信任链 防止中间人攻击 控制VPN接入权限 完美前向保密PFS(perfect forward secrecy) “perfect forward secrecy”则是由Christoph G. Günther在EUROCRYPT ’89提出的,其最初用于定义会话密钥交换协议的一种安全性。它的作用是保证密钥丢失之前的消息案全性或签名的不可伪造性。一般而言公钥是固定的,而密钥则随着时间进行更新。这个更新过程是单向的,因引也就保证了拿到当前的密钥,是无法恢复出以前的密钥,从而保证了前向安全。 Openvpn服务器配置我们将使用“perfect forward secrecy”,也就是说,加密的数据即使在前进的进候也会是秘密的。用于连接的证书和密钥不用于加密您的通讯数据。它们在传递数据时使用临时的加密密钥。默认情况下,这个临时密钥随着时间的推移每小时旋转一次。以这种方式,如果来不法份子收集了VPN数据包要想获得临时密钥那是不可能的,它允其量能够解密你最后一小时的数据。 在Openvpn服务器上配置了perfect forward secrecy你会在日志中看到每小时数据重置的情况。 1 2 3 4 5 6 7 8 Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 TLS: soft reset sec=0 bytes=51538/0 pkts=255/0 Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 VERIFY OK: depth=1, C=US, ST=RI, L=Quahog, O=Happy Go Lucky Toys, OU=inspections, CN=Happy Go Lucky Toys CA, name=EasyRSA, [email protected] Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 VERIFY OK: depth=0, C=US, ST=RI, L=Quahog, O=Happy Go Lucky Toys, OU=inspections, CN=client, name=EasyRSA, [email protected] Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Encrypt: Using 512 bit message hash 'SHA512' for HMAC authentication Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Tue Jun 13 01:51:20 2017 client/142.68.135.226:53504 Data Channel Decrypt: Using 512 bit message hash 'SHA512' for HMAC authentication Tue Jun 13 01:51:21 2017 client/142.68.135.226:53504 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA256, 2048 bit RSA Openvpn允许您控制旋转周期以匹配偏执狂级别。在server.conf文件中配置reneg-sec xx控制关键周期是多少秒。 ...

Python脚本后台运行的几种方式

python后台运行方式 在linux中执行python程序的时候,我们通常会用python xx.py命令来执行,但这样执行的程序在关闭linux的控制台后,执行的程序就会退出,要让程序关闭后继续执行该怎么办? 要让python程序在关闭控制台后继续执行,我们需要使用nohub命令。 1 nohup python -u xx.py > log.out 2>&1 & 1 1是标准输出(STDOUT)的文件描述符,2是标准错误(STDERR)的文件描述符1>log.out简化为>log.out,表示把标准输出重定向到log.out这个文件 2 2>&1表示把标准错误重定向到标准输出,这里&1表示标准输出,为什么需要将标准错误重向到标准输出?这是因为标准错误没有缓冲区,而STOUT有,这就会导致log.out文件被两次打开,而STDOUT和STDERR将会竞争覆盖。 方法一:脚本后加& 加了&以后可以使脚本在后台运行,这样的话你就可以继续工作了,但是有一个问题就是你关闭终端连接后,脚本就会停止运行 1 python updatetest & 方法二:使用nohup在后台执行命令 使用&符号在后台执行命令或脚本后,如果你退出登录,这个命令就会被自动终止掉。要避免这种情况,你可以使用nohup命令,如下所示: 1 nohup ./my-shell-script.sh & 方法三:使用screen执行命令 通过nohup和&符号在后台执行命令后,即使你退出登录,这个命令也会一直执行。但是,你无法重新连接到这个会话,要想重新连接到这个会话,你可以使用screen命令。 linux和screen命令提供了分离和重新连接一个会话的功能。当你重新连接这个会话的时候,你的终端和你分离的时候一模一样。 方法四:使用at将一个命令作为批处理执行 使用at命令,你可让一个命令在指定的日期和时间运行,使用要在明天上午10点在后台执行备份脚本,执行下面的命令: 1 at -f backup.sh 10 am tomorrow 方法五:使用watch连续地执行一个命令 要想按一个固定的间隔不停地执行一个命令,可以使用watch命令,如下所示: 1 watch df -h 另外查看进程确认脚本是否在继续运行的命令 1 ps -ef \| grep 脚本名

Mac双系统时间不同步的问题解决

原因 在安装了Mac与Windws双系统后,发现两套系统的时间不一致两者相差8小时,这是为什么呢?这是因为Windows与Mac系统对于CMOS记录的时钟采取了不同的定义。Windows将CMOS时钟作为本地时间来看待,而Mac系统将CMOS时钟作为UTC标准时间来看待,也就是格林威志时间。 解决方法:(修改Windows注册表) 将Windows的缺省对待CMOS的方式改成UTC,也就是和MacOSX一致 修改Windows的注册表,定位到 1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\ 添加一个名为”RealTimeIsUniversal”的DWORD项,把值设为1。 这样你在Windows和Mac OSX下将本地时区都设到北京时间,不论是Windows还是MacOSX同步过时间后,都不会影响到另一边。