免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1144 | 回复: 0
打印 上一主题 下一主题

反向链接 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-21 19:26 |只看该作者 |倒序浏览

反向链接:从外网通过指定的端口用SSH登陆到局域网内。
工作原理
    我们把具有固定ip地址的服务器219.238.162.158作为通道,在192.168.1.253上使用逆向ssh连接219.238.162.253的8821端口,到本地的的22端口(sshd)逆向连接成功后,219.238.162.158会启动一个进程监听端口指定的端口(8821),所有到这个端口的连接会被重定向到192.168.1.253的22端口上。
配置步骤:
    环境要求:sd或wla平台
    所需软件: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

  验证java和sd
   [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.cron,merge表每月滚动
      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=http://211.155.251.253:8100/sysadmin/cps/ssh_hack_list.html一行后面加上?$SITE_ID,可以方便在日志里看到反向的连接情况。


如何关闭客户系统上的逆向连接
在www.webcate.net上修改/var/www/cps/ssh_hack_list.html,把客户系统对应的行注释掉
配置好了之后,过了一段时间无法在通过管理服务器访问了这种情况一般是客户系统的异常导致逆向连接中断,但是客户系统上的进程还存在,定期运行的.

cps_ssh_hack没有发现错误处理方法是:
在管理服务器上中止监听那个端口的sshd进程(su到root用户,用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 这个文件,然后重试。      
     


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/87463/showart_1732774.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP