安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 系统文档 > 使用ssh端口转发做socks代理服务器

使用ssh端口转发做socks代理服务器

时间:2014-06-24来源: 作者:点击:
使用ssh端口转发做socks代理服务器 1.1.   ssh 自动输入密码登录服务器 1 、采用“密钥验证”方法 生成密匙对,此处用的是 rsa 的密钥: [[email protected] ~]# ssh-keygen -t rsa # 一路回车在当前用户的根目

使用ssh端口转发做socks代理服务器

1.1.  ssh自动输入密码登录服务器

1、采用“密钥验证”方法 //内容来自AnYun.ORG

生成密匙对,此处用的是rsa的密钥: //copyright AnYun.ORG

[[email protected] ~]# ssh-keygen -t rsa //内容来自安云网

#一路回车在当前用户的根目录下(此处根目录为:/root/.ssh/id_rsa)的.ssh目录生成id_rsa.pub公钥

  //内容来自AnYun.ORG

将公钥放到服务器上(注意存放目录位置): //安云网,anyun.org

[[email protected] ~]# scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa.pub  #将本地生成的公钥拷贝到远程服务器的下,其中webperformeradmSSH服务器的账号名,218.213.68.13SSH服务器的地址 //copyright AnYun.ORG

[[email protected] ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #将公钥追加到 authorized_keys 文件中 //copyright AnYun.ORG

#这样通过ssh登录、通过scp或者sftp传输文件啥的都不用再输入密码了!很是方便!

或:自动脚本命令追加的方式:

//本文来自安云网

[[email protected] ~]# cat ~/.ssh/id_rsa.pub | ssh [email protected] “cat – >> ~/.ssh/authorized_keys”

 

//内容来自AnYun.ORG

 

//内容来自AnYun.ORG

2、采用“sshpass”方法(前提是已安装sshpass

//安云网咨询系统

[[email protected] sshpass-1.05]# /usr/local/sshpass/bin/sshpass -p ‘你的密码‘ ssh 用户名@服务器ip地址

 

//安云网,anyun.org

1、  采用“expect”方法(前提是已安装expect

//copyright AnYun.ORG

例一: //ANYUN.ORG

#!/usr/bin/expect
//ANYUN.ORG

  //copyright AnYun.ORG

spawn /usr/bin/ssh用户名@服务器ip地址 //安云网咨询系统

expect “*password:” //内容来自AnYun.ORG

send “你的密码\r”

//ANYUN.ORG

expect “*]#” //内容来自安云网

send “cd /root” //本文来自安云网

expect “*]#”

//内容来自安云网

send “exit\r” //ANYUN.ORG

expect eof //内容来自安云网

 

 

//安云网,anyun.org

例二:

//内容来自AnYun.ORG

  ############################################## //安云网咨询系统

  #!/usr/bin/expect

//安云网咨询系统

  set timeout 30

//安云网咨询系统

  spawn ssh -l username 192.168.1.1

//安云网咨询系统

  expect “password:” //内容来自AnYun.ORG

  send “ispass\r” //本文来自安云网

  interact //内容来自AnYun.ORG

  ##############################################

  1. #!/usr/bin/expect

//安云网咨询系统

  这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的bashwindows下的cmd是一类东西。

//内容来自安云网

  注意:这一行需要在脚本的第一行。

//安云网,anyun.org

  2. set timeout 30 //安云网,anyun.org

  基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒

//本文来自安云网

  3. spawn ssh -l username 192.168.1.1

//copyright AnYun.ORG

  spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com dir.exe 的可执行文件。 //安云网咨询系统

   它主要的功能是给ssh运行进程加个壳,用来传递交互指令。 //copyright AnYun.ORG

  4. expect “password:”

//本文来自安云网

  这里的expect也是expect的一个内部命令,有点晕吧,expectshell命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30 //ANYUN.ORG

   5. send “ispass\r” //copyright AnYun.ORG

  这里就是执行交互动作,与手工输入密码的动作等效。

//本文来自安云网

  温馨提示:命令字符串结尾别忘记加上“\r”,如果出现异常等待的状态可以核查一下。 //内容来自AnYun.ORG

  6. interact

//内容来自安云网

  执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行 //copyright AnYun.ORG

  #!/usr/bin/expect #注意安装的路径,不确定 whereis expect 一下 //ANYUN.ORG

  # Change a login shell to bash

//内容来自安云网

  set user [lindex $argv 0] //ANYUN.ORG

  spawn bash $user

//内容来自AnYun.ORG

  expect “]:”

//ANYUN.ORG

  send “/bin/bash ” //本文来自安云网

  expect eof //copyright AnYun.ORG

  exit //安云网,anyun.org

 

//本文来自安云网

安装expect //copyright AnYun.ORG

  //ANYUN.ORG

备注:因为expect是基于tcl的,所以需要你的系统中安装有tcl

//内容来自AnYun.ORG

 如何检查?

//ANYUN.ORG

[[email protected] ~]# whereis tcl //内容来自AnYun.ORG

tcl: /usr/lib/tcl8.4 /usr/share/tcl8.4

//内容来自安云网

如果看不到结果,请先安装tcl,安装:

//内容来自安云网

[[email protected] ~]# yum install expect //内容来自安云网

  //内容来自安云网

1.2.  使用ssh端口转发做socks代理

查看1080有没被其它端口占用:

//内容来自AnYun.ORG

[[email protected] ~]# netstat -apn|grep 1080 //安云网,anyun.org

tcp        0      0 :::1080                     :::*                  LISTEN      3435/ssh             

//copyright AnYun.ORG

tcp        0      0 ::ffff:192.168.1.230:1080   ::ffff:192.168.1.12:55049   ESTABLISHED 3435/ssh  

  //copyright AnYun.ORG

若如上所示,可见端口被占用,结束进程: //内容来自AnYun.ORG

[[email protected] ~]# kill -9 3435

 

//ANYUN.ORG

创建ssh端口转发socks代理脚本文件ssh_proxy_hk.sh //本文来自安云网

[[email protected] ~]# vi ~/.ssh/ssh_proxy_hk.sh

在脚本文件ssh_proxy_hk.sh中加入以下内容:

//copyright AnYun.ORG

ssh -CfNg -D 1080 [email protected] -p 22

其中1080为代理服务器的端口号,webperformeradmSSH服务器的账号名,218.213.68.13SSH服务器的地址,22SSH服务器的端口号 //copyright AnYun.ORG

  //安云网,anyun.org

参数说明: //ANYUN.ORG

 

//安云网,anyun.org

-C  压缩传送的数据 //copyright AnYun.ORG

-f   ssh将在后台运行,这个选项很有用,没有shell的不可登陆账号也能使用.

//安云网咨询系统

-N  不执行脚本或命令,仅转发端口 //内容来自AnYun.ORG

-g  表示允许远程主机连接转发端口 //本文来自安云网

-D  动态转发

//copyright AnYun.ORG

-p  后接SSH的端口号,默认为22

//安云网咨询系统

 

//内容来自AnYun.ORG

系统启动后自动执行脚本文件ssh_proxy_hk.sh //安云网,anyun.org

[[email protected] ~]# vi /etc/rc.local

加入以下内容: //安云网咨询系统

sh ~/.ssh/ssh_proxy_hk.sh

 

//ANYUN.ORG

1.3.  iptables中设置允许指定的IP访问1080端口

备份iptables,开启某些IP访问端口: //安云网咨询系统

[[email protected] ~]# cp /etc/sysconfig/iptables-config /etc/sysconfig/iptables-config_bak20120514 //ANYUN.ORG

[[email protected] ~]# iptables -I INPUT -p tcp –dport 1080 -j DROP #关闭所有的1080端口

//内容来自AnYun.ORG

 

//内容来自AnYun.ORG

[[email protected] ~]# iptables -I INPUT -s 192.168.1.12 -p tcp –dport 1080 -j ACCEPT #开启ip192.168.1.1280

//copyright AnYun.ORG

[[email protected] ~]# iptables -I INPUT -s 192.168.1.53 -p tcp –dport 1080 -j ACCEPT //ANYUN.ORG

[[email protected] ~]# iptables -I INPUT -s 192.168.1.73 -p tcp –dport 1080 -j ACCEPT

//内容来自AnYun.ORG

[[email protected] ~]# iptables -I INPUT -s 192.168.1.75 -p tcp –dport 1080 -j ACCEPT //内容来自AnYun.ORG

[[email protected] ~]# iptables -I INPUT -s 192.168.1.73 -p tcp –dport 1080 -m connlimit –connlimit-above 5 -j REJECT #允许单个IP的最大连接数为 5 //内容来自安云网

  //内容来自安云网

[[email protected] ~]# iptables -A INPUT -p tcp –dport 1080 -m recent –name BAD_HTTP_ACCESS –update –seconds 60 –hitcount 10 -j REJECT

//安云网,anyun.org

[[email protected] ~]# iptables -A INPUT -p tcp –dport 1080 -m recent –name BAD_HTTP_ACCESS –set -j ACCEPT

//安云网,anyun.org

#单个IP60秒内只允许最多新建30个连接 //本文来自安云网

 

//内容来自安云网

[[email protected] ~]# iptables -I INPUT -s 192.168.111.0/24 -p tcp –dport 1080 -j ACCEPT #开启ip192.168.111.0/24端的80 //本文来自安云网

 

以上是设置是临时,系统重启不会保存,所以需保存一下iptables //安云网咨询系统

[[email protected] ~]# service iptables save

重启iptables //ANYUN.ORG

[[email protected] ~]# service iptables restart

查看iptables是否生效: //内容来自AnYun.ORG

[[email protected] ~]# iptables -L –line-numbers

删除某条规则:

//本文来自安云网

[[email protected] ~]# iptables -D INPUT 序号
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容
  • The Debian Administrator’s Handbook,

    The Debian Administrator’s Handbook, 这本书是debian的两个开发者写出...

  • 微信4.0发布,加入朋友圈功能

    今天传说中的微信4.0版本终于发布并且推送了更新,一进入是新...

  • vijos中c的注意事项

    昨天没事发现了一个叫vijos的类似judgeonline的网站,也许是我火星...

  • falcon编译出错问题

    ...

  • 教你破解xp系统administrator权限

    作者:Awolf 首发:AwolfS Security Blog 一.事情起因 那天满头大汗的...

  • Linux环境下UglifyJS安装

    Linux环境下UglifyJS安装 1.1.   安装 Node.js [[email protected] src]# wget http...