在上一篇文章《用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,首先要注意如下三点:
- 假设你将22端口作为SSH的默认端口
- 我们将在常规的SSH进程之后安装一个新的obfuscated SSH
- 我们将分配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
