]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
nat to varnish on lw07
[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                 bm-bl9: {
16                         @ferm::rule { 'dsa-iscsi':
17                                 description     => 'Allow iscsi access',
18                                 rule            => '&SERVICE_RANGE(tcp, 3260, ( 5.153.231.240/27 172.29.123.0/24 ))'
19                         }
20                 }
21                 oyens: {
22                         @ferm::rule { 'dsa-amqp':
23                                 description     => 'Allow rabbitmq access',
24                                 rule            => '&SERVICE_RANGE(tcp, 5672, ( 5.153.231.240/27 172.29.123.0/24 ))'
25                         }
26                         @ferm::rule { 'dsa-keystone':
27                                 description     => 'Allow keystone access',
28                                 rule            => '&SERVICE_RANGE(tcp, 5000, ( 5.153.231.240/27 172.29.123.0/24 ))'
29                         }
30                         @ferm::rule { 'dsa-keystone-admin':
31                                 description     => 'Allow keystone access',
32                                 rule            => '&SERVICE_RANGE(tcp, 35357, ( 5.153.231.240/27 172.29.123.0/24 ))'
33                         }
34                         @ferm::rule { 'dsa-glance-api':
35                                 description     => 'Allow glance access',
36                                 rule            => '&SERVICE_RANGE(tcp, 9292, ( 5.153.231.240/27 172.29.123.0/24 ))'
37                         }
38                         @ferm::rule { 'dsa-glance-registry':
39                                 description     => 'Allow glance access',
40                                 rule            => '&SERVICE_RANGE(tcp, 9191, ( 5.153.231.240/27 172.29.123.0/24 ))'
41                         }
42                         @ferm::rule { 'dsa-neutron':
43                                 description     => 'Allow glance access',
44                                 rule            => '&SERVICE_RANGE(tcp, 9696, ( 5.153.231.240/27 172.29.123.0/24 ))'
45                         }
46                         @ferm::rule { 'dsa-nova-ec2':
47                                 description     => 'Allow nova access',
48                                 rule            => '&SERVICE_RANGE(tcp, 8773, ( 5.153.231.240/27 172.29.123.0/24 ))'
49                         }
50                         @ferm::rule { 'dsa-nova2':
51                                 description     => 'Allow nova access',
52                                 rule            => '&SERVICE_RANGE(tcp, 8774, ( 5.153.231.240/27 172.29.123.0/24 ))'
53                         }
54                         @ferm::rule { 'dsa-nova-metadata':
55                                 description     => 'Allow nova access',
56                                 rule            => '&SERVICE_RANGE(tcp, 8775, ( 5.153.231.240/27 172.29.123.0/24 ))'
57                         }
58                         @ferm::rule { 'dsa-cinder':
59                                 description     => 'Allow nova access',
60                                 rule            => '&SERVICE_RANGE(tcp, 8776, ( 5.153.231.240/27 172.29.123.0/24 ))'
61                         }
62                 }
63         }
64         case $::hostname {
65                 czerny,clementi: {
66                         @ferm::rule { 'dsa-upsmon':
67                                 description     => 'Allow upsmon access',
68                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
69                         }
70                 }
71                 bendel: {
72                         @ferm::rule { 'listmaster-ontp-in':
73                                 description => 'ONTP has a broken mail setup',
74                                 table       => 'filter',
75                                 chain       => 'INPUT',
76                                 rule        => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
77                         }
78                         @ferm::rule { 'listmaster-ontp-out':
79                                 description => 'ONTP has a broken mail setup',
80                                 table       => 'filter',
81                                 chain       => 'OUTPUT',
82                                 rule        => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
83                         }
84                 }
85                 lotti,lully: {
86                         @ferm::rule { 'dsa-syslog':
87                                 description     => 'Allow syslog access',
88                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
89                         }
90                         @ferm::rule { 'dsa-syslog-v6':
91                                 domain          => 'ip6',
92                                 description     => 'Allow syslog access',
93                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
94                         }
95                 }
96                 kaufmann: {
97                         @ferm::rule { 'dsa-hkp':
98                                 domain          => '(ip ip6)',
99                                 description     => 'Allow hkp access',
100                                 rule            => '&SERVICE(tcp, 11371)'
101                         }
102                 }
103                 gombert: {
104                         @ferm::rule { 'dsa-infinoted':
105                                 domain          => '(ip ip6)',
106                                 description     => 'Allow infinoted access',
107                                 rule            => '&SERVICE(tcp, 6523)'
108                         }
109                 }
110                 draghi: {
111                         @ferm::rule { 'dsa-finger':
112                                 domain          => '(ip ip6)',
113                                 description     => 'Allow finger access',
114                                 rule            => '&SERVICE(tcp, 79)'
115                         }
116                         @ferm::rule { 'dsa-ldap':
117                                 domain          => '(ip ip6)',
118                                 description     => 'Allow ldap access',
119                                 rule            => '&SERVICE(tcp, 389)'
120                         }
121                         @ferm::rule { 'dsa-ldaps':
122                                 domain          => '(ip ip6)',
123                                 description     => 'Allow ldaps access',
124                                 rule            => '&SERVICE(tcp, 636)'
125                         }
126                 }
127                 sonntag: {
128                         @ferm::rule { 'dsa-bugs-search':
129                                 description  => 'port 1978 for bugs-search from bug web frontends',
130                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
131                         }
132                 }
133                 default: {}
134         }
135
136         if $::hostname in [rautavaara] {
137                 @ferm::rule { 'dsa-from-mgmt':
138                         description     => 'Traffic routed from mgmt net vlan/bridge',
139                         chain           => 'INPUT',
140                         rule            => 'interface eth1 ACCEPT'
141                 }
142                 @ferm::rule { 'dsa-mgmt-mark':
143                         table           => 'mangle',
144                         chain           => 'PREROUTING',
145                         rule            => 'interface eth1 MARK set-mark 1',
146                 }
147                 @ferm::rule { 'dsa-mgmt-nat':
148                         table           => 'nat',
149                         chain           => 'POSTROUTING',
150                         rule            => 'outerface eth1 mod mark mark 1 MASQUERADE',
151                 }
152         }
153
154         # redirect snapshot into varnish
155         case $::hostname {
156                 sibelius: {
157                         @ferm::rule { 'dsa-snapshot-varnish':
158                                 rule            => '&SERVICE(tcp, 6081)',
159                         }
160                         @ferm::rule { 'dsa-nat-snapshot-varnish':
161                                 table           => 'nat',
162                                 chain           => 'PREROUTING',
163                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
164                         }
165                 }
166                 stabile: {
167                         @ferm::rule { 'dsa-snapshot-varnish':
168                                 rule            => '&SERVICE(tcp, 6081)',
169                         }
170                         @ferm::rule { 'dsa-nat-snapshot-varnish':
171                                 table           => 'nat',
172                                 chain           => 'PREROUTING',
173                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
174                         }
175                 }
176                 lw05: {
177                         @ferm::rule { 'dsa-snapshot-varnish':
178                                 rule            => '&SERVICE(tcp, 6081)',
179                         }
180                         @ferm::rule { 'dsa-nat-snapshot-varnish':
181                                 table           => 'nat',
182                                 chain           => 'PREROUTING',
183                                 rule            => 'proto tcp daddr 185.17.185.181 dport 80 REDIRECT to-ports 6081',
184                         }
185                 }
186                 lw06: {
187                         @ferm::rule { 'dsa-snapshot-varnish':
188                                 rule            => '&SERVICE(tcp, 6081)',
189                         }
190                         @ferm::rule { 'dsa-nat-snapshot-varnish':
191                                 table           => 'nat',
192                                 chain           => 'PREROUTING',
193                                 rule            => 'proto tcp daddr 185.17.185.182 dport 80 REDIRECT to-ports 6081',
194                         }
195                 }
196                 lw07: {
197                         @ferm::rule { 'dsa-snapshot-varnish':
198                                 rule            => '&SERVICE(tcp, 6081)',
199                         }
200                         @ferm::rule { 'dsa-nat-snapshot-varnish':
201                                 table           => 'nat',
202                                 chain           => 'PREROUTING',
203                                 rule            => 'proto tcp daddr 185.17.185.185 dport 80 REDIRECT to-ports 6081',
204                         }
205                 }
206                 default: {}
207         }
208         case $::hostname {
209                 bm-bl1,bm-bl2: {
210                         @ferm::rule { 'dsa-vrrp':
211                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
212                         }
213                         @ferm::rule { 'dsa-conntrackd':
214                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
215                         }
216                         @ferm::rule { 'dsa-bind-notrack-in':
217                                 domain      => 'ip',
218                                 description => 'NOTRACK for nameserver traffic',
219                                 table       => 'raw',
220                                 chain       => 'PREROUTING',
221                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
222                         }
223
224                         @ferm::rule { 'dsa-bind-notrack-out':
225                                 domain      => 'ip',
226                                 description => 'NOTRACK for nameserver traffic',
227                                 table       => 'raw',
228                                 chain       => 'OUTPUT',
229                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
230                         }
231
232                         @ferm::rule { 'dsa-bind-notrack-in6':
233                                 domain      => 'ip6',
234                                 description => 'NOTRACK for nameserver traffic',
235                                 table       => 'raw',
236                                 chain       => 'PREROUTING',
237                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
238                         }
239
240                         @ferm::rule { 'dsa-bind-notrack-out6':
241                                 domain      => 'ip6',
242                                 description => 'NOTRACK for nameserver traffic',
243                                 table       => 'raw',
244                                 chain       => 'OUTPUT',
245                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
246                         }
247                 }
248                 default: {}
249         }
250
251         # solr stuff
252         case $::hostname {
253                 stockhausen: {
254                         @ferm::rule { 'dsa-solr-jetty':
255                                 description     => 'Allow jetty access',
256                                 rule            => '&SERVICE_RANGE(tcp, 8080, ( 82.195.75.100/32 ))'
257                         }
258                 }
259         }
260
261         # postgres stuff
262         case $::hostname {
263                 ullmann: {
264                         @ferm::rule { 'dsa-postgres-udd':
265                                 description     => 'Allow postgress access',
266                                 # quantz, moszumanska, master, couper, coccia, franck
267                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 5.153.231.28/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 ))'
268                         }
269                         @ferm::rule { 'dsa-postgres-udd6':
270                                 domain          => '(ip6)',
271                                 description     => 'Allow postgress access',
272                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 2001:41c8:1000:21::21:28/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 ))'
273                         }
274                 }
275                 franck: {
276                         @ferm::rule { 'dsa-postgres-franck':
277                                 description     => 'Allow postgress access',
278                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
279                         }
280                         @ferm::rule { 'dsa-postgres-franck6':
281                                 domain          => 'ip6',
282                                 description     => 'Allow postgress access',
283                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
284                         }
285
286                         @ferm::rule { 'dsa-postgres-backup':
287                                 description     => 'Allow postgress access',
288                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
289                         }
290                         @ferm::rule { 'dsa-postgres-backup6':
291                                 domain          => 'ip6',
292                                 description     => 'Allow postgress access',
293                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
294                         }
295                 }
296                 bmdb1: {
297                         @ferm::rule { 'dsa-postgres-main':
298                                 description     => 'Allow postgress access',
299                                 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 5.153.231.26/32 5.153.231.18/32 5.153.231.28/32 5.153.231.249/32 5.153.231.29/32))'
300                         }
301                         @ferm::rule { 'dsa-postgres-main6':
302                                 domain          => 'ip6',
303                                 description     => 'Allow postgress access',
304                                 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 2001:41c8:1000:21::21:26/128 2001:41c8:1000:21::21:18/128 2001:41c8:1000:21::21:28/128 2001:41c8:1000:20::20:249/128 2001:41c8:1000:21::21:29/128))'
305                         }
306                         @ferm::rule { 'dsa-postgres-dak':
307                                 description     => 'Allow postgress access',
308                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 5.153.231.28/32 206.12.19.123/32 206.12.19.134/32 5.153.231.21/32 5.153.231.18/32 ))'
309                         }
310                         @ferm::rule { 'dsa-postgres-dak6':
311                                 domain          => 'ip6',
312                                 description     => 'Allow postgress access',
313                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2001:41c8:1000:21::21:28/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 2001:41c8:1000:21::21:18/128 ))'
314                         }
315                         @ferm::rule { 'dsa-postgres-wanna-build':
316                                 # wuiet, ullmann, franck
317                                 description     => 'Allow postgress access',
318                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 206.12.19.141/32 138.16.160.12/32 ))'
319                         }
320                         @ferm::rule { 'dsa-postgres-wanna-build6':
321                                 domain          => 'ip6',
322                                 description     => 'Allow postgress access',
323                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
324                         }
325                         @ferm::rule { 'dsa-postgres-wanna-build-ports':
326                                 # portman
327                                 description     => 'Allow postgress access',
328                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.29/32 ))'
329                         }
330                         @ferm::rule { 'dsa-postgres-wanna-build-ports6':
331                                 domain          => 'ip6',
332                                 description     => 'Allow postgress access',
333                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:29/128 ))'
334                         }
335                         @ferm::rule { 'dsa-postgres-bacula':
336                                 # dinis
337                                 description     => 'Allow postgress access1',
338                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 ))'
339                         }
340                         @ferm::rule { 'dsa-postgres-bacula6':
341                                 domain          => 'ip6',
342                                 description     => 'Allow postgress access1',
343                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 ))'
344                         }
345
346                         @ferm::rule { 'dsa-postgres-backup':
347                                 # ubc, wuit
348                                 description     => 'Allow postgress access',
349                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( 5.153.231.12/32 ))'
350                         }
351                         @ferm::rule { 'dsa-postgres-backup6':
352                                 domain          => 'ip6',
353                                 description     => 'Allow postgress access',
354                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( 2001:41c8:1000:21::21:12/128 ))'
355                         }
356
357                         @ferm::rule { 'dsa-postgres-dedup':
358                                 # ubc, wuit
359                                 description     => 'Allow postgress access',
360                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 5.153.231.17/32 ))'
361                         }
362                         @ferm::rule { 'dsa-postgres-dedup6':
363                                 domain          => 'ip6',
364                                 description     => 'Allow postgress access',
365                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 2001:41c8:1000:21::21:17/128 ))'
366                         }
367                 }
368                 danzi: {
369                         @ferm::rule { 'dsa-postgres-danzi':
370                                 # ubc, wuit
371                                 description     => 'Allow postgress access',
372                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 5.153.231.18/32 ))'
373                         }
374                         @ferm::rule { 'dsa-postgres-danzi6':
375                                 domain          => 'ip6',
376                                 description     => 'Allow postgress access',
377                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2001:41c8:1000:21::21:18/128 ))'
378                         }
379
380                         @ferm::rule { 'dsa-postgres2-danzi':
381                                 description     => 'Allow postgress access2',
382                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
383                         }
384                         @ferm::rule { 'dsa-postgres3-danzi':
385                                 description     => 'Allow postgress access3',
386                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
387                         }
388                         @ferm::rule { 'dsa-postgres4-danzi':
389                                 description     => 'Allow postgress access4',
390                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
391                         }
392
393                         @ferm::rule { 'dsa-postgres-backup':
394                                 description     => 'Allow postgress access',
395                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
396                         }
397                         @ferm::rule { 'dsa-postgres-backup6':
398                                 domain          => 'ip6',
399                                 description     => 'Allow postgress access',
400                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
401                         }
402                 }
403                 chopin: {
404                         @ferm::rule { 'dsa-postgres-backup':
405                                 description     => 'Allow postgress access',
406                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 5.153.231.12/32 ))'
407                         }
408                         @ferm::rule { 'dsa-postgres-backup6':
409                                 domain          => 'ip6',
410                                 description     => 'Allow postgress access',
411                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 2001:41c8:1000:21::21:12/128 ))'
412                         }
413                 }
414                 sibelius: {
415                         @ferm::rule { 'dsa-postgres-backup':
416                                 description     => 'Allow postgress access',
417                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
418                         }
419                         @ferm::rule { 'dsa-postgres-backup6':
420                                 domain          => 'ip6',
421                                 description     => 'Allow postgress access',
422                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
423                         }
424                         @ferm::rule { 'dsa-postgres-replication':
425                                 description     => 'Allow postgress access',
426                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 185.17.185.180/32 185.17.185.187/32 ))'
427                         }
428                 }
429                 lw04: {
430                         @ferm::rule { 'dsa-postgres-snapshot':
431                                 description     => 'Allow postgress access',
432                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 185.17.185.181/32 185.17.185.182/32 ))'
433                         }
434                 }
435                 lw07: {
436                         @ferm::rule { 'dsa-postgres-snapshot':
437                                 description     => 'Allow postgress access',
438                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 185.17.185.176/28 ))'
439                         }
440                 }
441                 default: {}
442         }
443         # vpn fu
444         case $::hostname {
445                 draghi,eysler: {
446                         @ferm::rule { 'dsa-vpn':
447                                 description     => 'Allow openvpn access',
448                                 rule            => '&SERVICE(udp, 17257)'
449                         }
450                         @ferm::rule { 'dsa-routing':
451                                 description     => 'forward chain',
452                                 chain           => 'FORWARD',
453                                 rule            => 'policy ACCEPT;
454 mod state state (ESTABLISHED RELATED) ACCEPT;
455 interface tun+ ACCEPT;
456 REJECT reject-with icmp-admin-prohibited
457 '
458                         }
459                         @ferm::rule { 'dsa-vpn-mark':
460                                 table           => 'mangle',
461                                 chain           => 'PREROUTING',
462                                 rule            => 'interface tun+ MARK set-mark 1',
463                         }
464                         @ferm::rule { 'dsa-vpn-nat':
465                                 table           => 'nat',
466                                 chain           => 'POSTROUTING',
467                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
468                         }
469                 }
470                 default: {}
471         }
472         # tftp
473         case $::hostname {
474                 abel: {
475                         @ferm::rule { 'dsa-tftp':
476                                 description     => 'Allow tftp access',
477                                 rule            => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
478                         }
479                 }
480                 jenkins: {
481                         @ferm::rule { 'dsa-tftp':
482                                 description     => 'Allow tftp access',
483                                 rule            => '&SERVICE_RANGE(udp, 69, ( 192.168.2.0/24 206.12.19.0/24 ))'
484                         }
485                 }
486                 master: {
487                         @ferm::rule { 'dsa-tftp':
488                                 description     => 'Allow tftp access',
489                                 rule            => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 ))'
490                         }
491                 }
492         }
493 }