Move kaufmann keyserver fw into keyring role
[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     gombert: {
14       ferm::rule { 'dsa-infinoted':
15         domain      => '(ip ip6)',
16         description => 'Allow infinoted access',
17         rule        => '&SERVICE(tcp, 6523)'
18       }
19     }
20     draghi: {
21       ferm::rule { 'dsa-finger':
22         domain      => '(ip ip6)',
23         description => 'Allow finger access',
24         rule        => '&SERVICE(tcp, 79)'
25       }
26       ferm::rule { 'dsa-ldap':
27         domain      => '(ip ip6)',
28         description => 'Allow ldap access',
29         rule        => '&SERVICE(tcp, 389)'
30       }
31       ferm::rule { 'dsa-ldaps':
32         domain      => '(ip ip6)',
33         description => 'Allow ldaps access',
34         rule        => '&SERVICE(tcp, 636)'
35       }
36     }
37     default: {}
38   }
39
40   case $::hostname {
41     bm-bl1,bm-bl2: {
42       ferm::rule { 'dsa-vrrp':
43         rule => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
44       }
45       ferm::rule { 'dsa-bind-notrack-in':
46         domain      => 'ip',
47         description => 'NOTRACK for nameserver traffic',
48         table       => 'raw',
49         chain       => 'PREROUTING',
50         rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
51       }
52
53       ferm::rule { 'dsa-bind-notrack-out':
54         domain      => 'ip',
55         description => 'NOTRACK for nameserver traffic',
56         table       => 'raw',
57         chain       => 'OUTPUT',
58         rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
59       }
60
61       ferm::rule { 'dsa-bind-notrack-in6':
62         domain      => 'ip6',
63         description => 'NOTRACK for nameserver traffic',
64         table       => 'raw',
65         chain       => 'PREROUTING',
66         rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
67       }
68
69       ferm::rule { 'dsa-bind-notrack-out6':
70         domain      => 'ip6',
71         description => 'NOTRACK for nameserver traffic',
72         table       => 'raw',
73         chain       => 'OUTPUT',
74         rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
75       }
76     }
77     default: {}
78   }
79
80   # postgres stuff
81   case $::hostname {
82     bmdb1: {
83       ferm::rule { 'dsa-postgres-main':
84         description => 'Allow postgress access to cluster: main',
85         domain      => '(ip ip6)',
86         rule        => @("EOF"/$)
87           &SERVICE_RANGE(tcp, 5435, (
88             ${ join(getfromhash($deprecated::allnodeinfo, 'petrova.debian.org', 'ipHostNumber'), " ") }
89             ${ join(getfromhash($deprecated::allnodeinfo, 'ullmann.debian.org', 'ipHostNumber'), " ") }
90             ${ join(getfromhash($deprecated::allnodeinfo, 'wuiet.debian.org', 'ipHostNumber'), " ") }
91             ${ join(getfromhash($deprecated::allnodeinfo, 'quantz.debian.org', 'ipHostNumber'), " ") }
92             ${ join(getfromhash($deprecated::allnodeinfo, 'respighi.debian.org', 'ipHostNumber'), " ") }
93             ${ join(getfromhash($deprecated::allnodeinfo, 'tate.debian.org', 'ipHostNumber'), " ") }
94           ))
95           | EOF
96       }
97       ferm::rule { 'dsa-postgres-dak':
98         description => 'Allow postgress access to cluster: dak',
99         domain      => '(ip ip6)',
100         rule        => @("EOF"/$)
101           &SERVICE_RANGE(tcp, 5434, (
102             ${ join(getfromhash($deprecated::allnodeinfo, 'coccia.debian.org', 'ipHostNumber'), " ") }
103             ${ join(getfromhash($deprecated::allnodeinfo, 'quantz.debian.org', 'ipHostNumber'), " ") }
104             ${ join(getfromhash($deprecated::allnodeinfo, 'nono.debian.org', 'ipHostNumber'), " ") }
105             ${ join(getfromhash($deprecated::allnodeinfo, 'wuiet.debian.org', 'ipHostNumber'), " ") }
106             ${ join(getfromhash($deprecated::allnodeinfo, 'respighi.debian.org', 'ipHostNumber'), " ") }
107             ${ join(getfromhash($deprecated::allnodeinfo, 'usper.debian.org', 'ipHostNumber'), " ") }
108             ${ join(getfromhash($deprecated::allnodeinfo, 'ullmann.debian.org', 'ipHostNumber'), " ") }
109           ))
110           | EOF
111       }
112     }
113     default: {}
114   }
115   # vpn fu
116   case $::hostname {
117     draghi: {
118       ferm::rule { 'dsa-vpn':
119         description => 'Allow openvpn access',
120         rule        => '&SERVICE(udp, 17257)'
121       }
122       ferm::rule { 'dsa-routing':
123         description => 'forward chain',
124         chain       => 'FORWARD',
125         rule        => 'policy ACCEPT;
126 mod state state (ESTABLISHED RELATED) ACCEPT;
127 interface tun+ ACCEPT;
128 REJECT reject-with icmp-admin-prohibited
129 '
130       }
131       ferm::rule { 'dsa-vpn-mark':
132         table => 'mangle',
133         chain => 'PREROUTING',
134         rule  => 'interface tun+ MARK set-mark 1',
135       }
136       ferm::rule { 'dsa-vpn-nat':
137         table => 'nat',
138         chain => 'POSTROUTING',
139         rule  => 'outerface !tun+ mod mark mark 1 MASQUERADE',
140       }
141     }
142     ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10: {
143       ferm::rule { 'dsa-ssh-priv':
144         description => 'Allow ssh access',
145         rule        => '&SERVICE_RANGE(tcp, 22, ( 172.29.40.0/22 172.29.203.0/24 ))',
146       }
147     }
148     ubc-node-arm01,ubc-node-arm02,ubc-node-arm03: {
149       ferm::rule { 'dsa-ssh-priv':
150         description => 'Allow ssh access',
151         rule        => '&SERVICE_RANGE(tcp, 22, ( 172.29.43.240 ))',
152       }
153     }
154     default: {}
155   }
156   # tftp
157   case $::hostname {
158     abel: {
159       ferm::rule { 'dsa-tftp':
160         description => 'Allow tftp access',
161         rule        => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
162       }
163     }
164     master: {
165       ferm::rule { 'dsa-tftp':
166         description => 'Allow tftp access',
167         rule        => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 192.168.43.0/24 ))'
168       }
169     }
170   }
171 }