]> git.ekhem.eu.org Git - server.git/log
server.git
22 months ago[dovecot] Ignore domain during authentication.
Jakub Czajka [Sat, 29 Oct 2022 09:04:41 +0000 (11:04 +0200)]
[dovecot] Ignore domain during authentication.

MacOS Mail App only sends username during login. It fails to
authenticate if `dovecot` checks the domain.

22 months ago[dovecot] Authenticate users found in the address book.
Jakub Czajka [Sat, 29 Oct 2022 08:34:54 +0000 (10:34 +0200)]
[dovecot] Authenticate users found in the address book.

Table `users` is an address book. User `dovecot` queries it to
authenticate clients and redirect email to mailboxes.

22 months ago[databases] Define email address book.
Jakub Czajka [Sat, 29 Oct 2022 08:26:48 +0000 (10:26 +0200)]
[databases] Define email address book.

`dovecot` and `postfix` can lookup user addresses in a SQL
table. Adding a new address means adding a new record.

22 months ago[dovecot] Secure connections with TLS.
Jakub Czajka [Sat, 15 Oct 2022 12:43:18 +0000 (14:43 +0200)]
[dovecot] Secure connections with TLS.

TLS connections need to be secured with SSL certificates. `dovecot`
generates self-signed SSL certificates. This commit switches `dovecot`
and `postfix` to SSL certificates signed by Let's Encrypt CA.

2 years ago[dovecot] Restrict number of connections from the same IP.
Jakub Czajka [Fri, 14 Oct 2022 22:33:22 +0000 (00:33 +0200)]
[dovecot] Restrict number of connections from the same IP.

2 years ago[postgres] Generate default configuration.
Jakub Czajka [Mon, 10 Oct 2022 19:15:06 +0000 (21:15 +0200)]
[postgres] Generate default configuration.

2 years ago[dovecot] Generate default configuration.
Jakub Czajka [Sun, 9 Oct 2022 13:02:48 +0000 (15:02 +0200)]
[dovecot] Generate default configuration.

2 years ago[postfix] Rewrite sender for outgoing email.
Jakub Czajka [Fri, 7 Oct 2022 17:31:10 +0000 (19:31 +0200)]
[postfix] Rewrite sender for outgoing email.

`myorigin` specifies the address of outgoing email (user@domain). It
defaults to `$myhostname = gethostname()`. This allows rewriting the
sender of outgoing email without changing configuration.

2 years ago[postfix] Generate default configuration.
Jakub Czajka [Fri, 7 Oct 2022 17:08:01 +0000 (19:08 +0200)]
[postfix] Generate default configuration.

2 years ago[fail2ban] Extend bans to 1 day.
Jakub Czajka [Sun, 25 Sep 2022 21:09:56 +0000 (23:09 +0200)]
[fail2ban] Extend bans to 1 day.

2 years ago[fail2ban] Log to `syslog`.
Jakub Czajka [Sun, 25 Sep 2022 21:04:07 +0000 (23:04 +0200)]
[fail2ban] Log to `syslog`.

2 years ago[fail2ban] Enable `sshd` jail.
Jakub Czajka [Sun, 25 Sep 2022 20:41:09 +0000 (22:41 +0200)]
[fail2ban] Enable `sshd` jail.

2 years ago[fail2ban] Generate default configuration.
Jakub Czajka [Sun, 25 Sep 2022 20:21:08 +0000 (22:21 +0200)]
[fail2ban] Generate default configuration.

2 years ago[sshd] Document public-key and certificate-based authentication.
Jakub Czajka [Sun, 29 Jan 2023 13:14:39 +0000 (14:14 +0100)]
[sshd] Document public-key and certificate-based authentication.

2 years ago[sshd] Disable reverse DNS checks.
Jakub Czajka [Sun, 25 Sep 2022 19:35:16 +0000 (21:35 +0200)]
[sshd] Disable reverse DNS checks.

By default `sshd` compares the IP address of the client with the
result of a reverse DNS query for that address. However, many clients
do not have reverse DNS records. This commit disables the check.

2 years ago[sshd] Omit additional configuration files.
Jakub Czajka [Sun, 25 Sep 2022 19:15:15 +0000 (21:15 +0200)]
[sshd] Omit additional configuration files.

2 years ago[sshd] Limit the number of alive messages.
Jakub Czajka [Sun, 25 Sep 2022 17:44:41 +0000 (19:44 +0200)]
[sshd] Limit the number of alive messages.

`sshd` keeps idle connection alive for `ClientAliveInterval` seconds
and then sends `ClientAliveCountMax` alive messages. If client does
not respond, `sshd` terminates the connection. This commit limits the
number of alive messages to 1.

Note: `ClientAliveCountMax` applies only to SSH protocol 2.

2 years ago[sshd] Require SSH protocol 2.
Jakub Czajka [Sun, 25 Sep 2022 17:38:27 +0000 (19:38 +0200)]
[sshd] Require SSH protocol 2.

SSH protocol 1 is an older version with known vulnerabilities. This
commit requires `sshd` to use only the newer SSH protocol 2.

2 years ago[sshd] Disable root login.
Jakub Czajka [Sun, 25 Sep 2022 17:19:15 +0000 (19:19 +0200)]
[sshd] Disable root login.

`PermitRootLogin` is set by default to `yes`.

2 years ago[sshd] Listen on a non-standard port.
Jakub Czajka [Sun, 25 Sep 2022 15:27:55 +0000 (17:27 +0200)]
[sshd] Listen on a non-standard port.

By default `sshd` listens on port 22. Most attack scripts are written
for this configuration. This commit changes the port to 72, which is
not used by any other popular service.

2 years ago[sshd] Disable password authentication.
Jakub Czajka [Sun, 25 Sep 2022 15:11:45 +0000 (17:11 +0200)]
[sshd] Disable password authentication.

Client can authenticate with `sshd` through one of following
authentication methods (corresponding sshd_config option in brackets):
- host-based (`HostbasedAuthentication`),
- public key (`PubkeyAuthentication`),
- challenge-response (`ChallengeResponseAuthentication`),
- password (`PasswordAuthentication`).

By default, only `PubkeyAuthentication` and `PasswordAuthentication`
are enabled. This commit disables `PasswordAuthentication`. Users
can now login only using public key authentication.

2 years ago[sshd] Generate default configuration.
Jakub Czajka [Sun, 25 Sep 2022 14:03:34 +0000 (16:03 +0200)]
[sshd] Generate default configuration.

2 years agoDescribe the repository in a README.
Jakub Czajka [Sun, 25 Sep 2022 13:49:57 +0000 (15:49 +0200)]
Describe the repository in a README.