opentunnel-cli 1.0.22 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -864
- package/dist/cli/index.js +712 -84
- package/dist/cli/index.js.map +1 -1
- package/dist/client/CloudflareTunnelClient.d.ts +110 -0
- package/dist/client/CloudflareTunnelClient.d.ts.map +1 -0
- package/dist/client/CloudflareTunnelClient.js +531 -0
- package/dist/client/CloudflareTunnelClient.js.map +1 -0
- package/dist/client/NgrokClient.d.ts +18 -1
- package/dist/client/NgrokClient.d.ts.map +1 -1
- package/dist/client/NgrokClient.js +130 -4
- package/dist/client/NgrokClient.js.map +1 -1
- package/dist/client/TunnelClient.d.ts +0 -1
- package/dist/client/TunnelClient.d.ts.map +1 -1
- package/dist/client/TunnelClient.js +2 -96
- package/dist/client/TunnelClient.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/pages/index.d.ts +2 -0
- package/dist/lib/pages/index.d.ts.map +1 -0
- package/dist/lib/pages/index.js +6 -0
- package/dist/lib/pages/index.js.map +1 -0
- package/dist/lib/pages/not-running.d.ts +10 -0
- package/dist/lib/pages/not-running.d.ts.map +1 -0
- package/dist/lib/pages/not-running.js +117 -0
- package/dist/lib/pages/not-running.js.map +1 -0
- package/dist/server/TunnelServer.d.ts +7 -3
- package/dist/server/TunnelServer.d.ts.map +1 -1
- package/dist/server/TunnelServer.js +164 -51
- package/dist/server/TunnelServer.js.map +1 -1
- package/dist/shared/credentials.d.ts +101 -0
- package/dist/shared/credentials.d.ts.map +1 -0
- package/dist/shared/credentials.js +302 -0
- package/dist/shared/credentials.js.map +1 -0
- package/dist/shared/ip-filter.d.ts +75 -0
- package/dist/shared/ip-filter.d.ts.map +1 -0
- package/dist/shared/ip-filter.js +203 -0
- package/dist/shared/ip-filter.js.map +1 -0
- package/dist/shared/types.d.ts +46 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IpFilter = void 0;
|
|
4
|
+
exports.createIpFilterMiddleware = createIpFilterMiddleware;
|
|
5
|
+
/**
|
|
6
|
+
* Shared IP filtering class for cross-provider security
|
|
7
|
+
*
|
|
8
|
+
* Supports:
|
|
9
|
+
* - Allowlist mode: Only IPs in the list are allowed
|
|
10
|
+
* - Denylist mode: IPs in the list are denied, others allowed
|
|
11
|
+
* - CIDR notation (e.g., 192.168.0.0/16)
|
|
12
|
+
* - IPv6-mapped IPv4 normalization
|
|
13
|
+
* - X-Forwarded-For / CF-Connecting-IP header extraction
|
|
14
|
+
*/
|
|
15
|
+
class IpFilter {
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.config = config || { mode: "all" };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Update the filter configuration
|
|
21
|
+
*/
|
|
22
|
+
setConfig(config) {
|
|
23
|
+
this.config = config;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the current configuration
|
|
27
|
+
*/
|
|
28
|
+
getConfig() {
|
|
29
|
+
return this.config;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if an IP matches a CIDR range or single IP
|
|
33
|
+
*/
|
|
34
|
+
ipMatchesCidr(ip, cidr) {
|
|
35
|
+
// Normalize IPv6-mapped IPv4 addresses
|
|
36
|
+
const normalizedIp = IpFilter.normalizeIp(ip);
|
|
37
|
+
const normalizedCidr = IpFilter.normalizeIp(cidr);
|
|
38
|
+
// If it's a single IP (no /), do direct comparison
|
|
39
|
+
if (!normalizedCidr.includes("/")) {
|
|
40
|
+
return normalizedIp === normalizedCidr;
|
|
41
|
+
}
|
|
42
|
+
const [range, bits] = normalizedCidr.split("/");
|
|
43
|
+
const mask = parseInt(bits, 10);
|
|
44
|
+
// Convert IP addresses to numbers for comparison
|
|
45
|
+
const ipParts = normalizedIp.split(".").map(Number);
|
|
46
|
+
const rangeParts = range.split(".").map(Number);
|
|
47
|
+
if (ipParts.length !== 4 || rangeParts.length !== 4) {
|
|
48
|
+
// Not valid IPv4, try simple string match
|
|
49
|
+
return normalizedIp === range;
|
|
50
|
+
}
|
|
51
|
+
const ipNum = (ipParts[0] << 24) | (ipParts[1] << 16) | (ipParts[2] << 8) | ipParts[3];
|
|
52
|
+
const rangeNum = (rangeParts[0] << 24) | (rangeParts[1] << 16) | (rangeParts[2] << 8) | rangeParts[3];
|
|
53
|
+
const maskNum = ~((1 << (32 - mask)) - 1);
|
|
54
|
+
return (ipNum & maskNum) === (rangeNum & maskNum);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if an IP is in a list (supports CIDR notation)
|
|
58
|
+
*/
|
|
59
|
+
ipInList(ip, list) {
|
|
60
|
+
return list.some(entry => this.ipMatchesCidr(ip, entry));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if an IP is allowed based on the access config
|
|
64
|
+
*/
|
|
65
|
+
isAllowed(ip) {
|
|
66
|
+
// Default: allow all
|
|
67
|
+
if (!this.config || this.config.mode === "all") {
|
|
68
|
+
return { allowed: true };
|
|
69
|
+
}
|
|
70
|
+
// Normalize IP
|
|
71
|
+
const normalizedIp = IpFilter.normalizeIp(ip);
|
|
72
|
+
if (this.config.mode === "allowlist") {
|
|
73
|
+
// Only allow IPs in the allowList
|
|
74
|
+
if (this.config.allowList && this.ipInList(normalizedIp, this.config.allowList)) {
|
|
75
|
+
return { allowed: true };
|
|
76
|
+
}
|
|
77
|
+
return { allowed: false, reason: `IP ${normalizedIp} not in allowlist` };
|
|
78
|
+
}
|
|
79
|
+
if (this.config.mode === "denylist") {
|
|
80
|
+
// Deny IPs in the denyList, allow others
|
|
81
|
+
if (this.config.denyList && this.ipInList(normalizedIp, this.config.denyList)) {
|
|
82
|
+
return { allowed: false, reason: `IP ${normalizedIp} is in denylist` };
|
|
83
|
+
}
|
|
84
|
+
return { allowed: true };
|
|
85
|
+
}
|
|
86
|
+
return { allowed: true };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Normalize an IP address (removes IPv6-mapped IPv4 prefix)
|
|
90
|
+
*/
|
|
91
|
+
static normalizeIp(ip) {
|
|
92
|
+
return ip.replace(/^::ffff:/, "");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Extract client IP from various headers and socket
|
|
96
|
+
*
|
|
97
|
+
* Priority:
|
|
98
|
+
* 1. CF-Connecting-IP (Cloudflare)
|
|
99
|
+
* 2. X-Real-IP (nginx, common proxies)
|
|
100
|
+
* 3. X-Forwarded-For (first IP, standard proxy header)
|
|
101
|
+
* 4. Socket remoteAddress (direct connection)
|
|
102
|
+
*/
|
|
103
|
+
static extractClientIp(req) {
|
|
104
|
+
// Cloudflare specific header
|
|
105
|
+
const cfConnectingIp = req.headers["cf-connecting-ip"];
|
|
106
|
+
if (cfConnectingIp) {
|
|
107
|
+
const ip = Array.isArray(cfConnectingIp) ? cfConnectingIp[0] : cfConnectingIp;
|
|
108
|
+
return IpFilter.normalizeIp(ip.trim());
|
|
109
|
+
}
|
|
110
|
+
// X-Real-IP header (nginx, etc.)
|
|
111
|
+
const xRealIp = req.headers["x-real-ip"];
|
|
112
|
+
if (xRealIp) {
|
|
113
|
+
const ip = Array.isArray(xRealIp) ? xRealIp[0] : xRealIp;
|
|
114
|
+
return IpFilter.normalizeIp(ip.trim());
|
|
115
|
+
}
|
|
116
|
+
// X-Forwarded-For header (first IP is the client)
|
|
117
|
+
const xForwardedFor = req.headers["x-forwarded-for"];
|
|
118
|
+
if (xForwardedFor) {
|
|
119
|
+
const forwardedIps = Array.isArray(xForwardedFor)
|
|
120
|
+
? xForwardedFor[0]
|
|
121
|
+
: xForwardedFor;
|
|
122
|
+
const firstIp = forwardedIps.split(",")[0].trim();
|
|
123
|
+
return IpFilter.normalizeIp(firstIp);
|
|
124
|
+
}
|
|
125
|
+
// Direct socket connection
|
|
126
|
+
const socketAddress = req.socket.remoteAddress;
|
|
127
|
+
if (socketAddress) {
|
|
128
|
+
return IpFilter.normalizeIp(socketAddress);
|
|
129
|
+
}
|
|
130
|
+
return "unknown";
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Extract client IP from headers object (for use without IncomingMessage)
|
|
134
|
+
*/
|
|
135
|
+
static extractClientIpFromHeaders(headers, socketAddress) {
|
|
136
|
+
// Cloudflare specific header
|
|
137
|
+
const cfConnectingIp = headers["cf-connecting-ip"];
|
|
138
|
+
if (cfConnectingIp) {
|
|
139
|
+
const ip = Array.isArray(cfConnectingIp) ? cfConnectingIp[0] : cfConnectingIp;
|
|
140
|
+
return IpFilter.normalizeIp(ip.trim());
|
|
141
|
+
}
|
|
142
|
+
// X-Real-IP header
|
|
143
|
+
const xRealIp = headers["x-real-ip"];
|
|
144
|
+
if (xRealIp) {
|
|
145
|
+
const ip = Array.isArray(xRealIp) ? xRealIp[0] : xRealIp;
|
|
146
|
+
return IpFilter.normalizeIp(ip.trim());
|
|
147
|
+
}
|
|
148
|
+
// X-Forwarded-For header
|
|
149
|
+
const xForwardedFor = headers["x-forwarded-for"];
|
|
150
|
+
if (xForwardedFor) {
|
|
151
|
+
const forwardedIps = Array.isArray(xForwardedFor)
|
|
152
|
+
? xForwardedFor[0]
|
|
153
|
+
: xForwardedFor;
|
|
154
|
+
const firstIp = forwardedIps.split(",")[0].trim();
|
|
155
|
+
return IpFilter.normalizeIp(firstIp);
|
|
156
|
+
}
|
|
157
|
+
// Socket address fallback
|
|
158
|
+
if (socketAddress) {
|
|
159
|
+
return IpFilter.normalizeIp(socketAddress);
|
|
160
|
+
}
|
|
161
|
+
return "unknown";
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Merge two IP access configs, with the second one taking priority for non-undefined values
|
|
165
|
+
* Useful for per-tunnel config overriding global config
|
|
166
|
+
*/
|
|
167
|
+
static mergeConfigs(base, override) {
|
|
168
|
+
if (!base && !override) {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
if (!base) {
|
|
172
|
+
return override;
|
|
173
|
+
}
|
|
174
|
+
if (!override) {
|
|
175
|
+
return base;
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
mode: override.mode || base.mode,
|
|
179
|
+
allowList: override.allowList || base.allowList,
|
|
180
|
+
denyList: override.denyList || base.denyList,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
exports.IpFilter = IpFilter;
|
|
185
|
+
/**
|
|
186
|
+
* Create a filter middleware function for HTTP servers
|
|
187
|
+
*
|
|
188
|
+
* @param config IP access configuration
|
|
189
|
+
* @param onDenied Optional callback when access is denied
|
|
190
|
+
* @returns Middleware function that returns true if allowed, false if denied
|
|
191
|
+
*/
|
|
192
|
+
function createIpFilterMiddleware(config, onDenied) {
|
|
193
|
+
const filter = new IpFilter(config);
|
|
194
|
+
return (req) => {
|
|
195
|
+
const clientIp = IpFilter.extractClientIp(req);
|
|
196
|
+
const result = filter.isAllowed(clientIp);
|
|
197
|
+
if (!result.allowed && onDenied) {
|
|
198
|
+
onDenied(clientIp, result.reason || "Access denied");
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=ip-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-filter.js","sourceRoot":"","sources":["../../src/shared/ip-filter.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -94,6 +94,17 @@ export interface IpAccessConfig {
|
|
|
94
94
|
allowList?: string[];
|
|
95
95
|
denyList?: string[];
|
|
96
96
|
}
|
|
97
|
+
export interface DymoConfig {
|
|
98
|
+
apiKey: string;
|
|
99
|
+
verifyIp?: boolean;
|
|
100
|
+
verifyUserAgent?: boolean;
|
|
101
|
+
blockOnFraud?: boolean;
|
|
102
|
+
blockBots?: boolean;
|
|
103
|
+
blockProxies?: boolean;
|
|
104
|
+
blockHosting?: boolean;
|
|
105
|
+
cacheResults?: boolean;
|
|
106
|
+
cacheTTL?: number;
|
|
107
|
+
}
|
|
97
108
|
export interface DomainConfig {
|
|
98
109
|
domain: string;
|
|
99
110
|
basePath: string;
|
|
@@ -126,6 +137,7 @@ export interface ServerConfig {
|
|
|
126
137
|
tokens: string[];
|
|
127
138
|
};
|
|
128
139
|
ipAccess?: IpAccessConfig;
|
|
140
|
+
dymo?: DymoConfig;
|
|
129
141
|
duckdns?: {
|
|
130
142
|
token: string;
|
|
131
143
|
domain: string;
|
|
@@ -157,4 +169,38 @@ export interface DnsProvider {
|
|
|
157
169
|
updateRecord(subdomain: string, ip: string): Promise<boolean>;
|
|
158
170
|
deleteRecord(subdomain: string): Promise<boolean>;
|
|
159
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Cloudflare credentials for tunnel management
|
|
174
|
+
*/
|
|
175
|
+
export interface CloudflareCredentials {
|
|
176
|
+
accountId?: string;
|
|
177
|
+
tunnelToken?: string;
|
|
178
|
+
certPath?: string;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* ngrok credentials
|
|
182
|
+
*/
|
|
183
|
+
export interface NgrokCredentials {
|
|
184
|
+
token: string;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Global credentials storage structure
|
|
188
|
+
*/
|
|
189
|
+
export interface GlobalCredentials {
|
|
190
|
+
ngrok?: NgrokCredentials;
|
|
191
|
+
cloudflare?: CloudflareCredentials;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Cloudflare named tunnel info (from cloudflared tunnel list)
|
|
195
|
+
*/
|
|
196
|
+
export interface CloudflareTunnelInfo {
|
|
197
|
+
id: string;
|
|
198
|
+
name: string;
|
|
199
|
+
createdAt: Date;
|
|
200
|
+
connections?: {
|
|
201
|
+
connIndex: number;
|
|
202
|
+
isRunning: boolean;
|
|
203
|
+
originIp: string;
|
|
204
|
+
}[];
|
|
205
|
+
}
|
|
160
206
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opentunnel-cli",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Self-hosted tunnel solution to expose local ports to the internet via custom domains",
|
|
3
|
+
"version": "1.0.25",
|
|
4
|
+
"description": "Self-hosted tunnel solution to expose local ports to the internet via custom domains, ngrok, or Cloudflare Tunnel",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"keywords": [
|
|
23
23
|
"tunnel",
|
|
24
24
|
"ngrok",
|
|
25
|
+
"cloudflare-tunnel",
|
|
26
|
+
"cloudflared",
|
|
25
27
|
"proxy",
|
|
26
28
|
"expose",
|
|
27
29
|
"localhost",
|
|
@@ -49,7 +51,9 @@
|
|
|
49
51
|
"acme-client": "^5.4.0",
|
|
50
52
|
"chalk": "^4.1.2",
|
|
51
53
|
"cloudflare": "^5.2.0",
|
|
54
|
+
"cloudflared": "^0.7.1",
|
|
52
55
|
"commander": "^11.1.0",
|
|
56
|
+
"dymo-api": "^1.2.30",
|
|
53
57
|
"nanoid": "^3.3.7",
|
|
54
58
|
"node-forge": "^1.3.3",
|
|
55
59
|
"ora": "^5.4.1",
|
|
@@ -63,4 +67,4 @@
|
|
|
63
67
|
"ts-node": "^10.9.2",
|
|
64
68
|
"typescript": "^5.3.3"
|
|
65
69
|
}
|
|
66
|
-
}
|
|
70
|
+
}
|