Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66569
  • 博文数量: 30
  • 博客积分: 1265
  • 博客等级: 中尉
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-04 15:24
文章分类

全部博文(30)

文章存档

2011年(1)

2010年(14)

2009年(11)

2008年(4)

我的朋友

分类: LINUX

2008-12-21 19:26:57

反向链接:从外网通过指定的端口用SSH登陆到局域网内。

工作原理

    我们把具有固定ip地址的服务器219.238.162.158作为通道,在192.168.1.253上使用逆向ssh连接219.238.162.2538821端口,到本地的的22端口(sshd)逆向连接成功后,219.238.162.158会启动一个进程监听端口指定的端口(8821),所有到这个端口的连接会被重定向到192.168.1.25322端口上。

配置步骤:

    环境要求:sdwla平台

    所需软件:cpssd_4_0_0_dev_2008_05_23_pageperf.zip    jdk-1_5_0_06-linux-i586.bin

 

安装:

    1 创建用户chengh

         useradd chengh ;passwd ********

    2 安装sd

     

     [chengh@tserver link]$chmod +x link/jdk-1_5_0_06-linux-i586.bin

    

     [chengh@tserver link]$./jdk-1_5_0_06-linux-i586.bin

     

     [chengh@tserver link]$unzip link/cpssd_4_0_0_dev_2008_05_23_pageperf.zip

    

     建立软链接

    

     [chengh@tserver link]$ln -s cpssd cpssd_4_0_1_dev_2008_08_18 cps_home

     [chengh@tserver link]$ln -s jdk jdk1.5.0_06 java_home

   

     配置环境变量

     [chengh@tserver link]$cd cps_home/conf

     [chengh@tserver link]$vi bash_profile.txt

 

  修改java_home,cps_home的路径并复制所有内容,如下:

    

     export JAVA_HOME=/mnt/data1/chengh/link/java_home

     export CPS_HOME=/mnt/data1/chengh/link/cps_home

     export

PATH=$JAVA_HOME/bin:$CPS_HOME/bin:$CPS_HOME/bin/tools:$PATH:/bin:/sbin:/usr/bin:/usr/local/bin

:/usr/sbin:/usr/X11R6/bin:.

     export LANG=zh_CN.GBK

     alias psg="ps -ef --width 500 |grep"

     alias cps="cd $CPS_HOME"

   

     [chengh@tserver link]$cd

     [chengh@tserver ~]$ls -a

     chengh@tserver ~]$vi .bash_profile

    修改成如下内容:

    # .bash_profile

 

    # Get the aliases and functions

     if [ -f ~/.bashrc ]; then

         . ~/.bashrc

     fi

 

     # User specific environment and startup programs

     export JAVA_HOME=/mnt/data1/chengh/link/java_home

     export CPS_HOME=/mnt/data1/chengh/link/cps_home

     export

PATH=$JAVA_HOME/bin:$CPS_HOME/bin:$CPS_HOME/bin/tools:$PATH:/bin:/sbin:/usr/bin:/usr/local/bin

:/usr/sbin:/usr/X11R6/bin:.

     export LANG=zh_CN.GBK

     alias psg="ps -ef --width 500 |grep"

     alias cps="cd $CPS_HOME"

 

    使环境变量生效

   [chengh@tserver ~]$source .bash_profile  #source .bash_profile

 

    修改sd文件属性及权限

   [chengh@tserver ~]$cd link/cps_home

   [chengh@tserver cps_home]$dos2unix ./run_me_first.sh

   [chengh@tserver cps_home]$chmod +x ./run_me_first.sh

   [chengh@tserver cps_home]$./run_me_first.sh

 

  验证javasd

   [chengh@tserver ~]$java  如果显示java相关的参数则说明java配置正确。

   [chengh@tserver ~]$cpswork checkdb 显示BUILD SUCCESSFUL 说明正确。

 

  更改site_id,位于cps_home/conf/cps_server.xml

 

   [chengh@tserver link]$cd cps_home/conf

   [chengh@tserver conf]$vi cps_server.xml

  site_id改为site_id"chenghlink"保存退出。

 

生成密钥:

  

   [chengh@tserver~]$ssh-keygen -t rsa

  此时会在.ssh/生成两个文件id_rsa,id_rsa.pub

   [chengh@tserver~]$vi .ssh/id_rsa.pub  复制里面的内容

 登陆到219.238.162.158,su - ln2

  /var/www/cps/cps_hack_list.html最后一行添加: chenglink:219.238.162.158:8821:ln2

   [ln2@mail~]$cd /var/www/cps

   [ln2@mail cps]$vi cps_hack_list.html

 

   [ln2@mail~]$cd

   [ln2@mail .ssh]$cd .ssh

   [ln2@mail .ssh]$vi authoriaed_keys

  把刚才复制的内容粘贴到最后(不能有空格和换行)

 

  /*确认cps_home/conf/cps_server.xml里的siteId/var/www/cps/ssh_hack_list.html里的siteId一致*/

 

 测试连接:

     登录到192.168.1.253

   [chengh@tserver~]$ssh ln2@219.238.162.158

     能否连通,提示符变为[ln2@mail ~]$ 说明连通。

    登录:192.168.1.253

   发起连接:

   [chengh@tserver~]$cps_ssh_link

    登录:219.238.162.158

    监听:

   [ln2@mail~]$netstat -pa |grep 8821    

 

持续连接:

     切换到192.168.1.253

   [chengh@tserver~]$cd link/cps_home/bin/skel

   [chengh@tserver skel]$ vi cps_recoverall.cron

     将最后一行注释掉或添加$CPS_HOME/bin/cps_ssh_link >> $LOGFILE 2>&1

     这样系统会随着cps recover的配置,定期监测逆向连接,并在需要的时候启动或者关闭

   [chengh@tserver skel]$cd ../../conf

   [chengh@tserver conf]$vi crontab.txt 复制里面的内容

   [chengh@tserver~]$crontab -e   将复制的内容粘贴过来,并将路径修改正确。修改后的内容如下:

    

      #cps_restart_all.cron,每天定期重启SD系统

      01 8 * * * /mnt/data1/chengh/link/cps_home/bin/skel/cps_restart_all.cron

 

      #cps_report.cron,每天定期发送邮件

      32 08 * * * /mnt/data1/chengh/link/cps_home/bin/skel/cps_report.cron

 

      #cps_recoverall.cron,每几分钟监控一下系统是否僵死

      */5 * * * * /mnt/data1/chengh/link/cps_home/bin/skel/cps_recoverall.cron

 

      #cps_report_creator.cron,自动生成报表

      23 7,13,21 * * * /mnt/data1/chengh/link/cps_home/bin/skel/cps_report_creator.cron

 

      #cps_merge_table_creator.cronmerge表每月滚动

      0 0 1 * * /mnt/data1/chengh/link/cps_home/bin/skel/cps_merge_table_creator.cron

 

      #cps_jiance.cron 排名上传

      0 * * * * /mnt/data1/chengh/link/cps_home/bin/skel/cps_jiance.cron

 

最后在219.238.162.158上看能否成功登录到192.168.1.253

      [ln2@mail~]$ssh -p 8821 chengh@192.168.1.253

 

  完成以上的步骤,反向链接基本就建立成功了。

注://黄色表示在192.168.1.253下输入的命令

    //绿色表示在219.238.162.158下输入的命令

 

工作日志和cps_recoveral.cron使用的相同,$CPS_HOME/logs/cps_recover.cron 修改vi /etc/hosts vlocal_ 埴写到最后,对应着cps_server.xml里的siteId

Vi$CPS_HOME/bin/cps_ssh_link,SUPPORT_URL=一行后面加上?$SITE_ID,可以方便在日志里看到反向的连接情况。

 

 

如何关闭客户系统上的逆向连接

上修改/var/www/cps/ssh_hack_list.html,把客户系统对应的行注释掉

配置好了之后,过了一段时间无法在通过管理服务器访问了这种情况一般是客户系统的异常导致逆向连接中断,但是客户系统上的进程还存在,定期运行的.

 

cps_ssh_hack没有发现错误处理方法是:

在管理服务器上中止监听那个端口的sshd进程(suroot用户,用netstat -pa|grep 端口号),如果存在的话,先kill掉。 修改ssh_hack_list.html,注释掉对应的行,等几分钟,让客户系统上的连接进程被kill掉。(可以通过tail文件/etc/httpd/logs/access_log.×××来监控) 恢复ssh_hack_list.html里面的配置,等几分钟,直到逆向连接再次被建立(通过管理服务器上看指定的端口是否有新的sshd监听) 如果出现Host key verification failed提示,需要删除/当前用户/.ssh/known_hosts 这个文件,然后重试。     

    

阅读(977) | 评论(0) | 转发(0) |
0

上一篇:vi命令一览表

下一篇:远离的心 曾经的情

给主人留下些什么吧!~~