Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

muralla

Es un proyecto desarrollado con el lenguaje de programación python que pretende facilitar la gestión de un firewall construido por Iptables como sistema base.

El programa está totalmente abierto, se puede leer el código fuente sin problemas.

Sitio oficial del proyecto.

Requiere

  • man-db

Instalación

El contenido debería tener un árbol de archivos parecido al siguiente:

muralla
   ├── etc
   │   ├── muralla
   │   │   └── muralla.conf
   │   ├── network
   │   │   └── if-up.d
   │   │       └── muralla-up
   │   └── sysconfig
   │       └── network-scripts
   │           └── muralla-up
   ├── install
   ├── README.txt
   └── usr
       ├── sbin
       │   └── muralla
       └── share
           └── man
               ├── es
               │   ├── man5
               │   │   └── muralla.conf.5.gz
               │   └── man8
               │       └── muralla.8.gz
               ├── man5
               │   └── muralla.conf.5.gz
               └── man8
                   └── muralla.8.gz

Se instala como usuario root de la siguiente manera:

./install

Fichero muralla.conf

La ruta absoluta del archivo de configuración es: /etc/muralla/muralla.conf

El contenido del archivo muralla.conf es parecido al formato de archivos Json, internamente la estructura aceptará comandos y parámetros relacionados con los comandos y parámetros de Iptables.

Ejemplos

Declarando una política permisiva con negación de respuesta de ping:

{
   "policy": {
       "input": "accept",
       "forward": "accept",
       "output": "accept"
   },
   "input_accept": [
       {"ip_src": "127.0.0.1", "ip_dst": "127.0.0.1"}
   ],
   "input_drop": [
       {"proto": "icmp --icmp-type echo-request"}
   ]

}

Ejemplo base del archivo de configuración:

{
    "policy": {
        "input": "DROP",
        "forward": "drop",
        "output": "accept"
    },
    "input_accept": [
        { "ip_src": "127.0.0.1", "ip_dst": "127.0.0.1" },
        { "port_dst": 22, 'proto': "tcp" },
        { "port_dst": 80, 'proto': 'tcp' },
        { "port_dst": 443, 'proto': 'tcp' },
        { "state": "new, established, related" }
    ],
    "input_drop": [
        { "port_dst": 25, 'proto': 'tcp' },
        { "port_dst": 21, 'proto': 'tcp' },
        { "port_dst": 23, 'proto': 'tcp' },
        { "port_dst": 25, 'proto': 'udp' }
    ]
}

Ejemplo rechazando conexiones de HTTP:

{
    "policy": {
        "input": "drop",
        "forward": "drop",
        "output": "accept"
    },
    "input_drop": [
        {"port_dst": "http", "proto": "tcp", "ip_src": "192.168.1.0/24"}
    ],
    "input_accept": [
        {"ip_src": "127.0.0.1", "ip_dst": "127.0.0.1"},
        {"state": "new, established, related"}
    ]

}

Fichero muralla

La ruta absoluta del archivo es: /usr/local/sbin/muralla

Este archivo es el script principal desde donde se lee el archivo de configuración, se listan las reglas implementadas, se cargan y eliminan reglas y se ve la ayuda del mismo, también se desinstala el programa.

muralla -l      # Listar las reglas
muralla -c      # Cargar las reglas
muralla -d      # Eliminar las reglas
muralla -h      # Muestra esta ayuda
muralla -u      # Elimina el programa del sistema

Fichero muralla-up

La ruta absoluta de este archivo depende de la distribución Linux.

Para familia Debian: /etc/network/if-up.d/muralla-up

Para familia Red Hat: /etc/sysconfig/network-scripts/muralla-up

La intención de este archivo es cargar las reglas que están definidas en el archivo muralla.conf durante el arranque del sistema operativo.

Deinstalación

La desinstalación se realizan como usuario root y con el mismo comando base:

muralla -u

Félix Urbina

About

Muralla es un desarrollo experimental para gestionar firewall Iptables.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages