作者归档:vibbow

RouterOS 限制只允许中国IP访问

1. 导入中国IP列表。将文件上传到RouterOS后,运行 import China_IP.rsc

2. 创建防火墙规则

# 限制非中国IP直接到路由器的访问
/ip firewall filter
add action=drop chain=input connection-state=new dst-address-type=local src-address-list="!China_IP"

# 限制非中国IP所有NAT访问 (与下方规则二选一)
/ip firewall filter
add action=drop chain=forward connection-state=new dst-address-type=local src-address-list="!China_IP"

# 限制非中国IP指定端口的NAT访问
/ip firewall nat
add action=dst-nat chain=dstnat dst-address-type=local dst-port=80 protocol=tcp src-address-list="China_IP" to-addresses=192.168.88.100 to-ports=80

在 Ubuntu Server 中安装指定版本的 MySQL Server

出于某些特殊的原因(如和 xtrabackup 版本匹配),你可能需要安装指定版本的 MySQL Server,并禁止它自动升级。

1. 下载 MySQL Server 安装包

https://downloads.mysql.com/archives/community/
在这里选择你要下载的 MySQL 版本
Operating System 选择 Ubuntu Linux
下方的文件列表中下载 DEB Bundle 的版本
然后将下载的文件上传至服务器中。

2. 安装 MySQL Server

  1. 安装必要依赖
    sudo apt install libmecab2
  2. 解压 MySQL Server 安装包 (根据实际情况修改文件名)
    tar -xvf mysql-server_8.0.28-1ubuntu20.04_amd64.deb-bundle.tar
  3. 使用 dpkg -i 命令依次安装以下软件包
    mysql-common
    mysql-community-client-plugins
    mysql-community-client-core
    mysql-community-client
    mysql-client
    mysql-community-server-core
    mysql-community-server
    mysql-server
    libmysqlclient21

3. 设置 APT 不要自动升级 MySQL Server

apt-mark hold mysql-common mysql-client mysql-server libmysqlclient21

Ubuntu 编译支持 IE 8 的 Caddy Server v2

1. 安装 Golang

rm -rf /usr/local/go
wget -c https://golang.org/dl/go1.17.8.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local

2. 安装 XCaddy

XCaddy 是一个 Caddy 的辅助编译工具

curl -1sLf \
  'https://dl.cloudsmith.io/public/caddy/xcaddy/setup.deb.sh' \
  | sudo -E bash

apt install xcaddy

3. 下载代码

git clone https://github.com/caddyserver/caddy.git caddy-mod

4. 修改代码,启用对 TLS 1.0 / 1.1 的支持

---
 modules/caddytls/values.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/caddytls/values.go b/modules/caddytls/values.go
index 4e8c1adc..91cfd0f5 100644
--- a/modules/caddytls/values.go
+++ b/modules/caddytls/values.go
@@ -115,6 +115,8 @@ var defaultCurves = []tls.CurveID{
 
 // SupportedProtocols is a map of supported protocols.
 var SupportedProtocols = map[string]uint16{
+	"tls1.0": tls.VersionTLS10,
+	"tls1.1": tls.VersionTLS11,
 	"tls1.2": tls.VersionTLS12,
 	"tls1.3": tls.VersionTLS13,
 }
@@ -124,8 +126,6 @@ var SupportedProtocols = map[string]uint16{
 var unsupportedProtocols = map[string]uint16{
 	//nolint:staticcheck
 	"ssl3.0": tls.VersionSSL30,
-	"tls1.0": tls.VersionTLS10,
-	"tls1.1": tls.VersionTLS11,
 }
 
 // publicKeyAlgorithms is the map of supported public key algorithms.
-- 

5. 编译 Caddy

xcaddy build \
  --with github.com/caddyserver/caddy/v2=./caddy-mod/

6. 修改 Caddy 配置文件,启用算法支持

tls {
  protocols tls1.0 tls1.3
  ciphers TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA
}

ssllabs.com 测试算法支持情况:

IP话机对接陕西电信固话IMS

该教程使用到的设备/软件:

  1. 电信光猫 (需将 vlan45 透传给路由器)
  2. RouterOS 路由器
  3. SIP客户端 (可以是 IPPBX / IP话机 / SIP软件)

第一步:获取固话信息

使用 telecomadmin 账号登录光猫,找到以下信息

  1. 本地域名,通常是 sn.ctcims.cn
  2. 主用 Outbound 服务器地址
  3. SIP用户名和密码 (可以通过备份文件提取,也可以直接问电信小哥要)

第二步:配置路由器

以下内容假设光猫接在路由器 ether1 口,光猫已设置将所有 vlan 透传给路由器。

# 在 ether1 上添加 vlan45 接口
/interface vlan
add interface=ether1 name=vlan45-ims vlan-id=45

# 在 vlan45 接口上获取IP
/ip dhcp-client
add add-default-route=no interface=vlan45-ims use-peer-dns=no use-peer-ntp=no

# 添加 IMS 路由
/ip route
add dst-address=172.25.130.0/23 gateway=vlan45-ims

# 对接口启用NAT (手动将规则调整到防火墙前面)
/ip firewall nat
add action=masquerade chain=srcnat out-interface=vlan45-ims

# 防火墙对接口放行 (手动将规则调整到防火墙前面)
/ip firewall filter
add action=accept chain=input in-interface=vlan45-ims
add action=accept chain=forward in-interface=vlan45-ims

# 启用 SIP Helper
/ip firewall service-port
set sip disabled=no ports=5060,5061 sip-direct-media=yes sip-timeout=1h

第三步:配置客户端

以下介绍三种客户端的设置方法,MicroSIP 软件 , 讯时 IPPBX 和 方位 IP话机

MicroSIP 的配置示例如下:

其中
SIP服务器域名 填写 第一步获取到的 本地域名
SIP 代理 填写 第一步获取到的 主用 Outbound 服务器地址 (需加上 5060 端口号)
用户名和密码 填写 第一步获取到的用户名和密码

讯时 IPPBX 的配置示例如下:

基本设置
将STUN关闭

SIP外线-注册选项
默认注册服务器代理服务器 填写 第一步获取到的 主用 Outbound 服务器地址 (需加上 5060 端口号)
本地端口 需修改为非 5060 的值
用户端域名 填写 第一步获取到的 本地域名
需勾选上 IMS
接入网信息 填写为 第一步获取到的 本地域名

SIP外线-添加账户
添加账号时 号码/用户名 只需输入电话号码部分,无需输入 @及后面的域名

方位 IP 话机的配置如下:

用户名输入电话号码部分,如 +862987654321
用户认证输入电话号码+域名的部分,如 +862987654321@sn.ctcims.cn
验证密码输入 密码
SIP服务器地址输入 本地域名,如: sn.ctcims.cn
代理服务器地址输入 Outbound 服务器地址,如:172.25.130.1

不兼容的设备

Yealink IP 话机无法直接注册到电信IMS设备,因为它在发送 REGISTER 命令时,附带了默认的端口号 5060(实际不能带端口号),导致注册失败。

Confluence 导出 PDF 报错解决方案

添加调试记录

在 管理 – 日志与性能分析 – 自定义日志设置 中,添加一条记录:
com.atlassian.confluence.impl.util.sandbox ,级别为 DEBUG

/var/atlassian/application-data/confluence/logs/atlassian-confluence.log 中查看具体报错原因。

安装缺失依赖

apt install libxrender1 libxtst6 libxi6

禁用 SSH 工具的 X-11 转发

如果你的 SSH 工具默认启用了 X-11 转发 (如Mobaxterm),则需要禁用掉,然后重启 Confluence。

配置 iptables 限制端口只允许从国内IP发起访问

1. 安装软件包

sudo apt install ipset iptables netfilter-persistent ipset-persistent iptables-persistent

2. 启用配置持久保存功能

sudo systemctl enable netfilter-persistent
sudo systemctl start netfilter-persistent

3. 导入中国IP列表
IP列表来自 ipip.net (https://github.com/17mon/china_ip_list)

4. 对指定端口添加限制
其中 in-interface 修改为你的外网接口,destination-port 修改为想要限制的端口

iptables -A INPUT --in-interface eth0 --protocol tcp --destination-port 22 --match state --state NEW --match set ! --match-set ChinaIP src -j DROP
iptables -L -v -n --line-numbers

5. 保存修改

netfilter-persistent save

在 Ubuntu 20.04 中安装 Racadm 及 DCISM

软件包作用:
Racadm – 在 Ubuntu 中使用命令行控制 iDRAC (本机操作无需认证)
Dcism – 将 OS 操作系统信息同步到 iDRAC 信息页面

安装脚本:

#!/bin/bash

echo "" > /etc/apt/sources.list.d/linux.dell.com.sources.list

# 官方镜像
echo "deb http://linux.dell.com/repo/community/openmanage/10200/focal focal main" >> /etc/apt/sources.list.d/linux.dell.com.sources.list
echo "deb http://linux.dell.com/repo/community/openmanage/iSM/4200/focal focal main" >> /etc/apt/sources.list.d/linux.dell.com.sources.list
gpg --keyserver pool.sks-keyservers.net --recv-key 1285491434D8786F 
gpg -a --export 1285491434D8786F | apt-key add - 

# 国内镜像
# echo "deb https://static.vsean.net/dell/openmanage/10200/focal focal main" >> /etc/apt/sources.list.d/linux.dell.com.sources.list
# echo "deb https://static.vsean.net/dell/openmanage/iSM/4200/focal focal main" >> /etc/apt/sources.list.d/linux.dell.com.sources.list
# wget -qO - https://static.vsean.net/dell/linux.dell.com.key | apt-key add - 


apt update
apt install -y dcism srvadmin-idracadm8 srvadmin-hapi

if [ ! -f /usr/lib/x86_64-linux-gnu/libssl.so ]; then
	ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so
fi

systemctl start dcismeng.service

RouterOS 阿里云/腾讯云 DDNS 脚本

将以下脚本添加到 System Script 里,并在 System Scheduler 里设置为每分钟执行一次。
根据说明修改开头的五个变量,即可实现阿里云/腾讯云域名的DDNS。

注意事项:
该脚本不会自动创建子域名,要更新的子域名必须事先添加好。

服务器端源代码看这里:
https://github.com/vibbow/routeros-ddns-script

Git 设置备忘录

github.com SSH 加速访问

修改 C:\Users\Dell\.ssh\config 文件,添加如下内容:

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile "C:/Users/Dell/.ssh/id_ecdsa"
  TCPKeepAlive yes
  ProxyCommand connect -S 127.0.0.1:7891 -a none %h %p

全局设置 GPG 签名工具

GPG4Win 下载地址:https://www.gpg4win.org/

git config --global gpg.program "C:/Program Files (x86)/GnuPG/bin/gpg.exe"

列举 GPG Key

gpg --list-secret-keys --keyid-format=long

针对 Git Repo 启用 GPG 签名

git config --local user.signingkey [YOUR GPG KEY]
git config --local commit.gpgsign true