]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
work around ONTP's broken mail setup
[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,merikanto,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                 piatti,samosa: {
16                         @ferm::rule { 'dsa-udd-stunnel':
17                                 description  => 'port 8080 for udd stunnel',
18                                 rule         => '&SERVICE_RANGE(tcp, http-alt, ( 192.25.206.16 70.103.162.29 217.196.43.134 ))'
19                         }
20                 }
21                 ullmann: {
22                         @ferm::rule { 'dsa-postgres-udd':
23                                 description     => 'Allow postgress access',
24                                 # quantz, wagner, master
25                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 206.12.19.122/32 217.196.43.134/32 217.196.43.132/32 82.195.75.110/32 ))'
26                         }
27                         @ferm::rule { 'dsa-postgres-udd6':
28                                 domain          => '(ip6)',
29                                 description     => 'Allow postgress access',
30                                 # quantz
31                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 2607:f8f0:610:4000:216:36ff:fe40:3860/128 2001:41b8:202:deb:216:36ff:fe40:4001/128 ))'
32                         }
33                 }
34                 grieg: {
35                         @ferm::rule { 'dsa-postgres-ullmann':
36                                 description     => 'Allow postgress access',
37                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.141/32 ))'
38                         }
39                         @ferm::rule { 'dsa-postgres-ullmann6':
40                                 domain          => '(ip6)',
41                                 description     => 'Allow postgress access',
42                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
43                         }
44                 }
45                 czerny,clementi: {
46                         @ferm::rule { 'dsa-upsmon':
47                                 description     => 'Allow upsmon access',
48                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
49                         }
50                 }
51                 bendel: {
52                         @ferm::rule { 'listmaster-ontp-in':
53                                 description     => 'ONTP has a broken mail setup',
54                                 table           => 'filter'
55                                 chain           => 'INPUT'
56                                 rule            => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
57                         }
58                         @ferm::rule { 'listmaster-ontp-in':
59                                 description     => 'ONTP has a broken mail setup',
60                                 table           => 'filter'
61                                 chain           => 'OUTPUT'
62                                 rule            => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
63                         }
64                 }
65                 danzi: {
66                         @ferm::rule { 'dsa-postgres-danzi':
67                                 description     => 'Allow postgress access',
68                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 ))'
69                         }
70                         @ferm::rule { 'dsa-postgres-danzi6':
71                                 domain          => 'ip6',
72                                 description     => 'Allow postgress access',
73                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 ))'
74                         }
75
76                         @ferm::rule { 'dsa-postgres2-danzi':
77                                 description     => 'Allow postgress access2',
78                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
79                         }
80                         @ferm::rule { 'dsa-postgres3-danzi':
81                                 description     => 'Allow postgress access3',
82                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
83                         }
84                         @ferm::rule { 'dsa-postgres4-danzi':
85                                 description     => 'Allow postgress access4',
86                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
87                         }
88                 }
89                 abel,alwyn,rietz: {
90                         @ferm::rule { 'dsa-tftp':
91                                 description     => 'Allow tftp access',
92                                 rule            => '&SERVICE(udp, 69)'
93                         }
94                 }
95                 paganini: {
96                         @ferm::rule { 'dsa-dhcp':
97                                 description     => 'Allow dhcp access',
98                                 rule            => '&SERVICE(udp, 67)'
99                         }
100                         @ferm::rule { 'dsa-tftp':
101                                 description     => 'Allow tftp access',
102                                 rule            => '&SERVICE(udp, 69)'
103                         }
104                 }
105                 lotti,lully: {
106                         @ferm::rule { 'dsa-syslog':
107                                 description     => 'Allow syslog access',
108                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
109                         }
110                         @ferm::rule { 'dsa-syslog-v6':
111                                 domain          => 'ip6',
112                                 description     => 'Allow syslog access',
113                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
114                         }
115                 }
116                 kaufmann: {
117                         @ferm::rule { 'dsa-hkp':
118                                 domain          => '(ip ip6)',
119                                 description     => 'Allow hkp access',
120                                 rule            => '&SERVICE(tcp, 11371)'
121                         }
122                 }
123                 gombert: {
124                         @ferm::rule { 'dsa-infinoted':
125                                 domain          => '(ip ip6)',
126                                 description     => 'Allow infinoted access',
127                                 rule            => '&SERVICE(tcp, 6523)'
128                         }
129                 }
130                 draghi: {
131                         #@ferm::rule { 'dsa-bind':
132                         #    domain          => '(ip ip6)',
133                         #    description     => 'Allow nameserver access',
134                         #    rule            => '&TCP_UDP_SERVICE(53)'
135                         #}
136                         @ferm::rule { 'dsa-finger':
137                                 domain          => '(ip ip6)',
138                                 description     => 'Allow finger access',
139                                 rule            => '&SERVICE(tcp, 79)'
140                         }
141                         @ferm::rule { 'dsa-ldap':
142                                 domain          => '(ip ip6)',
143                                 description     => 'Allow ldap access',
144                                 rule            => '&SERVICE(tcp, 389)'
145                         }
146                         @ferm::rule { 'dsa-ldaps':
147                                 domain          => '(ip ip6)',
148                                 description     => 'Allow ldaps access',
149                                 rule            => '&SERVICE(tcp, 636)'
150                         }
151                         @ferm::rule { 'dsa-vpn':
152                                 description     => 'Allow openvpn access',
153                                 rule            => '&SERVICE(udp, 17257)'
154                         }
155                         @ferm::rule { 'dsa-routing':
156                                 description     => 'forward chain',
157                                 chain           => 'FORWARD',
158                                 rule            => 'policy ACCEPT;
159 mod state state (ESTABLISHED RELATED) ACCEPT;
160 interface tun+ ACCEPT;
161 REJECT reject-with icmp-admin-prohibited
162 '
163                         }
164                         @ferm::rule { 'dsa-vpn-mark':
165                                 table           => 'mangle',
166                                 chain           => 'PREROUTING',
167                                 rule            => 'interface tun+ MARK set-mark 1',
168                         }
169                         @ferm::rule { 'dsa-vpn-nat':
170                                 table           => 'nat',
171                                 chain           => 'POSTROUTING',
172                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
173                         }
174                 }
175                 cilea: {
176                         ferm::module { 'nf_conntrack_sip': }
177                         ferm::module { 'nf_conntrack_h323': }
178
179                         @ferm::rule { 'dsa-sip':
180                                 domain          => '(ip ip6)',
181                                 description     => 'Allow sip access',
182                                 rule            => '&TCP_UDP_SERVICE(5060)'
183                         }
184                         @ferm::rule { 'dsa-sipx':
185                                 domain          => '(ip ip6)',
186                                 description     => 'Allow sipx access',
187                                 rule            => '&TCP_UDP_SERVICE(5080)'
188                         }
189                 }
190                 unger: {
191                         @ferm::rule { 'dsa-notrack-dns-diamond-in':
192                                 domain      => 'ip',
193                                 description => 'NOTRACK for nameserver traffic',
194                                 table       => 'raw',
195                                 chain       => 'PREROUTING',
196                                 rule        => 'destination 82.195.75.108 proto (tcp udp) dport 53 jump NOTRACK'
197                         }
198                         @ferm::rule { 'dsa-notrack-dns-diamond-out':
199                                 domain      => 'ip',
200                                 description => 'NOTRACK for nameserver traffic',
201                                 table       => 'raw',
202                                 chain       => 'PREROUTING',
203                                 rule        => 'source 82.195.75.108 proto (tcp udp) sport 53 jump NOTRACK'
204                         }
205                 }
206                 sonntag: {
207                         @ferm::rule { 'dsa-bugs-search':
208                                 description  => 'port 1978 for bugs-search from bug web frontends',
209                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
210                         }
211                 }
212                 default: {}
213         }
214
215         if $::hostname in [rautavaara,luchesi] {
216                 @ferm::rule { 'dsa-to-kfreebsd':
217                         description     => 'Traffic routed to kfreebsd hosts',
218                         chain           => 'to-kfreebsd',
219                         rule            => 'proto icmp ACCEPT;
220 source ($FREEBSD_SSH_ACCESS $HOST_NAGIOS_V4) proto tcp dport 22 ACCEPT;
221 source ($HOST_MAILRELAY_V4 $HOST_NAGIOS_V4) proto tcp dport 25 ACCEPT;
222 source ($HOST_MUNIN_V4 $HOST_NAGIOS_V4) proto tcp dport 4949 ACCEPT;
223 source ($HOST_NAGIOS_V4) proto tcp dport 5666 ACCEPT;
224 source ($HOST_NAGIOS_V4) proto udp dport ntp ACCEPT
225 '
226                 }
227                 @ferm::rule { 'dsa-from-kfreebsd':
228                         description     => 'Traffic routed from kfreebsd vlan/bridge',
229                         chain           => 'from-kfreebsd',
230                         rule            => 'proto icmp ACCEPT;
231 proto tcp dport (21 22 80 53 443) ACCEPT;
232 proto udp dport (53 123) ACCEPT;
233 proto tcp dport 8140 daddr 82.195.75.104 ACCEPT; # puppethost
234 proto tcp dport 5140 daddr (82.195.75.99 206.12.19.121) ACCEPT; # loghost
235 proto tcp dport 11371 daddr 82.195.75.107 ACCEPT; # keyring host
236 proto tcp dport (25 submission) daddr ($HOST_MAILRELAY_V4) ACCEPT
237 '
238                 }
239         }
240         case $::hostname {
241                 rautavaara: {
242                         @ferm::rule { 'dsa-routing':
243                                 description     => 'forward chain',
244                                 chain           => 'FORWARD',
245                                 rule            => 'def $ADDRESS_FASCH=194.177.211.201;
246 def $ADDRESS_FIELD=194.177.211.210;
247 def $FREEBSD_HOSTS=($ADDRESS_FASCH $ADDRESS_FIELD);
248
249 policy ACCEPT;
250 mod state state (ESTABLISHED RELATED) ACCEPT;
251 interface vlan11 outerface eth0 jump from-kfreebsd;
252 interface eth0 destination ($FREEBSD_HOSTS) jump to-kfreebsd;
253 ULOG ulog-prefix "REJECT FORWARD: ";
254 REJECT reject-with icmp-admin-prohibited
255 '
256                         }
257                 }
258                 luchesi: {
259                         @ferm::rule { 'dsa-routing':
260                                 description     => 'forward chain',
261                                 chain           => 'FORWARD',
262                                 rule            => 'def $ADDRESS_FANO=206.12.19.110;
263 def $ADDRESS_FINZI=206.12.19.111;
264 def $ADDRESS_FISCHER=206.12.19.112;
265 def $ADDRESS_FALLA=206.12.19.117;
266 def $FREEBSD_HOSTS=($ADDRESS_FANO $ADDRESS_FINZI $ADDRESS_FISCHER $ADDRESS_FALLA);
267
268 policy ACCEPT;
269 mod state state (ESTABLISHED RELATED) ACCEPT;
270 interface br0 outerface br0 ACCEPT;
271 interface br1 outerface br1 ACCEPT;
272
273 interface br2 outerface br0 jump from-kfreebsd;
274 interface br0 destination ($ADDRESS_FISCHER $ADDRESS_FALLA) proto tcp dport 22 ACCEPT;
275 interface br0 destination ($FREEBSD_HOSTS) jump to-kfreebsd;
276 ULOG ulog-prefix "REJECT FORWARD: ";
277 REJECT reject-with icmp-admin-prohibited
278 '
279                         }
280                 }
281                 default: {}
282         }
283
284         # redirect snapshot into varnish
285         case $::hostname {
286                 sibelius: {
287                         @ferm::rule { 'dsa-snapshot-varnish':
288                                 rule            => '&SERVICE(tcp, 6081)',
289                         }
290                         @ferm::rule { 'dsa-nat-snapshot-varnish':
291                                 table           => 'nat',
292                                 chain           => 'PREROUTING',
293                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
294                         }
295                 }
296                 stabile: {
297                         @ferm::rule { 'dsa-snapshot-varnish':
298                                 rule            => '&SERVICE(tcp, 6081)',
299                         }
300                         @ferm::rule { 'dsa-nat-snapshot-varnish':
301                                 table           => 'nat',
302                                 chain           => 'PREROUTING',
303                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
304                         }
305                 }
306                 default: {}
307         }
308         case $::hostname {
309                 bm-bl1,bm-bl2: {
310                         @ferm::rule { 'dsa-vrrp':
311                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
312                         }
313                         @ferm::rule { 'dsa-conntrackd':
314                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
315                         }
316                 }
317                 default: {}
318         }
319         case $::hostname {
320                 bm-bl1,bm-bl2,bm-bl3,bm-bl4,bm-bl5,bm-bl6,bm-bl7,bm-bl8,bm-bl9,bm-bl10,bm-bl11,bm-bl12,bm-bl13,bm-bl14: {
321                         @ferm::rule { 'dsa-hwnet-vlan20':
322                                 rule            => 'interface vlan20 jump ACCEPT',
323                         }
324                 }
325                 default: {}
326         }
327 }