Add support for managing forwarding rules

This commit is contained in:
Timotej Lazar 2023-05-29 12:24:21 +02:00
parent 52a5b7cd11
commit 765d4a3ce7
8 changed files with 169 additions and 4 deletions

View file

@ -8,7 +8,7 @@
<dd>nastavitve aplikacije FRIwall
<dt><a href="{{ url_for('config.edit', name='networks') }}">Omrežja</a>
<dd>definicije obsegov IP
<dt><a href="{{ url_for('config.edit', name='forwards') }}">Luknje</a>
<dt><a href="{{ url_for('rules.index') }}">Urejanje pravil</a>
<dd>pravila za posredovanje prometa
<dt><a href="{{ url_for('config.edit', name='nat') }}">NAT</a>
<dd>javni naslovi za pisarniška omrežja
@ -22,6 +22,8 @@
<section>
<dt><a href="{{ url_for('vpn.index') }}">VPN</a>
<dd>urejanje ključev za WireGuard VPN
<dt><a href="{{ url_for('rules.manage') }}">Pravila</a>
<dd>vklop / izklop pravil za požarni zid
</dl>
</section>
{% endblock %}

View file

@ -0,0 +1,25 @@
{% extends 'base.html' %}
{% block content %}
<p>
Urejate pravilo #{{ index }}.
<form id="request" method="POST">
<p>
<label for="name">Ime</label><br>
<input name="name" value="{{ rule.name }}" />
<p>
Uporabniki, ki lahko o(ne)mogočijo pravilo<br>
{% for manager in rule.managers %}
<input name="manager" type="text" style="width: 50%" value="{{ manager }}" /><br>
{% endfor %}
<input name="manager" type="text" style="width: 50%" value="" />
<p>
<label for="text">Pravila nftables</label>
<textarea id="text" name="text" style="width: 100%; height: 20em;">{{ rule.text }}</textarea>
<p><button id="submit" type="submit">Shrani</button>
</form>
{% endblock %}

View file

@ -0,0 +1,23 @@
{% extends 'base.html' %}
{% block content %}
<p>
Urejate prioritete pravil za požarni zid. Pravilo odstranite tako, da izbrišete pripadajočo številko. V zadnji vrstici lahko dodate novo pravilo.
<form id="request" method="POST">
<table>
<tbody>
{% for rule in rules %}
<tr>
<td><input name="index" type="number" min="0" size="2" value="{{ loop.index * 10 }}" />
<td><input type="hidden" name="name" value="{{ rule.name }}" />
<a href="{{ url_for('rules.edit', index=loop.index0) }}">{{ rule.name }}</a>
{% endfor %}
<tr>
<td><input name="index" type="number" min="0" size="2" />
<td><input name="name" type="text" size="40" />
</table>
<p><button id="submit" type="submit">Shrani</button>
</form>
{% endblock %}

View file

@ -0,0 +1,20 @@
{% extends 'base.html' %}
{% block content %}
<p>
Tu lahko vklopite in izklopite posamezna pravila za požarni zid.
<dl>
{% for rule in rules %}
<dt>
{% if rule.enabled %}
<font color="green"></font> {{ rule.name }} <a href="{{ url_for('rules.toggle', index=rule.index, enable='false') }}">onemogoči</a>
{% else %}
<font color="red"></font> {{ rule.name }} <a href="{{ url_for('rules.toggle', index=rule.index, enable='true') }}">omogoči</a>
{% endif %}
<dd>
<pre><code>{{ rule.text }}</code></pre>
{% endfor %}
</dl>
{% endblock %}