Author Topic: Config JSON structure testing  (Read 365 times)

0 Members and 1 Guest are viewing this topic.

razwall

  • Administrator
  • Jr. Member
  • *****
  • Posts: 75
Config JSON structure testing
« on: July 29, 2025, 11:25:06 AM »
{
  "bridges" : {
      "br0" : {
        "interface" : "eth0",
        "interfaces" : [
            "eth0"
        ]
      },
      "br1" : {
        "interface" : "eth7",
        "interfaces" : [
            "eth7"
        ]
      },
      "br2" : {
        "interface" : "br0.200",
        "interfaces" : [
            "br0.200"
        ]
      },
      "br3" : {
        "interface" : "eth2.200",
        "interfaces" : [
            "eth2.200"
        ]
      },
      "br4" : {
        "interfaces" : [
            "eth0.500"
        ]
      }
  },
  "dnat" : [
      {
        "collapsed" : true,
        "dst_dev" : [],
        "dst_ip" : [
            "xx.xxx.xx.xx"
        ],
        "dst_port" : [
            "80"
        ],
        "enabled" : true,
        "filter_target" : "ACCEPT",
        "ip_version" : "4",
        "log" : true,
        "nat_target" : "DNAT",
        "protocol" : [
            "tcp"
        ],
        "remark" : "HTTP Example",
        "src_dev" : [],
        "src_ip" : [
            "any"
        ],
        "target_ip" : [
            "192.168.19.87"
        ],
        "target_port" : [
            "80"
        ]
      },
      {
        "collapsed" : true,
        "dst_dev" : [],
        "dst_ip" : [
            "xx.xxx.xx.xx"
        ],
        "dst_port" : [
            "22"
        ],
        "enabled" : true,
        "filter_target" : "ACCEPT",
        "ip_version" : "4",
        "log" : true,
        "nat_target" : "DNAT",
        "protocol" : [
            "tcp"
        ],
        "remark" : "SSL Example",
        "src_dev" : [],
        "src_ip" : [
            "xx.xxx.xx.xx"
        ],
        "target_ip" : [
            "192.168.19.87"
        ],
        "target_port" : [
            "22"
        ]
      },
      {
        "collapsed" : true,
        "dst_dev" : [],
        "dst_ip" : [
            "24.111.67.50"
        ],
        "dst_port" : [
            "53"
        ],
        "enabled" : true,
        "filter_target" : "ACCEPT",
        "ip_version" : "4",
        "log" : true,
        "nat_target" : "DNAT",
        "protocol" : [
            "tcp",
            "udp"
        ],
        "remark" : "DNS Example",
        "src_dev" : [],
        "src_ip" : [
            "any"
        ],
        "target_ip" : [
            "192.168.19.87"
        ],
        "target_port" : [
            "53"
        ]
      }
  ],
  "interfaces" : {
      "physical" : [
        "eth0",
        "eth1",
        "eth2",
        "eth3",
        "eth4",
        "eth5",
        "eth6",
        "eth7",
        "lo"
      ],
      "virtual" : [
        "eth2.200",
        "eth0.500"
      ]
  },
  "users" : {
      "Admin" : "admin:REMOVED"
  },
  "zones" : {
      "LAN" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "green",
        "ZDESC" : "Primary LAN Network",
        "ZDHCP" : "off",
        "ZIFACE" : "eth0",
        "ZNETMASK" : "",
        "ZSTRING" : "LAN",
        "ZTYPE" : "LAN"
      },
      "LOCAL" : {
        "ZCOLOR" : "black",
        "ZDESC" : "Local Loopback Adapter",
        "ZIFACE" : "lo",
        "ZSTRING" : "loopback",
        "ZTYPE" : "LOOPBACK"
      },
      "PATRON" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "#8000ff",
        "ZDESC" : "patron LAN",
        "ZDHCP" : "off",
        "ZIFACE" : "eth2.200",
        "ZNETMASK" : "",
        "ZSTRING" : "PATRON",
        "ZTYPE" : "LAN"
      },
      "WAN" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "red",
        "ZDESC" : "Primary Internet Connection",
        "ZDHCP" : "off",
        "ZIFACE" : "eth1",
        "ZNETMASK" : "",
        "ZSTRING" : "WAN",
        "ZTYPE" : "WAN"
      }
  }
}
« Last Edit: July 29, 2025, 11:32:10 AM by razwall »

techdevel2

  • Newbie
  • *
  • Posts: 8
