分类 网络 下的文章

openvpn over shadowsocks避免机场安全隐患

2019年底开始翻墙变得越来越难,基础宽带是联通,穿墙线路一直使用的阿里云香港线路在晚上高峰期qos限速,延迟增加,本来200m带宽严重的时候甚至掉到各位数。

这时候不得不考虑一直续费而没用的备用机场了,由于没有出口的控制权,机场理论上来说可以看到所有非加密流量内容,个人对此比较在意,但是又觊觎机场的iplc线路(阿里云cen线路),不受墙影响,不受时间段qos,曾经询问过价格,被每月几万劝退了。

那么退而求其次,利用机场的shadowsocks作外层隧道,使用openvpn或其他tcp的vpn连接gcp的vps,保证本地到出口vps的链路是加密,就既能利用iplc线路又保证安全,唯一问题是tcp over tcp受网络波动影响很大,具体请谷歌之。

下面是使用环境,本地routeros v6,本地openwrt with ShadowSocksR Plus+ ,某阿里云中转机场,gcp香港routeros v6

1,在gcp香港routeros开启openvpn服务器,并打开gcp防火墙相关端口,参考Routeros配置openvpn服务器和客户端
2,配置好openwrt上机场信息,保证能通过机场翻墙
3,本地routeros配置gcp香港服务器ip路由通过openwrt,参考Routeros配置使用openwrt作旁路由
4,配置本地routeros的openvpn客户端,参考Routeros配置openvpn服务器和客户端
5,配置gcp香港routeros通过openvpn回程路由,如果本地routeros使用masquerade等nat时不需要配置,关于masquerade相关参考routeros的默认nat尽量不要用masquerade
6,配置本地routeros的ip分流,参考routeros配置vpn分流大陆ip

联想M920x与英特尔X710-DA4组建万兆迷你服务器

前段时间分享了联想thinkcentre M920x与Intel X710-T4组建万兆迷你服务器,用的网卡是4个万兆电口的X710-T4,由于最近打算更换核心交换机,换成mikrotik的全光口40gbps交换机CRS326-24S+2Q+RM,所以M920x更换了4光口的万兆网卡X710-DA4。
由于联想官方没有支持四光口的网卡自然也不会有对应的挡板,所以对原配的vga挡板做了魔改。

先上成品图,总体还是比较满意,切割挡板的适合稍微有点歪,但是不影响使用。
back
内部如图
inside
原挡板
original
魔改挡板
modified

已经测试一周,目前还是比较稳定,X710-DA4由于没有了phy芯片热量少了很多。

软件系统:
底层系统:esxi
软路由系统:routeros v7,v7系统现在还在beta阶段,详见RouterOS V7 测试(持续更新至正式版发布)
应用操作系统:ubuntu

网络拓扑图待更新

ps:联想tiny系列迷你主机各个型号对比
M720Q主板B360
M920Q主板Q370,单m.2 SSD,支持雷电扩展卡
M920X主板Q370,双m.2 SSD,支持雷电扩展卡,支持标准电压CPU(不带T的65w tdp),支持AMD RX560独立显卡
P330主板Q370,双m.2 SSD,支持雷电扩展卡,支持标准电压CPU(不带T的65w tdp,支持vPro CPU),支持NVIDIA P620/P1000独立显卡

Google Cloud Platform(gcp)谷歌云安装Routeros

一般vps都可以通过dd来安装routeros软路由系统,可以参考青云主机安装routeros,附一键安装routeros脚本
gcp由于特殊的架构设计直接dd routeros的img文件不能正常启动
以下为通过gcp 的storage创建镜像方式安装routeros系统

1,macos系统安装必要工具

brew install wget
brew install truncate
brew install gnu-tar

2,下载routeros chr镜像Raw disk image

wget https://download.mikrotik.com/routeros/6.46.3/chr-6.46.3.img.zip

3,解压镜像文件

unzip chr-6.46.3.img.zip

4,按照gcp创建镜像规则制作镜像文件

4.1,扩展镜像空间,镜像占用大小需要是1G整倍数

truncate -s 1G chr-6.46.3.img

4.2,重命名镜像文件,镜像文件需要以disk.raw命名

mv chr-6.46.3.img disk.raw

4.3,打包镜像,打包文件名需要以.tar.gz结尾

gtar -Sczf chr-6.46.3.tar.gz disk.raw

