2.10 Stunnel加密通道
很多管理员都会部署网络检测技术,如IDS/IPS来发现和阻止VPN连接。要绕过这种检测,其中一个办法是使用加密通道(简称stunnel)技术。stunnel会把客户端和服务器端两边的通信用SSL再封装一次。它使用工业标准的加密库如OpenSSL等,对远程客户端和服务器的通信进行SSL加密。Stunnel的好处在于,它为各种常规网络服务如POP2、POP3和IMAP提供了SSL功能但却不需要改动具体程序的代码。
要使用stunnel,首先需要使用命令apt-get install stunnel4 -y获得代码,如图2-22所示。
系统可能会提示说已经安装好最新版本的stunnel程序了。
接下来需要在/etc/stunnel/目录下新建一个名为stunnel.conf的配置文件。可以用自己习惯的文本编辑器nano或vi来修改这个文件。
将以下配置加进stunnel.conf文件里。可以自行修改其使用的端口,以更符合自己的需求。
client = no
[squid]
accept = 8888
connect = 127.0.0.1:3128
cert = /etc/stunnel/stunnel.pem
图2-23展示了stunnel.conf文件中的配置。
下一步是执行以下命令生成私钥:
cd /etc/stunnel/
openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
cat key.pem cert.pem >> /etc/stunnel/stunnel.pem
sudo bash
cat server.key > server.pem && cat server.crt >> server.pem
chmod 400 /etc/stunnel/server.pem[7]
证书生成好后,再执行编辑命令sudo nano /etc/default/ stunnel4,进一步配置stunnel。
命令会打开相应的配置文件。将其中的Enabled = 0[8]改为Enabled = 1。然后再执行sudo nano /etc/stunnel/stunnel.conf命令,打开stunnel.conf文件,并把以下配置添加到文件里[9]:
sslVersion = all
options = NO_SSLv2
cert = /etc/stunnel/stunnel.pem[10]
pid = /var/run/stunnel.pid
output = /var/log/stunnel
[openvpn]
client = no
accept = 993
connect = 34567
再执行以下命令创建firewall.sh文件,用于设置树莓派的防火墙策略:
sudo nano /usr/local/bin/firewall.sh
其内容为:
#!/bin/sh
iptables -A INPUT -p tcp --dport 993 -j ACCEPT[11]
下一步是执行以下命令重启stunnel服务:
/etc/init.d/stunnel4 restart
最后一步是在Kali Linux树莓派上安装Squid代理服务器,执行命令:apt-get install squid3 -y。