retire manual firewalling on bmdb1 for dak replica access
[mirror/dsa-puppet.git] / modules / ferm / manifests / per_host.pp
1 class ferm::per_host {
2   if (getfromhash($deprecated::nodeinfo, 'hoster', 'name') == 'aql') {
3     include ferm::aql
4   }
5
6   case $::hostname {
7     czerny,clementi: {
8       ferm::rule { 'dsa-upsmon':
9         description => 'Allow upsmon access',
10         rule        => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
11       }
12     }
13     default: {}
14   }
15
16   case $::hostname {
17     bm-bl1,bm-bl2: {
18       ferm::rule { 'dsa-vrrp':
19         rule => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
20       }
21       ferm::rule { 'dsa-bind-notrack-in':
22         domain      => 'ip',
23         description => 'NOTRACK for nameserver traffic',
24         table       => 'raw',
25         chain       => 'PREROUTING',
26         rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
27       }
28
29       ferm::rule { 'dsa-bind-notrack-out':
30         domain      => 'ip',
31         description => 'NOTRACK for nameserver traffic',
32         table       => 'raw',
33         chain       => 'OUTPUT',
34         rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
35       }
36
37       ferm::rule { 'dsa-bind-notrack-in6':
38         domain      => 'ip6',
39         description => 'NOTRACK for nameserver traffic',
40         table       => 'raw',
41         chain       => 'PREROUTING',
42         rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
43       }
44
45       ferm::rule { 'dsa-bind-notrack-out6':
46         domain      => 'ip6',
47         description => 'NOTRACK for nameserver traffic',
48         table       => 'raw',
49         chain       => 'OUTPUT',
50         rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
51       }
52     }
53     default: {}
54   }
55
56   # vpn fu
57   case $::hostname {
58     draghi: {
59       ferm::rule { 'dsa-vpn':
60         description => 'Allow openvpn access',
61         rule        => '&SERVICE(udp, 17257)'
62       }
63       ferm::rule { 'dsa-routing':
64         description => 'forward chain',
65         chain       => 'FORWARD',
66         rule        => 'policy ACCEPT;
67 mod state state (ESTABLISHED RELATED) ACCEPT;
68 interface tun+ ACCEPT;
69 REJECT reject-with icmp-admin-prohibited
70 '
71       }
72       ferm::rule { 'dsa-vpn-mark':
73         table => 'mangle',
74         chain => 'PREROUTING',
75         rule  => 'interface tun+ MARK set-mark 1',
76       }
77       ferm::rule { 'dsa-vpn-nat':
78         table => 'nat',
79         chain => 'POSTROUTING',
80         rule  => 'outerface !tun+ mod mark mark 1 MASQUERADE',
81       }
82     }
83     ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10: {
84       ferm::rule { 'dsa-ssh-priv':
85         description => 'Allow ssh access',
86         rule        => '&SERVICE_RANGE(tcp, 22, ( 172.29.40.0/22 172.29.203.0/24 ))',
87       }
88     }
89     ubc-node-arm01,ubc-node-arm02,ubc-node-arm03: {
90       ferm::rule { 'dsa-ssh-priv':
91         description => 'Allow ssh access',
92         rule        => '&SERVICE_RANGE(tcp, 22, ( 172.29.43.240 ))',
93       }
94     }
95     default: {}
96   }
97   # tftp
98   case $::hostname {
99     abel: {
100       ferm::rule { 'dsa-tftp':
101         description => 'Allow tftp access',
102         rule        => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
103       }
104     }
105     master: {
106       ferm::rule { 'dsa-tftp':
107         description => 'Allow tftp access',
108         rule        => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 192.168.43.0/24 ))'
109       }
110     }
111   }
112 }