1
0
martillo-maldito/README.md
2024-12-31 14:03:39 +01:00

176 lines
3.6 KiB
Markdown

# 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 <command> [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 <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 <port> [--position <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 <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 <ip> --port <port> [--position <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 <ip> --port <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.