Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään
Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu
Oman sähköpostipalvelimen käyttäminen voi olla varsin palkitsevaa. Olet vastuussa tiedoistasi. Se antaa sinulle myös enemmän joustavuutta toimitusvaihtoehtojesi kanssa. Haasteita on kuitenkin muutamia. Voit avata palvelimesi haavoittuvuuksille ja tehdä palvelimestasi potentiaalisen välittäjän roskapostittajille.
Kun se on poissa tieltä, ryhdytään käyttämään omaa sähköpostipalvelintamme.
Asennettavana on kolme vaadittua ohjelmistoa, jotka eivät sisälly FreeBSD-perusjärjestelmään:
OpenSMTPd on postinsiirtoagentti (MTA) ja postin jakeluagentti (MDA). Tämä tarkoittaa, että se voi kommunikoida muiden sähköpostipalvelimien kanssa SMTP
protokollan kautta, ja se hoitaa myös postin toimittamisen yksittäisten käyttäjien postilaatikoihin. Asennamme OpenSMTPd:n niin, että se voi kommunikoida ulkoisten palvelimien kanssa (suodatettu roskapostin kautta) ja toimittaa postia paikallisille käyttäjille sekä paikallista postia käyttäjiltä käyttäjille.
Dovecot on MDA, joka lukee paikallisia postilaatikoita ja palvelee niitä käyttäjille IMAP- tai POP3-yhteyden kautta. Se käyttää tämän sisällön tarjoamiseen paikallisten käyttäjien postilaatikoita.
Roskaposti on postin suodatuspalvelu. Voimme lähettää sähköpostit edelleen roskapostin kautta, ja se suodattaa sähköpostit useiden mustien, sallittujen ja harmaiden listojen perusteella.
Tämän sähköpostipalvelimen yleinen idea vaatii muutaman eri polun:
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)
Tässä opetusohjelmassa käytämme palomuurissamme OpenBSD:n PF:n FreeBSD-versiota. Voit myös käyttää ipfw
, jos kokoonpano on hyvin samanlainen.
Huomautus: Vultr oletusarvoisesti estää portin 25, jota SMTP-palvelimet käyttävät kaikkialla. Jos haluat käyttää täysin toimivaa sähköpostipalvelinta, sinun on avattava kyseinen portti.
Ensin meidän on asennettava tarvittavat ohjelmat.
Olettaen, että käytät käyttäjänä, jolla on sudo-käyttöoikeus, voimme suorittaa seuraavat komennot. Ne vaihtelevat sen mukaan, käytätkö portteja vai paketteja.
Ellet tarvitse erityisiä toimintoja näihin apuohjelmiin, on suositeltavaa asentaa pakettien kautta. Se on helpompaa, vie vähemmän palvelimen aikaa ja resursseja ja tarjoaa intuitiivisen, käyttäjäystävällisen käyttöliittymän.
sudo pkg install opensmtpd dovecot spamd
Seuraavat make
komennot antavat sinulle paljon käännösvaihtoehtoja, oletusasetukset toimivat hyvin. Älä muuta näitä, ellet tiedä tarkalleen mitä olet tekemässä.
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
Meidän on lisättävä seuraavat rivit kohteeseen /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"
Voit määrittää PF:n luomalla /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
Tämä on toimiva PF-kokoonpano. Se on suhteellisen yksinkertainen, mutta siinä on myös joitain yksityiskohtia, jotka on selitettävä.
Ensin määritämme $ext_if
muuttujamme vtnet0
laitteellemme käytettäväksi myöhemmin. Määrittelemme myös virheelliset IP-osoitteet, jotka tulee pudottaa ulkoiseen käyttöliittymään.
Määrittelemme myös kaksi taulukkoa, spamd
ja spamd-white
- nämä kaksi taulukkoa on luonut spamd oletuskokoonpanossaan. Lisäksi määrittelemme taulukon, webmail
jota käytämme salliaksemme joidenkin suurten webmail-palveluntarjoajien läpi.
Voit tarkastella taulukkoa komennolla pfctl -t tablename -T show
listaamalla taulukon elementit.
Asetamme muutamia PF-sääntöjä: ohita paikallisen käyttöliittymän käsittely, ota tilastot käyttöön ulkoisessa rajapinnassa ja pyyhi saapuvat paketit.
Seuraava on yksi tärkeimmistä osista, jossa hallitsemme liikenteen lähettämisen roskapostiin tai OpenSMTPd:hen.
Ensinnäkin on uudelleenohjaussääntö (huomaa syntaksi tässä, FreeBSD 11 käyttää vanhempaa tyyliä PF-syntaksia (pre-OpenBSD 4.6), joten syntaksi voi tuntua oudolta. Jos saamme jotain smtp:ssä spamd
taulukossa mainitulta isännältä tai jota ei ole mainittu spamd-white
pöydän, me ohjata yhteyden läpi spamd daemon, joka käsittelee näitä yhteyksiä. Seuraavat kolme säännöt ovat läpäisy sääntöjä, jotta voimme todella vastaanottaa postia. Kuljemme viestejä IP luetelluista spamd-white
ja webmail
taulukot suoraan läpi OpenSMTPd. Hyväksymme myös lähetysportin ( 587
) viestit .
Sitten on muutama siivoussääntö oletuskäytäntömme määrittämiseksi ja SSH- ja ICMP-viestien hyväksymiseksi.
Välitämme sitten IMAP:n ja POP3:n ulkoisessa käyttöliittymässämme päästäksemme Dovecotiin.
Lopuksi sallimme kaiken lähtevän liikenteen. Jos haluat lisätä suojausta, voit rajoittaa ohitettavia portteja, mutta kertakäyttöiselle palvelimelle ei ole ongelma ohittaa kaikkea.
Aloita PF:
sudo service pf start
Nyt kun palomuurimme on asennettu, voimme siirtyä sähköpostipalvelimemme kokoonpanoon.
OpenSMTPd:llä on hyvin yksinkertainen ja helposti luettava määrityssyntaksi. Koko toimiva kokoonpano mahtuu 14 riville, kuten näet alla:
#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
Ensinnäkin määritämme jälleen ulkoisen käyttöliittymämme sekä muutaman taulukon, aliaksen ja verkkotunnuksen. Sitten siirrymme SSL-avaimeen ja varmenteeseen kaikille verkkotunnuksille, joilla haluamme käsitellä postia.
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.
Greylisting a connection is done when any new IP address connects that isn't on any blacklist or whitelist. Once the new address connects, spamd drops the message with an inocuous error message, then it adds it to a temporary list. Because spammers get paid for delivered messages, they will not retry on an error, whereas a legitimate service will retry relatively soon.
You will have to run the following to mount fdescfs
:
mount -t fdescfs null /dev/fd
Then you will have to add this line to /etc/fstab
:
fdescfs /dev/fd fdescfs rw 0 0
The default config file (found in /usr/local/etc/spamd/spamd.conf.sample
) will work fine. You can edit it to add new sources or change the sources you use:
sudo cp /usr/local/etc/spamd/spamd.conf.sample /usr/local/etc/spamd/spamd.conf
We can start the service with the following:
sudo service obspamd start
At this point spamd is set up.
One problem with the greylisting approach is that large mail services will often send mail out through one of many different spools, and you aren't guaranteed to get the same server sending the message every time. One solution to this is to whitelist the IP ranges used by various webmail services. This is what the webmail table is used for in the PF configuration. This strategy can backfire if you include an IP address a spammer uses, but as long as you are careful with what ranges you put in the table you will be fine.
To add an email range to the webmail table, you can run the following command:
pfctl -t webmail -T add 192.0.2.0/24
If you want users to access their mail without logging in via SSH, you'll need an MDA that supports IMAP and/or POP3. A very popular program is Dovecot, with a fairly simple configuration and powerful features.
Voimme kopioida oletuskokoonpanon:
cd /usr/local/etc/dovecot
cp -R example-config/* ./
Kokoonpano koostuu useista eri tiedostoista. Jos haluat nähdä erot kokoonpanosi ja kyyhkysen oletusarvojen välillä, suorita alla oleva komento:
sudo doveconf -n
Seuraava on yksinkertainen, toimiva kokoonpano:
# 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
}
Suurin osa asetustiedostoista tulee sisään conf.d
Tärkeimmät ovat 10-auth.conf
, 10-mail.conf
, ja 10-ssl.conf
.
Voit määrittää eri postilaatikoita, joita käytät -sovelluksessa 15-mailboxes.conf
. Yllä näkemäsi kokoonpano on hyvä monille järjestelmille, mutta mittarilukema voi vaihdella. On suositeltavaa, että pelaat tämän kanssa mahdollisimman monen eri asiakkaan kanssa.
Useimmat oletusasetukset ovat oikein. Jos haluat käyttää järjestelmän käyttäjiä todentamiseen, sinun on muokattava 10-auth.conf
.
Poista seuraavan rivin kommentti:
!include auth-system.conf.ext
Meidän on luotava Diffie-Hellman-parametrit:
sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem
Huomautus: Tämän suorittaminen kestää kauan. Paljon kauemmin kuin saatat odottaa.
Voimme nyt käynnistää Dovecotin:
sudo service dovecot start
Tällä hetkellä meillä on toimiva, turvallinen ja suhteellisen roskapostiton sähköpostipalvelin.
Joitakin muita asioita, joita kannattaa tutkia täältä, ovat SpamAssassinin käyttäminen roskapostin heuristiseen poistamiseen sekä lisää roskapostin mustia listoja luotetuilta lähteiltä.
Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu
Käytätkö erilaista järjestelmää? Wiki.js on ilmainen ja avoimen lähdekoodin moderni wikisovellus, joka on rakennettu Node.js:lle, MongoDB:lle, Gitille ja Markdownille. Wiki.js-lähdekoodi on julkinen
Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on
Käytätkö erilaista järjestelmää? MODX Revolution on nopea, joustava, skaalautuva, avoimen lähdekoodin, yritystason sisällönhallintajärjestelmä (CMS), joka on kirjoitettu PHP:llä. Se minä
Tämä artikkeli opastaa sinua määrittämään OpenBSD 5.5 (64-bittinen) KVM:ssä Vultr VPS:n kanssa. Vaihe 1. Kirjaudu Vultr-ohjauspaneeliin. Vaihe 2. Napsauta KÄYTÄ
Käytätkö erilaista järjestelmää? osTicket on avoimen lähdekoodin asiakastuen lippujärjestelmä. osTicket-lähdekoodia isännöidään julkisesti Githubissa. Tässä opetusohjelmassa
Käytätkö erilaista järjestelmää? Flarum on ilmainen ja avoimen lähdekoodin seuraavan sukupolven foorumiohjelmisto, joka tekee online-keskustelusta hauskaa. Flarum-lähdekoodia isännöi o
Käytätkö erilaista järjestelmää? TLS 1.3 on versio TLS (Transport Layer Security) -protokollasta, joka julkaistiin vuonna 2018 RFC 8446 -standardin ehdotuksena.
Johdanto WordPress on hallitseva sisällönhallintajärjestelmä Internetissä. Se tarjoaa kaiken tehon blogeista monimutkaisiin verkkosivustoihin, joissa on dynaamista sisältöä
Käytätkö erilaista järjestelmää? Subrion 4.1 CMS on tehokas ja joustava avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka tuo intuitiivisen ja selkeän sisällön
Tämä opetusohjelma näyttää, kuinka voit määrittää DNS-palvelun, joka on helppo ylläpitää, helppo määrittää ja joka on yleensä turvallisempi kuin perinteinen BIN.
FEMP-pino, joka on verrattavissa LEMP-pinoon Linuxissa, on kokoelma avoimen lähdekoodin ohjelmistoja, jotka tyypillisesti asennetaan yhdessä mahdollistamaan FreeBS.
MongoDB on maailmanluokan NoSQL-tietokanta, jota käytetään usein uudemmissa verkkosovelluksissa. Se tarjoaa korkean suorituskyvyn kyselyitä, jakamista ja replikointia
Käytätkö erilaista järjestelmää? Monica on avoimen lähdekoodin henkilökohtaisten suhteiden hallintajärjestelmä. Ajattele sitä CRM:nä (suosittu työkalu, jota myyntitiimit käyttävät th
Johdanto Tämä opetusohjelma esittelee OpenBSD:n verkkokaupparatkaisuna PrestaShopilla ja Apachella. Apache vaaditaan, koska PrestaShopilla on monimutkainen UR
Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM
Käytätkö erilaista järjestelmää? Directus 6.4 CMS on tehokas ja joustava, ilmainen ja avoimen lähdekoodin päätön sisällönhallintajärjestelmä (CMS), joka tarjoaa kehittäjille
VPS-palvelimet ovat usein tunkeilijoiden kohteena. Yleinen hyökkäystyyppi näkyy järjestelmälokeissa sadoina luvattomina ssh-kirjautumisyrityksinä. Asettaa
Johdanto OpenBSD 5.6 esitteli uuden daemonin nimeltä httpd, joka tukee CGI:tä (FastCGI:n kautta) ja TLS:ää. Uuden http:n asentaminen ei vaadi lisätyötä
Tämä opetusohjelma näyttää, kuinka asennat ryhmätyöohjelman iRedMail uuteen FreeBSD 10:n asennukseen. Sinun tulee käyttää palvelinta, jossa on vähintään yksi gigatavu
Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.
Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.
Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.
Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.
Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…
Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.
Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.
Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.
Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.
Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja