`
8366
  • 浏览: 812987 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

玩了一下 ssl-explorer vpn(未完待续)

阅读更多

 

SSL-Explorer是一个SSL VPN解决方案。这个独特的远程访问解决方案让用户和商业伙伴只需使用一个标准的web浏览器就能够从外部网络安全的访问内部网络的资源。

 

 

软件架构

 

标准J2EE架构

 

   web服务器: jetty 内嵌服务器

    DB: HSQLDB 内存数据库

    框架:jsp+javaBean+struts1.0

 

源码地址

 

http://www.10pig.cn/index/sslexplorer.aspx

 

 

实验目的: 通过 使用开源的 vpn服务器 连接内部网资源,主要通过浏览器方式

 

  服务器: Linux bea 2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005 i686 i686 i386 GNU/Linux

  客户端: FF or IE

 

 

准备环境:

1.安装java环境

 

  详见:http://8366.iteye.com/admin/blogs/376982

 

2.安装ant 环境

 

我使用的是 apache-ant-1.8.1-bin.tar.gz

 

a. 使用tar 命令 将apache-ant-1.8.1-bin.tar.gz 解压缩到 /root目录

 

  cd /root

 

  tar xvfz apache-ant-1.8.1-bin.tar.gz

 

b. 编辑 /etc/profile 文件,加入,使用 vi /etc/profile

 

export JAVA_HOME=/usr/java/jdk1.6.0_16
expor PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:$PATH

 

3. 我自己的 /etc/profile 新加部分的样例

 

 

unset i
unset pathmunge
export JAVA_HOME=/usr/java/jdk1.6.0_16
export JRE_HOME=/usr/java/jdk1.6.0_16/jre
export ANT_HOME=/root/apache-ant-1.8.1
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:$PATH
[root@bea info]# 

 

4. 验证环境 正确性,可以看到java和ant的版本信息

 

 

[root@bea ~]# ant -version
Apache Ant version 1.8.1 compiled on April 30 2010
[root@bea ~]# java -version
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
[root@bea ~]# 

 

5.ssl-exploer vpn 服务器端分为window和linux两种,我下载的版本名字分别是

 

    windows :sslexplorer_windows_1_0_0_RC13.zip

     linux:  sslexplorer_linux_gui_1_0_0_RC16.zip

 

开始安装ssl-explorer

 

   安装过程 网上有个文档可以参考 sslexplorer-install.pdf 在本文的附件列表中

 

  如果你选择linux版本

 

  a.首先 解压缩安装文件 :

 

  unzip  sslexplorer_linux_gui_1_0_0_RC16.zi

 

 b. 运行安装脚本

 

[root@bea opt]# ./sslexplorer_linux_1_0_0_RC16.sh

 

 

c. 后续步骤和安装文档一致,需要注意的是 如果长时间停留在 安装中的服务器配置 步骤中,可以手动访问

 

http://localhost:28080 进行服务器端配置

 


ssl-exporler 启动和关闭

 

 linux :

 

# /etc/rc.d/init.d/sslexplorer start (启动)

# /etc/rc.d/init.d/sslexplorer stop (关闭)

#/etc/rc.d/init.d/sslexplorer restart  (重启)

 

 

windows:

 

在服务中找到 sslexplorer 执行启动或者关闭

 

 

ssl-exporler 代码结构和 个性化修改 (基于Linux)

 

 

我的ssl-exporer安装在/opt下

 

先看下 客户端登陆主页

 

 

 

 

如果你想修改这个产品的的文字可以 这样做:

 

ssl-explorer 页面全部使用时i18n, 所用的资源文件放在 ,将次jar包解压缩后找到 *.properties文件修改即可

 

/opt/sslexplorer/webapp/WEB-INF/lib/sslexplorer-webapp.jar

 

 

修改jsp页面内容可以这样:

 

1. jsp页面存放路径:

 

/opt/sslexplorer/webapp/WEB-INF/jsp ,找到你想改动的jsp,在其上修改

 

2.  删除 /opt/sslexplorer/tmp 目录下 org目录 ,tmp下其他目录不要动,误删除会导致样式丢失

 rm -rf org/

 

3. 重新启动ssl-explorerf服务

[root@bea tmp]# service sslexplorer restart
Stopping SSL-Explorer...
Stopped SSL-Explorer.
Starting SSL-Explorer...
[root@bea tmp]#

 

4.验证改动已经生效了,以前改动jsp页面不生效的原因就是 没有清空这个目录,没用重启服务

 

 

修改图片可以这样做:

 

图片路径

/opt/sslexplorer/webapp/theme/default/images

 

 

 

 

后期研究数据库迁移策略:

 

1.安装程序中有DB script可以直接使用导入到其他DB中

2.修改连接数据库的 工具类

 

  HSQLDB -->Mysql,Oracle,sqlserver

 

 

如何将自己做的东西加入到 ssl-explorer 的安装包里,在客户安装 ssl-explorer ,一并安装

 

 

我们知道 在linux 下安装  sslexplorer 执行的是 ./sslexplorer_linux_1_0_0_RC16.sh ,这是一个安装的shell,他的大小有20多M, 经过分析 这个文件的构成 主要是由2部分(可以使用vi命令)

 

1. 安装脚本 (第1行到 367行)

2. 安装所需的依赖包,以及文件夹 (368行 到尾)

 

我们要将自己的jsp和其他依赖jar,以及class放在安装包里,就必须阅读 第一部分的安装脚本,已经把自己的新增部分放在 第二部分

 

首先要做的就是 拆分 sslexplorer_linux_1_0_0_RC16.sh 这个安装程序,主要使用了tail 命令

 

1.使用vi sslexplorer_linux_1_0_0_RC16.sh 我们可以清楚的看到 安装的脚本 是 第1行到 367行,于是

 

head -367  sslexplorer_linux_1_0_0_RC16.sh >install.sh

 

上面命令的意思是 取文件 sslexplorer_linux_1_0_0_RC16.sh 的 1-367行 内容,并把它定向到 install.sh 文件中

 

,这样在目录下我们就有了 install.sh

 

2. 拆分安装文件 中的依赖包 ,经过阅读 install.sh 文件 我们知道 后面的部分必须查分成一个 叫  sfx_archive.tar.gz的 文件,我们可以像 install.sh 文件中一样 使用tail 命令进行拆分

 

tail -n +368 sslexplorer_linux_1_0_0_RC16.sh > sfx_archive.tar.gz

 

 

这时候我们会发现在当前的目录下我们多了 sfx_archive.tar.gz 文件 ,这个文件中正是 安装包中包含的内容,我们只要把自己新增的部分放在这个.gz包里,然后 在将 install.sh 和 sfx_archive.tar.gz 合并成 sslexplorer_linux_1_0_0_RC16.sh 就完成了 安装包的修改了

 

 

3. 合并

 

cat install.sh sfx_archive.tar.gz > sslexplorer_linux_1_0_0_RC16.sh

 

给安装包加上执行权限


chmod +x sslexplorer_linux_1_0_0_RC16.sh

 

 

经过1,2,3  我们就得到了一个全新的安装包

 

 遇到问题:

   a. 执行 ./sslexplorer_linux_1_0_0_RC16.sh 报错 ,如果是gzip格式不对 请检查 你拆分和合并的行数对否

   b. 如果你是在 windows平台改的 install.sh 脚本,然后上传到linux平台,请使用 dos2unxi 转化

 

 

中文乱码问题:

 

 1. 将自己的jsp页面放在 /opt/sslexplorer/webapp 下,我写了一个test.jsp 内容如下,一定要加

<%@ page pageEncoding="UTF-8"%>
不然会是乱码

 

 

<%@ page pageEncoding="UTF-8"%>
222222222222222222222211111111111
果你想修改这个产品的的文字

 

 

 2.显示效果

 

 

 

如果使用VI 不能保存中文 可以:

 

由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码。修改了一下配置文件,使vi支持gb编码就好了。

$vi ~/.vimrc


let &termencoding=&encoding

set fileencodings=utf-8,gbk

$:wq


再次打开vi,显示就正常了。

 

 

 

数据库研究

 

  1.安装目录下已经有链接hsql的工具 hsqldb-manager 我们可以使用它来链接数据库

 

     因为hsql数据库是以 In-Process(Standalone)模式启动的,这种模式不允许有其他他客户端链接数据库,因此我们先关闭 sslexplorer 服务使用这个工具链接数据库,当我们关闭 hsqldb-manager 这个工具的时候 我们才能启动 sslexplorer服务,不然会起不起来

 

链接url  jdbc:hsqldb:file:db/explorer_configuration

用户名   sa

密码 空

 

 

 

 

 

  

 

 

 

2.使用jsp页面测试数据库,看看能否select 和 insert ,写两个jsp页面 来做测试一个 select 一个insert

 

 

select.jsp

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<% 

final Connection conn;
Class.forName("org.hsqldb.jdbcDriver");
conn = DriverManager.getConnection("jdbc:hsqldb:file:/opt/sslexplorer/db/explorer_configuration", "sa", "");
Statement stmt = conn.createStatement();
//打印users表里面的内容
ResultSet rs = stmt.executeQuery("select * from users");
while(rs.next())
{
    out.println("userName:"+rs.getString(1));
    out.println("Email:"+rs.getString(2));
    out.println("<br>");
}
stmt.close();
conn.close();
%>
1111111111111111111111

 

insert.jsp

<%@ page pageEncoding="UTF-8"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<% 
try{
final Connection conn;
Class.forName("org.hsqldb.jdbcDriver");
conn = DriverManager.getConnection("jdbc:hsqldb:file:/opt/sslexplorer/db/explorer_configuration", "sa", "");
Statement stmt = conn.createStatement();
//打印users表里面的内容
//插入一条记录 每次执行这个语句的时候请更改用户名,不然会插入相同的用户名
//ENCPASSWORD 内置函数用来加密密码
//curdate() 内置函数 用来获取当前系统时间
String sql="INSERT INTO users (username, email, password, fullname, realm_id,last_password_change) VALUES('haohaoxuexi','ryp@xinli.com.cn',ENCPASSWORD('111111'),'renyupu',1,curdate())";
stmt.execute(sql);
stmt.close();
conn.close();
out.println("插入成功");
}
catch(Exception e)
{
out.println("插入失败:"+e.getMessage());
}
%>
     

把这个两个jsp 放到 /opt/sslexplorer/webapp 下, 启动 service sslexplorer start 做个测试

 

 

 

可以看到 数据已经 从数据库里读出来了!! 执行插入的jsp,然后用你插入的用户名和密码也可以登陆系统,我就不截图了

 

参考:

 

http://www.dnbcw.com/biancheng/solaris/pear245899.html

http://www.cnblogs.com/chinareny2k/archive/2010/01/05/1639468.html

 

http://cn.webdiscussion.info/question/3066948/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%80%E4%B8%AA%E8%A1%8C%E5%8F%B7%E6%96%87%E4%BB%B6%E5%88%86%E5%89%B2

 

http://www.linux-wiki.cn/index.php?title=%E5%88%B6%E4%BD%9C%E8%87%AA%E8%A7%A3%E5%8E%8B%E5%AE%89%E8%A3%85%E6%96%87%E4%BB%B6&variant=zh-cn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
2 楼 功夫之王50 2013-08-03  
亲爱的楼主,请问SSL EXPLORER有相关的框架文档吗?菜鸟路过,正在研究它的源码,很费劲啊
1 楼 hao3721 2013-07-03  
[root@slave03 sslexplorer]# java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)
[root@slave03 sslexplorer]# ant -version
Apache Ant version 1.8.1 compiled on April 30 2010

我的java和ant版本如上,跟你的差不多,为什么安装的时候,就是没有出现"如果长时间停留在 安装中的服务器配置 步骤中,可以手动访问http://localhost:28080 进行服务器端配置"这个步骤呢?直接报
install:
     [java] Java Result: 1

BUILD SUCCESSFUL

下一步该怎么做呢?

相关推荐

Global site tag (gtag.js) - Google Analytics