diff options
author | tv <tv@shackspace.de> | 2015-06-22 15:24:09 +0200 |
---|---|---|
committer | tv <tv@shackspace.de> | 2015-06-22 15:24:09 +0200 |
commit | 53305dc496f7f15504a8ef2f1f9511fb0b2f78ab (patch) | |
tree | 273daca78a42d1f8d8ef4bd5ef6ea33598bfc618 /modules/wu | |
parent | 1538630782ac8c56d549af4fcac4c9abcba8c9c5 (diff) |
tv: modularize iptables configuration
Diffstat (limited to 'modules/wu')
-rw-r--r-- | modules/wu/default.nix | 13 | ||||
-rw-r--r-- | modules/wu/iptables.nix | 69 |
2 files changed, 12 insertions, 70 deletions
diff --git a/modules/wu/default.nix b/modules/wu/default.nix index 68475ad5b..76e8c6bb3 100644 --- a/modules/wu/default.nix +++ b/modules/wu/default.nix @@ -9,7 +9,6 @@ in { imports = [ ./hosts.nix - ./iptables.nix ../common/nixpkgs.nix ../tv/base.nix ../tv/exim-retiolum.nix @@ -22,6 +21,18 @@ in ../tv/urxvt.nix ../tv/xserver.nix ../wu/users.nix + { + imports = [ ../tv/iptables ]; + tv.iptables = { + enable = true; + input-internet-accept-new-tcp = [ + "ssh" + "http" + "tinc" + "smtp" + ]; + }; + } ]; nix.maxJobs = 8; diff --git a/modules/wu/iptables.nix b/modules/wu/iptables.nix deleted file mode 100644 index ee4034321..000000000 --- a/modules/wu/iptables.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ config, pkgs, ... }: - -{ - # - # iptables - # - networking.firewall.enable = false; - system.activationScripts.iptables = - let - log = false; - when = c: f: if c then f else ""; - in - '' - ip4tables() { ${pkgs.iptables}/sbin/iptables "$@"; } - ip6tables() { ${pkgs.iptables}/sbin/ip6tables "$@"; } - ipXtables() { ip4tables "$@"; ip6tables "$@"; } - - # - # nat - # - - # reset tables - ipXtables -t nat -F - ipXtables -t nat -X - - # - ipXtables -t nat -A PREROUTING -j REDIRECT ! -i retiolum -p tcp --dport ssh --to-ports 0 - ipXtables -t nat -A PREROUTING -j REDIRECT -p tcp --dport 11423 --to-ports ssh - - # - # filter - # - - # reset tables - ipXtables -P INPUT DROP - ipXtables -P FORWARD DROP - ipXtables -F - ipXtables -X - - # create custom chains - ipXtables -N Retiolum - - # INPUT - ipXtables -A INPUT -j ACCEPT -m conntrack --ctstate RELATED,ESTABLISHED - ipXtables -A INPUT -j ACCEPT -i lo - ipXtables -A INPUT -j ACCEPT -p tcp --dport ssh -m conntrack --ctstate NEW - ipXtables -A INPUT -j ACCEPT -p tcp --dport http -m conntrack --ctstate NEW - ipXtables -A INPUT -j ACCEPT -p tcp --dport tinc -m conntrack --ctstate NEW - ipXtables -A INPUT -j ACCEPT -p tcp --dport smtp -m conntrack --ctstate NEW - ipXtables -A INPUT -j Retiolum -i retiolum - ${when log "ipXtables -A INPUT -j LOG --log-level info --log-prefix 'INPUT DROP '"} - - # FORWARD - ${when log "ipXtables -A FORWARD -j LOG --log-level info --log-prefix 'FORWARD DROP '"} - - # Retiolum - ip4tables -A Retiolum -j ACCEPT -p icmp --icmp-type echo-request - ip6tables -A Retiolum -j ACCEPT -p ipv6-icmp -m icmp6 --icmpv6-type echo-request - - - ${when log "ipXtables -A Retiolum -j LOG --log-level info --log-prefix 'REJECT '"} - ipXtables -A Retiolum -j REJECT -p tcp --reject-with tcp-reset - ip4tables -A Retiolum -j REJECT -p udp --reject-with icmp-port-unreachable - ip4tables -A Retiolum -j REJECT --reject-with icmp-proto-unreachable - ip6tables -A Retiolum -j REJECT -p udp --reject-with icmp6-port-unreachable - ip6tables -A Retiolum -j REJECT - - ''; -} |