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