remove bendel/lists blackhole rules that are probably long obsolete
[mirror/dsa-puppet.git] / modules / ferm / manifests / per_host.pp
1 class ferm::per_host {
2         if $::hostname in [zandonai,zelenka] {
3                 include ferm::zivit
4         }
5
6         if (getfromhash($site::nodeinfo, 'hoster', 'name') == "aql") {
7                 include ferm::aql
8         }
9
10         case $::hostname {
11                 czerny,clementi: {
12                         @ferm::rule { 'dsa-upsmon':
13                                 description     => 'Allow upsmon access',
14                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
15                         }
16                 }
17                 lotti,lully,loghost-grnet-01: {
18                         @ferm::rule { 'dsa-syslog':
19                                 description     => 'Allow syslog access',
20                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
21                         }
22                         @ferm::rule { 'dsa-syslog-v6':
23                                 domain          => 'ip6',
24                                 description     => 'Allow syslog access',
25                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
26                         }
27                         @ferm::rule { 'fastly-syslog':
28                                 description     => 'Allow syslog access',
29                                 rule            => '&SERVICE_RANGE(tcp, 5141, $HOST_FASTLY)'
30                         }
31                 }
32                 kaufmann: {
33                         @ferm::rule { 'dsa-hkp':
34                                 domain          => '(ip ip6)',
35                                 description     => 'Allow hkp access',
36                                 rule            => '&SERVICE(tcp, 11371)'
37                         }
38                 }
39                 gombert: {
40                         @ferm::rule { 'dsa-infinoted':
41                                 domain          => '(ip ip6)',
42                                 description     => 'Allow infinoted access',
43                                 rule            => '&SERVICE(tcp, 6523)'
44                         }
45                 }
46                 draghi: {
47                         @ferm::rule { 'dsa-finger':
48                                 domain          => '(ip ip6)',
49                                 description     => 'Allow finger access',
50                                 rule            => '&SERVICE(tcp, 79)'
51                         }
52                         @ferm::rule { 'dsa-ldap':
53                                 domain          => '(ip ip6)',
54                                 description     => 'Allow ldap access',
55                                 rule            => '&SERVICE(tcp, 389)'
56                         }
57                         @ferm::rule { 'dsa-ldaps':
58                                 domain          => '(ip ip6)',
59                                 description     => 'Allow ldaps access',
60                                 rule            => '&SERVICE(tcp, 636)'
61                         }
62                 }
63                 sonntag: {
64                         @ferm::rule { 'dsa-bugs-search':
65                                 description  => 'port 1978 for bugs-search from bug web frontends',
66                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 209.87.16.39 ))'
67                         }
68                 }
69                 default: {}
70         }
71
72         # redirect snapshot into varnish
73         case $::hostname {
74                 sibelius: {
75                         @ferm::rule { 'dsa-snapshot-varnish':
76                                 rule            => '&SERVICE(tcp, 6081)',
77                         }
78                         @ferm::rule { 'dsa-nat-snapshot-varnish':
79                                 table           => 'nat',
80                                 chain           => 'PREROUTING',
81                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
82                         }
83                 }
84                 lw07: {
85                         @ferm::rule { 'dsa-snapshot-varnish':
86                                 rule            => '&SERVICE(tcp, 6081)',
87                         }
88                         @ferm::rule { 'dsa-nat-snapshot-varnish':
89                                 table           => 'nat',
90                                 chain           => 'PREROUTING',
91                                 rule            => 'proto tcp daddr 185.17.185.185 dport 80 REDIRECT to-ports 6081',
92                         }
93                 }
94                 default: {}
95         }
96         case $::hostname {
97                 bm-bl1,bm-bl2: {
98                         @ferm::rule { 'dsa-vrrp':
99                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
100                         }
101                         @ferm::rule { 'dsa-conntrackd':
102                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
103                         }
104                         @ferm::rule { 'dsa-bind-notrack-in':
105                                 domain      => 'ip',
106                                 description => 'NOTRACK for nameserver traffic',
107                                 table       => 'raw',
108                                 chain       => 'PREROUTING',
109                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
110                         }
111
112                         @ferm::rule { 'dsa-bind-notrack-out':
113                                 domain      => 'ip',
114                                 description => 'NOTRACK for nameserver traffic',
115                                 table       => 'raw',
116                                 chain       => 'OUTPUT',
117                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
118                         }
119
120                         @ferm::rule { 'dsa-bind-notrack-in6':
121                                 domain      => 'ip6',
122                                 description => 'NOTRACK for nameserver traffic',
123                                 table       => 'raw',
124                                 chain       => 'PREROUTING',
125                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
126                         }
127
128                         @ferm::rule { 'dsa-bind-notrack-out6':
129                                 domain      => 'ip6',
130                                 description => 'NOTRACK for nameserver traffic',
131                                 table       => 'raw',
132                                 chain       => 'OUTPUT',
133                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
134                         }
135                 }
136                 default: {}
137         }
138
139         # postgres stuff
140         case $::hostname {
141                 ullmann: {
142                         @ferm::rule { 'dsa-postgres-udd':
143                                 description     => 'Allow postgress access',
144                                 # quantz, moszumanska, master, coccia
145                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 5.153.231.28/32 5.153.231.21/32 82.195.75.110/32 5.153.231.11/32 ))'
146                         }
147                         @ferm::rule { 'dsa-postgres-udd6':
148                                 domain          => '(ip6)',
149                                 description     => 'Allow postgress access',
150                                 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:11/32 2001:41c8:1000:21::21:21/128 ))'
151                         }
152                 }
153                 fasolo: {
154                         @ferm::rule { 'dsa-postgres-fasolo':
155                                 description     => 'Allow postgress access',
156                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
157                         }
158                         @ferm::rule { 'dsa-postgres-fasolo6':
159                                 domain          => 'ip6',
160                                 description     => 'Allow postgress access',
161                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
162                         }
163
164                         @ferm::rule { 'dsa-postgres-backup':
165                                 description     => 'Allow postgress access',
166                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
167                         }
168                         @ferm::rule { 'dsa-postgres-backup6':
169                                 domain          => 'ip6',
170                                 description     => 'Allow postgress access',
171                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
172                         }
173                 }
174                 bmdb1: {
175                         @ferm::rule { 'dsa-postgres-main':
176                                 description     => 'Allow postgress access',
177                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 5.153.231.23/32 5.153.231.25/32 209.87.16.38/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 5.153.231.43/32 5.153.231.33/32 ))'
178                         }
179                         @ferm::rule { 'dsa-postgres-main6':
180                                 domain          => 'ip6',
181                                 description     => 'Allow postgress access',
182                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 2001:41c8:1000:21::21:23/128 2001:41c8:1000:21::21:25/128 2607:f8f0:614:1::1274:38/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 2001:41c8:1000:21::21:43/128 2001:41c8:1000:21::21:33/128 ))'
183                         }
184                         @ferm::rule { 'dsa-postgres-dak':
185                                 description     => 'Allow postgress access',
186                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 5.153.231.28/32 209.87.16.26/32 5.153.231.21/32 5.153.231.18/32 5.153.231.29/32 128.31.0.69/32 ))'
187                         }
188                         @ferm::rule { 'dsa-postgres-dak6':
189                                 domain          => 'ip6',
190                                 description     => 'Allow postgress access',
191                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2001:41c8:1000:21::21:28/128 2607:f8f0:614:1::1274:26/128 2001:41c8:1000:21::21:21/128 2001:41c8:1000:21::21:18/128 2001:41c8:1000:21::21:29/128 ))'
192                         }
193                         @ferm::rule { 'dsa-postgres-wannabuild':
194                                 # wuiet, ullmann
195                                 description     => 'Allow postgress access',
196                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 209.87.16.38/32 ))'
197                         }
198                         @ferm::rule { 'dsa-postgres-wannabuild6':
199                                 domain          => 'ip6',
200                                 description     => 'Allow postgress access',
201                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:614:1::1274:38/128 ))'
202                         }
203                         @ferm::rule { 'dsa-postgres-bacula':
204                                 # dinis
205                                 description     => 'Allow postgress access1',
206                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 93.94.130.161/32 ))'
207                         }
208                         @ferm::rule { 'dsa-postgres-bacula6':
209                                 domain          => 'ip6',
210                                 description     => 'Allow postgress access1',
211                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 2a02:158:380:280::161/128 ))'
212                         }
213
214                         @ferm::rule { 'dsa-postgres-backup':
215                                 description     => 'Allow postgress access',
216                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436 5440), ( $HOST_PGBACKUPHOST_V4 ))'
217                         }
218                         @ferm::rule { 'dsa-postgres-backup6':
219                                 domain          => 'ip6',
220                                 description     => 'Allow postgress access',
221                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436 5440), ( $HOST_PGBACKUPHOST_V6 ))'
222                         }
223
224                         @ferm::rule { 'dsa-postgres-dedup':
225                                 # ubc, wuit
226                                 description     => 'Allow postgress access',
227                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 5.153.231.17/32 ))'
228                         }
229                         @ferm::rule { 'dsa-postgres-dedup6':
230                                 domain          => 'ip6',
231                                 description     => 'Allow postgress access',
232                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 2001:41c8:1000:21::21:17/128 ))'
233                         }
234
235                         @ferm::rule { 'dsa-postgres-debsources':
236                                 description     => 'Allow postgress access',
237                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 5.153.231.38/32 ))'
238                         }
239                         @ferm::rule { 'dsa-postgres-debsources6':
240                                 domain          => 'ip6',
241                                 description     => 'Allow postgress access',
242                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 2001:41c8:1000:21::21:38/128 ))'
243                         }
244                 }
245                 danzi: {
246                         @ferm::rule { 'dsa-postgres-danzi':
247                                 # ubc, wuiet
248                                 description     => 'Allow postgress access',
249                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 209.87.16.0/24 5.153.231.18/32 ))'
250                         }
251                         @ferm::rule { 'dsa-postgres-danzi6':
252                                 domain          => 'ip6',
253                                 description     => 'Allow postgress access',
254                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2607:f8f0:614:1::/64 2001:41c8:1000:21::21:18/128 ))'
255                         }
256
257                         @ferm::rule { 'dsa-postgres2-danzi':
258                                 description     => 'Allow postgress access2',
259                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 209.87.16.0/24 ))'
260                         }
261                         @ferm::rule { 'dsa-postgres2-danzi6':
262                                 domain          => 'ip6',
263                                 description     => 'Allow postgress access2',
264                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2607:f8f0:614:1::/64 ))'
265                         }
266                 }
267                 seger: {
268                         @ferm::rule { 'dsa-postgres-backup':
269                                 description     => 'Allow postgress access',
270                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V4 ))'
271                         }
272                         @ferm::rule { 'dsa-postgres-backup6':
273                                 domain          => 'ip6',
274                                 description     => 'Allow postgress access',
275                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V6 ))'
276                         }
277                 }
278                 sibelius: {
279                         @ferm::rule { 'dsa-postgres-backup':
280                                 description     => 'Allow postgress access',
281                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
282                         }
283                         @ferm::rule { 'dsa-postgres-backup6':
284                                 domain          => 'ip6',
285                                 description     => 'Allow postgress access',
286                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
287                         }
288                         @ferm::rule { 'dsa-postgres-replication':
289                                 description     => 'Allow postgress access',
290                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 185.17.185.187/32 193.62.202.26/32 ))'
291                         }
292                         @ferm::rule { 'dsa-postgres-replication6':
293                                 domain          => 'ip6',
294                                 description     => 'Allow postgress access',
295                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:1af8:4020:b030:deb::187/128 2001:630:206:4000:1a1a:0:c13e:ca1a/128 ))'
296                         }
297                 }
298                 lw07: {
299                         @ferm::rule { 'dsa-postgres-snapshot':
300                                 description     => 'Allow postgress access',
301                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 185.17.185.176/28 ))'
302                         }
303                         @ferm::rule { 'dsa-postgres-snapshot6':
304                                 domain          => 'ip6',
305                                 description     => 'Allow postgress access',
306                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 2001:1af8:4020:b030::/64 ))'
307                         }
308                 }
309                 default: {}
310         }
311         # vpn fu
312         case $::hostname {
313                 draghi: {
314                         @ferm::rule { 'dsa-vpn':
315                                 description     => 'Allow openvpn access',
316                                 rule            => '&SERVICE(udp, 17257)'
317                         }
318                         @ferm::rule { 'dsa-routing':
319                                 description     => 'forward chain',
320                                 chain           => 'FORWARD',
321                                 rule            => 'policy ACCEPT;
322 mod state state (ESTABLISHED RELATED) ACCEPT;
323 interface tun+ ACCEPT;
324 REJECT reject-with icmp-admin-prohibited
325 '
326                         }
327                         @ferm::rule { 'dsa-vpn-mark':
328                                 table           => 'mangle',
329                                 chain           => 'PREROUTING',
330                                 rule            => 'interface tun+ MARK set-mark 1',
331                         }
332                         @ferm::rule { 'dsa-vpn-nat':
333                                 table           => 'nat',
334                                 chain           => 'POSTROUTING',
335                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
336                         }
337                 }
338                 ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10: {
339                         @ferm::rule { 'dsa-luca-fixme':
340                                 description     => 'Allow ssh access from mnt and vpn networks',
341                                 rule            => '&SERVICE_RANGE(tcp, 22, ( 172.29.40.0/22 172.29.203.0/24 ))',
342                         }
343                 }
344                 default: {}
345         }
346         # tftp
347         case $::hostname {
348                 abel: {
349                         @ferm::rule { 'dsa-tftp':
350                                 description     => 'Allow tftp access',
351                                 rule            => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
352                         }
353                 }
354                 master: {
355                         @ferm::rule { 'dsa-tftp':
356                                 description     => 'Allow tftp access',
357                                 rule            => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 192.168.43.0/24 ))'
358                         }
359                 }
360         }
361 }