Re: Config JSON structure testing
« Reply #1 on: August 03, 2025, 03:35:27 AM »
Hi,
Good to see the progress with dynamic ZONE creation as the default feature. I came across the IPFire code related to zone creation which is done by "setup" program/module while installing it. Basically it is written in C  which is doing the zone creation related steps and interface assignment etc [here is the link.  https://github.com/ipfire/ipfire-2.x/blob/master/src/setup/networking.c]. I am thinking to change this bottleneck for IPFire though i am not good in advance c programming [ it is already mentioned by the IPFire author . https://www.ipfire.org/docs/roadmap/get-rid-of-configtype-in-network-config ].  Actually, i am impressed with IPFire because of its build system which gives freedom for any thing as per the developer/user expertise.
Well, i am also waiting for your distro as well. well, it would be good if you make a roadmap of different tasks and ask other on the forum for the development . This will definitely reduce burden on you and also gives opportunity to other to contribute. 

razwall

  • Administrator
  • Jr. Member
  • *****
  • Posts: 75
Re: Config JSON structure testing
« Reply #2 on: August 29, 2025, 02:43:00 PM »
updated sample...

{
  "access" : [],
  "bridges" : {
      "br0" : {
        "interfaces" : [
            "eth0"
        ]
      }
  },
  "dhcp" : [],
  "dnat" : [
      {
        "collapsed" : true,
        "dst_dev" : [],
        "dst_ip" : [
            "X.X.X.X"
        ],
        "dst_port" : [
            "80"
        ],
        "enabled" : true,
        "filter_target" : "ACCEPT",
        "ip_version" : "4",
        "log" : true,
        "nat_target" : "DNAT",
        "protocol" : [
            "tcp"
        ],
        "remark" : "HTTP Example",
        "src_dev" : [],
        "src_ip" : [
            "any"
        ],
        "target_ip" : [
            "192.168.19.87"
        ],
        "target_port" : [
            "80"
        ]
      },
      {
        "collapsed" : true,
        "dst_dev" : [],
        "dst_ip" : [
            "X.X.X.X"
        ],
        "dst_port" : [
            "22"
        ],
        "enabled" : true,
        "filter_target" : "ACCEPT",
        "ip_version" : "4",
        "log" : true,
        "nat_target" : "DNAT",
        "protocol" : [
            "tcp"
        ],
        "remark" : "SSL Example",
        "src_dev" : [],
        "src_ip" : [
            "X.X.X.X"
        ],
        "target_ip" : [
            "192.168.19.87"
        ],
        "target_port" : [
            "22"
        ]
      },
      {
        "collapsed" : true,
        "dst_dev" : [],
        "dst_ip" : [
            "X.X.X.X"
        ],
        "dst_port" : [
            "53"
        ],
        "enabled" : true,
        "filter_target" : "ACCEPT",
        "ip_version" : "4",
        "log" : true,
        "nat_target" : "DNAT",
        "protocol" : [
            "tcp",
            "udp"
        ],
        "remark" : "DNS Example",
        "src_dev" : [],
        "src_ip" : [
            "any"
        ],
        "target_ip" : [
            "192.168.19.87"
        ],
        "target_port" : [
            "53"
        ]
      }
  ],
  "hosts" : [],
  "interfaces" : {
      "physical" : [
        "eth0",
        "eth1",
        "lo"
      ],
      "virtual" : []
  },
  "out" : [],
  "routing" : [],
  "snat" : [],
  "users" : {
      "Admin" : "admin:$apr1$qci0smug$50y/xw0j8s7vsUmW421Zi."
  },
  "vpnfw" : [],
  "vpns" : [],
  "vusers" : [],
  "zfw" : [],
  "zones" : {
      "LAN" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "192.168.55.1",
        "ZCOLOR" : "#00ff00",
        "ZDESC" : "Primary Network",
        "ZDHCP" : "off",
        "ZIFACE" : "eth0",
        "ZNETMASK" : "/24",
        "ZSTRING" : "LAN",
        "ZTYPE" : "LAN"
      },
      "LOCAL" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "black",
        "ZDESC" : "Local Loopback Adapter",
        "ZDHCP" : "off",
        "ZIFACE" : "lo",
        "ZNETMASK" : "",
        "ZSTRING" : "loopback",
        "ZTYPE" : "LOOPBACK"
      },
      "WAN" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "red",
        "ZDESC" : "Primary Internet Connection",
        "ZDHCP" : "on",
        "ZIFACE" : "eth1",
        "ZNETMASK" : "",
        "ZSTRING" : "WAN",
        "ZTYPE" : "WAN"
      }
  }
}

razwall

  • Administrator
  • Jr. Member
  • *****
  • Posts: 75
