Compare commits
1 Commits
master
...
renovate/c
Author | SHA1 | Date | |
---|---|---|---|
b179b419fc |
3
renovate.json
Normal file
3
renovate.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
|
||||||
|
}
|
@ -1 +0,0 @@
|
|||||||
pub mod restricted_port;
|
|
20
src/main.rs
20
src/main.rs
@ -1,7 +1,6 @@
|
|||||||
use actix_web::middleware::Logger;
|
use actix_web::middleware::Logger;
|
||||||
use actix_web::{web, App, HttpResponse, HttpServer};
|
use actix_web::{web, App, HttpResponse, HttpServer};
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use hidden_server::restricted_port::is_restricted_port;
|
|
||||||
use log::LevelFilter;
|
use log::LevelFilter;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
@ -22,9 +21,6 @@ struct Args {
|
|||||||
/// Maximal port this server will listen to
|
/// Maximal port this server will listen to
|
||||||
#[arg(short('M'), long, default_value_t = 1000)]
|
#[arg(short('M'), long, default_value_t = 1000)]
|
||||||
max_port: u16,
|
max_port: u16,
|
||||||
/// Host this server will listen to
|
|
||||||
#[arg(short, long, default_value = "0.0.0.0")]
|
|
||||||
listen_host: String,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[actix_web::main]
|
#[actix_web::main]
|
||||||
@ -44,26 +40,14 @@ async fn main() -> std::io::Result<()> {
|
|||||||
log::info!("Choosing a random port to start...");
|
log::info!("Choosing a random port to start...");
|
||||||
|
|
||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::thread_rng();
|
||||||
let mut port: u16;
|
let port: u16 = args.min_port + rng.random::<u16>() % (args.max_port - args.min_port);
|
||||||
|
|
||||||
loop {
|
|
||||||
port = args.min_port + rng.random::<u16>() % (args.max_port - args.min_port);
|
|
||||||
|
|
||||||
if !is_restricted_port(port) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
log::info!("I chose a restricted port, I have to choose another one...");
|
|
||||||
}
|
|
||||||
|
|
||||||
log::info!("Can now start server...");
|
|
||||||
|
|
||||||
HttpServer::new(|| {
|
HttpServer::new(|| {
|
||||||
App::new()
|
App::new()
|
||||||
.wrap(Logger::default())
|
.wrap(Logger::default())
|
||||||
.route("/", web::get().to(home))
|
.route("/", web::get().to(home))
|
||||||
})
|
})
|
||||||
.bind((args.listen_host, port))?
|
.bind(("127.0.0.1", port))?
|
||||||
.run()
|
.run()
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
@ -1,89 +0,0 @@
|
|||||||
// Source : https://chromium.googlesource.com/chromium/src.git/+/refs/heads/master/net/base/port_util.cc
|
|
||||||
|
|
||||||
const RESTRICTED_PORTS: [u16; 80] = [
|
|
||||||
1, // tcpmux
|
|
||||||
7, // echo
|
|
||||||
9, // discard
|
|
||||||
11, // systat
|
|
||||||
13, // daytime
|
|
||||||
15, // netstat
|
|
||||||
17, // qotd
|
|
||||||
19, // chargen
|
|
||||||
20, // ftp data
|
|
||||||
21, // ftp access
|
|
||||||
22, // ssh
|
|
||||||
23, // telnet
|
|
||||||
25, // smtp
|
|
||||||
37, // time
|
|
||||||
42, // name
|
|
||||||
43, // nicname
|
|
||||||
53, // domain
|
|
||||||
69, // tftp
|
|
||||||
77, // priv-rjs
|
|
||||||
79, // finger
|
|
||||||
87, // ttylink
|
|
||||||
95, // supdup
|
|
||||||
101, // hostriame
|
|
||||||
102, // iso-tsap
|
|
||||||
103, // gppitnp
|
|
||||||
104, // acr-nema
|
|
||||||
109, // pop2
|
|
||||||
110, // pop3
|
|
||||||
111, // sunrpc
|
|
||||||
113, // auth
|
|
||||||
115, // sftp
|
|
||||||
117, // uucp-path
|
|
||||||
119, // nntp
|
|
||||||
123, // NTP
|
|
||||||
135, // loc-srv /epmap
|
|
||||||
137, // netbios
|
|
||||||
139, // netbios
|
|
||||||
143, // imap2
|
|
||||||
161, // snmp
|
|
||||||
179, // BGP
|
|
||||||
389, // ldap
|
|
||||||
427, // SLP (Also used by Apple Filing Protocol)
|
|
||||||
465, // smtp+ssl
|
|
||||||
512, // print / exec
|
|
||||||
513, // login
|
|
||||||
514, // shell
|
|
||||||
515, // printer
|
|
||||||
526, // tempo
|
|
||||||
530, // courier
|
|
||||||
531, // chat
|
|
||||||
532, // netnews
|
|
||||||
540, // uucp
|
|
||||||
548, // AFP (Apple Filing Protocol)
|
|
||||||
554, // rtsp
|
|
||||||
556, // remotefs
|
|
||||||
563, // nntp+ssl
|
|
||||||
587, // smtp (rfc6409)
|
|
||||||
601, // syslog-conn (rfc3195)
|
|
||||||
636, // ldap+ssl
|
|
||||||
989, // ftps-data
|
|
||||||
990, // ftps
|
|
||||||
993, // ldap+ssl
|
|
||||||
995, // pop3+ssl
|
|
||||||
1719, // h323gatestat
|
|
||||||
1720, // h323hostcall
|
|
||||||
1723, // pptp
|
|
||||||
2049, // nfs
|
|
||||||
3659, // apple-sasl / PasswordServer
|
|
||||||
4045, // lockd
|
|
||||||
5060, // sip
|
|
||||||
5061, // sips
|
|
||||||
6000, // X11
|
|
||||||
6566, // sane-port
|
|
||||||
6665, // Alternate IRC [Apple addition]
|
|
||||||
6666, // Alternate IRC [Apple addition]
|
|
||||||
6667, // Standard IRC [Apple addition]
|
|
||||||
6668, // Alternate IRC [Apple addition]
|
|
||||||
6669, // Alternate IRC [Apple addition]
|
|
||||||
6697, // IRC + TLS
|
|
||||||
10080, // Amanda
|
|
||||||
];
|
|
||||||
|
|
||||||
/// Check out wether a port is a restricted port for major browsers
|
|
||||||
pub fn is_restricted_port(port: u16) -> bool {
|
|
||||||
RESTRICTED_PORTS.contains(&port)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user