Browse Source

firewall.table detect dev windowmanager samba

main
pvincent 7 months ago
parent
commit
09b93bc80e
  1. 9
      README.md
  2. 14
      TODO.md
  3. 20
      lib/functions.sh
  4. 8
      templates/nftables/firewall.table.j2

9
README.md

@ -8,15 +8,6 @@ provisioning tool for building opinionated architecture following these principl
* secured: NFT * secured: NFT
* monitored: MONIT * monitored: MONIT
TODO
----
* [ ] backup postgresql missing out on **saturday**
* [ ] TOOLBOOX/nc (binary)
* [ ] final ansible-like indicators: same/new
* [ ] patched editor (backup+editor+diff+patch)
* [ ] to improve log journal for each `recipe` (apache, for example) in order to shorten disk space
ORIGIN ORIGIN
------ ------

14
TODO.md

@ -0,0 +1,14 @@
TODO
====
* [ ] backup postgresql missing out on **saturday**
* [ ] TOOLBOOX/nc (binary)
* [ ] final ansible-like indicators: same/new
* [ ] patched editor (backup+editor+diff+patch)
* [ ] to improve log journal for each `recipe` (apache, for example) in order to shorten disk space
DONE
* [x] detect running on window-manager desktop
* [x] `command -v xprop`

20
lib/functions.sh

@ -112,14 +112,26 @@ function prepare_nftables() {
fi fi
current_target="${TARGET:-not_defined_yet}" current_target="${TARGET:-not_defined_yet}"
desktop=false
samba=false
if [[ $current_target == not_defined_yet ]]; then if [[ $current_target == not_defined_yet ]]; then
echo -n "generating new firewall table first time... " echo -n "generating new firewall table first time... "
else else
echo -n "generating new firewall table according to target=<${current_target}>... "
if [[ $current_target == 'dev' ]]; then
if exist_command 'xprop'; then
desktop=true
fi
if exist_command 'smbstatus'; then
samba=true
fi
echo -n "generating new firewall table according to target=<${current_target}>, desktop=<$desktop>, samba=<$samba> ..."
else
echo -n "generating new firewall table according to target=<${current_target}>..."
fi
fi fi
sudo env target="$current_target" tera -e --env-only --env-key env -t "$MIAOU_BASEDIR/templates/nftables/firewall.table.j2" -o /etc/nftables.rules.d/firewall.table &>/dev/null
sudo env target="$current_target" desktop="$desktop" samba="$samba" tera -e --env-only --env-key env -t "$MIAOU_BASEDIR/templates/nftables/firewall.table.j2" -o /etc/nftables.rules.d/firewall.table &>/dev/null
sudo systemctl reload nftables sudo systemctl reload nftables
echo "OK"
PREFIX="" echoinfo "DONE"
} }
@ -196,7 +208,7 @@ function trap_error() {
# test all commands exist, else fail # test all commands exist, else fail
function exist_command() { function exist_command() {
for i in "$@"; do for i in "$@"; do
command -v "$i" &>/dev/null || return 50
command -v "$i" >/dev/null || return 50
done done
} }

8
templates/nftables/firewall.table.j2

@ -17,15 +17,23 @@ table inet firewall {
tcp dport {22, 2222, 80, 443} accept tcp dport {22, 2222, 80, 443} accept
{%- if env.target == 'dev' %} {%- if env.target == 'dev' %}
{%- if env.desktop == 'true' %}
# DESKTOP RULES BELOW
# -------------------
# allow mDNS # allow mDNS
udp dport mdns accept udp dport mdns accept
{%- if env.samba == 'true' %}
# allow SAMBA # allow SAMBA
udp dport netbios-ns accept comment "Accept NetBIOS Name Service (nmbd)" udp dport netbios-ns accept comment "Accept NetBIOS Name Service (nmbd)"
udp dport netbios-dgm accept comment "Accept NetBIOS Datagram Service (nmbd)" udp dport netbios-dgm accept comment "Accept NetBIOS Datagram Service (nmbd)"
tcp dport netbios-ssn accept comment "Accept NetBIOS Session Service (smbd)" tcp dport netbios-ssn accept comment "Accept NetBIOS Session Service (smbd)"
tcp dport microsoft-ds accept comment "Accept Microsoft Directory Service (smbd)" tcp dport microsoft-ds accept comment "Accept Microsoft Directory Service (smbd)"
{%- endif %}
{%- endif %}
{%- endif %} {%- endif %}
} }

Loading…
Cancel
Save