Kako instalirati Tiny Tiny RSS Reader na FreeBSD 11 FAMP VPS
Korištenje drugog sustava? Tiny Tiny RSS Reader je besplatan čitač i agregator vijesti otvorenog koda koji se hostira na webu (RSS/Atom), dizajniran za
Pokretanje vlastitog poslužitelja e-pošte može biti vrlo korisno. Vi ste zaduženi za svoje podatke. Također vam omogućuje veću fleksibilnost s vašim mogućnostima isporuke. Međutim, postoji nekoliko izazova. Rizikujete da otvorite svoj poslužitelj ranjivosti, kao i da vaš poslužitelj učinite potencijalnim relejem za spamere.
Kad to skinemo s puta, prijeđimo na pokretanje vlastitog poslužitelja pošte.
Postoje tri potrebna dijela softvera za instalaciju koji nisu uključeni u osnovni sustav FreeBSD:
OpenSMTPd je agent za prijenos pošte (MTA) i agent za dostavu pošte (MDA). To znači da može komunicirati s drugim poslužiteljima pošte putem SMTP
protokola, a također upravlja isporukom pošte u poštanske sandučiće pojedinačnih korisnika. Postavit ćemo OpenSMTPd tako da može komunicirati s vanjskim poslužiteljima (filtriran kroz spamd) i dostavljati poštu lokalnim korisnicima, kao i isporuku lokalne pošte od korisnika do korisnika.
Dovecot je MDA koji čita lokalne poštanske sandučiće i služi ih korisnicima putem IMAP-a ili POP3-a. Za posluživanje ovog sadržaja koristit će poštanske sandučiće lokalnih korisnika.
Spamd je usluga filtriranja pošte. Možemo prosljeđivati poštu putem neželjene pošte, a ona će filtrirati poštu na temelju raznih crnih lista, bijelih i sivih popisa.
Opća ideja za ovaj poslužitelj pošte zahtijeva nekoliko različitih putova:
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)
Za ovaj vodič koristit ćemo FreeBSD verziju OpenBSD-ovog PF-a za naš vatrozid. Također možete koristiti ipfw
, gdje je konfiguracija vrlo slična.
Napomena: Vultr prema zadanim postavkama blokira port 25, koji svugdje koriste SMTP poslužitelji. Ako želite pokrenuti potpuno funkcionalan poslužitelj e-pošte, morat ćete otvoriti taj port.
Prvo moramo instalirati potrebne programe.
Pod pretpostavkom da radite kao korisnik s postavljenim sudo pristupom, možemo pokrenuti sljedeće naredbe. Oni će se razlikovati ovisno o tome koristite li portove ili pakete.
Osim ako vam je potrebna posebna funkcionalnost ugrađena u ove uslužne programe, preporuča se instalirati putem paketa. Lakši je, oduzima manje vremena i resursa poslužitelja i pruža intuitivno sučelje prilagođeno korisniku.
sudo pkg install opensmtpd dovecot spamd
Sljedeće make
naredbe dat će vam puno opcija za prevođenje, a zadane će raditi dobro. Nemojte ih mijenjati osim ako ne znate točno što radite.
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
Morat ćemo dodati sljedeće retke u /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"
Da bismo konfigurirali PF, možemo kreirati naše /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
Ovo je radna PF konfiguracija. Relativno je jednostavno, ali treba objasniti i nekoliko čuda.
Prvo, definiramo našu $ext_if
varijablu koju će naš vtnet0
uređaj koristiti kasnije. Također definiramo nevažeće IP adrese koje bi trebale biti ispuštene na vanjskom sučelju.
Također definiramo dvije tablice spamd
i spamd-white
- ove dvije tablice kreira spamd u svojoj zadanoj konfiguraciji. Također, definiramo tablicu s imenom webmail
koju ćemo koristiti da omogućimo prolaz nekim glavnim pružateljima web-pošte.
Za prikaz tablice možete koristiti naredbu pfctl -t tablename -T show
za popis elemenata u tablici.
Postavili smo nekoliko PF pravila: preskočite obradu na lokalnom sučelju, omogućite statistiku na vanjskom sučelju i pročistite dolazne pakete.
Sljedeći je jedan od važnijih dijelova, gdje upravljamo slanjem našeg prometa na spamd ili OpenSMTPd.
Prvo je pravilo preusmjeravanja (ovdje imajte na umu sintaksu, FreeBSD 11 koristi PF sintaksu starijeg stila (pre-OpenBSD 4.6) tako da se sintaksa može činiti čudnom. Ako primimo bilo što na smtp od hosta koji je naveden u spamd
tablici ili nije naveden u spamd-white
stol, mi preusmjeriti vezu putem do spamd demon, koji se bavi tim vezama. u sljedeća tri pravila su prolaz pravila, tako da smo zapravo može primiti poštu. Prolazimo kroz poruke iz IP navedenih u spamd-white
i webmail
stolova ravno u OpenSMTPd. Također, prihvaćamo poruke na portu za slanje ( 587
).
Zatim postoji nekoliko pravila održavanja za postavljanje naše zadane politike i prihvaćanje SSH i ICMP poruka.
Zatim prosljeđujemo IMAP i POP3 na našem vanjskom sučelju kako bismo pristupili Dovecotu.
Na kraju dopuštamo sav odlazni promet. Ako želite dodati dodatnu sigurnost, mogli biste ograničiti portove koje prolazite, ali za poslužitelj za jednokratnu upotrebu nije problem proći sve.
Početak PF:
sudo service pf start
Sada kada imamo postavku vatrozida, možemo prijeći na konfiguraciju poslužitelja e-pošte.
OpenSMTPd ima vrlo jednostavnu i lako čitljivu sintaksu konfiguracije. Cijela radna konfiguracija može stati u 14 redaka, kao što možete vidjeti u nastavku:
#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
Prvo, ponovno definiramo naše vanjsko sučelje, kao i nekoliko tablica, aliasa i domena. Zatim prelazimo na SSL ključ i certifikat za sve domene pod kojima želimo obrađivati poštu.
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.
Jedan od problema s pristupom sivog popisa je taj što će velike e-mail usluge često slati poštu putem jednog od mnogo različitih spoolova, a ne jamči se da će isti poslužitelj svaki put poslati poruku. Jedno rješenje za to je stavljanje na bijelu listu IP raspona koje koriste razne usluge web-pošte. Za to se koristi tablica web pošte u PF konfiguraciji. Ova strategija može imati negativan učinak ako uključite IP adresu koju koristi pošiljatelj neželjene pošte, ali sve dok ste pažljivi s rasponima koje stavljate u tablicu, bit ćete u redu.
Da biste dodali raspon e-pošte u tablicu web-pošte, možete pokrenuti sljedeću naredbu:
pfctl -t webmail -T add 192.0.2.0/24
Ako želite da korisnici pristupaju svojoj pošti bez prijave putem SSH-a, trebat će vam MDA koji podržava IMAP i/ili POP3. Vrlo popularan program je Dovecot, s prilično jednostavnom konfiguracijom i moćnim značajkama.
Možemo kopirati zadanu konfiguraciju:
cd /usr/local/etc/dovecot
cp -R example-config/* ./
Konfiguracija se sastoji od dosta različitih datoteka. Da biste vidjeli razlike između vaše konfiguracije i zadanih postavki golubinjaka, pokrenite naredbu u nastavku:
sudo doveconf -n
Sljedeća je jednostavna, radna konfiguracija:
# 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
}
Većina konfiguracijskih datoteka bit će u conf.d
Važni su 10-auth.conf
, 10-mail.conf
, i 10-ssl.conf
.
Možete konfigurirati različite poštanske pretince koje koristite u 15-mailboxes.conf
. Ono što vidite iznad je dobra konfiguracija za mnoge sustave, ali vaša kilometraža može varirati. Preporuča se da se poigrate s ovim sa što više različitih klijenata.
Većina zadanih postavki bit će točna. Ako želite koristiti korisnike sustava za autentifikaciju, morat ćete urediti 10-auth.conf
.
Dekomentirajte sljedeći redak:
!uključuje auth-system.conf.ext
Moramo generirati Diffie-Hellmanove parametre:
sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem
Napomena: ovo će potrajati dosta vremena. Mnogo duže nego što biste mogli očekivati.
Sada možemo pokrenuti Dovecot:
sudo service dovecot start
U ovom trenutku imamo funkcionalan, siguran i relativno bez neželjene pošte poslužitelj za poštu.
Još neke stvari koje treba pogledati ovdje su korištenje SpamAssassin da se heuristički riješi neželjene pošte, kao i pronalaženje više crnih popisa neželjene pošte objavljenih od izvora kojima vjerujete.
Korištenje drugog sustava? Tiny Tiny RSS Reader je besplatan čitač i agregator vijesti otvorenog koda koji se hostira na webu (RSS/Atom), dizajniran za
Korištenje drugog sustava? Wiki.js je besplatna i moderna wiki aplikacija otvorenog koda izgrađena na Node.js, MongoDB, Git i Markdown. Izvorni kod Wiki.js je javni
Korištenje drugog sustava? Pagekit 1.0 CMS je prekrasan, modularan, proširiv i lagan, besplatan i otvoreni sustav za upravljanje sadržajem (CMS) s
Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, open source, Enterprise-grade Content Management System (CMS) napisan u PHP-u. To i
Ovaj članak vas vodi kroz postavljanje OpenBSD 5.5 (64-bit) na KVM s Vultr VPS. Korak 1. Prijavite se na Vultr upravljačku ploču. Korak 2. Kliknite na UPOTREBU
Korištenje drugog sustava? osTicket je sustav za kupnju ulaznica otvorenog koda za korisničku podršku. OsTicket izvorni kod je javno hostiran na Githubu. U ovom vodiču
Korištenje drugog sustava? Flarum je besplatan forumski softver sljedeće generacije otvorenog koda koji čini internetsku raspravu zabavnom. Izvorni kod za Flarum se nalazi o
Korištenje drugog sustava? TLS 1.3 verzija je protokola Transport Layer Security (TLS) koji je objavljen 2018. kao predloženi standard u RFC 8446
Uvod WordPress je dominantni sustav za upravljanje sadržajem na internetu. Pokreće sve, od blogova do složenih web stranica s dinamičkim sadržajem
Korištenje drugog sustava? Subrion 4.1 CMS je moćan i fleksibilan sustav upravljanja sadržajem otvorenog koda (CMS) koji donosi intuitivan i jasan sadržaj
Ovaj vodič će vam pokazati kako konfigurirati DNS uslugu koju je lako održavati, lako konfigurirati i koja je općenito sigurnija od klasičnog BIN-a
FEMP stog, koji je usporediv s LEMP stogom na Linuxu, zbirka je softvera otvorenog koda koji se obično instalira zajedno kako bi omogućio FreeBS
MongoDB je NoSQL baza podataka svjetske klase koja se često koristi u novijim web aplikacijama. Pruža upite visoke performanse, dijeljenje i replikaciju
Korištenje drugog sustava? Monica je sustav upravljanja osobnim odnosima otvorenog koda. Zamislite to kao CRM (popularni alat koji koriste prodajni timovi u th
Uvod Ovaj vodič demonstrira OpenBSD kao rješenje za e-trgovinu koristeći PrestaShop i Apache. Apache je potreban jer PrestaShop ima složeni UR
Korištenje drugog sustava? Fork je CMS otvorenog koda napisan u PHP-u. Izvorni kod Forks nalazi se na GitHubu. Ovaj vodič će vam pokazati kako instalirati Fork CM
Korištenje drugog sustava? Directus 6.4 CMS je moćan i fleksibilan, besplatan i otvoreni izvor Headless Content Management System (CMS) koji pruža programerima
VPS poslužitelji su često na meti uljeza. Uobičajena vrsta napada pojavljuje se u zapisnicima sustava kao stotine neovlaštenih pokušaja prijave ssh-om. Postavljanje
Uvod OpenBSD 5.6 uveo je novi demon pod nazivom httpd, koji podržava CGI (putem FastCGI) i TLS. Za instalaciju novog http nije potreban dodatni rad
Ovaj vodič će vam pokazati kako instalirati grupni softver iRedMail na novu instalaciju FreeBSD 10. Trebali biste koristiti poslužitelj s najmanje jednim gigabajtom o
Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.
Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.
Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.
Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.
Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…
Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.
Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.
Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.
U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.
Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više