Instalace poštovního serveru Mailcow na Raspberry PI

tutorial viz: instalace Mailcow

Instalace poštovního serveru Mailcow na Raspberry PI

Předpoklady pro indstalaci Mailcow na Raspberry PI s dockerem containerem

1. Přidejte Docker repository:

sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. Nainstalujte Docker a Docker Compose:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Ověřte verzi Dockeru:

docker --version

3. Stáhněte Mailcow

Přejděte do složky /opt a stáhněte Mailcow:

sudo mkdir -p /opt/mailcow
cd /opt/mailcow
git clone https://github.com/mailcow/mailcow-dockerized.git mailcow
cd mailcow

4. Vygenerujte konfiguraci

./generate_config.sh

5. Tento skript vytvoří soubor mailcow.conf, který můžete upravit podle svých potřeb:

nano mailcow.conf

Vyhledej řádek:

SKIP_UNBOUND_HEALTHCHECK=n

SKIP_LETS_ENCRYPT=n

A změň ho na:

SKIP_UNBOUND_HEALTHCHECK=y

SKIP_LETS_ENCRYPT=y

Restartuj kontejnery Mailcow

Aby se změny projevily, restartuj kontejnery:

docker-compose down
docker-compose up -d

6. Spuštění Mailcow

Stáhněte potřebné kontejnery a spusťte Mailcow:

docker-compose pull
docker-compose up -d

7. Ověřte, zda kontejnery běží:

docker ps

8. Přístup k administraci

Otevřete svůj prohlížeč a přejděte na adresu, kterou jste nastavili v mailcow.conf (například https://yourdomain.com).

admin / moohoo

Zabezpečení Mailcow file2ban, přihlášení jen z CZ

Zabezpečení Mailcow file2ban, přihlášení jen z CZ

Zabezpečení Mailcow file2ban, přihlášení jen z CZ

  1. Nainstalovat geoip databázi:
apt install fail2ban
apt install geoip-database
apt install fail2ban geoip-database geoip-bin

Vytvoříme složku pro filtry, pokud neexistuje:

mkdir -p /etc/fail2ban/filter.d

2. Vytvořit nový filter pro fail2ban:

nano /etc/fail2ban/filter.d/non-cz.conf

S obsahem:

[Definition]
failregex = <HOST> .* [client .* ".*"$ !country=CZ
ignoreregex =
  1. Vytvořit jail konfiguraci:
mkdir -p /etc/fail2ban/jail.d
nano /etc/fail2ban/jail.d/non-cz.conf

S obsahem:

[non-cz]
enabled = true
filter = non-cz
logpath = /var/log/auth.log
bantime = 86400
findtime = 600
maxretry = 1
  1. Restartovat fail2ban:
systemctl restart fail2ban

Pravda, pojďme to udělat jednodušeji. Vytvořím vám jednoduchý skript, který uložíte do /root/check-ssh.sh a budete moct kdykoli spustit, abyste viděl, kdo se snažil připojit:

bash
cat > /root/check-ssh.sh << 'EOF' #!/bin/bash echo "=== Pokusy o SSH přihlášení ===" journalctl | grep sshd | grep -i "failed\|invalid\|error" | tail -n 20 echo "" echo "=== Blokované IP adresy ===" iptables -L INPUT -n -v | grep DROP EOF

Pak ho uděláte spustitelným:

bash
chmod +x /root/check-ssh.sh

A kdykoli budete chtít zkontrolovat pokusy o přihlášení, stačí napsat:

bash
/root/check-ssh.sh