Re: Config JSON structure testing
« Reply #3 on: August 29, 2025, 02:50:39 PM »
{
  "access" : [
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "fw" ],
        "dst_port" : [ "22" ],
        "remark" : "Allow SSH from LAN",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "fw" ],
        "dst_port" : [ "443" ],
        "remark" : "Allow HTTPS from LAN",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "fw" ],
        "dst_port" : [ "80" ],
        "remark" : "Allow HTTP from LAN",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "udp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "fw" ],
        "dst_port" : [ "67","68" ],
        "remark" : "Allow DHCP on LAN",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "udp","tcp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "fw" ],
        "dst_port" : [ "53" ],
        "remark" : "Allow DNS on LAN",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "udp" ],
        "src_dev" : [ "eth1" ],
        "dst_dev" : [ "fw" ],
        "dst_port" : [ "1194" ],
        "remark" : "Allow OpenVPN on WAN",
        "filter_target" : "ACCEPT",
        "log" : false
      }
  ],
  "bridges" : {
      "br0" : { "interfaces" : [ "eth0" ] }
  },
  "dhcp" : [],
  "dnat" : [
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "eth1" ],
        "dst_ip" : [ "X.X.X.X" ],
        "dst_port" : [ "80" ],
        "target_ip" : [ "192.168.19.87" ],
        "target_port" : [ "80" ],
        "remark" : "WAN HTTP to internal webserver",
        "filter_target" : "ACCEPT",
        "nat_target" : "DNAT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "eth1" ],
        "dst_ip" : [ "X.X.X.X" ],
        "dst_port" : [ "443" ],
        "target_ip" : [ "192.168.19.87" ],
        "target_port" : [ "443" ],
        "remark" : "WAN HTTPS to internal webserver",
        "filter_target" : "ACCEPT",
        "nat_target" : "DNAT",
        "log" : false
      }
  ],
  "hosts" : [],
  "interfaces" : {
      "physical" : [ "eth0","eth1","lo" ],
      "virtual" : []
  },
  "out" : [
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "eth1" ],
        "dst_port" : [ "80","443" ],
        "remark" : "Allow LAN outbound web",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "all" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "eth1" ],
        "remark" : "Block all other outbound from LAN",
        "filter_target" : "DROP",
        "log" : false
      }
  ],
  "routing" : [
      {
        "type" : "default",
        "via" : "<GW1 IP>",
        "dev" : "eth1",
        "remark" : "Default WAN route"
      }
  ],
  "snat" : [
      {
        "enabled" : true,
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "eth1" ],
        "nat_target" : "SNAT",
        "remark" : "MASQUERADE LAN1 to WAN1"
      },
      {
        "enabled" : true,
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "eth2" ],
        "nat_target" : "SNAT",
        "remark" : "MASQUERADE LAN1 to WAN2"
      }
  ],
  "users" : {
      "Admin" : "admin:$apr1$qci0smug$50y/xw0j8s7vsUmW421Zi."
  },
  "vpnfw" : [
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "tun0" ],
        "dst_dev" : [ "br0" ],
        "dst_port" : [ "3389" ],
        "remark" : "VPN to LAN1 RDP",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "tun0" ],
        "dst_dev" : [ "br1" ],
        "dst_port" : [ "445" ],
        "remark" : "VPN to LAN2 SMB",
        "filter_target" : "ACCEPT",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "all" ],
        "src_dev" : [ "tun0" ],
        "dst_dev" : [ "br0" ],
        "remark" : "Block VPN to LAN1",
        "filter_target" : "DROP",
        "log" : false
      },
      {
        "enabled" : true,
        "protocol" : [ "all" ],
        "src_dev" : [ "tun0" ],
        "dst_dev" : [ "br1" ],
        "remark" : "Block VPN to LAN2",
        "filter_target" : "DROP",
        "log" : false
      }
  ],
  "vpns" : [],
  "vusers" : [],
  "zfw" : [
      {
        "enabled" : true,
        "protocol" : [ "tcp" ],
        "src_dev" : [ "br0" ],
        "dst_dev" : [ "br1" ],
        "dst_port" : [ "3389" ],
        "remark" : "LAN1 to LAN2 RDP",
        "filter_target" : "ACCEPT",
        "log" : false
      }
  ],
  "zones" : {
      "LAN" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "192.168.55.1",
        "ZCOLOR" : "#00ff00",
        "ZDESC" : "Primary Network",
        "ZDHCP" : "off",
        "ZIFACE" : "eth0",
        "ZNETMASK" : "/24",
        "ZSTRING" : "LAN",
        "ZTYPE" : "LAN"
      },
      "LOCAL" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "black",
        "ZDESC" : "Local Loopback Adapter",
        "ZDHCP" : "off",
        "ZIFACE" : "lo",
        "ZNETMASK" : "",
        "ZSTRING" : "loopback",
        "ZTYPE" : "LOOPBACK"
      },
      "WAN" : {
        "ZADDITIONAL" : "",
        "ZADDRESS" : "",
        "ZCOLOR" : "red",
        "ZDESC" : "Primary Internet Connection",
        "ZDHCP" : "on",
        "ZIFACE" : "eth1",
        "ZNETMASK" : "",
        "ZSTRING" : "WAN",
        "ZTYPE" : "WAN"
      }
  }
}
« Last Edit: August 29, 2025, 02:52:12 PM by razwall »