Skip to content

Commit 87e9f09

Browse files
authored
finish up migration of bugs to be behind loadbalancer (#479)
- No longer need to pull a Lets Encrypt cert on the host - Disable 80/443 nginx hosts - Remove dummy nginx host for fetching mail.roundup-tracker.org lets encrypt certificate - Turn down the public facing ports - Use internal TLS certificate for postfix Along the way: - also closes firewall for 80/443 on planet
1 parent a91106b commit 87e9f09

File tree

9 files changed

+3
-161
lines changed

9 files changed

+3
-161
lines changed

pillar/base/firewall/bugs.sls

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
{% include "networking.sls" %}
22

33
firewall:
4-
http:
5-
port: 80
6-
https:
7-
port: 443
8-
smtp:
9-
port: 25
104
frontend-bugs:
115
port: 9000:9002
126
source: *psf_internal_network

pillar/dev/top.sls

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ base:
6767
'planet':
6868
- match: nodegroup
6969
- planet
70-
- firewall.http
7170
- firewall.planet
7271

7372
'salt-master':

pillar/prod/top.sls

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ base:
101101
'planet':
102102
- match: nodegroup
103103
- planet
104-
- firewall.http
105104
- firewall.planet
106105

107106
'pythontest':

salt/bugs/config/nginx.conf.jinja

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -12,72 +12,6 @@ upstream tracker-{{ tracker }} {
1212

1313
include conf.d/tracker-extras/upstreams-{{ tracker }}*.conf;
1414

15-
server {
16-
listen 80;
17-
server_name {{ server_name }};
18-
19-
location /.well-known/acme-challenge/ {
20-
alias /etc/lego/.well-known/acme-challenge/;
21-
try_files $uri =404;
22-
}
23-
24-
location / {
25-
return 301 https://$http_host$request_uri;
26-
}
27-
}
28-
29-
server {
30-
listen 443 ssl;
31-
server_name {{ server_name }};
32-
include mime.types;
33-
34-
# By default use the snakeoil certificate...
35-
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
36-
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
37-
38-
# If lego has done it's thing ang pulled a certificate from LetsEncrypt,
39-
# we'll use that! This will take precedence over the above ssl_certificate
40-
# and ssl_certificate_key directives.
41-
include conf.d/lego.conf*;
42-
43-
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
44-
add_header X-Frame-Options "sameorigin";
45-
add_header X-Xss-Protection "1; mode=block";
46-
add_header X-Content-Type-Options "nosniff";
47-
add_header X-Permitted-Cross-Domain-Policies "none";
48-
49-
error_log /var/log/nginx/roundup-{{ tracker }}.error.log;
50-
access_log /var/log/nginx/roundup-{{ tracker }}.access.log timed_combined_{{ tracker }};
51-
52-
root /srv/roundup/trackers/{{ tracker }}/;
53-
54-
include conf.d/tracker-extras/{{ tracker }}*.conf;
55-
56-
gzip on;
57-
gzip_http_version 1.1;
58-
gzip_proxied any;
59-
gzip_min_length 500;
60-
gzip_comp_level 6; # default comp_level is 1
61-
gzip_disable msie6;
62-
gzip_types text/plain text/css
63-
text/xml application/xml
64-
text/javascript application/javascript
65-
text/json application/json;
66-
67-
location /@@file/ {
68-
rewrite ^/@@file/(.*) /html/$1 break;
69-
expires 1h;
70-
}
71-
72-
location / {
73-
limit_req zone=limit-{{ tracker }} burst=5 nodelay;
74-
proxy_pass http://tracker-{{ tracker }}/;
75-
proxy_set_header Host $host;
76-
proxy_set_header X-Real-IP $remote_addr;
77-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
78-
}
79-
}
80-
8115
server {
8216
listen {{ port }} ssl;
8317
server_name {{ server_name }};

salt/bugs/config/postfix/main.cf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ compatibility_level = 3.6
2424

2525

2626
# TLS parameters
27-
smtpd_tls_cert_file=/etc/lego/certificates/{{ grains['fqdn'] }}.crt
28-
smtpd_tls_key_file=/etc/lego/certificates/{{ grains['fqdn'] }}.key
27+
smtpd_tls_cert_file=ssl_certificate /etc/ssl/private/bugs.psf.io.pem;
28+
smtpd_tls_key_file=etc/ssl/private/bugs.psf.io.pem;
2929
smtpd_tls_security_level=may
3030

3131
smtp_tls_CApath=/etc/ssl/certs

salt/bugs/config/roundup/tracker-upstreams.conf

Lines changed: 0 additions & 41 deletions
This file was deleted.

salt/bugs/init.sls

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,8 @@
11

22
include:
33
- bugs.postgresql
4-
- tls.lego
54
- nginx
65

7-
lego_bootstrap:
8-
cmd.run:
9-
- name: /usr/local/bin/lego -a --email="[email protected]" {% if pillar["dc"] == "vagrant" %}--server=https://salt-master.vagrant.psf.io:14000/dir{% endif %} --domains="{{ grains['fqdn'] }}" {%- for domain in pillar['bugs']['subject_alternative_names'] %} --domains {{ domain }}{%- endfor %} --http --path /etc/lego --key-type ec256 run
10-
- creates: /etc/lego/certificates/{{ grains['fqdn'] }}.json
11-
- require:
12-
- archive: lego_extract
13-
14-
lego_renew:
15-
cron.present:
16-
- name: /usr/bin/sudo -u nginx /usr/local/bin/lego -a --email="[email protected]" {% if pillar["dc"] == "vagrant" %}--server=https://salt-master.vagrant.psf.io:14000/dir{% endif %} --domains="{{ grains['fqdn'] }}" {%- for domain in pillar['bugs']['subject_alternative_names'] %} --domains {{ domain }}{%- endfor %} --http --http.webroot /etc/lego --path /etc/lego --key-type ec256 renew --days 30 && /usr/sbin/service nginx reload && /usr/sbin/service postfix reload
17-
- identifier: roundup_lego_renew
18-
- hour: 0
19-
- minute: random
20-
21-
lego_config:
22-
file.managed:
23-
- name: /etc/nginx/conf.d/lego.conf
24-
- source: salt://tls/config/lego.conf.jinja
25-
- template: jinja
26-
- user: root
27-
- group: root
28-
- mode: "0644"
29-
- require:
30-
- cmd: lego_bootstrap
31-
326
roundup-deps:
337
pkg.installed:
348
- pkgs:
@@ -163,7 +137,6 @@ tracker-nginx-extras:
163137
- template: jinja
164138
- require:
165139
- pkg: roundup-deps
166-
- cmd: lego_bootstrap
167140

168141
/etc/postfix/master.cf:
169142
file.managed:
@@ -174,7 +147,6 @@ tracker-nginx-extras:
174147
- template: jinja
175148
- require:
176149
- pkg: roundup-deps
177-
- cmd: lego_bootstrap
178150

179151
/etc/postfix/virtual:
180152
file.managed:
@@ -222,6 +194,7 @@ postfix:
222194
- file: /etc/postfix/master.cf
223195
- file: /etc/postfix/virtual
224196
- file: /etc/postfix/reject_recipients
197+
- file: /etc/ssl/private/*.pem
225198

226199
{# We can extend this for smtps/submission later #}
227200
{% for (port, service) in [(20025, "smtp")] %}

salt/bugs/jython.sls

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +0,0 @@
1-
#tracker-jython-summary:
2-
# cron.present:
3-
# - name: /srv/roundup/env/bin/python2.7 /srv/roundup/trackers/cpython/scripts/roundup-summary /srv/roundup/trackers/jython --mail [email protected]
4-
# - identifier: roundup_tracker_jython_summary
5-
# - user: roundup
6-
# - dayweek: 5
7-
# - hour: 18
8-
# - minute: 5

salt/bugs/roundup.sls

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +0,0 @@
1-
tracker-roundup-nginx-extras-upstreams:
2-
file.managed:
3-
- name: /etc/nginx/conf.d/tracker-extras/upstreams-roundup.conf
4-
- source: salt://bugs/config/roundup/tracker-upstreams.conf
5-
- user: root
6-
- group: root
7-
- require:
8-
- file: tracker-nginx-extras

0 commit comments

Comments
 (0)