原创内容,转载请注明出处:https://www.myzhenai.com/thread-15394-1-1.html https://www.myzhenai.com.cn/post/871.html
这几天自己上了一台Buyvm位于圣何塞节点的VPS服务器,只用来练习安装调试Openvpn和Pptpd科V学P上N网用的,折腾了两天才弄好Openvpn和Pptpd一起能上网,本来第一次安装Pptpd的时候就已经可以正常使用Pptpd了,但后来安装Openvpn的时候却发现Openvpn不能连接,同时Pptpd能连接但却不能上网了,没办法,只能是一步一步的往后逆,想看看哪步出问题了,但最后还是决定卸掉Openvpn看是不是安装这个出的问题,可是没留神,把Centos5卸崩了,只得重新安装系统.下面就详细说一下我折腾的方法与经验,以便对有需要的朋友们有所帮助.如果您认为有用的话,请回复个支持一下,转载的话,也请您注明文章出处地址,谢谢了.
OpenVPN是基于SSL的VPN,其使用工业标准的SSL/TLS协议实现第2层和第3层的安全数据链路VPN。最新版本是2.0.7,其优点包括: OpenVPN是基于SSL/TLS协议的,所以是不兼容IPSec和PPTP,在Windows也需要安装客户端.
1、基于SSL协议,安全,并使用单一TCP或UDP端口即可实现;
2、使用双向验证,服务器只需保存自己的证书和密钥;
3、服务器只接受那些由主CA证书签名的客户端,并有撤回机制,而不需要重建整个PKI;
4、可以实现基于Common Name的权限控制。
PPTP:点对点隧道协议,(PPTP: Point to Point Tunneling Protocol)点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术,它工作在第二层。通过该协议,远程用户能够通过 Microsoft Windows NT 工作站、Windows xp 、 Windows 2000 和windows2003、windows7操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。
分享前先解释一下我的系统与配置
VPS:Centos5 32位
本机:Centos6.3 32位
安装步骤,我是先安装Pptpd后安装Openvpn的,安装步骤如下,代码作用下面再进行介绍.
1:使用Putty登入你的VPS系统,以root权限操作.
2:执行以下命令更换Epel源地址,如果你的系统和我的不一样,请参考:https://www.myzhenai.com/thread-15362-1-1.html
#wget https://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm #wget https://download1.rpmfusion.org/free/el/updates/5/i386/rpmfusion-free-release-5-1.noarch.rpm #wget https://download1.rpmfusion.org/nonfree/el/updates/5/i386/rpmfusion-nonfree-release-5-1.noarch.rpm #rpm -ivh epel-release-5-4.noarch.rpm #rpm -ivh rpmfusion-free-release-5-1.noarch.rpm #rpm -ivh rpmfusion-nonfree-release-5-1.noarch.rpm #yum makecache #yum update #yum install gcc #yum install g++ #yum install dkms #yum install lrzsz* #yum install lzo* #yum install iptables*
下面来准备安装Pptpd,因为我使用Epel源进行yum install 安装的ppp和pptp出现不能正常使用(不排除我配置的方法不对),所以我是使用一些版本低的rpm安装包进行安装的.如果你要使用Epel源安装的话,你可以执行以下代码进行安装.理论上来讲,在安装前也要知道你的VPS服务器支不支持pptp和openvpn安装,网络上的访求是执行以下代码来检测你的服务器支不支持.
登陆SSH,检查VPS是否有必要的支持。如果检查结果没有这些支持的话,是无法安装pptp的。
#modprobe ppp-compress-18 && echo ok
(用模块方式支持MPPE加密模式浏览,如果内核支持检测不到.)如果显示“ok”表明通过。不过接下来还需要做另一个检查:
#cat /dev/net/tun
显示结果右边内容文本,表明通过:cat: /dev/net/tun: File descriptor in bad state,上述两条只需一条通过,即可安装pptp。如果还有其它问题,或者发tk请你的服务商来解决这个问题.
#yum install ppp* #yum install ppp-devel* #yum install pptp*
如果你不想使用源里的进行安装,你可以到https://poptop.sourceforge.net/yum/stable/packages/下载对应的版本进行安装,例如我的
#wget https://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm #wget https://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.4-14.1.rhel5.i386.rpm #wget https://poptop.sourceforge.net/yum/stable/packages/ppp-devel-2.4.4-14.1.rhel5.i386.rpm #wget https://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm #wget https://poptop.sourceforge.net/yum/stable/packages/pptp-release-4-6.devel.noarch.rpm #wget https://poptop.sourceforge.net/yum/stable/packages/pptp-release-4-6.fc3.noarch.rpm #rpm -ivh dkms-2.0.17.5-1.noarch.rpm #rpm -ivh ppp-2.4.4-14.1.rhel5.i386.rpm #rpm -ivh ppp-devel-2.4.4-14.1.rhel5.i386.rpm #rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm #rpm -ivh pptp-release-4-6.devel.noarch.rpm #rpm -ivh pptp-release-4-6.fc3.noarch.rpm
*注,如果后边的那两个pptp-release装不上也无所谓,如果安装的过程中出现错误很有可能是你的系统与软件版本不兼容,可以换个版本的软件进行安装,也有可能是缺少某个依赖库,你可以用“yum install 依赖库*” 来进行安装,为什么要加个星号,因为加个星号会自动安装这个软件的依赖库.如果安装没有任何错误的话,我们可以进行Pptp的配置工作了.有一点需要向新手们说明,vi打开文件后,只需要按下键盘上的i键(小写的I)就可以进行编辑,按键盘上的上下左右键进行移动光标来编辑文档,退格键(Backspace)可以删除文本,编辑完后,按下键盘上的退出键(Eac)退出编辑,然后按下上档键(Shift)+zz键,即两个大写的ZZ键就保存文档退出Vi,如果不想保存,按下键盘上的ZQ两个键就不保存退出Vi.
#vi /etc/pptpd.conf
*注,打开pptpd.conf进行编辑.把下边两行内容前的#号去掉,加个#号应该是说这项功能被注释了.转发的IP地址建议使用默认的,因为后面我们还要安装Openvpn,我就是因为私自修改了这些IP地址,导致和Openvpn的IP相冲突了,才导致问题发生.
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
图:pptpd.conf
#vi /etc/ppp/options.pptpd
*注,把下边两行前的#号去掉,也可以更换成你想要的DNS地址.
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
图options.pptpd
接下来我们添加pptp的用户名和密码
#vi /etc/ppp/chap-secrets
*注,在下边的两行的下方添加您的用户信息.
# Secrets for authentication using CHAP
# client server secret IP addresses
Username pptpd Password *
*注,上边的那行就是例,Username是你的连接用户名,Password是你的连接密码,空一格后加一个*号,加*号是不指定IP地址,如果你这里输入一个IP地址,系统就只给那个IP地址登入了.
#vi /etc/sysctl.conf
*注,将将net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1
#sysctl -p
Pptpd安装和配置完成了,接下来是添加iptables转发规则.
OpenVZ的按照以下方法添加
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source you server ip
XEN的按照下面这一条添加
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE #/etc/init.d/iptables save
*注,保存iptables转发规则,设置好规则后一定记得保存规则.不然reboot后规则会被清空的.
#chkconfig pptpd on #chkconfig iptables on
*注,设置开机启动服务.
=======Pptpd到此安装配置结束================
Openvpn安装配置
如果你上边安装了Lzo和iptables及gcc g++ lrzsz,可以跳过安装这几个软件,不然的话,这里需要安装这几个软件.
#yum install gcc #yum install g++ #yum install lrzsz* #yum install lzo* #yum install iptables* #yum install openssl* #yum install openvpn* #rpm -ql openvpn
*注,执行rpm -ql openvpn命令看看你的openvpn安装到哪了,在回显的列表中找到easy-rsa目录,例如我的路径是
/usr/share/openvpn/easy-rsa/
#cp -R /usr/share/openvpn/easy-rsa/ /etc/openvpn
*注,将easy-rsa目录复制到/etc/openvpn下进行配置
#cd /etc/openvpn/easy-rsa/2.0/ #./vars
*注,回显 NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys 如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件.
#vi vars
*注,修改以下信息成为你想要的信息
export KEY_COUNTRY=”CN”--你所在的国家
export KEY_PROVINCE=”HN”--你所在的省份
export KEY_CITY=”HAIKOU”--你所在的城市
export KEY_ORG=”OpenVPN”--你所在的组织
export KEY_EMAIL=”root@foxmail.com”--你的邮箱
export KEY_EMAIL=root@foxmail.com–你的邮箱
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234
#. ./vars #./clean-all #./build-ca
*注,./clean-all删除/etc/openvpn/easy-rsa/2.0/keys下的文件,./build-ca生成一个a 1024 bit RSA的密钥,writing new private key to ‘ca.key’,在生成的过程中一直按回车,但有两处地方需要注意,出现[y/n]的时候要输入y才能回车.这一步生成CA证书
#./build-key-server server
*注,生成server-key,出现[y/n]的时候要输入y才能回车.当创建服务器的key时,Common Name输入的值为server,
#./build-key client-name
*注,生成client-key,name是你想设置的用户名称.在生成的过程中一直按回车,但有两处地方需要注意,出现[y/n]的时候要输入y才能回车.这里需要注意两点.
第1点:如果要生成多个客户端的key,那么你可以使用./build-key server-client-name、./build-key server-client-name、./build-key server-client-name…….
第2点:创建多个客户端的key时,Common Name输入的值必须不一样,同时客户端的key文件名(例如:./build-key 客户端key文件名)也必须不一样
#./build-dh
*注,生成Diffie-Hellman参数,
#cd keys #ls #cp ca.crt ca.key dh1024.pem server.csr server.key server.crt /etc/openvpn/
*注,ls回显后,将目录下的的crt key csr pem格式的文件复制到 /etc/openvpn/目录下.
#mkdir /home/vpn #cp ca.crt ca.key client-name.crt client-name.key client-name.csr /home/vpn/
*注,将用户证书备份到一个目录,以便下载
#cd /home/ #tar -zcvf File.tar.gz vpn/ #sz File.tar.gz
*注,打包压缩文档并传输回本地,如果你有VPS安装了FTP的话,可以将文件复制到FTP指定的目录然后下载,不然就只能用sz和scp下载到本地,上边这条命令是使用sz下载的,但因为我的是Centos系统,所以不能用sz,只能用linux下的scp来传输.例如以下
#scp root@123.125.163.122:/home/File.tar.gz /tmp/
*输完命令后会提示输入VPS的密码,root是你服务器当前用户名,IP地址是你的IP
#cp /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/server.conf
*注,将配置文件复制到路径下进行配置.
#vi /etc/openvpn/server.conf
*注,这里主要只改几处地方,# (see “pkcs12” directive in man page).下边的ca.crt server.crt server.key和你生成的配置文件名是不是一样,如果这三个文件不是放在/etc/openvpn目录下的话,你要添加上它们的绝对地址. push “route 192.168.10.0 255.255.255.0” 这行前边的;符号删掉. # DNS servers provided by opendns.com.下边push前边的#号和;号删除掉.
#iptables -A INPUT -p tcp --dport 1194 -j ACCEPT #iptables -A INPUT -p udp --dport 1194 -j ACCEPT #iptables -A INPUT -p tcp --dport 1723 -j ACCEPT #iptables -A INPUT -p tcp --dport 47 -j ACCEPT #iptables -A INPUT -p tcp --dport 2009 -j ACCEPT #iptables -A INPUT -p udp --dport 2009 -j ACCEPT #iptables -A INPUT -p gre -j ACCEPT #iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source server ip #iptables -t nat -A POSTROUTING -s 10.8.0.20/24 -j SNAT --to-source server ip #iptables -t nat -A POSTROUTING -s 10.8.0.1/24 -j SNAT --to-source server ip #iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source server ip #/etc/init.d/iptables save
*注,一定要运行这一行保存规则
把OpenVPN添加到开机启动,用vi /etc/rc.local进入编辑,在后面加入/usr/sbin/openvpn –config /etc/openvpn/server.conf &这一行。
#openvpn --config /etc/openvpn/server.conf &
*注,输入这一行看看有没有提示什么错误,如果提示“OK”即完成安装了.
=========Openvpn安装结束=======================
service iptables sava #保存规则
service iptables start #启动iptables
service iptables stop #停止iptables
service iptables restart #重启iptables
service pptpd start #启动pptp
service pptpd stop #停止pptp
service pptpd restart #重启pptp
service pptpd restart-kill #重启pptp, 并且断开所有已经连接的用户
service pptpd status #查看pptp目前状态
service openvpn start
service openvpn stop
service openvpn restart
service openvpn restart
service openvpn status
sicnature ---------------------------------------------------------------------
I P 地 址: 3.135.184.136
区 域 位 置: 美国
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
2条评论
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/openvpn-2.2.2-1.el6.rf.i686.rpm
rpm -ivh openvpn-2.2.2-1.el6.rf.i686.rpm
Jan 25 06:24:11 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed [1485296720.808686] [nm-system.c:1399] check_one_route(): (tun0): error -12 returned from rtnl_route_del(): Netlink Error (errno = No such process)
Jan 25 06:24:21 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed
Jan 25 06:24:31 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed
Jan 25 06:24:41 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed
Jan 25 06:24:51 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed
Jan 25 06:25:02 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed
Jan 25 06:25:12 localhost nm-openvpn[9451]: Authenticate/Decrypt packet error: cipher final failed
Jan 25 06:25:20 localhost nm-openvpn[9451]: /sbin/ip addr del dev tun0 local 10.8.0.6 peer 10.8.0.5
Jan 25 06:25:20 localhost NetworkManager[9375]:
If this happens to you, you probably have a mismatch in the configuration between server and client on the “cipher”-option. (E.g.: cipher AES-128-CB / cipher AES-256-CB) This is not a problem of DD-WRT or OpenVPN but just a config issue which can happen if you follow some of those guidelines strictly without knowing what the config options mean.
如果这发生在你身上,你可能有一个错配在配置服务器与客户端之间的“密码”选项。(例如:密码aes-128-cb /密码aes-256-cb)这不是问题 DD-WRT或OpenVPN只是配置问题可以发生如果你遵循一些准则,严格不知道什么配置选项。
如果出现以上错误, 请看一看你服务端上的 /etc/openvpn/server.conf 配置文件里的 cipher AES-256-CBC 是不是开启了, 如果这一项开启了, 本地客户端配置里也要开启这一个加密