teddysun / across

Across the Great Wall we can reach every corner in the world
https://teddysun.com
Apache License 2.0
4.97k stars 2.22k forks source link

关于l2tp.sh使用教程中--no-check-certificate选项的安全性问题 #41

Closed ghost closed 4 years ago

ghost commented 5 years ago

在l2tp.sh附带的使用教程中,使用了如下命令行来下载并启动l2tp.sh:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod +x l2tp.sh
./l2tp.sh

其中的--no-check-certificate选项会导致wget在下载脚本时,不对SSL连接进行证书检查。

这一选项可以在一些没有安装CA证书的环境下也能成功下载脚本,但是这一选项带来的不安全性是显然的:例如,GFW可以通过MITM对GitHub进行劫持以窥测甚至篡改用户下载到的内容;尽管劫持GitHub会是一个显眼的操作,但是他们真的这么做过

考虑到一般来说Linux发行版会自带常用的CA证书(例外情况比如初始容器镜像中可能不含CA证书),建议将教程中的该选项去掉以提高安全性,同时附带“安装CA证书的方法”供进阶使用:

# For Debian/Ubuntu:
sudo apt install ca-certificates
# For CentOS
sudo yum install ca-certificates