for some fuckass reason this part of the readme never got uploaded
This commit is contained in:
1 parent
f4a271a720
commit
39d0f88abf
1 file changed
+34
-10
@@ -3,7 +3,7 @@
|
|||||||
BullMail is a no-bullshit solution to setup an E-Mail server on a Debian/Ubuntu shitbox.
|
BullMail is a no-bullshit solution to setup an E-Mail server on a Debian/Ubuntu shitbox.
|
||||||
|
|
||||||
## Now updated to work with Debian 13 Trixie
|
## Now updated to work with Debian 13 Trixie
|
||||||
If you ran this script before, simply run it again. Just a heads up, it will generate new DKIM keys. I recommend you generate new ones otherwise this shit might break.
|
If you ran this script before, simply run it again. Just a heads up, it will generate new DKIM keys. I recommend you generate new ones otherwise this shit might break. If you need it to work on Debian 12, please clone this revision instead:
|
||||||
|
|
||||||
## What it does
|
## What it does
|
||||||
- Creates an `SMTP` server (`postfix`, to send and receive E-Mails)
|
- Creates an `SMTP` server (`postfix`, to send and receive E-Mails)
|
||||||
@@ -44,12 +44,30 @@ Log onto your registrar and set and A and AAAA record onto your domain that poin
|
|||||||
|
|
||||||
Now, you want to point these records in a way that `mail.yourdomain.com` resolves to your server's IP.
|
Now, you want to point these records in a way that `mail.yourdomain.com` resolves to your server's IP.
|
||||||
|
|
||||||
|
Now, make sure to also add this TXT record (this TXT records have no name. Input `@` if it forces you to put a name in):
|
||||||
|
```
|
||||||
|
v=spf1 mx a:mail.yourdomain.com ip4:51.79.70.119 ip6:2607:5300:205:200::35c2 -all
|
||||||
|
```
|
||||||
|
|
||||||
|
Also add this record. Give it the `_dmarc` name.
|
||||||
|
```
|
||||||
|
v=DMARC1; p=reject; rua=mailto:postmaster@yourdomain.com; fo=1
|
||||||
|
```
|
||||||
|
Replace the domain, ip4 and ip6 with your own.
|
||||||
|
|
||||||
|
Lastly, add this `MX` record to your domain:
|
||||||
|
```
|
||||||
|
mail.yourdomain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
If it asks for a distance/priority parameter, input `10`.
|
||||||
|
|
||||||
**Keep your domain's DNS manager open, we're not done with it.**
|
**Keep your domain's DNS manager open, we're not done with it.**
|
||||||
|
|
||||||
## Step 2
|
## Step 2
|
||||||
Go to your host's server configuration panel and set the rDNS (Reverse DNS) to `mail.yourdomain.com` (obviously, replace `yourdomain.com` with your own). This helps some exotic mail servers to perceive your E-Mails as not spam. After setting up the rDNS, restart the server and run this from your local machine:
|
Go to your host's server configuration panel and set the rDNS (Reverse DNS) to `mail.yourdomain.com` (obviously, replace `yourdomain.com` with your own). This helps some exotic mail servers to perceive your E-Mails as not spam. After setting up the rDNS, restart the server and run this from your local machine:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
will@fuckedmachine:~$ ping yourdomain.com
|
will@fuckedmachine:~$ ping yourdomain.com
|
||||||
PING yourdomain.com (x.x.x.x) 56(84) bytes of data.
|
PING yourdomain.com (x.x.x.x) 56(84) bytes of data.
|
||||||
64 bytes from mail.yourdomain.com (x.x.x.x): icmp_seq=1 ttl=52 time=13.4 ms
|
64 bytes from mail.yourdomain.com (x.x.x.x): icmp_seq=1 ttl=52 time=13.4 ms
|
||||||
@@ -63,26 +81,26 @@ The 3rd line is the interesting part. It should say `64 bytes from mail.yourdoma
|
|||||||
|
|
||||||
## Step 3
|
## Step 3
|
||||||
SSH onto your shitbox and become root
|
SSH onto your shitbox and become root
|
||||||
```
|
```sh
|
||||||
sudo su
|
sudo su
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 4
|
## Step 4
|
||||||
Create your mail user. Note that all users with the `mail` group will be able to send and receive mail.
|
Create your mail user. Note that all users with the `mail` group will be able to send and receive mail.
|
||||||
```
|
```sh
|
||||||
useradd -m yourname -G mail
|
useradd -m yourname -G mail
|
||||||
passwd yourname
|
passwd yourname
|
||||||
```
|
```
|
||||||
|
|
||||||
OR... If you already have an user that you use (say, `will`), do this instead:
|
OR... If you already have an user that you use (say, `will`), do this instead:
|
||||||
```
|
```sh
|
||||||
usermod -aG mail will
|
usermod -aG mail will
|
||||||
```
|
```
|
||||||
`-aG` tells your stupid server "hey, `mail` is a secondary group for `will`!" `-G` says it's the primary group.
|
`-aG` tells your stupid server "hey, `mail` is a secondary group for `will`!" `-G` says it's the primary group.
|
||||||
|
|
||||||
## Step 5
|
## Step 5
|
||||||
Run these commands (don't run `bullmail.sh` quite yet you moron)
|
Run these commands (don't run `bullmail.sh` quite yet you moron)
|
||||||
```
|
```sh
|
||||||
git clone https://git.lolcat.ca/lolcat/bullmail
|
git clone https://git.lolcat.ca/lolcat/bullmail
|
||||||
cd bullmail/script
|
cd bullmail/script
|
||||||
chmod +x bullmail.sh
|
chmod +x bullmail.sh
|
||||||
@@ -90,7 +108,7 @@ chmod +x bullmail.sh
|
|||||||
|
|
||||||
## Step 6
|
## Step 6
|
||||||
Edit `bullmail.sh` and change the variables at the top to what matches your configuration. In my case, this is what I used:
|
Edit `bullmail.sh` and change the variables at the top to what matches your configuration. In my case, this is what I used:
|
||||||
```
|
```ini
|
||||||
#
|
#
|
||||||
# Input your settings here
|
# Input your settings here
|
||||||
#
|
#
|
||||||
@@ -106,11 +124,11 @@ I know this is not the first time you're trying to install a mail server. Make s
|
|||||||
|
|
||||||
## Step 8
|
## Step 8
|
||||||
Run the script. Make sure you're root and inside the `script` folder
|
Run the script. Make sure you're root and inside the `script` folder
|
||||||
```
|
```sh
|
||||||
./bullmail.sh
|
./bullmail.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Wait for it to complete. Trust the plan.
|
Wait for it to complete. Trust the plan. When postfix asks questions, pick "Internet site" and when it asks for a domain enter `yourdomain.com` (obviously, replace yourdomain.com with your own domain. Don't add `mail.` in front of it)
|
||||||
|
|
||||||
## Step 9
|
## Step 9
|
||||||
The script should output something like this at the end:
|
The script should output something like this at the end:
|
||||||
@@ -122,7 +140,10 @@ mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
|
|||||||
Bye!
|
Bye!
|
||||||
```
|
```
|
||||||
|
|
||||||
In your DNS settings of your domain, create a TXT record called `mail._domainkey` with the value `v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvrB...` (truncated)
|
In your DNS settings of your domain, create a TXT record called `mail._domainkey` with this shit in it. Notice how you need to remove the weird quotes the script outputs after `k=rsa; "`. Example:
|
||||||
|
```
|
||||||
|
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvrB... (truncated)
|
||||||
|
```
|
||||||
|
|
||||||
Make sure to copy-paste what the script outputs, not the bullshit I gave as an example, you moron.
|
Make sure to copy-paste what the script outputs, not the bullshit I gave as an example, you moron.
|
||||||
|
|
||||||
@@ -163,6 +184,9 @@ Content-Transfer-Encoding: 7bit
|
|||||||
test
|
test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Additional configuration
|
||||||
|
`rspamd` is your spam filter. You can tweak it manually to instruct it to block specific E-Mails, depending of your situation.
|
||||||
|
|
||||||
# Screenshots
|
# Screenshots
|
||||||
## Inbox
|
## Inbox
|
||||||

|

|
||||||
|
|||||||
Reference in new issue
Block a user