]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
retire paganini (RT#4407)
[dsa-puppet.git] / modules / ferm / manifests / per-host.pp
1 class ferm::per-host {
2         if $::hostname in [ancina,zandonai,zelenka] {
3                 include ferm::zivit
4         }
5
6         if $::hostname in [glinka,klecker,ravel,rietz,senfl,sibelius,stabile] {
7                 ferm::rule { 'dsa-rsync':
8                         domain      => '(ip ip6)',
9                         description => 'Allow rsync access',
10                         rule        => '&SERVICE(tcp, 873)'
11                 }
12         }
13
14         case $::hostname {
15                 czerny,clementi: {
16                         @ferm::rule { 'dsa-upsmon':
17                                 description     => 'Allow upsmon access',
18                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
19                         }
20                 }
21                 bendel: {
22                         @ferm::rule { 'listmaster-ontp-in':
23                                 description => 'ONTP has a broken mail setup',
24                                 table       => 'filter',
25                                 chain       => 'INPUT',
26                                 rule        => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
27                         }
28                         @ferm::rule { 'listmaster-ontp-out':
29                                 description => 'ONTP has a broken mail setup',
30                                 table       => 'filter',
31                                 chain       => 'OUTPUT',
32                                 rule        => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
33                         }
34                 }
35                 abel,alwyn,rietz,jenkins: {
36                         @ferm::rule { 'dsa-tftp':
37                                 description     => 'Allow tftp access',
38                                 rule            => '&SERVICE(udp, 69)'
39                         }
40                 }
41                 lotti,lully: {
42                         @ferm::rule { 'dsa-syslog':
43                                 description     => 'Allow syslog access',
44                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
45                         }
46                         @ferm::rule { 'dsa-syslog-v6':
47                                 domain          => 'ip6',
48                                 description     => 'Allow syslog access',
49                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
50                         }
51                 }
52                 kaufmann: {
53                         @ferm::rule { 'dsa-hkp':
54                                 domain          => '(ip ip6)',
55                                 description     => 'Allow hkp access',
56                                 rule            => '&SERVICE(tcp, 11371)'
57                         }
58                 }
59                 gombert: {
60                         @ferm::rule { 'dsa-infinoted':
61                                 domain          => '(ip ip6)',
62                                 description     => 'Allow infinoted access',
63                                 rule            => '&SERVICE(tcp, 6523)'
64                         }
65                 }
66                 draghi: {
67                         @ferm::rule { 'dsa-finger':
68                                 domain          => '(ip ip6)',
69                                 description     => 'Allow finger access',
70                                 rule            => '&SERVICE(tcp, 79)'
71                         }
72                         @ferm::rule { 'dsa-ldap':
73                                 domain          => '(ip ip6)',
74                                 description     => 'Allow ldap access',
75                                 rule            => '&SERVICE(tcp, 389)'
76                         }
77                         @ferm::rule { 'dsa-ldaps':
78                                 domain          => '(ip ip6)',
79                                 description     => 'Allow ldaps access',
80                                 rule            => '&SERVICE(tcp, 636)'
81                         }
82                 }
83                 cilea: {
84                         ferm::module { 'nf_conntrack_sip': }
85                         ferm::module { 'nf_conntrack_h323': }
86
87                         @ferm::rule { 'dsa-sip':
88                                 domain          => '(ip ip6)',
89                                 description     => 'Allow sip access',
90                                 rule            => '&TCP_UDP_SERVICE(5060)'
91                         }
92                         @ferm::rule { 'dsa-sipx':
93                                 domain          => '(ip ip6)',
94                                 description     => 'Allow sipx access',
95                                 rule            => '&TCP_UDP_SERVICE(5080)'
96                         }
97                 }
98                 sonntag: {
99                         @ferm::rule { 'dsa-bugs-search':
100                                 description  => 'port 1978 for bugs-search from bug web frontends',
101                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
102                         }
103                 }
104                 default: {}
105         }
106
107         if $::hostname in [rautavaara] {
108                 @ferm::rule { 'dsa-from-mgmt':
109                         description     => 'Traffic routed from mgmt net vlan/bridge',
110                         chain           => 'INPUT',
111                         rule            => 'interface eth1 ACCEPT'
112                 }
113                 @ferm::rule { 'dsa-mgmt-mark':
114                         table           => 'mangle',
115                         chain           => 'PREROUTING',
116                         rule            => 'interface eth1 MARK set-mark 1',
117                 }
118                 @ferm::rule { 'dsa-mgmt-nat':
119                         table           => 'nat',
120                         chain           => 'POSTROUTING',
121                         rule            => 'outerface eth1 mod mark mark 1 MASQUERADE',
122                 }
123         }
124
125         # redirect snapshot into varnish
126         case $::hostname {
127                 sibelius: {
128                         @ferm::rule { 'dsa-snapshot-varnish':
129                                 rule            => '&SERVICE(tcp, 6081)',
130                         }
131                         @ferm::rule { 'dsa-nat-snapshot-varnish':
132                                 table           => 'nat',
133                                 chain           => 'PREROUTING',
134                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
135                         }
136                 }
137                 stabile: {
138                         @ferm::rule { 'dsa-snapshot-varnish':
139                                 rule            => '&SERVICE(tcp, 6081)',
140                         }
141                         @ferm::rule { 'dsa-nat-snapshot-varnish':
142                                 table           => 'nat',
143                                 chain           => 'PREROUTING',
144                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
145                         }
146                 }
147                 default: {}
148         }
149         case $::hostname {
150                 bm-bl1,bm-bl2: {
151                         @ferm::rule { 'dsa-vrrp':
152                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
153                         }
154                         @ferm::rule { 'dsa-conntrackd':
155                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
156                         }
157                         @ferm::rule { 'dsa-bind-notrack-in':
158                                 domain      => 'ip',
159                                 description => 'NOTRACK for nameserver traffic',
160                                 table       => 'raw',
161                                 chain       => 'PREROUTING',
162                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
163                         }
164
165                         @ferm::rule { 'dsa-bind-notrack-out':
166                                 domain      => 'ip',
167                                 description => 'NOTRACK for nameserver traffic',
168                                 table       => 'raw',
169                                 chain       => 'OUTPUT',
170                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
171                         }
172
173                         @ferm::rule { 'dsa-bind-notrack-in6':
174                                 domain      => 'ip6',
175                                 description => 'NOTRACK for nameserver traffic',
176                                 table       => 'raw',
177                                 chain       => 'PREROUTING',
178                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
179                         }
180
181                         @ferm::rule { 'dsa-bind-notrack-out6':
182                                 domain      => 'ip6',
183                                 description => 'NOTRACK for nameserver traffic',
184                                 table       => 'raw',
185                                 chain       => 'OUTPUT',
186                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
187                         }
188                 }
189                 default: {}
190         }
191
192         # solr stuff
193         case $::hostname {
194                 stockhausen: {
195                         @ferm::rule { 'dsa-solr-jetty':
196                                 description     => 'Allow jetty access',
197                                 rule            => '&SERVICE_RANGE(tcp, 8080, ( 82.195.75.100/32 ))'
198                         }
199                 }
200         }
201
202         # postgres stuff
203         case $::hostname {
204                 ullmann: {
205                         @ferm::rule { 'dsa-postgres-udd':
206                                 description     => 'Allow postgress access',
207                                 # quantz, moszumanska, master, couper, coccia, franck
208                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 206.12.19.122/32 5.153.231.21/32 82.195.75.110/32 5.153.231.14/32 5.153.231.11/32 138.16.160.12/32 ))'
209                         }
210                         @ferm::rule { 'dsa-postgres-udd6':
211                                 domain          => '(ip6)',
212                                 description     => 'Allow postgress access',
213                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 2607:f8f0:610:4000:216:36ff:fe40:3860/128 2001:41b8:202:deb:216:36ff:fe40:4001/128 2001:41c8:1000:21::21:14/128 2001:41c8:1000:21::21:11/32 2001:41c8:1000:21::21:21/128 ))'
214                         }
215                 }
216                 franck: {
217                         @ferm::rule { 'dsa-postgres-franck':
218                                 description     => 'Allow postgress access',
219                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
220                         }
221                         @ferm::rule { 'dsa-postgres-franck6':
222                                 domain          => 'ip6',
223                                 description     => 'Allow postgress access',
224                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
225                         }
226
227                         @ferm::rule { 'dsa-postgres-backup':
228                                 description     => 'Allow postgress access',
229                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
230                         }
231                         @ferm::rule { 'dsa-postgres-backup6':
232                                 domain          => 'ip6',
233                                 description     => 'Allow postgress access',
234                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
235                         }
236                 }
237                 bmdb1: {
238                         @ferm::rule { 'dsa-postgres-main':
239                                 description     => 'Allow postgress access',
240                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 5.153.231.14/32 5.153.231.23/32 5.153.231.25/32 206.12.19.141/32 ))'
241                         }
242                         @ferm::rule { 'dsa-postgres-main6':
243                                 domain          => 'ip6',
244                                 description     => 'Allow postgress access',
245                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 2001:41c8:1000:21::21:14/128 2001:41c8:1000:21::21:23/128 2001:41c8:1000:21::21:25/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
246                         }
247                         @ferm::rule { 'dsa-postgres-dak':
248                                 description     => 'Allow postgress access',
249                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 206.12.19.122/32 206.12.19.123/32 206.12.19.134/32 5.153.231.21/32 ))'
250                         }
251                         @ferm::rule { 'dsa-postgres-dak6':
252                                 domain          => 'ip6',
253                                 description     => 'Allow postgress access',
254                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2607:f8f0:610:4000:216:36ff:fe40:3860/128 2607:f8f0:610:4000:216:36ff:fe40:3861/128 2607:f8f0:610:4000:6564:a62:ce0c:1386/128 2001:41c8:1000:21::21:21/128 ))'
255                         }
256                         @ferm::rule { 'dsa-postgres-wanna-build':
257                                 # wuiet, ullmann, franck
258                                 description     => 'Allow postgress access',
259                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 206.12.19.141/32 138.16.160.12/32 ))'
260                         }
261                         @ferm::rule { 'dsa-postgres-wanna-build6':
262                                 domain          => 'ip6',
263                                 description     => 'Allow postgress access',
264                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
265                         }
266                         @ferm::rule { 'dsa-postgres-bacula':
267                                 # dinis
268                                 description     => 'Allow postgress access1',
269                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 ))'
270                         }
271                         @ferm::rule { 'dsa-postgres-bacula6':
272                                 domain          => 'ip6',
273                                 description     => 'Allow postgress access1',
274                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 ))'
275                         }
276
277                         @ferm::rule { 'dsa-postgres-backup':
278                                 # ubc, wuit
279                                 description     => 'Allow postgress access',
280                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( 5.153.231.12/32 ))'
281                         }
282                         @ferm::rule { 'dsa-postgres-backup6':
283                                 domain          => 'ip6',
284                                 description     => 'Allow postgress access',
285                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( 2001:41c8:1000:21::21:12/128 ))'
286                         }
287                 }
288                 danzi: {
289                         @ferm::rule { 'dsa-postgres-danzi':
290                                 # ubc, wuit
291                                 description     => 'Allow postgress access',
292                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 5.153.231.18/32 ))'
293                         }
294                         @ferm::rule { 'dsa-postgres-danzi6':
295                                 domain          => 'ip6',
296                                 description     => 'Allow postgress access',
297                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2001:41c8:1000:21::21:18/128 ))'
298                         }
299
300                         @ferm::rule { 'dsa-postgres2-danzi':
301                                 description     => 'Allow postgress access2',
302                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
303                         }
304                         @ferm::rule { 'dsa-postgres3-danzi':
305                                 description     => 'Allow postgress access3',
306                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
307                         }
308                         @ferm::rule { 'dsa-postgres4-danzi':
309                                 description     => 'Allow postgress access4',
310                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
311                         }
312
313                         @ferm::rule { 'dsa-postgres-backup':
314                                 description     => 'Allow postgress access',
315                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
316                         }
317                         @ferm::rule { 'dsa-postgres-backup6':
318                                 domain          => 'ip6',
319                                 description     => 'Allow postgress access',
320                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
321                         }
322                 }
323                 chopin: {
324                         @ferm::rule { 'dsa-postgres-backup':
325                                 description     => 'Allow postgress access',
326                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 5.153.231.12/32 ))'
327                         }
328                         @ferm::rule { 'dsa-postgres-backup6':
329                                 domain          => 'ip6',
330                                 description     => 'Allow postgress access',
331                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 2001:41c8:1000:21::21:12/128 ))'
332                         }
333                 }
334                 sibelius: {
335                         @ferm::rule { 'dsa-postgres-backup':
336                                 description     => 'Allow postgress access',
337                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
338                         }
339                         @ferm::rule { 'dsa-postgres-backup6':
340                                 domain          => 'ip6',
341                                 description     => 'Allow postgress access',
342                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
343                         }
344                 }
345                 default: {}
346         }
347         # vpn fu
348         case $::hostname {
349                 draghi,eysler: {
350                         @ferm::rule { 'dsa-vpn':
351                                 description     => 'Allow openvpn access',
352                                 rule            => '&SERVICE(udp, 17257)'
353                         }
354                         @ferm::rule { 'dsa-routing':
355                                 description     => 'forward chain',
356                                 chain           => 'FORWARD',
357                                 rule            => 'policy ACCEPT;
358 mod state state (ESTABLISHED RELATED) ACCEPT;
359 interface tun+ ACCEPT;
360 REJECT reject-with icmp-admin-prohibited
361 '
362                         }
363                         @ferm::rule { 'dsa-vpn-mark':
364                                 table           => 'mangle',
365                                 chain           => 'PREROUTING',
366                                 rule            => 'interface tun+ MARK set-mark 1',
367                         }
368                         @ferm::rule { 'dsa-vpn-nat':
369                                 table           => 'nat',
370                                 chain           => 'POSTROUTING',
371                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
372                         }
373                 }
374                 default: {}
375         }
376 }