]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ferm/files/ferm.conf
ferm: drop aurel32's IPs
[dsa-puppet.git] / modules / ferm / files / ferm.conf
index 6cd911f986aa7f9e5b1b5ef377c4a67031146d91..5f77ce48530fb0a42ce3e63f195229299b8764f1 100644 (file)
@@ -1,19 +1,69 @@
-# include some ferm definitions, useful for adding function to abstract stuff
-@include 'defs.conf';
+##
+## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
+## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
+##
 
-# a simple default and fairly secure policy
-domain (ip ip6) {
-       chain INPUT {
-               policy DROP;
-               mod state state (ESTABLISHED RELATED) ACCEPT;
-               interface lo ACCEPT;
-               proto tcp mod state state NEW !syn DROP;
-               proto icmp ACCEPT;
-       }
-}
+# -*- shell-script -*-
 
-# per-host configuration
 @include 'conf.d/';
 
-# managed via puppet
+domain ip {
+        table filter {
+              chain log_and_reject {
+                      ULOG ulog-prefix "REJECT: ";
+                      proto tcp REJECT reject-with tcp-reset;
+                      REJECT;
+              }
+
+              chain log_or_drop {
+                      mod hashlimit hashlimit-name ulogreject  hashlimit-mode srcip hashlimit-burst 10 hashlimit 1/second jump log_and_reject;
+                      mod hashlimit hashlimit-name uloglogdrop hashlimit-mode srcip hashlimit-burst 10 hashlimit 1/second ULOG ulog-prefix "DROP: ";
+                      DROP;
+              }
+
+        }
+}
+domain ip6 {
+        table filter {
+              chain log_and_reject {
+                      LOG log-prefix "REJECT: ";
+                      proto tcp REJECT reject-with tcp-reset;
+                      REJECT;
+              }
+
+              chain log_or_drop {
+                      mod hashlimit hashlimit-name logreject  hashlimit-mode srcip hashlimit-burst 10 hashlimit 1/second jump log_and_reject;
+                      mod hashlimit hashlimit-name loglogdrop hashlimit-mode srcip hashlimit-burst 10 hashlimit 1/second LOG log-prefix "DROP: ";
+                      DROP;
+              }
+        }
+}
+domain (ip ip6) {
+        table filter {
+              chain INPUT {
+                      policy ACCEPT;
+                      mod state state (ESTABLISHED RELATED) ACCEPT;
+                      interface lo ACCEPT;
+                      proto icmp ACCEPT;
+                      # some of our hosts (e.g. villa and lobos) do ipv6 via tunnels (proto 41)
+                      # this requires we allow proto ipv6 to work in all cases.
+                      # without this, ipv6 connectivity only works once the host itself
+                      # created some ipv6 connectivity to some place.
+                      proto ipv6 ACCEPT;
+                      mod state state (INVALID) DROP;
+              }
+        }
+}
+
 @include 'dsa.d/';
+
+domain (ip ip6) {
+        chain INPUT {
+                proto (tcp udp) mod multiport destination-ports (135 137 138 139 445 1026 1027 1433) DROP;
+                jump log_or_drop;
+        }
+}
+
+@hook post "umask 0177; iptables-save | sed -e 's/\[.*//' -e 's/^#.*//' | sha256sum > /var/run/iptables-ferm.checksum";
+@hook post "umask 0177; ip6tables-save | sed -e 's/\[.*//' -e 's/^#.*//' | sha256sum > /var/run/ip6tables-ferm.checksum";
+# vim:set et: