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