{% extends 'base.html' %} {% block header %} <style> hr { border-style: dotted; border-color: gray; border-width: 1px 0 0; } tbody > tr:nth-child(odd) { background-color: #eeeeee; } td { vertical-align: top; } </style> {% endblock %} {% block content %} <p> Urejate pravilo #{{ index }} (<a href="{{ url_for('rules.index') }}">seznam pravil</a>). Pravila so vključena v <a href="https://wiki.nftables.org">nftables</a> <em>filter chain</em> na požarnem zidu. Povzetek filtrov najdemo <a href="https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes#Matches">v dokumentaciji</a>. <form id="request" method="POST"> <p> <label for="name">Ime</label><br> <input id="name" name="name" value="{{ rule.name }}" /> <p> <label for="newmanager">Skupine, ki lahko o(ne)mogočijo pravilo</label> <br> {% for manager in rule.managers %} <input name="manager" type="text" style="width: 50%" value="{{ manager }}" /><br> {% endfor %} <input id="newmanager" name="manager" type="text" style="width: 50%" value="" /> <p> <label for="text">Pravila nftables</label> <textarea id="text" name="text" style="width: 100%; height: 8em;" placeholder="iif @inside ip saddr @from ip daddr @to accept iif @inside ip6 saddr @from/6 ip6 daddr @to/6 accept"> {{- rule.text }} </textarea> <p><button id="submit" type="submit">Shrani</button> </form> <hr> <p> Promet z naslova <em>src</em> iz zunanjega omrežja na naslov <em>dst</em> na notranjem dovolimo z <pre><code>iif @outside oif @inside ip saddr src ip daddr dst accept</code></pre> <p> Za naslova <em>src</em> in <em>dst</em> lahko uporabimo <a href="{{ url_for('ipsets.index') }}">definirana omrežja</a>, prikazana v spodnji tabeli. Za omrežje <code>net</code> uporabimo oznaki <code>@net</code> in <code>@net/6</code> za naslove IPv4 in IPv6. Da npr. preprečimo povezave iz omrežja <code>classroom</code> izven omrežja FRI, uporabimo pravili <pre><code>iif @inside ip saddr @classroom ip daddr != @fri drop iif @inside ip6 saddr @classroom/6 ip6 daddr != @fri/6 drop</code></pre> <table style="width: 100%;"> <thead> <th>Omrežje <th>IP <th>IPv6 <th>VPN <tbody> {% for name, data in ipsets.items() %} <tr> <td>{{ name }} <td>{{ data.ip|join('<br>')|safe }} <td>{{ data.ip6|join('<br>')|safe }} <td>{{ data.vpn }} {% endfor %} </table> {% endblock %}