本文是根据我公司的实际应用情况写的,但是稍加修改即可应用到很多地方,系统运行的两个月来,证明还是安全可靠稳定的,呵...
我公司在北京,但是主要设备都在南京电信的一个主要idc里,那边有我们的两个pix525ur(做了故障切换),上面做了严格的访问控制,因此,为了方便公司里的移动,出差及在家的员工办公,才有了做vpn系统的想法.好使具有相应权限的使用者从个人pc通过支持mppe128的加密隧道连接至公司的vpn server,再通过vpn server将数据转发到南京idc的我公司应用网络,其间的连接也是基于ipsec的安全vpn隧道.由此可以保证我公司的所有应用需求的安全性和便捷性.
1.硬件资源:服务器一台
pix 525ur防火墙一台
2.软件资源:mandrake 9.2
kernelmod
pptpd
super-freeswan
iptables
公网ip地址
注:我在测试了几种linux(包括redhat,suse,mandrake,astaro)后,感觉mandrake是最简单,最稳妥的平台.
下面就是安装过程:
1.操作系统安装:
安装过程无特殊要求,在选择安装组件的时候除开发工具外其它一概不选,主要是出于安全性考虑.
2.安装kernelmod:
tar zxvf kernelmod-0.7.1.tar.gz
cd /kernelmod
./ kernelmod.sh
3.安装pptpd:
①升级ppp
rpm –uvh ppp-2.4.2-0.1b3.i386.rpm
②安装pptpd
rpm –ivh pptpd-1.1.4-1b4.fr.i386.rpm
4.安装super-freeswan:
rpm –ivh super-freeswan-1.99.8-8.2.100mdk.i586.rpm
5.升级iptables
rpm –uvh iptables-1.2.8-12.i386.rpm
呵...至此,全部的安装过程就完成了,简单吧,
注:以上软件都可以在rpmfind.net找到!
下面是最主要的配置过程:
1.操作系统的配置:
①升级openssh
②关闭不需要的服务(sendmail isdn …)
③编辑/etc/sysctl.conf
.net.ipv4.ip_forward = 0=>1
.net.ipv4.conf.default.rp_filter = 1=>0
2.pix配置文件(vpn部分):
access-list inside_outbound_nat0_acl permit ip "南京ip段" 255.255.255.0 "公司vpn用户的ip段" 255.255.255.0
access-list outside_cryptomap_20 permit ip "南京ip段" 255.255.255.0 "公司vpn用户的ip段" 255.255.255.0
nat (inside) 0 access-list inside_outbound_nat0_acl
sysopt connection permit-ipsec
crypto ipsec transform-set esp-3des-md5 esp-3des esp-md5-hmac
crypto map outside_map 20 ipsec-isakmp
crypto map outside_map 20 match address outside_cryptomap_20
crypto map outside_map 20 set peer "vpn服务器的ip"
crypto map outside_map 20 set transform-set esp-3des-md5
crypto map outside_map interface outside
isakmp enable outside
isakmp key "密码" address "vpn服务器的ip".netmask 255.255.255.255 no-xauth no-config-mode
isakmp identity address
isakmp policy 20 authentication pre-share
isakmp policy 20 encryption 3des
isakmp policy 20 hash md5
isakmp policy 20 group 2
isakmp policy 20 lifetime 28800
3.pptp配置
①/etc/pptpd.conf
speed 115200
option /etc/ppp/options
localip "公司vpn用户的网关(例如10.0.1.1)"
remoteip "公司vpn用户的ip段(例如10.0.1.200-250)"
②/etc/ppp/chap-secrets
“用户名” "vpn服务器的ip" “密码” 10.0.1.20x (200
③/etc/ppp/options
lock
name "vpn服务器的ip"
mtu 1490
mru 1490
proxyarp
auth
-chap
-mschap
+mschap-v2
require-mppe
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 3
lcp-echo-interval 5
ms-dns x.x.x.x
deflate 0
4.super-freeswan配置
①/etc/freeswan/ipsec.conf
# basic configuration
config setup
# this setting must be correct or almost nothing will work;
# %defaultroute is okay for most simple cases.
interfaces="ipsec0=eth0"
# debug-logging controls: "none" for (almost) none, "all" for lots.
klipsdebug=none
plutodebug=none
# use auto= parameters in conn descriptions to control startup actions.
plutoload=%search
plutostart=%search
# close down old connection when new one using same id shows up.
uniqueids=yes
nat_traversal=yes
# defaults for subsequent connection descriptions
# (these defaults will soon go away)
conn %default
keyingtries=0
disablearrivalcheck=no
authby=rsasig
#leftrsasigkey=%dnsondemand
#rightrsasigkey=%dnsondemand
conn pix
left="vpn服务器的ip"
leftnexthop="vpn服务器的网关"
leftsu.net="公司vpn用户的ip段(例如10.0.1.0/32)"
right="南京pix525ur的ip"
rightnexthop=%direct
rightsu.net="南京ip段"
authby=secret
pfs=no
auto=start
②/etc/freeswan/ipsec.secrets
"vpn服务器的ip" "南京pix525ur的ip": psk "密码"
5.iptables配置(样本),用以限制公司vpn用户的访问权限:
iptables -t nat -a postrouting -o eth0 -s 10.0.1.201/32 -d "南京ip段" -j masquerade
service iptables save
注:1.添加用户名及修改密码 /etc/ppp/chap-secrets
2.用户权限设定 编辑修改iptables规则
3.如果公司路由器上有access-list,则添加
permit 47 any host 219.238.213.244
4.校验ipsec服务是否启动成功
ipsec verify
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器