我已经打包好的镜像,zip解压出gz包后再使用
5,上传到gcp到storage
6,在gcp到compute engine到映像下创建映像
来源选择Cloud Storage 文件中刚上传到chr-6.46.3.tar.gz文件
7,创建instance的时候使用自建映像或者已创建的instance删除原启动磁盘后新建以自建映像创建新磁盘

ikev2自动更新let's encrypt证书

由于ikev2不能使用通配符证书,使用免费一年期证书存在一定风险(比如阿里云,通过证书可以找到跟域名关联的账号,进而实名查水表),所以推荐使用let's encrypt证书。但是let's encrypt证书有一个问题就是有效期只有三个月,所以写了个脚本自动更新证书。

以下以dns更新证书方式,域名dns服务商为cloudflare为例,服务器需要已经使用ikev2自动安装脚本安装ikev2(可以选择自签名证书),python包管理工具pip,

首先拿到cloudflare的Global API Key,目前certbot还不支持cloudflare的 zone api key

创建脚本使用的cloudflare的账号密码文件,记住路径填写到脚本的CLOUDFLARE_CREDENTIALS后

# Cloudflare API credentials used by Certbot
dns_cloudflare_email = cloudflare@example.com
dns_cloudflare_api_key = 0123456789abcdef0123456789abcdef01234567

并修改密码文件权限为400,防止certbot报错

chmod 0400 #文件路径

自动更新脚本,CERT_DOMAIN是ikev2证书的域名,CLOUDFLARE_CREDENTIALS是cloudflare账号密码文件路径,LE_EMAIL是let's encrypt证书联系邮箱(证书过期提醒)

脚本会检测是否安装certbot,域名证书是否第一次签发,证书是否需要更新,并将新证书复制到ipsec的证书目录

#! /bin/bash
CERT_DOMAIN=vpn.example.com
CLOUDFLARE_CREDENTIALS='/root/letsencrypt/cloudflarednsapi.conf'
LE_EMAIL='example@gmail.com'


function checkcertbot(){
if [ -z "`pip list certbot-dns-cloudflare |grep certbot-dns-cloudflare`" ];
then
pip install certbot-dns-cloudflare
fi
}

function checkcert(){
if [ ! -f "/etc/letsencrypt/live/${CERT_DOMAIN}/cert.pem" ];
then renewipseccert
else
CERT_EXPIRE=$(openssl x509 -checkend 1728000 -noout -in /etc/letsencrypt/live/$CERT_DOMAIN/cert.pem|grep not)
if [ -z "$CERT_EXPIRE" ];
then
renewipseccert
else
echo "The cert will not expire in 20 days,nothing to do."
fi
fi
}


function renewipseccert(){
/usr/local/bin/certbot  certonly -d ${CERT_DOMAIN} \
--agree-tos \
--non-interactive \
--email $LE_EMAIL  \
--dns-cloudflare \
--dns-cloudflare-credentials ${CLOUDFLARE_CREDENTIALS}
cp /etc/letsencrypt/live/$CERT_DOMAIN/chain.pem /usr/local/etc/ipsec.d/cacerts/ca.cert.pem
cp /etc/letsencrypt/live/$CERT_DOMAIN/cert.pem /usr/local/etc/ipsec.d/certs/server.cert.pem
cp /etc/letsencrypt/live/$CERT_DOMAIN/privkey.pem /usr/local/etc/ipsec.d/private/server.pem
/usr/sbin/service ipsec restart
}

checkcertbot
checkcert

在crontab里添加每5天执行一次即可

crontab -e
0 0 */5 * * #脚本路径


40Gbps交换机CRS326-24S+2Q+RM开箱及拆解

mikrotik 2019年底发布了他家最高带宽交换机CRS326-24S+2Q+RM,24个10gbps的sfp+口,2个40gbps的qsfp+口
45度照
正面
背面
内部
此交换机配置了三个4cm的三线高转速风速,短期观察有四档温度调节,停转,电压6v低速3k转,9v中速4k转,12v高速6k转,噪音较大,这里更换了猫扇NF-A4x20 PWM,主板风扇接口是4口,而且手上没有NF-A4x20 FLX,所以就直接用了pwm的,短暂测试没有发现问题,系统也可以看到转速。
风扇
风扇
同时购入了两个sfp+转万兆电口模块S+RJ10
万兆电口模块
预计此交换机将替代现在的xs716t成为我的核心交换机