Hvernig á að setja upp Tiny Tiny RSS Reader á FreeBSD 11 FAMP VPS
Að nota annað kerfi? Tiny Tiny RSS Reader er ókeypis og opinn uppspretta sjálf-hýstinn fréttastraumur (RSS/Atom) lesandi og safnari, hannaður til að dreifa
Það getur verið mjög gefandi að reka eigin tölvupóstþjón. Þú hefur umsjón með gögnunum þínum. Það gerir þér líka meiri sveigjanleika með afhendingarvalkostum þínum. Hins vegar eru nokkrar áskoranir. Þú átt á hættu að opna netþjóninn þinn fyrir veikleikum, auk þess að gera netþjóninn þinn að hugsanlegu gengi sem ruslpóstsmiðlarar nota.
Þar sem þetta er ekki í lagi skulum við halda áfram að reka okkar eigin póstþjón.
Það eru þrjú nauðsynleg hugbúnaðarstykki til að setja upp sem eru ekki innifalin í FreeBSD grunnkerfinu:
OpenSMTPd er póstflutningsmiðill (MTA) og póstflutningsmiðill (MDA). Þetta þýðir að það getur átt samskipti við aðra póstþjóna í gegnum SMTP
samskiptareglur og það sér einnig um að koma pósti í pósthólf einstakra notenda. Við munum setja upp OpenSMTPd þannig að það geti átt samskipti við ytri netþjóna (síað í gegnum ruslpóst) og komið pósti til staðbundinna notenda, auk þess að koma staðbundnum pósti frá notanda til notanda.
Dovecot er MDA sem les staðbundin pósthólf og þjónar þeim í gegnum IMAP eða POP3 fyrir notendur. Það mun nota pósthólf staðbundinna notenda til að þjóna þessu efni.
Spamd er póstsíunarþjónusta. Við getum framsent póst í gegnum ruslpóst og það mun sía póst byggt á ýmsum svörtum listum, hvítlistum og gráum lista.
Almenn hugmynd fyrir þennan póstþjón krefst nokkurra mismunandi slóða:
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)
Fyrir þessa kennslu munum við nota FreeBSD útgáfuna af OpenBSD's PF fyrir eldvegginn okkar. Þú getur líka notað ipfw
, þar sem uppsetningin er mjög svipuð.
Athugið: Vultr lokar sjálfgefið á port 25, sem er notað af SMTP netþjónum alls staðar. Ef þú vilt keyra fullkomlega virkan tölvupóstþjón verðurðu að opna þá höfn.
Fyrst þurfum við að setja upp nauðsynleg forrit.
Að því gefnu að þú sért að keyra sem notandi með sudo aðgangsuppsetningu, getum við keyrt eftirfarandi skipanir. Þau eru mismunandi eftir því hvort þú notar höfn eða pakka.
Nema þú þurfir sérstaka virkni innbyggða í þessi tól, er mælt með því að setja upp í gegnum pakka. Það er auðveldara, tekur minni tíma og fjármagn fyrir netþjóninn og veitir leiðandi, notendavænt viðmót.
sudo pkg install opensmtpd dovecot spamd
Eftirfarandi make
skipanir gefa þér fullt af samsetningarvalkostum, sjálfgefnar stillingar virka vel. Ekki breyta þessu nema þú vitir nákvæmlega hvað þú ert að gera.
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
Við þurfum að bæta eftirfarandi línum við /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"
Til að stilla PF getum við búið til /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
Þetta er virka PF stilling. Það er tiltölulega einfalt, en það eru nokkur einkenni sem þarf að útskýra líka.
Í fyrsta lagi skilgreinum við $ext_if
breytuna okkar fyrir vtnet0
tækið okkar til að nota síðar. Við skilgreinum einnig ógildar IP tölur sem ætti að sleppa á ytra viðmótið.
Við skilgreinum líka tvær töflur, spamd
og spamd-white
- þessar tvær töflur eru búnar til af spamd í sjálfgefna stillingu þess. Eins skilgreinum við töflu sem heitir webmail
sem við munum nota til að hleypa nokkrum helstu netpóstveitum í gegn.
Til að skoða töflu geturðu notað skipunina pfctl -t tablename -T show
til að skrá þættina í töflu.
Við setjum nokkrar PF reglur: slepptu vinnslu á staðbundnu viðmóti, virkjaðu tölfræði um ytra viðmót og skrúbbaðu pakka sem berast.
Næst er einn af mikilvægari hlutunum, þar sem okkur tekst að senda umferð okkar í gegnum ruslpóst eða OpenSMTPd.
Í fyrsta lagi er umvísunarregla (athugið setningafræðina hér, FreeBSD 11 notar eldri stíl PF setningafræði (pre-OpenBSD 4.6) svo setningafræðin kann að virðast skrýtin. Ef við fáum eitthvað á smtp frá hýsil sem er skráður í spamd
töflunni eða ekki skráður í í spamd-white
töflunni, beina við tengingu í gegnum til the spamd púkinn, sem fjallar þessi tengsl. næstu þrjár reglur eru passthrough reglum þannig að við getum raunverulega fá póst. við fara í gegnum skilaboð frá IP-tölum sem fram koma í spamd-white
og webmail
borðum beint í gegnum til OpenSMTPd. Einnig tökum við við skilaboðum á sendingargáttinni ( 587
).
Síðan eru nokkrar heimilisreglur til að setja sjálfgefna stefnu okkar og samþykkja SSH og ICMP skilaboð.
Við sendum síðan IMAP og POP3 á ytra viðmótið okkar til að fá aðgang að Dovecot.
Að lokum leyfum við allri umferð á útleið. Ef þú vildir bæta við auka öryggi gætirðu takmarkað portin sem þú ferð framhjá, en fyrir einnota netþjóna er ekki vandamál að fara framhjá öllu.
Byrja PF:
sudo service pf start
Nú þegar við erum komin með uppsetningu eldveggsins getum við haldið áfram í uppsetningu póstþjónsins.
OpenSMTPd er með mjög einfalt og auðvelt að lesa setningafræði. Heil vinnustilling getur passað í 14 línur, eins og þú sérð hér að neðan:
#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
Í fyrsta lagi skilgreinum við aftur ytra viðmótið okkar, svo og nokkrar töflur, samnefni og lén. Síðan förum við yfir í SSL lykilinn og vottorðið fyrir hvaða lén sem við viljum meðhöndla póst undir.
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.
Við getum afritað sjálfgefna stillingu:
cd /usr/local/etc/dovecot
cp -R example-config/* ./
Stillingin samanstendur af allmörgum mismunandi skrám. Til að sjá muninn á uppsetningunni þinni og sjálfgefna stillingunum skaltu keyra skipunina hér að neðan:
sudo doveconf -n
Eftirfarandi er einföld, virka stilling:
# 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
}
Flestar stillingarskrár verða í conf.d
Þau mikilvægu eru 10-auth.conf
, 10-mail.conf
, og 10-ssl.conf
.
Þú getur stillt mismunandi pósthólf sem þú notar í 15-mailboxes.conf
. Það sem þú sérð hér að ofan er góð uppsetning fyrir mörg kerfi, en mílufjöldi getur verið mismunandi. Mælt er með því að þú spilar með þetta með eins mörgum mismunandi viðskiptavinum og þú getur.
Flestar sjálfgefnar stillingar verða réttar. Ef þú vilt nota kerfisnotendur til að auðkenna verður þú að breyta 10-auth.conf
.
Afskrifaðu eftirfarandi línu:
!include auth-system.conf.ext
Við verðum að búa til Diffie-Hellman breytur:
sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem
Athugið: Þetta mun taka langan tíma að keyra. Miklu lengur en þú gætir búist við.
Við getum nú byrjað Dovecot:
sudo service dovecot start
Á þessum tímapunkti erum við með virkan, öruggan og tiltölulega ruslpóstslausan póstþjón.
Fleiri hlutir sem hægt er að skoða héðan er að nota SpamAssassin til að losna við ruslpóst á vitlausan hátt, auk þess að finna fleiri svartan lista með ruslpósti sem settir eru út af heimildum sem þú treystir.
Að nota annað kerfi? Tiny Tiny RSS Reader er ókeypis og opinn uppspretta sjálf-hýstinn fréttastraumur (RSS/Atom) lesandi og safnari, hannaður til að dreifa
Að nota annað kerfi? Wiki.js er ókeypis og opinn uppspretta, nútímalegt wikiforrit byggt á Node.js, MongoDB, Git og Markdown. Wiki.js frumkóði er publicl
Að nota annað kerfi? Pagekit 1.0 CMS er fallegt, mát, útvíkkanlegt og létt, ókeypis og opið efnisstjórnunarkerfi (CMS) með
Að nota annað kerfi? MODX Revolution er hraðvirkt, sveigjanlegt, stigstærð, opinn uppspretta, vefumsjónarkerfi (CMS) í fyrirtækisgráðu skrifað í PHP. Það i
Þessi grein leiðir þig í gegnum uppsetningu OpenBSD 5.5 (64-bita) á KVM með Vultr VPS. Skref 1. Skráðu þig inn á Vultr stjórnborðið. Skref 2. Smelltu á DEPLOY
Að nota annað kerfi? osTicket er opinn uppspretta miðasölukerfi fyrir þjónustuver. osTicket frumkóði er hýst opinberlega á Github. Í þessari kennslu
Að nota annað kerfi? Flarum er ókeypis og opinn uppspretta næstu kynslóðar spjallforrit sem gerir umræður á netinu skemmtilegar. Flarum frumkóði er hýst o
Að nota annað kerfi? TLS 1.3 er útgáfa af Transport Layer Security (TLS) samskiptareglunum sem var gefin út árið 2018 sem fyrirhugaður staðall í RFC 8446
Inngangur WordPress er ríkjandi vefumsjónarkerfi á netinu. Það knýr allt frá bloggum til flókinna vefsíðna með kraftmiklu efni
Using a Different System? Subrion 4.1 CMS is a powerful and flexible open source Content Management System (CMS) that brings an intuitive and clear conten
Þessi kennsla mun sýna þér hvernig á að stilla DNS þjónustu sem er auðvelt að viðhalda, auðvelt að stilla og sem er almennt öruggara en klassískt BIN
FEMP stafla, sem er sambærilegur við LEMP stafla á Linux, er safn af opnum hugbúnaði sem er venjulega settur upp saman til að virkja FreeBS
MongoDB er heimsklassa NoSQL gagnagrunnur sem er oft notaður í nýrri vefforritum. Það býður upp á afkastamikil fyrirspurnir, klippingu og afritun
Að nota annað kerfi? Monica er opinn uppspretta persónuleg tengslastjórnunarkerfi. Hugsaðu um það sem CRM (vinsælt tól notað af söluteymum í þ
Inngangur Þessi kennsla sýnir OpenBSD sem rafræn viðskipti með PrestaShop og Apache. Apache er krafist vegna þess að PrestaShop er með flókna UR
Að nota annað kerfi? Fork er opinn uppspretta CMS skrifað í PHP. Forks frumkóði er hýstur á GitHub. Þessi handbók mun sýna þér hvernig á að setja upp Fork CM
Using a Different System? Directus 6.4 CMS is a powerful and flexible, free and open source Headless Content Management System (CMS) that provides developer
VPS netþjónar eru oft skotmörk boðflenna. Algeng tegund árása birtist í kerfisskrám sem hundruð óheimilra ssh innskráningartilrauna. Setja upp
Inngangur OpenBSD 5.6 kynnti nýjan púka sem heitir httpd, sem styður CGI (í gegnum FastCGI) og TLS. Engin frekari vinna þarf til að setja upp nýja http
Þessi kennsla mun sýna þér hvernig á að setja upp hópbúnaðinn iRedMail á nýrri uppsetningu á FreeBSD 10. Þú ættir að nota netþjón með að minnsta kosti einu gígabæta o
Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.
Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.
Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.
Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.
Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…
Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.
Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.
Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.
Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.
Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira