用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(中)

Written by

in

gfw-large
在上一篇文章《用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(上)》里,简要的介绍了GFW对SSH协议封杀的方式以及Obfuscated-OpenSSH混淆握手(handshake)协议运作的机制和原理,现在我们就开始具体讲述如何在服务器端上进行安装部署:

一、服务器端安装步骤

(一) 更新系统并安装编译器和其他编译器

shell

apt-get update
apt-get –y install gcc
apt-get –y install build-essential
apt-get –y install zlib1g-dev
apt-get –y install libssl-dev

(二)编译

shell

wget -O ofcssh.tar.gz https://github.com/brl/obfuscated-openssh/tarball/master #下载安装包
tar zxvf ofcssh.tar.gz
cd brl-obfuscated-openssh-ca93a2c
./configure
make
make install
#如果没有错误发生,你将能看到:
#SSH进程在    /usr/local/sbin/sshd
#ssh客户端在  /usr/local/bin/ssh
#配置文件放在 /usr/local/etc

(三)配置

安装和编译完成后,下面我们开始配置obfuscated ssh,首先要注意如下三点:

  1. 假设你将22端口作为SSH的默认端口
  2. 我们将在常规的SSH进程之后安装一个新的obfuscated SSH
  3. 我们将分配1234作为新的obfuscated ssh 进程的新端口

shell

mv /usr/local/sbin/sshd /usr/sbin/sshd_ofc
cp /etc/ssh/sshd_config /etc/ssh/sshd_ofc_config       #新建一个SSH服务和配置文件
sed -i "s/Port /#Port /g"  /etc/ssh/sshd_ofc_config    #端口22被常规SSH服务占用,所以端口选项不需要了,在前面加"#"
sed -i "s/UsePAM /#UsePAM /g" /etc/ssh/sshd_ofc_config #因为obfuscated-openssh不支持UsePAM选项,所以也将其关掉
echo "ObfuscatedPort 1234" >> /etc/ssh/sshd_ofc_config
echo "ObfuscateKeyword yourkeyword" >> /etc/ssh/sshd_ofc_config
  #在配置文件中增加obfuscated ssh的端口和密钥设置
  #“1234”和“yourkeyword”都是可以自定义设置的
  #注意“ObfuscatedPort 1234”将监听VPS上所有的端口
  #如果你希望只监听一个固定的IP地址,你可以加上这个:
  #echo "ListenAddress x.x.x.x" >> /etc/ssh/sshd_ofc_config
  #(将 x.x.x.x 替换成你所需要的IP地址)

(四)启动服务

所有的都已经配置完毕,是不是很简单,下面让我们启动服务:

shell

  /usr/sbin/sshd_ofc -f /etc/ssh/sshd_ofc_config
  #如果一切顺利,请运行“netstat -an”命令,你将会看到:
  #sshd_ofc服务正在使用1234端口

好了,服务器端上的设置都已经完成,不过还没有结束,我们还要将它设置成自启动,系统每次重启后能够自动加载。

(五)自启动服务

shell

  echo "/usr/sbin/sshd_ofc -f /etc/ssh/sshd_ofc_config" > /etc/init.d/ssh_ofc
  chmod +x /etc/init.d/ssh_ofc
  ln -s /etc/init.d/ssh_ofc /etc/rcS.d/S42ssh_ofc

上面就是在服务器上配置Obfuscated-OpenSSH的全部过程,而客户端的设置将在下一篇文章《用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(下)》中详细解释。E