Monday, March 28, 2011

深切OpenVPN的设置装备摆设


前面已经斗劲具体的说了然OpenVPN的使用和设置装备摆设,但在现实使用中,可能还会碰着良多收集尚罾υ题,今天就再举几个例子声名一下。一、案例1针对分歧的客户端指定分歧的品级和权限。凡是的体例是:1、每个客户端分配分歧的IP地址;2、操作防火墙对分歧的IP地址进行节制;例如:引用1、公司内部网段是10.66.4.0/24;2、所有人许可访谒Email处事器为10.66.4.4,但不能访谒其他处事器;3、特定的客户组许可访谒Samba处事器为10.66.4.12,不能访谒其他处事器;4、打点员能访谒所有公司内网处事器。按照上述的要求,我们可以对OpenVPN处事端进行设置装备摆设:(而不需要改削客户端设置装备摆设文件)引用server.conf增添:#10.8.0.0是给所有VPN客户端的IP段;server 10.8.0.0 255.255.255.0#10.8.1.0是给打点员分配的IP段;server 10.8.1.0 255.255.255.0#10.8.2.0就是给特定用户组分配的IP段;server 10.8.2.0 255.255.255.0#下面是界说处事器篡夺非凡客户端设置装备摆设文件的目录为ccd;client-config-dir ccd经由过程膳缦沔的设置装备摆设,此后我们就可以对指定的客户进行非凡的界说了。设置装备摆设文件应该放在ccd目录下:引用ccd/sysadmin1:ifconfig-push 10.8.1.1 10.8.1.2引用ccd/contractor1:ifconfig-push 10.8.2.1 10.8.2.2引用ccd/contractor2:ifconfig-push 10.8.2.5 10.8.2.6※注重:1、文件名就是客户的Common Name,OpenVPN是按照该名称来获得指定客户端的;2、客户端的IP地址不是肆意指定的,因为Windows的TAP驱动必需采用/30网段的IP,为兼容该和谈,应年夜特定的IP地址中选择,而且是成组呈现的;(可参考第一份文章附录介绍)那最后,剩下的就是用iptables防火墙做限制即可:(假设PLOICY为Deny)iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -j ACCEPTiptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ACCEPTiptables -A FORWARD -i tun0 -s … 继续阅读

前面已经斗劲具体的说了然OpenVPN的使用和设置装备摆设,但在现实使用中,可能还会碰着良多收集尚罾υ题,今天就再举几个例子声名一下。一、案例1针对分歧的客户端指定分歧的品级和权限。凡是的体例是:1、每个客户端分配分歧的IP地址;2、操作防火墙对分歧的IP地址进行节制;例如:引用1、公司内部网段是10.66.4.0/24;2、所有人许可访谒Email处事器为10.66.4.4,但不能访谒其他处事器;3、特定的客户组许可访谒Samba处事器为10.66.4.12,不能访谒其他处事器;4、打点员能访谒所有公司内网处事器。按照上述的要求,我们可以对OpenVPN处事端进行设置装备摆设:(而不需要改削客户端设置装备摆设文件)引用server.conf增添:#10.8.0.0是给所有VPN客户端的IP段;server 10.8.0.0 255.255.255.0#10.8.1.0是给打点员分配的IP段;server 10.8.1.0 255.255.255.0#10.8.2.0就是给特定用户组分配的IP段;server 10.8.2.0 255.255.255.0#下面是界说处事器篡夺非凡客户端设置装备摆设文件的目录为ccd;client-config-dir ccd经由过程膳缦沔的设置装备摆设,此后我们就可以对指定的客户进行非凡的界说了。设置装备摆设文件应该放在ccd目录下:引用ccd/sysadmin1:ifconfig-push 10.8.1.1 10.8.1.2引用ccd/contractor1:ifconfig-push 10.8.2.1 10.8.2.2引用ccd/contractor2:ifconfig-push 10.8.2.5 10.8.2.6※注重:1、文件名就是客户的Common Name,OpenVPN是按照该名称来获得指定客户端的;2、客户端的IP地址不是肆意指定的,因为Windows的TAP驱动必需采用/30网段的IP,为兼容该和谈,应年夜特定的IP地址中选择,而且是成组呈现的;(可参考第一份文章附录介绍)那最后,剩下的就是用iptables防火墙做限制即可:(假设PLOICY为Deny)iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -j ACCEPTiptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ACCEPTiptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 10.66.4.12 -j ACCEPT二、案例2让客户端内部子网可与处事端内部网互通,其实也就是实现点对点互连了。引用要求如下:1、客户端的子网网段必需独一;2、客户端的Common Name要独一,而且不能在处事器的设置装备摆设文件中设置装备摆设有duplicate-cn;3、客户端打开IP Forward(路由转发)和许可TUN、TAP进入;OK,那假设客户端子网为192.168.4.0,而且客户端网关和客户端OpenVPN是统一处事器,那可以这样设置装备摆设:引用server.conf增添:#下面是界说处事器篡夺非凡客户端设置装备摆设文件的目录为ccd;client-config-dir ccd#处事器增添到192.168.4.0/24的路由route 192.168.4.0 255.255.255.0#许可客户端子网互通client-to-client#让所有客户端都增添到192.168.4.0/24的路由push “route 192.168.4.0 255.255.255.0″然后,对指定的客户端成立设置装备摆设文件。mkdir /etc/openvpn/ccd在ccd目录下成立一个与客户端Common Name不异名字的文件名,并插手:引用#这是告诉处事器,我(客户端)的子网网段是192.168.4.0/24;iroute 192.168.4.0 255.255.255.0※注重:1、若OpenVPN Server不是处事端子网的网关,则必需在处事端子网网关插手指向192.168.4.0/24的路由;2、若客户端的OpenVPN Client也不是客户端子网的网关,同样的,也必需插手对应的路由,如:route add -net 192.168.4.0 netmask 255.255.255.0 gw 10.8.0.5 dev eth0总而言之,就是必需让网关经由过程VPN处事器,可路由到所有的VPN子网,这无论是对于处事端仍是客户端都是必需界说的。三、案例3OpenVPN内部供给了DHCP的处事,而不需要依靠外部的DHCP处事器。同样,也供给了DHCP处事的一些设置装备摆设参数:引用server.conf设置装备摆设:#界说客户端的DNS处事器地址push “dhcp-options DNS 192.168.228.1″#界说客户端的WINS处事器地址push “dhcp-options WINS 192.168.228.1″#让客户端倡议的所有IP请求都经由过程OpenVPN处事器push “redirect-gateway def1″此鱿脯最后一项设置装备摆设会改削客户端的默认路由为OpenVPN处事器。这样,凡是还必需插手NAT转换:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE这样,所有客户端当和OpenVPN处事器毗连后,就可以把该处事器作为对外的路由处事器使用了。(近似Proxy)四、案例4前面案例提到的,都是由处事端师长教师成客户端证书,然后分发到客户端,让客户端经由过程证书毗连各处事器上。但有时辰,这样的分发是斗劲麻烦的(也不平安)。这样,我们可以考虑此外一种体例:只在处事端建造客户端证书,而客户端只需要有ca.crt文件,而不需要拿到客户端证书,当上岸处事器的时辰是经由过程用户名和密码即可上岸OpenVPN处事器。◎处事端设置装备摆设:(以Linux版为例)OpenVPN可以经由过程插件(plugin)体例撑持上述的用户名认证,在Linux下以PAM为例,必需先增添用户:useradd -M testpasswd test然后改削server.conf增添:引用#使用PAM插件plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login#客户端可以不供给证书client-cert-not-required#用户上岸的用户名就是Common Nameusername-as-common-name※注重:1、若不增添client-cert-not-required语句,默认PAM认证和证书验证是需要同时经由过程才能成立毗连的;2、OpenVPN是基于SSL毗连,所以,上述设置只是让客户端不用供给证书,但却必需供给ca.crt;3、而且OpenVPN处事器也必需用客户端使用的上岸名(如:test)成立不异Common Name的证书,否则客户端上岸的时辰,处事器会提醒找不到对应证书,而不能成立毗连。◎客户端设置装备摆设:client.conf增添:引用#激活上岸认证体例auth-user-pass#改削认证证书,保留ca.crt即可,客户端证书可以不要了ca ./easy-rsa/keys/ca.crt#cert ./easy-rsa/keys/client1.crt#key ./easy-rsa/keys/client1.key这样,当手动启动客户端的时辰,即会提醒用户名和密码。(用户名和密码为上岸处事器PAM认证,经由过程后,OpenVPN会提取用户名作为Common Name,并验证客户端证书,若也经由过程,则毗连搭建成功)※问题:若采用该体例,若何使用后台处事启动客户端?答:可以先成立一个文件author-keys(用户名和密码各一行),然后改削设置装备摆设文件引用auth-user-pass author-keys另其年夜中篡夺该文件以经由过程验证。但前提是必需在编译的时辰增添–enable-password-save参数。(可以使用这里的rpm包,点击)五、其他1)若客户端不能访谒OpenVPN使用的1194端口,可经由过程HTTP Proxy,但有要求:1、OpenVPN毗连要使用tcp体例,而不能使用udp体例;2、客户端设置装备摆设插手:引用http-proxy ip port2)OpenVPN负载平衡要使用OpenVPN负载平衡,可以这样做:1、可以成立多台处事器,除server设置装备摆设分歧外,其余不异:引用server1server 10.8.0.0 255.255.255.0server2server 10.8.1.0 255.255.255.0server3server 10.8.2.0 255.255.255.02、客户端可以用多抱考试考试进行设置装备摆设:引用#默认年夜上往下考试考试remote server1 portremote server2 port#也可以改为随机毗连remote-random#为防止DNS解析错误导致一直行后续的考试考试,可以插手下面的语句resolv-retry 603)撤回证书前面已经提到,可以片面的经由过程处事器撤回客户端证书,在easy-rsa目录下:source ./vars./revoke-full client2会生成crl.pem文件。把文件拷入对应目录,如keys。然后改削server.conf:引用crl-verify ./easy-rsa/keys/crl.pem即可。(CRL List对于新客户是马上生效的,而且不需要重启处事器)六、增强OpenVPN的平安性1、建树tls-authopenvpn –genkey –secret ta.keyserver.conf:引用tls-auth ta.key 0client.conf:引用tls-auth ta.key 12、使用UDP和谈因为UDP一般不会有DoS抨击袭击,而且能能防止端口被扫描,能保证更平安。3、使用nobody用户和组运行处事对于非Win的处事器,可以在设置装备摆设中插手:引用user nobodygroup nobody4、使用chroot请参考:官方文档5、使用Large RSA keys可以经由过程改削./easy-rsa/vars中的KEY_SIZE,增添到2048。但要注重,该改削必需重建所有的keys、以及设置装备摆设文件。6、使用Large symmetric keys可以在设置装备摆设文件中插手:引用cipher AES-256-CBC7、把ca.key零丁存放最后,也是最主要的一点。畴前面的设置装备摆设文件可以看到,无论是处事端,仍是客户端都不需要使用ca.key文件的。但该文件却很主要,所以,我们应该把它此外保留好,而不是放在处事器上哦!8、还有一种平安问题,就是Man-in-the-Middle抨击袭击。也就是模拟server毗连另一个client。可以参考官方文档※相信经由过程这些例子,此后对于OpenVPN的设置装备摆设就不会再有任何问题了。 评论这张 转发至微博





Published by
Published by xFruits
Original source : http://www.vpn123.tk/?p=196...

No comments:

Post a Comment