2024-05-28 16:03:32 +02:00
|
|
|
use std::path::PathBuf;
|
|
|
|
use structopt::StructOpt;
|
|
|
|
|
|
|
|
#[derive(Debug, StructOpt)]
|
|
|
|
#[structopt(name = "martillo-maldito", about = "A simple iptables ban server")]
|
|
|
|
pub enum Arguments {
|
|
|
|
#[structopt(about = "Initialize ban server")]
|
|
|
|
BanServer {
|
|
|
|
#[structopt(name = "Ssh auth log file", short = "f", long = "ssh-file")]
|
|
|
|
ssh_auth_log: PathBuf,
|
|
|
|
#[structopt(name = "Iptables save file", short = "s", long = "iptables-save")]
|
|
|
|
iptables_save: Option<PathBuf>,
|
|
|
|
},
|
|
|
|
|
2024-06-09 15:17:36 +02:00
|
|
|
#[structopt(about = "Check if a port is secured")]
|
|
|
|
IsPortSecured {
|
|
|
|
#[structopt(name = "Port to check", short = "p", long = "port")]
|
|
|
|
port: u16,
|
|
|
|
|
|
|
|
#[structopt(name = "Docker", short = "d", long = "docker")]
|
|
|
|
docker: bool,
|
|
|
|
},
|
|
|
|
|
2024-05-28 16:03:32 +02:00
|
|
|
#[structopt(about = "Ban port")]
|
|
|
|
BanPort {
|
|
|
|
#[structopt(name = "Port to ban", short = "p", long = "port")]
|
|
|
|
port: u16,
|
2024-05-28 17:31:14 +02:00
|
|
|
|
|
|
|
#[structopt(name = "Docker", short = "d", long = "docker")]
|
|
|
|
docker: bool,
|
2024-05-28 21:13:53 +02:00
|
|
|
|
|
|
|
#[structopt(name = "Position", short = "P", long = "position")]
|
|
|
|
position: Option<i32>,
|
2024-05-28 16:03:32 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
#[structopt(about = "Unban port")]
|
|
|
|
UnbanPort {
|
|
|
|
#[structopt(name = "Port to unban", short = "p", long = "port")]
|
|
|
|
port: u16,
|
2024-05-28 17:31:14 +02:00
|
|
|
#[structopt(name = "Docker", short = "d", long = "docker")]
|
|
|
|
docker: bool,
|
2024-05-28 16:03:32 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
#[structopt(about = "Allow ip and port")]
|
|
|
|
AllowIpPort {
|
|
|
|
#[structopt(name = "Ip to allow", short = "i", long = "ip")]
|
|
|
|
ip: String,
|
|
|
|
|
|
|
|
#[structopt(name = "Port to allow", short = "p", long = "port")]
|
|
|
|
port: u16,
|
2024-05-28 17:31:14 +02:00
|
|
|
#[structopt(name = "Docker", short = "d", long = "docker")]
|
|
|
|
docker: bool,
|
2024-05-28 21:13:53 +02:00
|
|
|
|
|
|
|
#[structopt(name = "Position", short = "P", long = "position")]
|
|
|
|
position: Option<i32>,
|
|
|
|
},
|
|
|
|
|
|
|
|
#[structopt(about = "Allow port for only an ip")]
|
|
|
|
OnlyIpPort {
|
|
|
|
#[structopt(name = "Ip to allow", short = "i", long = "ip")]
|
|
|
|
ip: String,
|
|
|
|
|
|
|
|
#[structopt(name = "Port to allow", short = "p", long = "port")]
|
|
|
|
port: u16,
|
|
|
|
#[structopt(name = "Docker", short = "d", long = "docker")]
|
|
|
|
docker: bool,
|
2024-05-28 16:03:32 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
#[structopt(about = "Remove ip and port")]
|
|
|
|
RemoveIpPort {
|
|
|
|
#[structopt(name = "Ip to remove", short = "i", long = "ip")]
|
|
|
|
ip: String,
|
|
|
|
|
|
|
|
#[structopt(name = "Port to remove", short = "p", long = "port")]
|
|
|
|
port: u16,
|
2024-05-28 17:31:14 +02:00
|
|
|
#[structopt(name = "Docker", short = "d", long = "docker")]
|
|
|
|
docker: bool,
|
2024-05-28 16:03:32 +02:00
|
|
|
},
|
|
|
|
}
|