]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
add additional IP
[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                 oyens: {
16                         @ferm::rule { 'dsa-amqp':
17                                 description     => 'Allow rabbitmq access',
18                                 rule            => '&SERVICE_RANGE(tcp, 5672, ( 5.153.231.240/27 172.29.123.0/24 ))'
19                         }
20                         @ferm::rule { 'dsa-keystone':
21                                 description     => 'Allow keystone access',
22                                 rule            => '&SERVICE_RANGE(tcp, 5000, ( 5.153.231.240/27 172.29.123.0/24 ))'
23                         }
24                         @ferm::rule { 'dsa-keystone2':
25                                 description     => 'Allow keystone access',
26                                 rule            => '&SERVICE_RANGE(tcp, 35357, ( 5.153.231.240/27 172.29.123.0/24 ))'
27                         }
28                         @ferm::rule { 'dsa-glance1':
29                                 description     => 'Allow glance access',
30                                 rule            => '&SERVICE_RANGE(tcp, 9191, ( 5.153.231.240/27 172.29.123.0/24 ))'
31                         }
32                         @ferm::rule { 'dsa-glance2':
33                                 description     => 'Allow glance access',
34                                 rule            => '&SERVICE_RANGE(tcp, 9191, ( 5.153.231.240/27 172.29.123.0/24 ))'
35                         }
36                         @ferm::rule { 'dsa-neutron':
37                                 description     => 'Allow glance access',
38                                 rule            => '&SERVICE_RANGE(tcp, 9696, ( 5.153.231.240/27 172.29.123.0/24 ))'
39                         }
40                         @ferm::rule { 'dsa-nova1':
41                                 description     => 'Allow nova access',
42                                 rule            => '&SERVICE_RANGE(tcp, 8773, ( 5.153.231.240/27 172.29.123.0/24 ))'
43                         }
44                         @ferm::rule { 'dsa-nova2':
45                                 description     => 'Allow nova access',
46                                 rule            => '&SERVICE_RANGE(tcp, 8774, ( 5.153.231.240/27 172.29.123.0/24 ))'
47                         }
48                         @ferm::rule { 'dsa-nova3':
49                                 description     => 'Allow nova access',
50                                 rule            => '&SERVICE_RANGE(tcp, 8775, ( 5.153.231.240/27 172.29.123.0/24 ))'
51                         }
52                         @ferm::rule { 'dsa-cinder':
53                                 description     => 'Allow nova access',
54                                 rule            => '&SERVICE_RANGE(tcp, 8776, ( 5.153.231.240/27 172.29.123.0/24 ))'
55                         }
56                 }
57         }
58         case $::hostname {
59                 czerny,clementi: {
60                         @ferm::rule { 'dsa-upsmon':
61                                 description     => 'Allow upsmon access',
62                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
63                         }
64                 }
65                 bendel: {
66                         @ferm::rule { 'listmaster-ontp-in':
67                                 description => 'ONTP has a broken mail setup',
68                                 table       => 'filter',
69                                 chain       => 'INPUT',
70                                 rule        => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
71                         }
72                         @ferm::rule { 'listmaster-ontp-out':
73                                 description => 'ONTP has a broken mail setup',
74                                 table       => 'filter',
75                                 chain       => 'OUTPUT',
76                                 rule        => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
77                         }
78                 }
79                 abel,alwyn,rietz,jenkins: {
80                         @ferm::rule { 'dsa-tftp':
81                                 description     => 'Allow tftp access',
82                                 rule            => '&SERVICE(udp, 69)'
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                 cilea: {
128                         ferm::module { 'nf_conntrack_sip': }
129                         ferm::module { 'nf_conntrack_h323': }
130
131                         @ferm::rule { 'dsa-sip':
132                                 domain          => '(ip ip6)',
133                                 description     => 'Allow sip access',
134                                 rule            => '&TCP_UDP_SERVICE(5060)'
135                         }
136                         @ferm::rule { 'dsa-sipx':
137                                 domain          => '(ip ip6)',
138                                 description     => 'Allow sipx access',
139                                 rule            => '&TCP_UDP_SERVICE(5080)'
140                         }
141                 }
142                 sonntag: {
143                         @ferm::rule { 'dsa-bugs-search':
144                                 description  => 'port 1978 for bugs-search from bug web frontends',
145                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
146                         }
147                 }
148                 default: {}
149         }
150
151         if $::hostname in [rautavaara] {
152                 @ferm::rule { 'dsa-from-mgmt':
153                         description     => 'Traffic routed from mgmt net vlan/bridge',
154                         chain           => 'INPUT',
155                         rule            => 'interface eth1 ACCEPT'
156                 }
157                 @ferm::rule { 'dsa-mgmt-mark':
158                         table           => 'mangle',
159                         chain           => 'PREROUTING',
160                         rule            => 'interface eth1 MARK set-mark 1',
161                 }
162                 @ferm::rule { 'dsa-mgmt-nat':
163                         table           => 'nat',
164                         chain           => 'POSTROUTING',
165                         rule            => 'outerface eth1 mod mark mark 1 MASQUERADE',
166                 }
167         }
168
169         # redirect snapshot into varnish
170         case $::hostname {
171                 sibelius: {
172                         @ferm::rule { 'dsa-snapshot-varnish':
173                                 rule            => '&SERVICE(tcp, 6081)',
174                         }
175                         @ferm::rule { 'dsa-nat-snapshot-varnish':
176                                 table           => 'nat',
177                                 chain           => 'PREROUTING',
178                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
179                         }
180                 }
181                 stabile: {
182                         @ferm::rule { 'dsa-snapshot-varnish':
183                                 rule            => '&SERVICE(tcp, 6081)',
184                         }
185                         @ferm::rule { 'dsa-nat-snapshot-varnish':
186                                 table           => 'nat',
187                                 chain           => 'PREROUTING',
188                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
189                         }
190                 }
191                 default: {}
192         }
193         case $::hostname {
194                 bm-bl1,bm-bl2: {
195                         @ferm::rule { 'dsa-vrrp':
196                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
197                         }
198                         @ferm::rule { 'dsa-conntrackd':
199                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
200                         }
201                         @ferm::rule { 'dsa-bind-notrack-in':
202                                 domain      => 'ip',
203                                 description => 'NOTRACK for nameserver traffic',
204                                 table       => 'raw',
205                                 chain       => 'PREROUTING',
206                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
207                         }
208
209                         @ferm::rule { 'dsa-bind-notrack-out':
210                                 domain      => 'ip',
211                                 description => 'NOTRACK for nameserver traffic',
212                                 table       => 'raw',
213                                 chain       => 'OUTPUT',
214                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
215                         }
216
217                         @ferm::rule { 'dsa-bind-notrack-in6':
218                                 domain      => 'ip6',
219                                 description => 'NOTRACK for nameserver traffic',
220                                 table       => 'raw',
221                                 chain       => 'PREROUTING',
222                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
223                         }
224
225                         @ferm::rule { 'dsa-bind-notrack-out6':
226                                 domain      => 'ip6',
227                                 description => 'NOTRACK for nameserver traffic',
228                                 table       => 'raw',
229                                 chain       => 'OUTPUT',
230                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
231                         }
232                 }
233                 default: {}
234         }
235
236         # solr stuff
237         case $::hostname {
238                 stockhausen: {
239                         @ferm::rule { 'dsa-solr-jetty':
240                                 description     => 'Allow jetty access',
241                                 rule            => '&SERVICE_RANGE(tcp, 8080, ( 82.195.75.100/32 ))'
242                         }
243                 }
244         }
245
246         # postgres stuff
247         case $::hostname {
248                 ullmann: {
249                         @ferm::rule { 'dsa-postgres-udd':
250                                 description     => 'Allow postgress access',
251                                 # quantz, moszumanska, master, couper, coccia, franck
252                                 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 ))'
253                         }
254                         @ferm::rule { 'dsa-postgres-udd6':
255                                 domain          => '(ip6)',
256                                 description     => 'Allow postgress access',
257                                 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 ))'
258                         }
259                 }
260                 franck: {
261                         @ferm::rule { 'dsa-postgres-franck':
262                                 description     => 'Allow postgress access',
263                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
264                         }
265                         @ferm::rule { 'dsa-postgres-franck6':
266                                 domain          => 'ip6',
267                                 description     => 'Allow postgress access',
268                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
269                         }
270
271                         @ferm::rule { 'dsa-postgres-backup':
272                                 description     => 'Allow postgress access',
273                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
274                         }
275                         @ferm::rule { 'dsa-postgres-backup6':
276                                 domain          => 'ip6',
277                                 description     => 'Allow postgress access',
278                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
279                         }
280                 }
281                 bmdb1: {
282                         @ferm::rule { 'dsa-postgres-main':
283                                 description     => 'Allow postgress access',
284                                 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 ))'
285                         }
286                         @ferm::rule { 'dsa-postgres-main6':
287                                 domain          => 'ip6',
288                                 description     => 'Allow postgress access',
289                                 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))'
290                         }
291                         @ferm::rule { 'dsa-postgres-dak':
292                                 description     => 'Allow postgress access',
293                                 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 ))'
294                         }
295                         @ferm::rule { 'dsa-postgres-dak6':
296                                 domain          => 'ip6',
297                                 description     => 'Allow postgress access',
298                                 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 ))'
299                         }
300                         @ferm::rule { 'dsa-postgres-wanna-build':
301                                 # wuiet, ullmann, franck
302                                 description     => 'Allow postgress access',
303                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 206.12.19.141/32 138.16.160.12/32 ))'
304                         }
305                         @ferm::rule { 'dsa-postgres-wanna-build6':
306                                 domain          => 'ip6',
307                                 description     => 'Allow postgress access',
308                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
309                         }
310                         @ferm::rule { 'dsa-postgres-bacula':
311                                 # dinis
312                                 description     => 'Allow postgress access1',
313                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 ))'
314                         }
315                         @ferm::rule { 'dsa-postgres-bacula6':
316                                 domain          => 'ip6',
317                                 description     => 'Allow postgress access1',
318                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 ))'
319                         }
320
321                         @ferm::rule { 'dsa-postgres-backup':
322                                 # ubc, wuit
323                                 description     => 'Allow postgress access',
324                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( 5.153.231.12/32 ))'
325                         }
326                         @ferm::rule { 'dsa-postgres-backup6':
327                                 domain          => 'ip6',
328                                 description     => 'Allow postgress access',
329                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( 2001:41c8:1000:21::21:12/128 ))'
330                         }
331
332                         @ferm::rule { 'dsa-postgres-dedup':
333                                 # ubc, wuit
334                                 description     => 'Allow postgress access',
335                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 5.153.231.17/32 ))'
336                         }
337                         @ferm::rule { 'dsa-postgres-dedup6':
338                                 domain          => 'ip6',
339                                 description     => 'Allow postgress access',
340                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 2001:41c8:1000:21::21:17/128 ))'
341                         }
342                 }
343                 danzi: {
344                         @ferm::rule { 'dsa-postgres-danzi':
345                                 # ubc, wuit
346                                 description     => 'Allow postgress access',
347                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 5.153.231.18/32 ))'
348                         }
349                         @ferm::rule { 'dsa-postgres-danzi6':
350                                 domain          => 'ip6',
351                                 description     => 'Allow postgress access',
352                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2001:41c8:1000:21::21:18/128 ))'
353                         }
354
355                         @ferm::rule { 'dsa-postgres2-danzi':
356                                 description     => 'Allow postgress access2',
357                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
358                         }
359                         @ferm::rule { 'dsa-postgres3-danzi':
360                                 description     => 'Allow postgress access3',
361                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
362                         }
363                         @ferm::rule { 'dsa-postgres4-danzi':
364                                 description     => 'Allow postgress access4',
365                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
366                         }
367
368                         @ferm::rule { 'dsa-postgres-backup':
369                                 description     => 'Allow postgress access',
370                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
371                         }
372                         @ferm::rule { 'dsa-postgres-backup6':
373                                 domain          => 'ip6',
374                                 description     => 'Allow postgress access',
375                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
376                         }
377                 }
378                 chopin: {
379                         @ferm::rule { 'dsa-postgres-backup':
380                                 description     => 'Allow postgress access',
381                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 5.153.231.12/32 ))'
382                         }
383                         @ferm::rule { 'dsa-postgres-backup6':
384                                 domain          => 'ip6',
385                                 description     => 'Allow postgress access',
386                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 2001:41c8:1000:21::21:12/128 ))'
387                         }
388                 }
389                 sibelius: {
390                         @ferm::rule { 'dsa-postgres-backup':
391                                 description     => 'Allow postgress access',
392                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.12/32 ))'
393                         }
394                         @ferm::rule { 'dsa-postgres-backup6':
395                                 domain          => 'ip6',
396                                 description     => 'Allow postgress access',
397                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:12/128 ))'
398                         }
399                 }
400                 default: {}
401         }
402         # vpn fu
403         case $::hostname {
404                 draghi,eysler: {
405                         @ferm::rule { 'dsa-vpn':
406                                 description     => 'Allow openvpn access',
407                                 rule            => '&SERVICE(udp, 17257)'
408                         }
409                         @ferm::rule { 'dsa-routing':
410                                 description     => 'forward chain',
411                                 chain           => 'FORWARD',
412                                 rule            => 'policy ACCEPT;
413 mod state state (ESTABLISHED RELATED) ACCEPT;
414 interface tun+ ACCEPT;
415 REJECT reject-with icmp-admin-prohibited
416 '
417                         }
418                         @ferm::rule { 'dsa-vpn-mark':
419                                 table           => 'mangle',
420                                 chain           => 'PREROUTING',
421                                 rule            => 'interface tun+ MARK set-mark 1',
422                         }
423                         @ferm::rule { 'dsa-vpn-nat':
424                                 table           => 'nat',
425                                 chain           => 'POSTROUTING',
426                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
427                         }
428                 }
429                 default: {}
430         }
431 }