From 03c587fcac7b8eb9b136872d59950f6569dffdd6 Mon Sep 17 00:00:00 2001 From: Claudio Maradonna Date: Fri, 25 Jun 2021 12:15:51 +0200 Subject: [PATCH 1/2] feature: add apache example maintenance configuration --- apache/maintenance.conf | 15 +++++++++++++++ apache/maintenance.html | 20 ++++++++++++++++++++ apache/maintenance.png | Bin 0 -> 56005 bytes 3 files changed, 35 insertions(+) create mode 100644 apache/maintenance.conf create mode 100644 apache/maintenance.html create mode 100644 apache/maintenance.png diff --git a/apache/maintenance.conf b/apache/maintenance.conf new file mode 100644 index 0000000..6576a7f --- /dev/null +++ b/apache/maintenance.conf @@ -0,0 +1,15 @@ + + # Redirect all request to a 503 return code when in maintenance mode + ErrorDocument 503 /maintenance/index.html + RewriteEngine on + RewriteCond /var/www/maintenance/ALL -f [OR] + RewriteCond /var/www/maintenance/%{SERVER_NAME} -f + RewriteCond %{REQUEST_URI} !=/maintenance/index.html + RewriteCond %{REQUEST_URI} !=/maintenance/index.png + RewriteRule ^ - [R=503,L] + + # Redirect away from the maintenance page if not in maintenance mode + RewriteCond /var/www/maintenance/ALL !-f + RewriteCond /var/www/maintenance/%{SERVER_NAME} !-f + RewriteRule ^/maintenance/index.html$ / [R,L] + diff --git a/apache/maintenance.html b/apache/maintenance.html new file mode 100644 index 0000000..d0058ee --- /dev/null +++ b/apache/maintenance.html @@ -0,0 +1,20 @@ + +Site Maintenance + + +
+ +

We’ll be back soon!

+
+

We’re performing some hacks at the moment. +
You can always contact us!

+

— Your best friend 😎

+
+
diff --git a/apache/maintenance.png b/apache/maintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..c99efd2452dcb34e0da5eac52c06ecaaa63896cc GIT binary patch literal 56005 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 QZUB6=)%B4jYBrev0sC))3jhEB literal 0 HcmV?d00001 From 4232840e66619fab29ffb620b9133c650c91747c Mon Sep 17 00:00:00 2001 From: Claudio Maradonna Date: Fri, 25 Jun 2021 12:58:32 +0200 Subject: [PATCH 2/2] feature: add postgresql custom options like password_encryption --- postgresql/pg_hba.conf | 99 +++++++++++++++++++++++++++++++ postgresql/postgresql_custom.conf | 5 ++ 2 files changed, 104 insertions(+) create mode 100644 postgresql/pg_hba.conf create mode 100644 postgresql/postgresql_custom.conf diff --git a/postgresql/pg_hba.conf b/postgresql/pg_hba.conf new file mode 100644 index 0000000..6254116 --- /dev/null +++ b/postgresql/pg_hba.conf @@ -0,0 +1,99 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the PostgreSQL +# documentation for a complete description of this file. A short +# synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTIONS] +# host DATABASE USER ADDRESS METHOD [OPTIONS] +# hostssl DATABASE USER ADDRESS METHOD [OPTIONS] +# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: "local" is a Unix-domain +# socket, "host" is either a plain or SSL-encrypted TCP/IP socket, +# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a +# plain TCP/IP socket. +# +# DATABASE can be "all", "sameuser", "samerole", "replication", a +# database name, or a comma-separated list thereof. The "all" +# keyword does not match "replication". Access to replication +# must be enabled in a separate record (see example below). +# +# USER can be "all", a user name, a group name prefixed with "+", or a +# comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names +# from a separate file. +# +# ADDRESS specifies the set of hosts the record matches. It can be a +# host name, or it is made up of an IP address and a CIDR mask that is +# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that +# specifies the number of significant bits in the mask. A host name +# that starts with a dot (.) matches a suffix of the actual host name. +# Alternatively, you can write an IP address and netmask in separate +# columns to specify the set of hosts. Instead of a CIDR-address, you +# can write "samehost" to match any of the server's own IP addresses, +# or "samenet" to match any address in any subnet that the server is +# directly connected to. +# +# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256", +# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert". +# Note that "password" sends passwords in clear text; "md5" or +# "scram-sha-256" are preferred since they send encrypted passwords. +# +# OPTIONS are a set of options for the authentication in the format +# NAME=VALUE. The available options depend on the different +# authentication methods -- refer to the "Client Authentication" +# section in the documentation for a list of which options are +# available for which authentication methods. +# +# Database and user names containing spaces, commas, quotes and other +# special characters must be quoted. Quoting one of the keywords +# "all", "sameuser", "samerole" or "replication" makes the name lose +# its special character, and just match a database or username with +# that name. +# +# This file is read on server startup and when the server receives a +# SIGHUP signal. If you edit the file on a running system, you have to +# SIGHUP the server for the changes to take effect, run "pg_ctl reload", +# or execute "SELECT pg_reload_conf()". +# +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL +# listen on a non-local interface via the listen_addresses +# configuration parameter, or via the -i or -h command line switches. + + + + +# DO NOT DISABLE! +# If you change this first entry you will need to make sure that the +# database superuser can access the database using some other method. +# Noninteractive access to all databases is required during automatic +# maintenance (custom daily cronjobs, replication, and similar tasks). +# +# Database administrative login by Unix domain socket +local all postgres peer + +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all scram-sha-256 +# IPv4 local connections: +host all all 127.0.0.1/32 scram-sha-256 +# IPv6 local connections: +host all all ::1/128 scram-sha-256 +# Allow replication connections from localhost, by a user with the +# replication privilege. +local replication all peer +host replication all 127.0.0.1/32 scram-sha-256 +host replication all ::1/128 scram-sha-256 diff --git a/postgresql/postgresql_custom.conf b/postgresql/postgresql_custom.conf new file mode 100644 index 0000000..65c2e9f --- /dev/null +++ b/postgresql/postgresql_custom.conf @@ -0,0 +1,5 @@ +... + +password_encryption = scram-sha-256 + +...