Kuidas installida väike väike RSS-lugeja FreeBSD 11 FAMP VPS-i
Kas kasutate teistsugust süsteemi? Tiny Tiny RSS Reader on tasuta ja avatud lähtekoodiga isehostitav veebipõhine uudistevoo (RSS/Atom) lugeja ja koondaja, mis on loodud
Oma meiliserveri käitamine võib olla üsna rahuldust pakkuv. Teie vastutate oma andmete eest. See võimaldab teil ka tarnevalikute osas rohkem paindlikkust. Siiski on mõned väljakutsed. Teil on oht avada oma server haavatavustele ja muuta oma serveri potentsiaalseks edastajaks rämpsposti saatjatele.
Kui see on möödas, alustame oma meiliserveri käitamist.
Installimiseks on vaja kolm tarkvara, mis ei sisaldu FreeBSD baassüsteemis:
OpenSMTPd on postiedastusagent (MTA) ja postiedastusagent (MDA). See tähendab, et see suudab SMTP
protokolli kaudu suhelda teiste meiliserveritega ja toimetab ka kirjad üksikute kasutajate postkastidesse. Seadistame OpenSMTPd nii, et see saaks suhelda välisserveritega (filtreeritud rämpsposti kaudu) ja edastada kirju kohalikele kasutajatele, samuti edastada kohalikke kirju kasutajalt kasutajale.
Dovecot on MDA, mis loeb kohalikke postkaste ja teenindab neid kasutajatele IMAP-i või POP3 kaudu. See kasutab selle sisu edastamiseks kohalike kasutajate postkaste.
Rämpspost on e-posti filtreerimisteenus. Saame e-kirju edastada rämpsposti kaudu ja see filtreerib kirjad mitmesuguste mustade, valgete ja hallide loendite alusel.
Selle meiliserveri üldine idee nõuab mõnda erinevat teed:
Outside world -> Firewall -> spamd -> OpenSMTPD -> User mail boxes
Outside world -> Firewall (spamd-whitelist) -> OpenSMTPD -> User mailboxes
Outside world -> Firewall (IMAP/POP3) -> Dovecot
Outside world -> Firewall (SMTPD submission)
Selle õpetuse jaoks kasutame oma tulemüürina OpenBSD PF-i FreeBSD versiooni. Võite kasutada ka ipfw
, mille konfiguratsioon on väga sarnane.
Märkus. Vultr blokeerib vaikimisi pordi 25, mida SMTP-serverid kasutavad kõikjal. Kui soovite käivitada täielikult toimiva meiliserveri, peate selle pordi avama.
Esiteks peame installima vajalikud programmid.
Eeldades, et töötate kasutajana, kellel on seadistatud sudo juurdepääs, saame käivitada järgmised käsud. Need varieeruvad olenevalt sellest, kas kasutate porte või pakette.
Kui te ei vaja nendesse utiliitidesse konkreetseid funktsioone, on soovitatav installida pakettide kaudu. See on lihtsam, võtab vähem serveri aega ja ressursse ning pakub intuitiivset ja kasutajasõbralikku liidest.
sudo pkg install opensmtpd dovecot spamd
Järgmised make
käsud annavad teile palju kompileerimisvalikuid, vaikeseaded töötavad hästi. Ärge muutke neid, kui te ei tea täpselt, mida teete.
sudo portsnap fetch update # or run portsnap fetch extract if using ports for the first time
cd /usr/ports/mail/opensmtpd
make install # Installs openSMTPd
make clean
cd /usr/ports/mail/dovecot
make install # Installs dovecot
make clean
cd /usr/ports/mail/spamd
make install # Installs spamd
make clean
Peame lisama järgmised read /etc/rc.conf
:
pf_enable="YES"
pf_rules="/usr/local/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
obspamd_enable="YES"
obspamd_flags="-v"
obspamlogd_enable="YES"
dovecot_enable="YES"
PF konfigureerimiseks saame luua oma /usr/local/etc/pf.conf
:
## Set public interface ##
ext_if="vtnet0"
## set and drop IP ranges on the public interface ##
martians = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \
10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \
0.0.0.0/8, 240.0.0.0/4 }"
table <spamd> persist
table <spamd-white> persist
# Whitelisted webmail services
table <webmail> persist file "/usr/local/etc/pf.webmail.ip.conf"
## Skip loop back interface - Skip all PF processing on interface ##
set skip on lo
## Sets the interface for which PF should gather statistics such as bytes in/out and packets passed/blocked ##
set loginterface $ext_if
# Deal with attacks based on incorrect handling of packet fragments
scrub in all
# Pass spamd whitelist
pass quick log on $ext_if inet proto tcp from <spamd-white> to $ext_if port smtp \
-> 127.0.0.1 port 25
# Pass webmail servers
rdr pass quick log on $ext_if inet proto tcp from <gmail> to $ext_if port smtp \
-> 127.0.0.1 port 25
# pass submission messages.
pass quick log on $ext_if inet proto tcp from any to $ext_if port submission modulate state
# Pass unknown mail to spamd
rdr pass log on $ext_if inet proto tcp from {!<spamd-white> <spamd>} to $ext_if port smtp \
-> 127.0.0.1 port 8025
## Blocking spoofed packets
antispoof quick for $ext_if
## Set default policy ##
block return in log all
block out all
# Drop all Non-Routable Addresses
block drop in quick on $ext_if from $martians to any
block drop out quick on $ext_if from any to $martians
pass in inet proto tcp to $ext_if port ssh
# Allow Ping-Pong stuff. Be a good sysadmin
pass inet proto icmp icmp-type echoreq
# Open up imap/pop3 support
pass quick on $ext_if proto tcp from any to any port {imap, imaps, pop3, pop3s} modulate state
# Allow outgoing traffic
pass out on $ext_if proto tcp from any to any modulate state
pass out on $ext_if proto udp from any to any keep state
See on töötav PF konfiguratsioon. See on suhteliselt lihtne, kuid seletada tuleb ka mõningaid veidrusi.
Esiteks määratleme oma $ext_if
muutuja, mida meie vtnet0
seade hiljem kasutada saab. Samuti määratleme kehtetud IP-aadressid, mis tuleks välisele liidesele jätta.
Samuti määratleme kaks tabelit spamd
ja spamd-white
- need kaks tabelit loob rämpspost selle vaikekonfiguratsioonis. Samuti määratleme tabeli nimega, webmail
mida kasutame mõne suurema veebimeiliteenuse pakkujate kaudu pääsemiseks.
Tabeli vaatamiseks saate kasutada käsku, pfctl -t tablename -T show
et loetleda tabeli elemendid.
Seadsime mõned PF-reeglid: jätke töötlemine kohalikus liideses vahele, lubage välise liidese statistika ja puhastage sissetulevaid pakette.
Järgmine on üks olulisemaid osi, kus haldame oma liikluse saatmist rämpsposti või OpenSMTPd kaudu.
Esiteks on ümbersuunamisreegel (pange tähele siinset süntaksit, FreeBSD 11 kasutab vanemat stiilis PF süntaksit (enne OpenBSD 4.6), nii et süntaks võib tunduda veider. Kui saame smtp-s midagi spamd
tabelis loetletud või tabelis loetletud hostilt spamd-white
tabeli suuname ühendus läbi kuni spamd deemon, mis tegeleb nende ühendusi. Järgmised kolm reeglid on läbipääs reeglid, nii et me saame tegelikult vastu posti. me läbida sõnumeid IP loetletud spamd-white
ja webmail
tabelid otse läbi OpenSMTPd. Samuti aktsepteerime sõnumeid esitamispordis ( 587
).
Seejärel on mõned majapidamisreeglid meie vaikepoliitika määramiseks ning SSH- ja ICMP-sõnumite aktsepteerimiseks.
Seejärel edastame Dovecotile juurdepääsu saamiseks oma välise liidese IMAP ja POP3.
Lõpuks lubame kogu väljuva liikluse. Kui soovite lisada täiendavat turvalisust, võite piirata läbitavaid porte, kuid ühekordselt kasutatava serveri jaoks pole probleem kõike läbida.
Käivitage PF:
sudo service pf start
Nüüd, kui tulemüür on seadistatud, saame liikuda edasi oma meiliserveri konfiguratsiooni juurde.
OpenSMTPd-l on väga lihtne ja hõlpsasti loetav konfiguratsiooni süntaks. Terve töökonfiguratsioon mahub 14 reale, nagu näete allpool:
#This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.
ext_if=vtnet0
# If you edit the file, you have to run "smtpctl update table aliases"
table aliases file:/etc/mail/aliases
table domains file:/etc/mail/domains
# Keys
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
# If you want to listen on multiple subdomains (e.g. mail.davidlenfesty) you have to add more lines
# of keys, and more lines of listeners
# Listen for local SMTP connections
listen on localhost hostname mail.example.com
# listen for filtered spamd connections
listen on lo0 port 10026
# Listen for submissions
listen on $ext_if port 587 tls-require auth pki mail.example.com tag SUBMITTED
# Accept mail from external sources.
accept from any for domain <domains> alias <aliases> deliver to maildir "~/mail"
accept for local alias <aliases> deliver to maildir "~/mail"
accept from local for any relay tls
accept tagged SUBMITTED for any relay tls
Esiteks määratleme uuesti oma välise liidese, samuti mõned tabelid, varjunimed ja domeenid. Seejärel liigume edasi SSL-võtme ja sertifikaadi juurde kõigi domeenide jaoks, mille all soovime kirju käsitleda.
In the next section, we define the interfaces and ports we want to listen on. Firstly, we listen on localhost for our mail.example.com
domain, for any local connections. Then we listen for our spamd-filtered messages and submitted messages on the external interface. Lastly, we listen for submissions, these happen on port 587
and we are requiring them to authenticate, for security reasons.
Lastly are our accept
settings. We accept any message for any of our domains defined in our domains
table for aliases in our aliases
table, to deliver to their home directory in the maildir
format. Then we accept all local connections for local mailboxes and relay out our messages, so we can send email. Lastly, we accept our submitted messages to relay. If we didn't require authentication for our submissions port, this would be a big security hazard. This would let anyone use our server as a spam relay.
FreeBSD ships with a default alias file /etc/mail/aliases
in the following format:
vuser1: user1
vuser2: user1
vuser3: user1
vuser4: user2
This defines the different mail boxes, and where we want to forward messages sent to these defined mailboxes. We can either define our users as local system users or external mailboxes to forward to. The default FreeBSD file is quite descriptive so you can refer to that for reference.
FreeBSD does not supply a default domains file, but this is incredibly simple:
# Domains
example.com
mail.example.com
smtp.example.com
This is just a plain text file with each domain you want to listen to on a new line. You can make a comment using the #
symbol. This file exists simply so that you can use fewer lines of configuration.
There are two ways to be able to secure your communications with your mail server, self-signed and signed certificates. It is certainly possible to self-sign your certificates, however services like Let's Encrypt provide free and incredibly easy to use signing.
First we have to install the certbot program.
sudo pkg install py-certbot
Alternatively, it can be installed with ports:
cd /usr/ports/security/py-certbot
make install
make clean
Then, to get your certificate, you need to make sure you have opened up port 80
on your external interface. Add the following lines somewhere in your filtering rules in /usr/local/etc/pf.conf
:
pass quick on $ext_if from any to any port http
Then run pfctl -f /usr/local/etc/pf.conf
to reload the ruleset.
Then you can run the command for any domains you want to get a certificate for:
certbot certonly --standalone -d mail.example.com
It is recommended to set up a crontab entry to run certbot renew
once every 6 months to ensure your certificates don't expire.
Then for every relevant domain, you can modify the lines to point to the correct key file:
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
Edit the securities:
sudo chmod 700 /usr/local/etc/letsencrypt/archive/mail.example.com/*
Note: You will have to do this for each original keyfile or else OpenSMTPd won't open them.
Now we can start the service:
sudo service smtpd start
Here we are using OpenBSD's spamd daemon to reduce the amount of spam we get from the internet. Essentially, this filters out messages from IPs that are known as bad from various spam sources, as well as (by default) "greylisting" incoming connections. Spamd also tries to waste spammer's timme by "stuttering" blacklisted and greylisted connections, which means it spreads out it's response over several seconds which forces the client to stay open for longer than usual.
Ühenduse halliloendisse lisamine toimub siis, kui ühendub mõni uus IP-aadress, mis pole üheski mustas ega valges nimekirjas. Kui uus aadress on ühenduse loonud, jätab spamd kahjutu tõrketeatega sõnumi maha ja lisab selle seejärel ajutisse loendisse. Kuna rämpspostitajad saavad kätte toimetatud kirjade eest tasu, ei proovi nad vea korral uuesti, samas kui seaduslik teenus proovib suhteliselt kiiresti uuesti.
Paigaldamiseks peate käivitama järgmise fdescfs
:
mount -t fdescfs null /dev/fd
Seejärel peate selle rea lisama /etc/fstab
:
fdescfs /dev/fd fdescfs rw 0 0
Vaikimisi konfiguratsioonifail (leitud /usr/local/etc/spamd/spamd.conf.sample
) töötab hästi. Saate seda redigeerida, et lisada uusi allikaid või muuta kasutatavaid allikaid.
sudo cp /usr/local/etc/spamd/spamd.conf.sample /usr/local/etc/spamd/spamd.conf
Saame teenust alustada järgmisega:
sudo service obspamd start
Sel hetkel on rämpspost seadistatud.
Üks halli loendi lähenemisviisi probleem on see, et suured meiliteenused saadavad sageli kirju ühe paljudest erinevatest spoolidest ja te ei saa garanteerida, et iga kord saadab kirja sama server. Üks lahendus sellele on lisada erinevate veebimeiliteenuste kasutatavad IP-vahemikud valgesse nimekirja. Selleks kasutatakse PF-i konfiguratsioonis veebimeili tabelit. See strateegia võib anda tagasilöögi, kui lisate rämpspostitaja kasutatava IP-aadressi, kuid seni, kuni olete tabelisse lisatavate vahemike suhtes ettevaatlik, on kõik korras.
Meilivahemiku lisamiseks veebimeili tabelisse saate käivitada järgmise käsu:
pfctl -t webmail -T add 192.0.2.0/24
Kui soovite, et kasutajad pääseksid oma kirjadele juurde ilma SSH kaudu sisse logimata, vajate MDA-d, mis toetab IMAP-i ja/või POP3. Väga populaarne programm on Dovecot, millel on üsna lihtne konfiguratsioon ja võimsad funktsioonid.
Saame kopeerida vaikekonfiguratsiooni:
cd /usr/local/etc/dovecot
cp -R example-config/* ./
Konfiguratsioon koosneb üsna paljudest erinevatest failidest. Konfiguratsiooni ja tuvipuu vaikeseadete vaheliste erinevuste nägemiseks käivitage allolev käsk:
sudo doveconf -n
Järgmine on lihtne ja töötav konfiguratsioon:
# 2.3.2.1 (0719df592): /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 11.2-RELEASE amd64
# Hostname: mail.example.com
hostname = mail.example.com
mail_location = maildir:~/mail
namespace inbox {
inbox = yes
location =
mailbox Archive {
auto = create
special_use = \Archive
}
mailbox Archives {
auto = create
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = create
autoexpunge = 60 days
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Mail" {
auto = no
special_use = \Sent
}
mailbox "Sent Messages" {
auto = no
special_use = \Sent
}
mailbox Spam {
auto = no
special_use = \Junk
}
mailbox Trash {
auto = no
autoexpunge = 90 days
special_use = \Trash
}
prefix =
separator = /
}
passdb {
args = imap
driver = pam
}
ssl = required
ssl_cert = </usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_dh = </usr/local/etc/dovecot/dh.pem
ssl_key = </usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem
userdb {
driver = passwd
}
Enamik konfiguratsioonifaile on sees conf.d
Olulisemad on 10-auth.conf
, 10-mail.conf
, ja 10-ssl.conf
.
Saate konfigureerida erinevaid postkaste, mida kasutate rakenduses 15-mailboxes.conf
. See, mida näete ülal, on paljude süsteemide jaoks hea konfiguratsioon, kuid teie läbisõit võib erineda. Soovitatav on sellega mängida nii paljude erinevate klientidega kui võimalik.
Enamik vaikeseadeid on õiged. Kui soovite autentimiseks kasutada süsteemikasutajaid, peate redigeerima 10-auth.conf
.
Tühista järgmise rea kommentaarid:
!include auth-system.conf.ext
Peame genereerima Diffie-Hellmani parameetrid:
sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem
Märkus. Selle käivitamine võtab kaua aega. Palju kauem, kui võite oodata.
Nüüd saame Dovecoti käivitada:
sudo service dovecot start
Praegu on meil toimiv, turvaline ja suhteliselt rämpspostivaba meiliserver.
Veel mõned asjad, mida siit uurida, on SpamAssassini kasutamine rämpspostist heuristiliseks vabanemiseks, samuti rämpsposti mustade nimekirjade leidmine, mille on koostanud usaldusväärsed allikad.
Kas kasutate teistsugust süsteemi? Tiny Tiny RSS Reader on tasuta ja avatud lähtekoodiga isehostitav veebipõhine uudistevoo (RSS/Atom) lugeja ja koondaja, mis on loodud
Kas kasutate teistsugust süsteemi? Wiki.js on tasuta avatud lähtekoodiga kaasaegne vikirakendus, mis on üles ehitatud Node.js-ile, MongoDB-le, Gitile ja Markdownile. Wiki.js lähtekood on avalik
Kas kasutate teistsugust süsteemi? Pagekit 1.0 CMS on ilus, modulaarne, laiendatav ja kerge, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS).
Kas kasutate teistsugust süsteemi? MODX Revolution on kiire, paindlik, skaleeritav avatud lähtekoodiga ettevõttetasemel sisuhaldussüsteem (CMS), mis on kirjutatud PHP-s. See i
See artikkel juhendab teid OpenBSD 5.5 (64-bitise) seadistamise kaudu KVM-is Vultr VPS-iga. Samm 1. Logige Vultri juhtpaneelile sisse. Samm 2. Klõpsake nuppu DEPLOY
Kas kasutate teistsugust süsteemi? osTicket on avatud lähtekoodiga klienditoe piletimüügisüsteem. osTicketi lähtekoodi majutatakse avalikult Githubis. Selles õpetuses
Kas kasutate teistsugust süsteemi? Flarum on tasuta ja avatud lähtekoodiga järgmise põlvkonna foorumitarkvara, mis muudab veebiarutelu lõbusaks. Flarum lähtekoodi majutatakse o
Kas kasutate teistsugust süsteemi? TLS 1.3 on transpordikihi turvalisuse (TLS) protokolli versioon, mis avaldati 2018. aastal RFC 8446 pakutud standardina.
Sissejuhatus WordPress on Internetis domineeriv sisuhaldussüsteem. See võimaldab kõike alates ajaveebidest kuni keeruliste dünaamilise sisuga veebisaitideni
Kas kasutate teistsugust süsteemi? Subrion 4.1 CMS on võimas ja paindlik avatud lähtekoodiga sisuhaldussüsteem (CMS), mis pakub intuitiivset ja selget sisu
See õpetus näitab teile, kuidas konfigureerida DNS-teenust, mida on lihtne hooldada, lihtne konfigureerida ja mis on üldiselt turvalisem kui klassikaline BIN.
FEMP-pinn, mis on võrreldav LEMP-pinuga Linuxis, on avatud lähtekoodiga tarkvara kogum, mis tavaliselt installitakse koos FreeBS-i lubamiseks.
MongoDB on maailmatasemel NoSQL-i andmebaas, mida kasutatakse sageli uuemates veebirakendustes. See pakub suure jõudlusega päringuid, jagamist ja replikatsiooni
Kas kasutate teistsugust süsteemi? Monica on avatud lähtekoodiga isiklike suhete haldussüsteem. Mõelge sellele kui CRM-ile (populaarne tööriist, mida kasutavad müügimeeskonnad th
Introduction This tutorial demonstrates OpenBSD as an e-commerce solution using PrestaShop and Apache. Apache is required because PrestaShop has complex UR
Kas kasutate teistsugust süsteemi? Fork on avatud lähtekoodiga CMS, mis on kirjutatud PHP-s. Forksi lähtekoodi hostitakse GitHubis. See juhend näitab teile, kuidas Fork CM-i installida
Kas kasutate teistsugust süsteemi? Directus 6.4 CMS on võimas ja paindlik, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS), mis pakub arendajatele
VPS-serverid on sageli sissetungijate sihikule. Levinud ründetüüp kuvatakse süsteemilogides sadade volitamata ssh-i sisselogimiskatsetena. Seadistan
Sissejuhatus OpenBSD 5.6 tutvustas uut deemonit nimega httpd, mis toetab CGI-d (FastCGI kaudu) ja TLS-i. Uue http installimiseks pole vaja täiendavat tööd teha
See õpetus näitab teile, kuidas installida grupitöö iRedMail värskele FreeBSD 10 installile. Peaksite kasutama serverit, millel on vähemalt üks gigabaid
Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.
Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.
Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.
Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.
Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…
Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.
Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.
Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.
Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.
Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit