56 lines
1.6 KiB
Django/Jinja
56 lines
1.6 KiB
Django/Jinja
#!/usr/sbin/nft -f
|
|
flush ruleset
|
|
|
|
table inet filter {
|
|
chain input {
|
|
type filter hook input priority 0; policy drop;
|
|
|
|
iif lo accept
|
|
ct state established,related accept
|
|
ct state invalid drop
|
|
|
|
icmp type echo-request limit rate 5/second accept
|
|
ip6 nexthdr icmpv6 icmpv6 type echo-request limit rate 5/second accept
|
|
|
|
tcp dport 22 ip saddr {{ ssh_admin_access_cidr }} accept
|
|
|
|
{% if enable_nginx_proxy %}
|
|
tcp dport 443 accept
|
|
{% else %}
|
|
tcp dport {{ jumphost_app_port }} accept
|
|
{% endif %}
|
|
}
|
|
|
|
chain forward {
|
|
type filter hook forward priority 0; policy drop;
|
|
}
|
|
|
|
chain output {
|
|
type filter hook output priority 0; policy drop;
|
|
|
|
oif lo accept
|
|
ct state established,related accept
|
|
|
|
udp dport 53 accept
|
|
tcp dport 53 accept
|
|
udp dport 123 accept
|
|
|
|
{% for net in target_networks %}
|
|
ip daddr {{ net }} accept
|
|
{% endfor %}
|
|
|
|
# ACME/interne PKI (tls_certificates-Rolle) und OS-Paketquellen
|
|
tcp dport 443 accept
|
|
tcp dport 80 accept
|
|
|
|
# Befund B5 (Umsetzungsauftrag_Sonnet5.md Teil A.3): ohne diese Zeile
|
|
# verwirft "policy drop" alles Uebrige lautlos -- z.B. guacds RDP-Pakete
|
|
# zu einem Ziel ausserhalb von target_networks. Das sieht der Benutzer
|
|
# nur als "Server timeout" (guacamole-common-js), im Journal steht dazu
|
|
# nichts. Rate-limitiert geloggt, damit ein Fehlkonfigurationsfall
|
|
# (falsches/fehlendes target_networks-Netz) in Sekunden statt Tagen
|
|
# auffaellt, ohne das Journal bei einem Portscan zu fluten.
|
|
limit rate 10/second log prefix "jumphost-output-drop: " counter drop
|
|
}
|
|
}
|