首页 运维 网络学院 查看内容

Linux为企业搭建稳固的SSL VPN服务

2011-7-21 10:54 557 0

摘要:   一、OpenVPN是靠虚拟的TUN/TAP设备实现SSL VPN的,因此内核必须支持TUN/TAP设备模块,这个配置选项在2.6.x内核中,位于Device Drivers ->Networ...
关键词: nbsp OpenVPN root dic Name 172 KEY 密钥 certificate 2.0

  一、OpenVPN是靠虚拟的TUN/TAP设备实现SSL VPN的,因此内核必须支持TUN/TAP设备模块,这个配置选项在2.6.x内核中,位于Device Drivers ->Network device support 菜单中,全称是Universal TUN/TAP device driver support ,通常在标准内核中,会以模块方式提供,在Open VPN启动时,它会自动加载此模块,因此不需要手工加载此模块。  [root@dic172 2.6.18-238.12.1.el5-i686]# pwd  /usr/src/kernels/2.6.18-238.12.1.el5-i686  [root@dic172 2.6.18-238.12.1.el5-i686]# make menuconfig  #打开内核菜单  Device Drivers  --->  Network device support  --->  <M> Universal TUN/TAP device driver support     #<M>即表示以模块化加载到内核中  二、在安装OpenVPN之前,还需要安装一些支持包,包括OpenSSL开发库和LZO压缩开发库  1、可使用yum安装OpenSSL开发库,但需要手工下载并安装LZO开发包。  [root@dic172 /]# yum install  openssl  [root@dic172 /]# yum install openssl-devel  2、可到 http://www.oberhumer.com/opensource/lzo/ 下载LZO  [root@dic172 src]# tar zxvf lzo-2.03.tar.gz  [root@dic172 src]# cd lzo-2.03  [root@dic172 lzo-2.03]# ./configure  [root@dic172 lzo-2.03]# make  [root@dic172 lzo-2.03]# make install  三、配置SSL VPN服务  1、到  http://openvpn.net/release/ 下载openvpn-2.0.9.tar.gz并安装  [root@dic172 src]# tar zxvf openvpn-2.0.9.tar.gz  [root@dic172 src]# cd openvpn-2.0.9/  [root@dic172 openvpn-2.0.9]#  ./configure  [root@dic172 openvpn-2.0.9]# make  [root@dic172 openvpn-2.0.9]#  make install  [root@dic172 openvpn-2.0.9]# cp -p sample-scripts/openvpn.init /etc/init.d/openvpn  [root@dic172 openvpn-2.0.9]# chkconfig --add openvpn  [root@dic172 openvpn-2.0.9]# service openvpn status  #查看服务状态  openvpn: service not started  [root@dic172 openvpn-2.0.9]# chkconfig --level 235 openvpn on  [root@dic172 openvpn-2.0.9]# chkconfig --list openvpn  openvpn         0:off   1:off   2:on    3:on    4:on    5:on    6:off  2、开启IP转发功能  [root@dic172 openvpn-2.0.9]# vi /etc/sysctl.conf  net.ipv4.ip_forward = 1  [root@dic172 openvpn-2.0.9]# sysctl -p  3、定义OpenVPN的配置目录为/etc/openvpn,把服务器配置文件定义为/etc/openvpn/server.conf  OpenVPN是一个SSL VPN实现,因此,认证中最重要的是服务器和客户端的SSL证书管理,如果管理员之前没有SSL证书发布机制,那么可以使用OpenVPN附带的一组工具来完成所有的工作。  在/usr/src/openvpn-2.0.9/中,有一个easy-rsa目录,这下面就是一些一成和管理SSL证书的工具,以下为生成证书操作。  [root@dic172 openvpn-2.0.9]# mkdir -p /etc/openvpn  [root@dic172 openvpn-2.0.9]# cp -p sample-config-files/server.conf /etc/openvpn/   #将样本配置文件复制到/etc/openvpn/,后面再做修改  4、修改vars文件变量,设置国家代码、省份、地市、机构名单、单位名称邮件等  [root@dic172 openvpn-2.0.9]#  cd easy-rsa/  [root@dic172 easy-rsa]# grep -v "#" vars  export D=`pwd`  export KEY_CONFIG=$D/openssl.cnf  export KEY_DIR=$D/keys  echo NOTE: when you run ./clean-all, I will be doing a rm -rf on $KEY_DIR  export KEY_SIZE=1024  export KEY_COUNTRY=CN  export KEY_PROVINCE=GD  export KEY_CITY=SZ  export KEY_ORG="DIC"  export KEY_EMAIL="[email protected]"  [root@dic172 easy-rsa]# source vars  NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/src/openvpn-2.0.9/easy-rsa/keys  #提示可使用。/clean-all清除所有包括CA在内的所有证书  5、使用clean-all脚本清除包括CA在内的所有证书,再创建CA证书。  [root@dic172 easy-rsa]# ./clean-all   #先清除证书,再创建证书  [root@dic172 easy-rsa]# ./build-ca  #创建CA证书  Generating a 1024 bit RSA private key  ……++++++  ……++++++  writing new private key to 'ca.key'  -----  You are about to be asked to enter information that will be incorporated  into your certificate request.  What you are about to enter is what is called a Distinguished Name or a DN.  There are quite a few fields but you can leave some blank  For some fields there will be a default value,  If you enter '.', the field will be left blank.  -----  Country Name (2 letter code) [CN]:  State or Province Name (full name) [GD]:  Locality Name (eg, city) [SZ]:  Organization Name (eg, company) [DIC]:  Organizational Unit Name (eg, section) []:  Common Name (eg, your name or your server's hostname) []:dic172   #服务器主机名  Email Address [[email protected]]:  6、创建服务器密钥。  [root@dic172 easy-rsa]# ./build-key-server server  #创建服务器端密钥  Generating a 1024 bit RSA private key  ……++++++  …++++++  writing new private key to 'server.key'  -----  You are about to be asked to enter information that will be incorporated  into your certificate request.  What you are about to enter is what is called a Distinguished Name or a DN.  There are quite a few fields but you can leave some blank  For some fields there will be a default value,  If you enter '.', the field will be left blank.  -----  Country Name (2 letter code) [CN]:  State or Province Name (full name) [GD]:  Locality Name (eg, city) [SZ]:  Organization Name (eg, company) [DIC]:  Organizational Unit Name (eg, section) []:  Common Name (eg, your name or your server's hostname) []:dic172  #服务器主机名  Email Address [[email protected]]:  Please enter the following 'extra' attributes  to be sent with your certificate request  A challenge password []:dic172  An optional company name []:dic172  Using configuration from /usr/src/openvpn-2.0.9/easy-rsa/openssl.cnf  Check that the request matches the signature  Signature ok  The Subject's Distinguished Name is as follows  countryName           :PRINTABLE:'CN'  stateOrProvinceName   :PRINTABLE:'GD'  localityName          :PRINTABLE:'SZ'  organizationName      :PRINTABLE:'DIC'  commonName            :PRINTABLE:'dic172'  emailAddress          :IA5STRING:'[email protected]'  Certificate is to be certified until Jul 16 05:51:08 2021 GMT (3650 days)  Sign the certificate? [y/n]:y  1 out of 1 certificate requests certified, commit? [y/n]y  Write out database with 1 new entries  Data Base Updated  7、创建客户端密钥,客户端密钥名可随意命名。  [root@dic172 easy-rsa]# ./build-key client  Generating a 1024 bit RSA private key  ……++++++  ……++++++  writing new private key to 'client.key'  -----  You are about to be asked to enter information that will be incorporated  into your certificate request.  What you are about to enter is what is called a Distinguished Name or a DN.  There are quite a few fields but you can leave some blank  For some fields there will be a default value,  If you enter '.', the field will be left blank.  -----  Country Name (2 letter code) [CN]:  State or Province Name (full name) [GD]:  Locality Name (eg, city) [SZ]:  Organization Name (eg, company) [DIC]:  Organizational Unit Name (eg, section) []:  Common Name (eg, your name or your server's hostname) []:tgh  #不同客户端,命名绝不能一样  Email Address [[email protected]]:  Please enter the following 'extra' attributes  to be sent with your certificate request  A challenge password []:dic172  An optional company name []:dic172  Using configuration from /usr/src/openvpn-2.0.9/easy-rsa/openssl.cnf  Check that the request matches the signature  Signature ok  The Subject's Distinguished Name is as follows  countryName           :PRINTABLE:'CN'  stateOrProvinceName   :PRINTABLE:'GD'  localityName          :PRINTABLE:'SZ'  organizationName      :PRINTABLE:'DIC'  commonName            :PRINTABLE:'tgh'  emailAddress          :IA5STRING:'[email protected]'  Certificate is to be certified until Jul 16 05:52:27 2021 GMT (3650 days)  Sign the certificate? [y/n]:y  1 out of 1 certificate requests certified, commit? [y/n]y  Write out database with 1 new entries  Data Base Updated  8、创建dhDiffie-Hellman )密钥算法文件  [root@dic172 easy-rsa]# ./build-dh  Generating DH parameters, 1024 bit long safe prime, generator 2  This is going to take a long time  …+……+……+……+……+……+……+……+……+……+……+……+……+……+……+……++……+……++*++*++*  9、生成  tls-auth 密钥 ,tls-auth密钥可以为点对点的VPN连接提供了进一步的安全验证,如果选择使用这一方式,服务器端和客户端都必须拥有该密钥文件。  [root@dic172 easy-rsa]# openvpn --genkey --secret keys/ta.key  [root@dic172 easy-rsa]# cp -rp keys/ /etc/openvpn/    #将证书文件复制到/etc/openvpn/  10、修改server.conf配置文件  [root@dic172 openvpn]# grep -v "#" server.conf  local 192.168.161.172     #服务器所使用的IP  port 1194                      #使用1194端口  proto udp                      #使用UDP协议  dev tun                         #使用tun设备  ca /etc/openvpn/keys/ca.crt    #指定CA证书文件路径  cert /etc/openvpn/keys/server.crt  dh /etc/openvpn/keys/dh1024.pem  tls-auth /etc/openvpn/keys/ta.key 0  server 172.16.10.0 255.255.255.0   #VPN客户端拨入后,所获得的IP地址池  ifconfig-pool-persist ipp.txt  push "dhcp-option DNS 202.96.134.133"   #客户端所获得的DNS  client-to-client  keepalive 10 120  comp-lzo  persist-key  persist-tun  status openvpn-status.log  verb 3  mute 20  [root@dic172 openvpn-2.0.9]# service openvpn start  Starting openvpn: [  OK  ]  [root@dic172 openvpn-2.0.9]# netstat -anp |grep :1194  udp        0      0 192.168.161.172:1194        0.0.0.0:*                               25162/openvpn  四、在XP客户端配置SSL VPN(客户端IP 192.168.163.96)  1、到http://openvpn.se/files/install_packages/下载openvpn-2.0.9-gui-1.0.3-install.exe  2、安装openvpn-2.0.9-gui-1.0.3-install.exe,一路next。由于只是做客户端使用,不必安装OpenVPN Service  安装完成后,在任务栏会新增加一个OpenVPN GUI和本地连接图标。  3、配置客户端,把服务器上/etc/openvpn/keys/ca.*,client.*,ta.* 复制客户端C:\Program Files\OpenVPN\config下;再从C:\Program Files\OpenVPN\sample-config复制一个客户端配置样本文件client.ovpn到C:\Program Files\OpenVPN\config下。  4、修改client.ovpn文件如下并保存。  client  dev tun  proto udp  remote 192.168.161.172 1194  resolv-retry infinite  nobind  ca ca.crt  cert client.crt  key client.key  tls-auth ta.key 1  comp-lzo  verb 3  mute 20  5、启动连接。右击右下角的OpenVPN GUI图标,连接  6、连接成功后,图标如下。到此,SSL VPN服务就配置好了。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部