# Martillo Maldito **Martillo Maldito** is an `iptables` wrapper that simplifies firewall rule management in an intuitive and structured way. This CLI allows you to manage secured ports, block IPs, save rules, and more. --- ## Features - Retrieve all banned IPs. - Query and manage secured ports. - Allow or deny access by IP for specific ports. - Rule persistence. - Optional Docker integration. --- ## Requirements - Rust 1.65 or higher. - `iptables` and `iptables-save` installed and configured on the system. - Proper permissions to manage `iptables` rules (e.g., running as root). --- ## Installation 1. Clone the repository: ```bash git clone https://git.midefos.com/midefos/martillo-maldito.git cd martillo-maldito ``` 2. Build the project: ```bash cargo build --release ``` 3. Optionally, copy the executable to a directory in your PATH: ```bash cp target/release/martillo_maldito /usr/local/bin/ ``` --- ## Usage ### General Syntax ```bash martillo_maldito [options] ``` ### Available Commands #### 1. Retrieve all banned IPs ```bash martillo_maldito get-banned-ips [--docker | -d] ``` **Options:** - `--docker`, `-d`: Includes rules in Docker environments. #### 2. Retrieve all secured ports ```bash martillo_maldito get-secured-ports [--docker | -d] ``` #### 3. Retrieve all secured ports with allowed IPs ```bash martillo_maldito get-secured-ports-with-allowed-ips [--docker | -d] ``` #### 4. Check if a port is secured ```bash martillo_maldito is-port-secured --port [--docker | -d] ``` **Options:** - `--port`, `-p`: Specifies the port to check. - `--docker`, `-d`: Includes rules in Docker environments. #### 5. Secure a port ```bash martillo_maldito secure-port --port [--position ] [--docker | -d] ``` **Options:** - `--port`, `-p`: Specifies the port to secure. - `--position`, `-P`: Specifies the rule position in `iptables`. - `--docker`, `-d`: Includes rules in Docker environments. #### 6. Unsecure a port ```bash martillo_maldito unsecure-port --port [--docker | -d] ``` **Options:** - `--port`, `-p`: Specifies the port to unsecure. - `--docker`, `-d`: Includes rules in Docker environments. #### 7. Allow an IP for a port ```bash martillo_maldito allow-ip-for-port --ip --port [--position ] [--docker | -d] ``` **Options:** - `--ip`, `-i`: Specifies the IP to allow. - `--port`, `-p`: Specifies the port to allow the IP on. - `--position`, `-P`: Specifies the rule position. - `--docker`, `-d`: Includes rules in Docker environments. #### 8. Remove an allowed IP from a port ```bash martillo_maldito remove-allow-ip-port --ip --port [--docker | -d] ``` **Options:** - `--ip`, `-i`: Specifies the IP to remove. - `--port`, `-p`: Specifies the port to remove the IP from. - `--docker`, `-d`: Includes rules in Docker environments. #### 9. Save rules ```bash martillo_maldito save-rules ``` Saves all current `iptables` rules for future restoration. --- ## Examples 1. **Retrieve all banned IPs:** ```bash martillo_maldito get-banned-ips ``` 2. **Secure port 8080 with Docker enabled:** ```bash martillo_maldito secure-port -p 8080 -d ``` 3. **Allow access to IP 192.168.1.10 on port 22:** ```bash martillo_maldito allow-ip-for-port -i 192.168.1.10 -p 22 ``` 4. **Save all current rules:** ```bash martillo_maldito save-rules ``` --- ## Disclaimer This repository is designed solely for experimental or educational purposes. It is not intended for use in production environments or critical projects. Use at your own risk.