Kuinka rakentaa oma pilvi sinulle ja ystävillesi Debian Wheezy: ssä

Palaa yksityisyyteesi ja hallitse tietojasi muutamassa tunnissa: rakenna oma pilvi sinulle ja ystävillesi

Jotkut henkilökohtaisimmista henkilöllisistä palasista tallennetaan palvelimille ympäri maailmaa, jotka eivät ole sinun hallussasi

Let’s say you’ve been a Gmail user between 2006 and 2013 like me, meaning you received 30’000+ emails and wrote about 5000 emails over that 7 year period. Some of the emails you sent or received are very personal, maybe so personal that you probably wouldn’t like even some family members or close friends to go through them systematically. Maybe you also drafted a few emails that you never sent because you changed your mind at the last minute. But even if you never sent them, these emails are still stored somewhere on a server. As a result, it’s fair to say that Google servers know more about your personal life than your closest friends or your family.

Statistically, it’s a safe bet to consider that you’ve got a älypuhelin. You can barely use the phone without using the contacts app which stores your contacts in Google Contact on Google servers by default. So not only does Google know about your emails, but also about your offline contacts: who you like to call, who calls you, whom you text, and what you text them about. You don’t have to take my word for it, you can verify for yourself by taking a look at the permissions you gave apps such as the Google Play Service to read the list of people that called you and the SMS you got. Do you also use the calendar app that comes with your phone? Unless you explicitly opted out while setting up your calendar, this means that Google knows precisely what you’re up to, at every time of the day, day after day, year after year. The same applies if you chose an iPhone over an Android phone, except Apple gets to know about your correspondance, contacts and schedule instead of Google.

Do you also take great care to keep the contacts in your directory up-to-date, updating your friend’s, colleagues’s and and family’s email addresses and phone numbers when they move to a new job or change carrier? That gives Google an extraordinarily accurate, up-to-date picture of your social network. And you love the GPS of your älypuhelin jota käytät paljon yhdessä Google Mapsin kanssa. Tämä tarkoittaa, että Google ei vain tiedä, mitä teet kalenteristasi, vaan myös missä olet, missä asut, missä työskentelet. Ja korreloimalla GPS-sijaintitietoja käyttäjien kesken, Google voi myös kertoa, kenen kanssa voit seurustella juuri nyt.

Päivittäinen tapa jakaa kaikkein henkilökohtaisimmat tiedot vaikuttaa elämänne tavalla tavalla, jota kukaan ei voi edes ennakoida

Yhteenvetona, jos olet keskimääräinen internet-käyttäjä, Googlella on ajantasaiset ja syvälliset tiedot kiinnostuksistasi, huolestasi, intohimoistasi ja kysymyksistään lähes 10 vuoden kuluessa. Siinä on kokoelma joitain henkilökohtaisimpia viestejäsi (sähköposteja, SMS), päivittäisten toimintojen päivittäinen toiminta ja sijainti sekä laadukas kuva sosiaalisesta verkostasi. Tällainen intiimi tietämys sinusta todennäköisesti ylittää sen, mitä lähimmät ystäväsi, perheesi tai ystäväsi tietävät sinusta.

It wouldn’t come to mind to give this mass of deeply personal information to complete strangers, for instance by putting it all on a USB key and leaving it on a table in a random cafe with a note saying ‘Personal data of Olivier Martin, use as you please’. Who knows who might find it and what they would do with it? Yet, we have no problem handing in core pieces of your identity to strangers at IT companies with a strong interest in our data (that’s how they make their bread) and maailmanluokan asiantuntijat tiedon analysoinnissa, perhaps just because it happens by default without us thinking about it when we hit that green ‘Accept’ button.

With so much high-quality information, over the years, Google may well get to know you better than you can ever hope to know yourself: heck, crawling through my digital past right now, I can’t remember having written half of the emails I sent five years ago. I am surprised and pleased to rediscover my interest in marxism back in 2005 and my joining Attac (an organization which strives to limit speculation and improve social justice by taxing financial transactions) the next year. And god knows why I was so much into dancing shoes back in 2007. These is pretty harmless information (you wouldn’t have expected me to reveal something embarassing here, would you? ;-). But by connecting the dots between high-quality data over different aspects of your life (what, when, with whom, where, …) over such time spans, one may extrapolate predictive statements about you. For instance, from the shopping habits of a 17-year-old girl, supermarkets can tell that she is pregnant before her dad even hears about it (tositarina). Kuka tietää, mitä on mahdollista korkealaatuisilla tiedoilla, kuten Googlessa, joka ylittää ostotottumukset? Yhdistämällä pisteitä voit ehkä ennustaa, miten makusi tai poliittiset näkemykset muuttuvat tulevina vuosina. Tänään, yrityksiä, joita et ole koskaan kuullut väittävät, että 500-tiedot koskevat sinua, including religion, sexual orientation and political views. Speaking of politics, what if you decide to go into politics in 10 years from now? Your life may change, your views too, and you may even forget, but Google won’t. Will you have to worry that your opponent is in touch with someone who has access to your data at Google and can dig up something embarassing on you from those bottomless wells of personal data you gave away over the years? How long until Google or Facebook hakkeroidaan aivan kuten Sony äskettäin hakkasi ja kaikki henkilökohtaiset tietosi päätyvät julkiseen toimintaan ikuisesti?

Yksi syy siihen, että useimmat meistä ovat antaneet henkilötietojamme näille yrityksille, on, että he tarjoavat palveluitaan ilmaiseksi. Mutta kuinka vapaasti se on todella? Keskimääräisen Google-tilin arvo vaihtelee arvioidun menetelmän mukaan: 1000 USD / vuosi kertoo, kuinka paljon olet investoinut kirjoittamaan sähköpostiviestejä, kun taas mainostekniikan tilisi arvo on jonnekin 220 USD / vuosi ja 500 USD / vuosi. Joten palvelu ei ole täysin ilmainen: maksat sen mainoksen ja vielä tuntemattomien käyttötarkoitusten mukaan, joita tietomme voivat löytää tulevaisuudessa.

I’ve been writing about Google mostly because that’s the company I’ve entrusted most of my digital identify to so far and hence the one I know best. But I may well have written Apple or Facebook. These companies truly changed the world with their fantastic advances in design, engineering and services we love(d) to use, every day. But it doesn’t mean we should stack up all our most personal data in their servers and entrust them with our digital lives: the potential for harm is just too large.

Vahvista yksityisyytesi ja henkilöiden välinen tietosi vain 5h: ssa

Sen ei tarvitse olla näin. Voit elää 21st-luvulla, käyttää älypuhelinta, käyttää sähköpostia ja GPS päivittäin, ja säilyttää edelleen yksityisyytesi. Sinun tarvitsee vain saada takaisin henkilökohtaisten tietojen hallinta: sähköpostit, kalenteri, yhteystiedot, tiedostot jne. Prism-Break.org verkkosivusto luetellaan ohjelmistot, jotka auttavat valvomaan henkilötietojesi kohtaloa. Näiden vaihtoehtojen lisäksi turvallisin ja tehokkain tapa hallita henkilökohtaisia ​​tietojasi on isännöidä pilvi itse luomalla oma palvelin. Mutta sinulla ei ehkä ole aikaa ja energiaa tutkia, miten tehdä niin ja tehdä se toimimattomasti.

That’s where the present article fits in. In just 5 hours, we will set up a server to host your emails, contacts, calendars and files for you, your friends and your family. The server is designed to act as a hub or cloud for your personal data, so that you always retain full control over it. The data will automatically be synchronized between your PC/laptop, your phone and your tablet. Essentially, luomme järjestelmän, joka korvaa Gmailin, Google Drive / Dropboxin, Google-yhteystiedot, Google-kalenterin ja Picasan.

Just doing this for yourself will already be a big step. But then, a significant fraction of your personal information will still leak out and end up on some servers in the silicon valley, just because so many of the people you interact with every day use Gmail and have smartphones. So it’s a good idea to have some of the people you are closest to join the adventure.

Rakennamme järjestelmää, joka

  1. tukee mielivaltaista määrää verkkotunnuksia ja käyttäjiä. Tämä helpottaa jakamista palvelimesi kanssa perheen ja ystävien kanssa, jotta he voivat hallita henkilökohtaisia ​​tietojasi ja jakaa palvelimen kustannukset kanssasi. Palvelimesi jakavat ihmiset voivat käyttää omaa verkkotunnus tai jakaa omasi.
  2. voit lähettää ja vastaanottaa sähköposteja mistä tahansa verkosta upon successfully logging in onto the server. This way, you can send your emails from any of your email addresses, from any device (PC, phone, tablet), and any network (at home, at work, from a public network, …)
  3. salaa verkkoliikennettä when sending and receiving emails so people you don’t trust won’t fish out your password and won’t be able to read your private emails.
  4. tarjoaa huippuluokan antispam, yhdistämällä tunnettujen roskapostittajien mustat listat, automaattinen greylisting ja adaptiivinen roskapostisuodatus. Adaptatiivisen roskapostisuodattimen uudelleenkoulutus, jos sähköposti luokitellaan väärin, tehdään yksinkertaisesti siirtämällä roskapostia Junk / Spam-kansioon tai ulos. Palvelin osallistuu myös yhteisölliseen roskapostin torjuntaan.
  5. vaatii vain muutaman minuutin huoltotoimenpiteet hetken kuluttua, pohjimmiltaan asentaa tietoturvapäivitykset ja tarkistaa palvelinlokit lyhyesti. Uuden sähköpostiosoitteen lisääminen lieventää yhden tietueen lisäämistä tietokanta. Apart from that, you can just forget about it and live your life. I set up the system described in this article 14 months ago and the thing has just been running smoothly since then. So I completely forgot about it, until I recently smiled at the thought that casually pressing the ‘Check email’ button of my phone caused electrons to travel all the way to Iceland (where my server sits) and back.

To go through this article, you’ll need a minimum of technical capabilities. If you know what is the difference between SMTP and IMAP, what is a DNS, and have a basic understanding of TCP/IP, you know enough to follow through. You will also need a basic working knowledge of Unix (working with files from the command line, basic system administration). And you’ll need a total of 5 hours of time to set it up.


Tämä artikkeli inspiroi ja perustuu aiempiin töihin

Tämä artikkeli painaa voimakkaasti kahta muuta artikkelia, nimittäin Xavier Claude‘s and Drew Crawford‘s introduction to email self-hosting.

The article includes all the features of Xavier’s and Draw’s articles, except from three features that Drew had and which I didn’t need, namely push support for email (I like to check email only when I decide to, otherwise I get distracted all the time), fulltext search in email (which I don’t have a use for), and storing emails in an encrypted form (my emails and data are not critical to the point that I have to encrypt them locally on the server). If you need any of these features, feel free to just add them by following to the respective section of Drew’s article, which is compatible with the present one.

Compared to Xavier’s and Drew’s work, the present article improves on several aspects:

  • it fixes bugs and typos based on my experience with Drew’s article and the numerous comments on his original article. I also went through the present article, setting up the server from scratch several times to replicate it and make sure it would work right out of the box.
  • low maintenance: compared to Xavier’s work, the present article adds support for multiple email domains on the server. It does so by requiring the minimum amount of server maintenance possible: basically, to add a domain or a user, just add one row to a mysql table and that’s it (no need to add sieve scripts, …).
  • Lisäsin webmailin.
  • I added a section on setting up a cloud, to host not just your emails but also your files, your addressbook / contacts (emails, phone numbers, birthdays, …), calendars and pictures for use across your devices.

Hanki Virtual Private Server, verkkotunnus ja asenna ne

Let’s start by setting the basic infrastructure: our virtual private server and our verkkotunnus.

I’ve had an excellent experience with the Virtual Private Servers (VPS) 1984.is ja Linode. Tässä artikkelissa käytämme Debian Wheezy, joista sekä 1984 että Linode tarjoavat valmiita kuvia käyttöön VPS. Pidän 1984: stä, koska Islannissa on palvelimia, jotka toimivat yksinomaan uusiutuvilla energiamuodoilla (geoterminen ja vesivoimalla) eikä siten edistä ilmastonmuutosta, toisin kuin hiilivoimalaitokset, joihin useimmat yhdysvaltalaiset tietokeskukset toimivat tällä hetkellä. He myös painottavat kansalaisvapaudet, avoimuus, vapaus ja Free Software.

Saatat olla hyvä aloittaa tiedosto tallentaa eri salasanat meidän on asetettava palvelimelle (käyttäjätilit, postitilit, pilvitilit, tietokanta accounts). It’s definitely a good idea to encrypt this file (maybe with GnuPG), so that it won’t be too easy to attack your server even if the computer you use to set up your server gets stolen or compromised.

For registering a domain name, I’ve been using the services of Gandi yli 10 vuotta, myös tyytyväisinä. Tätä artiklaa varten luomme nimen sisältävän vyöhykkeen jhausse.net. Sitten lisätään isäntä nimeltä cloud.jhausse.net to it, set the MX record to that host. While you’re at it, set short Time To Lives (TTL) to your records like 300 seconds so that you’ll be able to make changes to your zone and test the result rapidly while you’re setting up the server.

Lopuksi, aseta PTR-tietue (peruutus DNS) niin että IP-osoite of the host maps back to its name. If you don’t understand the previous sentence, read Tämä artikkeli saada tausta. Jos käytät Linode-asetusta, voit asettaa PTR-tietueen etäkäyttöosion ohjauspaneelissa. 1984in avulla ota yhteys tekniseen tukeen, joka auttaa sinua sen kanssa.

On the server, we will start by adding a non-privledged user, so that we don’t end up working as root all the time. Also, to log in as root will require an extra layer of security.

 adduser roudy

Sitten, vuonna / Etc / ssh / sshd_config, asetamme

 PermitRootLogin no

ja lataa ssh-palvelin uudelleen

 palvelu ssh reload

Then, we’ll need to change the hostname of the server. Edit / Etc / hostname niin että meillä on vain yksi rivi sinun isäntänimesi nimestä


Then, edit the ssh server’s public key files /etc/ssh/ssh_host_rsa_key.pub, /etc/ssh/ssh_host_dsa_key.pub, /etc/ssh/ssh_host_ecdsa_key.pub niin että tiedoston loppu heijastaa isäntänimeäsi tai esiintymääsi root @ pilvi. Käynnistä sitten järjestelmä uudelleen varmistaaksesi, että isäntänimi on kiinteä missä tahansa


We will update the system and remove services we don’t need to reduce the risk of remote attacks.

 apt-get päivitys apt-get dist-upgrade-palvelu exim4 stop apt-get poista exim4 rpcbind apt-get autoremove apt-get install vim

Haluan käyttää vimää konfigurointitiedostojen muokkaamiseen etänä. Tätä varten se auttaa automaattisesti ottamaan käyttöön syntaksin korostuksen. Teemme niin lisäämällä

 syn on

to ~ / .vimrc.

Aseta postfix ja dovecot lähettää ja vastaanottaa sähköpostia

 apt-get asennus postfix postfix-mysql dovecot-ydin dovecot-imapd dovecot-mysql mysql-palvelin dovecot-lmtpd postgrey

In postfix konfigurointivalikosta valitaan Nettisivusto, ja määritä järjestelmän postin nimi osoitteeksi jhausse.net.

Asettamme nyt tietokannan, joka tallentaa palvelimelle isännöityjen verkkotunnusten luettelon, kunkin verkkotunnuksen käyttäjätunnuksen (sekä salasanan) ja luettelon postin aliaksista (sähköpostin lähettämisestä tietystä osoitteesta toiseen yksi).

 mysqladmin -p luoda sähköpostipalvelin mysql -p mailserver mysql> GRANT VALITSE sähköpostin palvelimelle. * TO 'mailuser' @ 'localhost' IDENTIFIED BY 'mailuserpass'; mysql> FLUSH PRIVILEGES; mysql> LUO TAULUKKO `virtual_domains` (` id` int (11) NOT NULL auto_increment, `name` varchar (50) NOT NULL, PRIMARY KEY (` id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8; (11) NOT NULL, `email` varchar (11) NOT NULL, YKSITYISKOHTAINEN (106) NOT NULL,` email` varchar (100) NOT NULL, REKISTERIT virtual_domains (id) PÄÄLLE CASCADE) ENGINE = InnoDB DEFAULT CHARSET = utf8; IDE (`id`), UNIQUE KEY` email` (11) NOT NULL, `source` varchar (11) NOT NULL,` määräpaikka` varchar (100) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (domain_id) REFERENSSIT virtual_domains (id) PÄÄLLE CASCADE) ENGINE = InnoDB DEFAULT CHARSET = utf100;

Me isännöidä jhausse.net domain. If there are other domains you’d like to host, you can also add them. We also set up a postmaster address for each domain, which forwards to roudy@jhausse.net.

 mysql> INSERT INTO virtual_domains (`name`) VALUES ('jhausse.net'); mysql> INSERT INTO virtual_domains (`name`) ARVOT ('otherdomain.net'); mysql> INSERT INTO virtual_aliases ("domain_id", "lähde", "kohde") VALUES ('1', 'postmaster', 'roudy@jhausse.net'); mysql> INSERT INTO virtual_aliases ("domain_id", "lähde", "kohde") VALUES ('2', 'postmaster', 'roudy@jhausse.net');

Lisäämme nyt paikallisesti isännöidyn sähköpostitilin roudy@jhausse.net. Ensin tuotamme salasanan hash:

 doveadm pw -s SHA512-CRYPT

ja lisää sitten hash-tiedosto tietokantaan

 INSERT INTO `mailserver`.`virtual_users` (` domain_id`, `password`,` email`) VALUES ('1', '$ 6 $ YOURPASSWORDHASH', 'roudy@jhausse.net');

Nyt kun verkkotunnusten, aliaksien ja käyttäjien luettelo on paikallaan, asetamme postfix-palvelun (SMTP-palvelimen, lähtevän postin). Korvaa sisällön /etc/postfix/main.cf seuraavilla tavoilla:

 myhostname = cloud.jhausse.net myorigin = / etc / postname mydestination = localhost.localdomain, localhost mynetworks_style = isäntä # Disable relaying yleisessä tapauksessa smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination # Vaatimukset palvelimille, jotka ovat yhteydessä meihin: smtpd_client_restrictions = permit_mynetworks, reject_rbl_client zen.spamhaus.org, check_policy_service inet: 10023 disable_vrfy_command = kyllä ​​inet_interfaces = kaikki smtpd_banner = $ myhostname (hylätty_rbl_client) ja käytä graylist mekanismia # (postgrey) Smtpd_tls_content_file = / etc / ssl / certs / cloud.crt smtpd_tls_key_file = / etc / ssl / private / cloud.key smtpd_use_tls = kyllä ​​smtpd_tls_auth_only = kyllä smtp_tls_security_level = voi smtp_tls_loglevel = 1 smtpd_tls_loglevel = 1 smtpd_tls_received_header = kyllä ​​smtpd_ tls_session_cache_database = btree: $ {data_database} / smtpd_scache smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache # Toimitus alias_maps = hash: / etc / aliases alias_database = hash: / etc / aliases message_size_limit = 50000000 recipient_delimiter = + # perustaa varmuuskopio MX myfriendsdomain.org # relay_domains = myfriendsdomain.org # relay_recipient_maps = # virtuaaliset verkkotunnukset virtual_transport = lmtp: unix: yksityinen / dovecot-lmtp virtual_mailbox_domains = mysql: / etc / postfix / mysql-virtuaalinen postilaatikko-verkkotunnukset. cf virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf local_recipient_maps = $ virtual_mailbox_maps

Nyt meidän täytyy opettaa postfix-tiedostoa selvittääksemme, mitkä verkkotunnukset haluamme, että hän hyväksyy sähköpostit käytettäväksi juuri perustetusta tietokannasta. Luo uusi tiedosto /etc/postfix/mysql-virtual-mailbox-domains.cf ja lisää seuraava:

 user = mailuser salasana = mailuserpass isäntä = dbname = mailserver query = SELECT 1 FROM virtual_domains WHERE name = '% s'

Opetamme postfix-koodia selvittääksesi, onko tietylle sähköpostitilille olemassa luomalla /etc/postfix/mysql-virtual-mailbox-maps.cf seuraavalla sisällöllä

 user = mailuser salasana = mailuserpass isäntä = dbname = mailserver query = VALITSE 1 FROM virtual_users WHERE email = '% s'

Lopuksi postfix käyttää /etc/postfix/mysql-virtual-alias-maps.cf etsiä postin aliaksia

 user = mailuser salasana = mailuserpass isäntä = dbname = mailserver query = VALITSE virtual_aliases.destination määränpääksi FROM virtual_aliases, virtual_domains WHERE virtual_aliases.source = '% u' JA virtual_aliases.domain_id = virtual_domains.id JA virtual_domains.name = '% d'

Kun kaikki tämä on paikallaan, on nyt aika testata, voiko postfix-tiedosto kysyä tietokantaamme oikein. Voimme tehdä tämän käyttämällä postmap:

 postmap -q jhausse.net mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf postmap -q roudy@jhausse.net mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf postmap -q postmaster @ jhausse.net mysql: /etc/postfix/mysql-virtual-alias-maps.cf postmap -q bob@jhausse.net mysql: /etc/postfix/mysql-virtual-alias-maps.cf

Jos asetat kaikki oikein, kaksi ensimmäistä kyselyä pitäisi palauttaa 1, kolmas kysely tulee palauttaa roudy@jhausse.net ja viimeinen ei saa palata mitään.

Now, let’s set up dovecot (the IMAP server, to fetch incoming mail on the server from our devices). Edit /etc/dovecot/dovecot.conf asettaa seuraavat parametrit:

 # Ota käyttöön asennettu protokolla #! Include_try /usr/share/dovecot/protocols.d/*.protocol protocols = imap lmtp

joka mahdollistaa vain imapin (let's fetch emails) ja lmtp (joka postfix käyttää siirtää saapuvat sähköpostit dovecot). Muokata /etc/dovecot/conf.d/10-mail.conf asettaa seuraavat parametrit:

 mail_location = maildir: / var / mail /% d /% n [...] mail_privileged_group = post [...] first_valid_uid = 0

joka tallentaa sähköposteja osoitteessa / var / mail / domainname / username. Huomaa, että nämä asetukset levitetään eri paikoissa tiedostossa, ja ne ovat joskus jo olemassa, jotta voimme asettaa: meidän on vain kommentoitava niitä. Muut asetukset, jotka ovat jo tiedostossa, voit jättää sellaisenaan. Meidän on tehtävä samoin päivittää asetukset useissa muissa tämän artikkelin jäljellä olevissa tiedostoissa. Sisään /etc/dovecot/conf.d/10-auth.conf, aseta parametrit:

 disable_plaintext_auth = kyllä ​​auth_mechanisms = tavallinen #! sisällytä auth-system.conf.ext! sisällytä auth-sql.conf.ext

In /etc/dovecot/conf.d/auth-sql.conf.ext, aseta seuraavat parametrit:

 passdb {driver = sql args = /etc/dovecot/dovecot-sql.conf.ext} userdb {kuljettaja = staattinen args = uid = posti gid = posti koti = / var / mail /% d /% n}

jossa me vain opetti kyyhkysen että käyttäjät ovat sähköpostiosoitteitaan / var / mail / domainname / username ja etsiä salasanat juuri luotu tietokanta. Nyt meidän täytyy vielä opettaa kenkää miten käyttää tietokantaa. Tee se seuraavaksi /etc/dovecot/dovecot-sql.conf.ext:

 kuljettaja = mysql connect = host = localhost dbname = sähköpostipalvelin user = mailuser salasana = mailuserpass default_pass_scheme = SHA512-CRYPT password_query = SELECT sähköposti käyttäjäksi, salasana FROM virtual_users WHERE email = '% u';

Korjaamme nyt asetustiedostojen käyttöoikeudet

 chown -R mail: Dovecot / etc / Dovecot chmod -R o-rwx / etc / Dovecot

Melkein siellä! Meidän täytyy vain muokata pari tiedostoa enemmän. Sisään /etc/dovecot/conf.d/10-master.conf, aseta seuraavat parametrit:

 palvelin imap-login {inet_listener imap {#port = 143 portti = 0} inet_listener imaps {port = 993 ssl = kyllä}} palvelu pop3-sisäänkirjaus {inet_listener pop3 {#port = 110 portti = 0} inet_listener pop3s {#port = 995 #ssl = kyllä ​​port = 0}} palvelu lmtp {unix_listener / var / spool / postfix / yksityinen / dovecot-lmtp {tila = 0666 ryhmä = postfix user = postfix} käyttäjä = posti} palvelu auth {unix_listener auth-userdb { 0600 user = post #group =} # Postfix smtp-auth unix_listener / var / spool / postfix / yksityinen / auth {tila = 0666 käyttäjä = postfix group = postfix} # Auth-prosessi suoritetaan tällä käyttäjällä. #user = $ default_internal_user user = dovecot} palvelu auth-worker {user = mail}

Huomaa, että asetamme portit kaikille palveluille, mutta imapsit 0: lle, mikä poistaa ne käytöstä. Sitten, vuonna /etc/dovecot/conf.d/15-lda.conf, määritä postimestarin sähköpostiosoite:

 postmaster_address = postmaster@jhausse.net

Viimeisenä mutta ei vähäisimpänä, meidän täytyy luoda pari julkista ja yksityinen avain palvelimelle, jota käytämme sekä kyyhkysetissä että postfixissa:

 openssl req -new -newkey rsa: 4096 -x509 -päivät 365 -nodot -out "/etc/ssl/certs/cloud.crt" -keyout "/etc/ssl/private/cloud.key"

Varmista, että määrität palvelimen täysin hyväksytyn verkkotunnuksen (FQDN), meidän tapauksessamme:

 Yhteinen nimi (esim. Palvelimen FQDN tai käyttäjänimi) []: cloud.jhausse.net

If you don’t, our clients may complain that the server name in the SSL certificate does not match the name of the server they are connecting to. We tell dovecot to use these keys by setting the following parameters in /etc/dovecot/conf.d/10-ssl.conf:

 ssl = pakollinen ssl_cert = </etc/ssl/certs/cloud.crt ssl_key = </etc/ssl/private/cloud.key

That’s it! Now on to testing the postfix and dovecot servers!

 service dovecot uudelleenkäynnistää palvelun postfix uudelleenkäynnistyksen

Yritä lähettää palvelimelta sähköposti paikalliselle käyttäjälle:

 telnet localhost 25 EHLO cloud.jhausse.net MAIL FROM: youremail@domain.com rcpt osoitteeseen: roudy@jhausse.net data Aihe: Hallo! Tämä on testi, jotta voit tarkistaa, onko cloud.jhausse.net valmis olemaan MX! Hurraa, Roudy. LOPETTAA

Palvelimen tulee hyväksyä sähköpostiosoitteemme sellaisen viestin avulla

 250 2.0.0 Ok: jonossa 58D54101DB

Tarkista lokit /var/log/mail.log jos kaikki meni hyvin. Sen pitäisi olla viiva, joka sanoo jotain

 Marraskuu 14 07: 57: 06 pilvi tulta: lmtp (4375, roudy@jhausse.net): ... tallennetut postit INBOX: lle

So far so good? Good. Now, let’s try the same from a different machine, like the computer we are using to set up the server. We’ll talk to the server using encryption (TLS) this time:

 openssl s_client -connect cloud.jhausse.net:25 -starttls smtp EHLO cloud.jhausse.net MAIL FROM: roudy@jhausse.net rcpt osoitteeseen: bob@gmail.com

johon palvelin reagoi

 554 5.7.1 <bob@gmail.com>: Relekäyttö kielletty

That’s good: had the server accepted the mail, it would have meant that we set up postfix as an open relay for all the spammers of the world and beyhond to use. Instead of the ‘Relay access denied’ message, you may instead get the message

 554 5.7.1 palvelu ei ole käytettävissä; Asiakkaan isäntä [] on estetty zen.spamhaus.org-sivustolla; http://www.spamhaus.org/query/bl?ip=

Tämä tarkoittaa, että yrität ottaa yhteyttä palvelimeen IP-osoite that is considered as a spammer’s address. I got this message while trying to connect to the server through my regular Internet Service Provider (ISP). To fix this issue, you can try to connect from another host, maybe another server you have access to through SSH. Alternatively, you can reconfigure Postfix’s main.cf not to use Spamhaus’s RBL, reload postfix, and verify that the above test works. In both cases, it’s important that you find a solution that works for you because we’ll test other things in a minute. If you chose to reconfigure Postfix not to use RBLs, don’t forget to put the RBLs back in and to reload postfix after finishing the article to avoid getting more spam than necessary.

Now let’s yritä lähettää kelvollinen sähköposti SMTP: llä porttiin 25, jota säännölliset sähköpostipalvelimet käyttävät puhuakseen toisilleen:

 openssl s_client -connect cloud.jhausse.net:25 -starttls smtp EHLO cloud.jhausse.net MAIL FROM: youremail@domain.com rcpt osoitteeseen: roudy@jhausse.net

johon palvelin reagoi

 Asiakkaan isäntä hylätty: Greylisted, katso http://postgrey.schweikert.ch/help/jhausse.net.html

mikä osoittaa sen postgrey is working as it should. What postgrey does it to reject emails with a temporary error if the sender has never been seen before. The technical rules of email require email servers to try to deliver the email again. After five minutes, postgrey will accept the email. Legit email servers around the world will try repeatidly to redeliver the email to us, but most spammers won’t. So, wait for 5 minutes, try to send the email again using the command above, and verify that postfix now accepts the email.

Afterwards, we’ll check that we can fetch the two emails that we just sent ourselves by talking IMAP to dovecot:

 openssl s_client -crlf -connect cloud.jhausse.net:993 1 kirjautuminen roudy@jhausse.net "mypassword" 2 LIST "" "*" 3 VALITSE INBOX 4 UID hae 1: 1 (UID RFC822.SIZE LIPPUT BODY.PEEK [] ) 5 LOGOUT

where you should replace mypassword with the password you set for this email account. If that works, we basically have a functional email server which can receive our incoming emails, and from which we get retreive these emails from our devices (PC/laptop, tablets, phones, …). But we can’t give it our emails to send unless we send them from the server itself. We’ll now allow postfix to forward our emails, but only upon successful authentification, that is after it could make sure that the email comes from someone who has a valid account on the server. To do so, we’ll open a special, SSL-only, SASL-authentified email submission service. Set the following parameters in /etc/postfix/master.cf:

 - smtpd_client_restrictions = permit_sasl_authenticated, hylätä -o smtpd_sasl_type = dovecot -o smtpd_sasl_path = yksityinen / auth -o smtpd_sasl_security_options = noanonymous - hylkää - smtpd_sasl_path = yksityinen / auth -o smtpd_sasl_auth_envalid = o smtpd_recipient_restrictions = permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination

ja lataa uudelleen postfix

 palvelu postfix reload

Now, let’s try to use this service from a different machine than than the server, to verify postfix will now relay our emails and nobody else’s:

 openssl s_client -connect cloud.jhausse.net:587 -starttls smtp EHLO cloud.jhausse.net

Notice the ‘250-AUTH PLAIN’ capabilities advertized by server, which doesn’t appear when we connect to port 25.

 MAIL FROM: asdf@jkl.net rcpt osoitteeseen: bob@gmail.com 554 5.7.1 <bob@gmail.com>: Relekäyttö estetty QUIT

That’s good, postfix won’t relay our emails if he doesn’t know us. So let’s authentify ourselves first. To do so, we first need to generate an authentification string:

 echo -ne'0roudy@jhausse.net0mypassword'|base64

and let’s try to send emails through the server again:

 openssl s_client -connect cloud.jhausse.net:587 -starttls smtp EHLO cloud.jhausse.net AUTH PLAIN DGplYW5AMTk4NGNsb3VQLm5ldAA4bmFmNGNvNG5jOA == MAIL FROM: asdf@jkl.net rcpt osoitteeseen: bob@gmail.com

which postfix should now accept. To complete the test, let’s verify that our virtual aliases work by sending an email to postmaster@jhausse.net and making sure it goes to roudy@jhausse.net:

 telnet cloud.jhausse.net 25 EHLO cloud.jhausse.net MAIL FROM: youremail@domain.com rcpt osoitteeseen: postmaster@jhausse.net data Aihe: Virtual alias testi Hyvä postimies, Pitkästä aikaa kuule! Toivon MX: n toimivan sujuvasti ja turvallisesti. Ystävällisin terveisin, Roudy. LOPETTAA

Let’s check the mail made it all the way to the right inbox:

 openssl s_client -crlf -connect cloud.jhausse.net:993 1 kirjautuminen roudy@jhausse.net "mypassword" 2 LIST "" "*" 3 VALITSE INBOX * 2 EXISTS * 2 RECENT 4 LOGOUT

Tässä vaiheessa meillä on toimiva sähköpostipalvelin sekä saapuville että lähteville sähköpostiviesteille. Voimme perustaa laitteitamme käyttämään sitä.

PS: Muistitko yritä lähettää sähköpostiviesti palvelimelle isännöimälle tilille portin 25 kautta uudelleen, varmistaaksesi, että postgreeni ei ole enää estänyt sinua?

Estää roskapostin saapumasta INBOXiin

For the sake of SPAM filtering, we already have Realtime BlackLists (RBLs) and greylisting (postgrey) in place. We’ll now take our spam fighting capabilities up a notch by adding adaptative spam filtering. This means we’ll add artificial intelligence to our email server, so that it can learn from experience what is spam and what is not. We will use dspam siitä.

 apt-get asenna dspam dovecot-antispam postfix-pcre dovecot-seula

dovecot-antispam is a package that allows dovecot to retrain the spam filter if we find an email that is misclassified by dspam. Basically, all we need to do is to move emails in or out of the Junk/Spam folder. dovecot-antispam will then take care of calling dspam to retrain the filter. As for postfix-pcre and dovecot-sieve, we will use them respectively to pass incoming emails through the spam filter and to automatically move spam to the user’s Junk/Spam folder.

In /etc/dspam/dspam.conf, aseta seuraavat parametrit näihin arvoihin:

 TrustedDeliveryAgent "/ usr / sbin / sendmail" UntrustedDeliveryAgent "/ usr / lib / dovecot / deliver -d% u" Tokenizer osb IgnoreHeader X-Spam-tila IgnoreHeader X-Spam-skannattu IgnoreHeader X-Virus-skannerin tulos IgnoreHeader X-Virus -Scanned IgnoreHeader X-DKIM IgnoreHeader DKIM-Allekirjoitus IgnoreHeader DomainKey-Signature IgnoreHeader X-Google-Dkim-Signature ParseToHeaders ChangeModeOnParse pois ChangeUserOnParse täynnä ServerPID /var/run/dspam/dspam.pid ServerDomainSocketPath "/ var / run / dspam / dspam. sukka "ClientHost /var/run/dspam/dspam.sock

Sitten, vuonna /etc/dspam/default.prefs, muuta seuraavat parametrit:

 spamAction = toimittaa # {karanteeni | tag | deliver} -> oletus: karanteeni signatureLocation = headers # {message | otsikot} -> oletus: viesti showFactors = päällä

Nyt meidän on yhdistettävä dspam ja postfix ja dovecot lisäämällä nämä kaksi riviä lopussa /etc/postfix/master.cf:

 dspam unix - nn - 10 putki lippuja = Ru käyttäjä = dspam argv = / usr / bin / dspam --deliver = viaton, roskaposti - user $ vastaanottaja -i -f $ lähettäjä - $ vastaanottaja dovecot unix - nn - flags = DRhu käyttäjä = posti: posti argv = / usr / lib / dovecot / deliver -f $ {Lähettäjä} -d $ {vastaanottaja}

Now we will tell postfix to filter every new email that gets submitted to the server on port 25 (normal SMTP traffic) through dspam, except if the email is submitted from the server itself (permit_mynetworks). Note that the emails we submit to postfix with SASL authentication won’t be filtered through dspam either, as we set up a separate submission service for those in the previous section. Edit /etc/postfix/main.cf muuttaa smtpd_client_restrictions seuraavista:

 smtpd_client_restrictions = permit_mynetworks, reject_rbl_client zen.spamhaus.org, check_policy_service inet: 10023, check_client_access pcre: / etc / postfix / dspam_filter_access

Lisää tiedoston loppuun myös:

 # DSPAM: lle vain skannaa yksi posti kerrallaan dspam_destination_recipient_limit = 1

Meidän on nyt määritettävä määritettävä suodatin. Periaatteessa kerromme postfixille, että kaikki sähköpostit (/./) lähetetään dspam: n kautta unix-socketiin. Luo uusi tiedosto / Etc / postfix / dspam_filter_access ja laita seuraava rivi siihen:

 /./ FILTER dspam: unix: /run/dspam/dspam.sock

That’s it for the postfix part. Now let’s set up dovecot for spam filtering. In /etc/dovecot/conf.d/20-imap.conf, muokkaa imap mail_plugins plugins-parametri, jolla:

 mail_plugins = $ mail_plugins antispam

ja lisää osa lmtp:

 protocol lmtp {# Avaruudeltaan erotettu luettelo ladattavista laajennuksista (oletus on globaaleja mail_plugineja). mail_plugins = $ mail_plugins sieve}

Nyt konfiguroimme dovecot-antispam plugin. Muokata /etc/dovecot/conf.d/90-plugin.conf lisätä seuraava sisältö plugin-osioon:

 plugin {... # Antispam (DSPAM) antispam_backend = dspam antispam_allow_append_to_spam = KYLLÄ antispam_spam = Roskaposti; Spam antispam_trash = Trash; roskaposti antispam_signature = X-DSPAM-allekirjoitus antispam_signature_missing = virhe antispam_dspam_binary = / usr / bin / dspam antispam_dspam_arg = % u; - deliver =; - lähde = virhe antispam_dspam_spam = --class = roskaposti antispam_dspam_notspam = --class = viaton antispam_dspam_result_header = X-DSPAM-tulos}

ja /etc/dovecot/conf.d/90-sieve.conf, määritä oletusseurantakoodi, joka koskee kaikkia palvelimen käyttäjiä:

 sieve_default = /etc/dovecot/default.sieve

What is sieve and why do we need a default script for all users? Sieve lets us automatize tasks on the IMAP server. In our case, we won’t all emails identified as spam to be put in the Junk folder instead of in the Inbox. We would like this to be the default behavior for all users on the server; that’s why we just set this script as default script. Let’s create this script now, by creating a new file /etc/dovecot/default.sieve seuraavalla sisällöllä:

 vaatia ["regex", "fileinto", "imap4flags"]; # Saalispostilla, joka on merkitty roskapostiksi, paitsi roskapostin uudelleenkoulutukseen ja toimitettu postilaatikkoon, jos allf (header: regex "X-DSPAM-tulos" "^ (Spam | Virus | Bl [ao] cklisted) $", ei otsikko: sisältää "X -DSPAM-Uudelleen luokiteltu "" Innocent ") {# merkitse luku # setflag" \ Seen "; # Siirrä Junk-kansion tiedostoon "Junk"; # Lopeta käsittely täällä pysähtyy; }

Nyt meidän on koottava tämä käsikirjoitus, jotta kumpupotki voi käyttää sitä. Meidän on myös annettava sille asianmukaiset käyttöoikeudet.

 cd / etc / dovecot sievec. chown mail.dovecot default.siev * chmod 0640 default.sieve chmod 0750 default.svbin

Lopuksi meidän on korjattava oikeudet kahteen postfix-määritystiedostoon, joita dspam tarvitsee lukea:

 chmod 0644 /etc/postfix/dynamicmaps.cf /etc/postfix/main.cf

That’s it! Let’s restart dovecot and postfix

 service dovecot uudelleenkäynnistää palvelun postfix uudelleenkäynnistyksen

ja testaa roskasäilytyspalvelua ottamalla yhteyttä palvelimeen etäisännältä (esim. tietokone, jota käytämme palvelimen määrittämiseen):

 openssl s_client -connect cloud.jhausse.net:25 -starttls smtp EHLO cloud.jhausse.net MAIL FROM: youremail@domain.com rcpt to: roudy@jhausse.net TIEDOT Aihe: DSPAM-testi Hi Roudy, kuinka haluat syödä kinkkua tänä iltana? Sinun, J. LOPETTAA

Let’s check if the mail arrived:

 openssl s_client -crlf -connect cloud.jhausse.net:993 1 kirjautuminen roudy@jhausse.net "mypassword" 2 LIST "" "*" 3 VALITSE INBOX 4 UID hae 3: 3 (UID RFC822.SIZE LIPPUT BODY.PEEK [] )

Kenen pitäisi palauttaa jotain sähköpostiosoitetta, jolla on SPAM: n asettama lippu, joka näyttää tältä:

 X-DSPAM-Tulos: Innocent X-DSPAM-prosessoinut: Sun Loka 5 16: 25: 48 2014 X-DSPAM-Luottamus: 1.0000 X-DSPAM-Todennäköisyys: 0.0023 X-DSPAM-Allekirjoitus: 5431710c178911166011737 X-DSPAM-tekijät: 27 , Vastaanotettu * sertifikaatti + pyydetty, 0.40000, vastaanotettu * asiakas + sertifikaatti, vastaanotettu * Postfix +, 0.40000, vastaanotettu * + + + +, 0.40000, kuten + # + # + 0.40000, Received * for + roudy, 0.40000, Vastaanotettu * Sun + # + # + # + 0.40000, 0.40000, Vastaanotettu * Sun + # + Loka, 16, Vastaanotettu * roudy + # + # + , 0.40000, Received * Oct + # + 0.40000, 0.40000, + 0.40000, 5, + 16, 0.40000, + 0.40000, 0.40000, # + kinkku, 16, vastaanotettu * ei + # + # + pyydetty, 0.40000, vastaanotettu * jhausse.net + # + # + lokakuu, 0.40000, vastaanotettu * 0.40000 + 0.40000, 256, kuten + # + # + * ESMTPS + id, 256, how'd + # + # +, 0.40000, tänä iltana + Sinun, 0.40000, vastaanotettu + salakirjoituksella, 0.40000 0.40000 LOGOUT

Good! You now have adaptive spam filtering set up for the users of your server. Of course, each user will need to train the filter in the first few weeks. To train a message as spam, just move it to a folder called “Spam” or “Junk” using any of your devices (PC, tablet, phone). Otherwise it’ll be trained as ham.

Varmista, että lähettämät sähköpostit tulevat roskapostisuodattimien kautta

Tavoitteenamme tässä osassa on saada postipalvelimemme näkyä mahdollisimman puhtaana maailmalle ja roskapostittajien on vaikeampi lähettää sähköpostia nimissämme. Sivutekijänä tämä auttaa meitä saamaan sähköpostimme muiden sähköpostipalvelimien roskapostisuodattimien kautta.

Sender Policy Framework

Lähettäjäpolitiikan kehys (SPF) on tietue, jonka lisäät oman vyöhykkeesi, joka ilmoittaa, mitkä Internet-palvelimen sähköpostipalvelimet voivat lähettää sähköpostiisi verkkotunnuksestasi. Sen perustaminen on erittäin helppoa, käytä SPF-apuohjelmaa osoitteessa microsoft.com luodaan SPF-tietueesi ja lisää se sitten vyöhykkeelle TXT-tietueeksi. Se näyttää tältä:

 jhausse.net. 300 IN TXT v = spf1 mx mx: cloud.jhausse.net-kaikki

Käänteinen PTR

Keskustelimme tästä asiasta aikaisemmin in this article, it’s a good idea that you set up the reverse DNS for your server correctly, so that doing a reverse lookup on the IP address of your server returns the actual name of your server.


Kun aktivoimme OpenDKIM, postfix will sign every outgoing email using a cryptographic key. We will then deposit that key in our zone, on the DNS. That way, every mail server in the world will be able to verify if the email actually came from us, or if it was forged by a spammer. Let’s install opendkim:

 apt-get asenna opendkim opendkim-tools

Ja määritä se muokkaamalla /etc/opendkim.conf niin että näin näyttää:

 ## ## opendkim.conf - konfigurointitiedosto OpenDKIM-suodattimelle ## Canonicalization rento / rento ExternalIgnoreList refile: / etc / opendkim / TrustedHosts InternalHosts refile: / etc / opendkim / TrustedHosts KeyTable refile: / etc / opendkim / KeyTable LogWhy Kyllä MinimumKeyBits 1024-tila sv PidFile /var/run/opendkim/opendkim.pid AllekirjoitusTaulukon uudelleenlataus: / etc / opendkim / SigningTable Socket inet: 8891 @ localhost Syslog Kyllä SyslogSuccess Kyllä TemporaryDirectory / var / tmp UMask 022 UserID opendkim: opendkim

We’ll need a couple of additional files which we will store in / Etc / opendkim:

 mkdir -pv / etc / opendkim / cd / etc / opendkim /

Let’s create a new file / Etc / opendkim / TrustedHosts seuraavalla sisällöllä

ja uusi tiedosto nimeltä / Etc / opendkim / KeyTable seuraavalla sisällöllä

 cloudkey jhausse.net:mail:/etc/opendkim/mail.private

This tells OpenDKIM that we want to use an encryption key named ‘cloudkey’ whose contents can be found in /etc/opendkim/mail.private. We will create another file named / Etc / opendkim / SigningTable ja lisää seuraava rivi:

 *@jhausse.net cloudkey

which tells OpenDKIM that every emails of the jhausse.net domain should be signed using the key ‘cloudkey’. If we have other domains which we want to sign, we can add them here too.

The next step is to generate that key and fix permissions on OpenDKIM’s config files.

 opendkim-genkey -r -s -posti [-t] chown -Rv opendkim: opendkim / etc / opendkim chmod 0600 / etc / opendkim / * chmod 0700 / etc / opendkim

At first, it’s a good idea to use the -t which will signal to other mail servers that you are just in testing mode, and that they shouldn’t discard emails based on your OpenDKIM signature (yet). You can get your OpenDKIM key from the mail.txt file:

 kissa mail.txt

ja lisää se sitten vyöhyketiedostoosi TXT-tietueeksi, joka pitäisi näyttää tältä

 mail._domainkey.cloud1984.net. 300 IN TXT v = DKIM1; k = rsa; p = MIGfMA0GCSqG ...

Lopuksi meidän on kerrottava postfix-palvelun allekirjoittamaan lähtevät sähköpostit. Lopussa /etc/postfix/main.cf, lisätä:

 # Now for OpenDKIM: allekirjoitamme kaikki lähtevät sähköpostit smtpd_milters = inet: 8891 ei_smtpd_milters = $ smtpd_milters milter_default_action = hyväksy

Ja lataa vastaavat palvelut uudelleen

 palvelu postfix reload palvelu opendkim restart

Now let’s test if our OpenDKIM public key can be found and matches the yksityinen avain:

 opendkim-testkey -d jhausse.net -s sähköposti -k mail.private -vvv

joka palaa

 opendkim-testkey: paina OK

Tätä varten sinun on ehkä odotettava vähän, kunnes nimipalvelin on ladannut vyöhykkeen uudelleen (Linodessa, tämä tapahtuu joka 15min). Voit käyttää kaivaa tarkistaako vyöhyke vielä uudelleen.

If this works, let’s test if other servers can validate our OpenDKIM signatures and SPF record. To do this, we can use Brandon Checkett’s email test. Voit lähettää sähköpostiviestin testiosoite, joka on annettu meille Brandon’s webpage, voimme suorittaa seuraavan komennon palvelimella

 mail -s CloudCheck ihAdmTBmUH@www.brandonchecketts.com

On Brandon’s webpage, you should then see tulos = läpäistä in the ‘DKIM Signature’ section, and Tulos: läpäistä in the ‘SPF Information’ section. If our emails pass this test, just regenerate an OpenDKIM key without the -t siirrä uusi avain vyöhyketiedostoon ja kokeile uudelleen, jos se vielä läpäisee testit. Jos näin on, onnittelut! Olet juuri asettanut OpenDKIM ja SPF palvelimellesi!

Host kalentereita, yhteystietoja, tiedostoja Owncloud ja perustaa webmail kanssa Roundcube

Now that we have a top-notch email server, let’s add to it the possibility to store your contacts, calendars, and files in the cloud. These are services that the Owncloud provides out of the box. While we’re at it, we’ll also set up a webmail, so you can check email even if you’re travelling without electronics, or in case your phone and laptop run out of battery.

Owncloudin asennus on suoraviivaista ja hyvin kuvattu tässä. On Debian, it boils down to adding the owncloud repository to your apt sources, downloading owncloud’s release key and adding it to your apt keyring, and then installing owncloud itself using apt-get:

 echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list wget http: // download. opensuse.org/repositories/isv:ownCloud:community/Debian_6.0/Release.key apt-key add - <Release.key apt-get päivitys apt-get asenna apache2 owncloud roundcube

Kun sinua pyydetään, valitse dbconfig ja sano sitten haluat Roundcube käyttää mysql. Sitten, anna mysql root-salasana ja määritä hyvä salasana pyöreäkuution mysql käyttäjälle. Muokkaa sitten Roundcube config -tiedostoa /etc/roundcube/main.inc.php joten pyöreän kuoren sisäänkirjautuminen edellyttää oletusarvoisesti IMAP-palvelimen käyttämistä:

 $ rcmail_config ['default_host'] = 'ssl: // localhost'; $ rcmail_config ['default_port'] = 993;

Now we will set up the apache2 webserver with SSL so that we can talk to Owncloud and Roundcube using encryption for our passwords and data. Let’s turn on Apache’s ssl module:

 a2enmod ssl

ja muokata /etc/apache2/ports.conf asettaa seuraavat parametrit:

 NameVirtualHost *: 80 Kuuntele 80-palvelimen nimeä www.jhausse.net <IfModule mod_ssl.c> # Jos lisäät NimiVirtualHost *: 443: n tähän, sinun täytyy myös vaihtaa # VirtualHost-lauseketta / etc / apache2 / sites-available / default- ssl # - <VirtualHost *: 443> # Server Nimi Ilmoitus SSL: lle nimeltä virtuaaliset isännät MSIE ei tällä hetkellä tue # Windows XP. NameVirtualHost *: 443 Kuuntele 443 </ IfModule> <IfModule mod_gnutls.c> Kuuntele 443 </ IfModule>

We’ll set up a default verkkosivusto salattuja yhteyksiä web-palvelimeen https://www.jhausse.net varten / Var / www. Muokata / Etc / apache2 / sites-available / default-ssl:

 <VirtualHost _default_: 443> ServerAdmin webmaster @ localhost DocumentRoot / var / www Palvelimen nimi www.jhausse.net [...] <Directory / var / www / owncloud> Kieltäytyy kaikista </ ​​Directory> [...] SSLCertificateFile / etc /ssl/certs/cloud.crt SSLCertificateKeyFile /etc/ssl/private/cloud.key [...] </ VirtualHost>

and let’s also set up a website for unencrypted connections to http://www.jhausse.net varten / Var / www. Muokata / Etc / apache2 / sites-available / default:

 <VirtualHost _default_: 443> DocumentRoot / var / www PalvelinNimi www.jhausse.net [...] <Directory / var / www / owncloud> Kieltäytyy kaikista </ ​​Directory> </ VirtualHost>

That way, we can serve pages for www.jhausse.net by putting them in /var/www. The ‘Deny from all’ directive prevents access to Owncloud through www.jhausse.net: we will set it up to access it through https://cloud.jhausse.net sen sijaan.

Asettamme nyt webmailin (roundcube) niin, että sitä pääsee käsiksi https://webmail.jhausse.net. Muokata / Etc / apache2 / sites-available / Roundcube saada seuraava sisältö:

 <IfModule mod_ssl.c> <VirtualHost *: 443> ServerAdmin webmaster @ localhost DocumentRoot / var / lib / roundcube # Isäntänimi, johon haluat käyttää webmailia PalvelinNimi webmail.jhausse.net <Directory> Valinnat FollowSymLinks AllowOverride None </ Directory> ErrorLog $ {APACHE_LOG_DIR} /error.log # Mahdollisia arvoja ovat: virheenkorjaus, info, ilmoitus, varoitus, virhe, crit, # hälytys, emerg. LogLevel varoittaa CustomLog $ {APACHE_LOG_DIR} /ssl_access.log yhdistetty # SSL Engine Switch: # Ota käyttöön / estä SSL tämä virtuaalinen isäntä. SSLEngine # ei salli suojaamattomia yhteyksiä # SSLRequireSSL SSLCipherSuite HIGH: MEDIUM # Self-signed (snakeoil) -sertifikaatti voidaan luoda asentamalla # ssl-cert-paketin. Katso lisätietoja # /usr/share/doc/apache2.2-common/README.Debian.gz. # Jos sekä avain että todistus tallennetaan samaan tiedostoon, tarvitaan vain # SSLCertificateFile-direktiivi. SSLCertificateFile /etc/ssl/certs/cloud.crt SSLCertificateKeyFile /etc/ssl/private/cloud.key # Nämä aliakset eivät toimi kunnolla useilla apache-palvelimilla # Puheita niitä käyttämästäsi tai muokata niitä kokoonpanoon Alias ​​/ ohjelma / js / tiny_mce / / usr / share / tinymce / www / # Käyttöoikeus tinymce tiedostoihin <Directory "/ usr / share / tinymce / www /"> Asetukset Indeksit MultiViews SeuraaSymLinks AllowOverride Ei mitään Tilaa sallitaan, > <Directory / var / lib / roundcube /> Asetukset + FollowSymLinks # Tätä tarvitaan jäsentämään /var/lib/roundcube/.htaccess. Katso sen # sisältöä ennen AllowOverride-asetuksen asettamista Ei mitään-kohtaan. AllowOverride Kaikkien tilausten salliminen, estäminen sallitaan kaikilta </ ​​Directory> # Perushakujen suojaaminen: <Directory / var / lib / roundcube / config> Asetukset -FollowSymLinks AllowOverride None </ Directory> <Directory / var / lib / roundcube / temp> -SeuratLimiä AllowOverride Ei mitään Tilaa sallita, kieltää Deny kaikista </ ​​Directory> <Directory / var / lib / roundcube / logs> Asetukset -FollowSymLinks AllowOverride Ei mitään Tilaa sallita, kieltää Deny kaikista </ ​​Directory> <FilesMatch "\. SSL-protokollan säädöt: # Turvallinen ja oletusarvoinen mutta silti SSL / TLS-standardi. SSL-protokollan säätö: # SSL / TLS-standardi yhteensopiva shutdown # lähestymistapa on, että mod_ssl lähettää läheisen ilmoituksen hälytyksen, mutta ei odota # ilmoittautumisen ilmoittavaa hälytystä asiakkaalta. Kun tarvitset eri shutdown # -menetelmän, voit käyttää jotain seuraavista muuttujista: # o ssl-epäpuhtaus-shutdown: # Tämä pakottaa epäpuhdan sulkemisen, kun yhteys suljetaan, eli ei # SSL close ilmoittaa hälytystä lähetetään tai sallitaan vastaanottaa. Tämä rikkoo # SSL / TLS -standardia, mutta sitä tarvitaan joihinkin aivoihin kuolleisiin selaimiin. Käytä # tätä, kun vastaanotat I / O-virheitä tavanomaisen lähestymistavan vuoksi, jossa # mod_ssl lähettää läheisen ilmoituksen hälytyksen. # o ssl-accurate-shutdown: # Tämä pakottaa tarkan sulkemisen, kun yhteys suljetaan eli # SSL close ilmoittaa hälytyksen lähetetään ja mod_ssl odottaa asiakkaan ilmoituksen # ilmoitusta. Tämä on 100% SSL / TLS -standardin mukainen, mutta # käytännössä aiheuttaa roikkuvat yhteydet aivoihin kuolleisiin selaimiin. Käytä # tätä vain selaimille, joissa tiedät, että niiden SSL-toteutus # toimii oikein. # Huomautus: Useimmat rikkoutuneiden asiakkaiden ongelmat liittyvät myös HTTP # -toimintoihin, joten yleensä haluat myös poistaa käytöstä # pysyvän myös näille asiakkaille. Käytä tätä varten muuttujaa "nokeepalive". # Samoin on pakotettava joihinkin asiakkaisiin HTTP / 1.0in käyttäminen kiertotapaan # heidän rikki HTTP / 1.1-toteutuksensa. Käytä tätä varten muuttujia "downgrade-1.0" ja # "force-response-1.0". "MSIE [2-6]" ssl-epäpuhtaat-shutdown \ downgrade-1.0 force-response-1.0 # MSIE 7 ja uudemmat pitäisi pystyä käyttämään keepalive BrowserMatch "MSIE [17-9] </ VirtualHost> </ IfModule>

ja ilmoittaa palvelimesi DNS: ssä, esimerkiksi:

 webmail.jhausse.net. 300 IN CNAME cloud.jhausse.net.

Now let’s enable these three websites

 a2ensite oletusasetus-ssl roundcube-palvelu apache2 uudelleenkäynnistys

ja webmail, saatavilla osoitteessa https://webmail.jhausse.net, should basically work. Log in using the full email (e.g. roudy@jhausse.net) and the password you set in mailserver DB at the beginning of this article. The first time you connect, the browser will warn you that the certificate was not signed by a certification authority. That’s fine, just add an exception.

Viimeisenä mutta ei vähäisimpänä, luomme virtuaalisen isännän omalle luokalle asettamalla seuraavan sisällön / Etc / apache2 / sites-available / owncloud:

 <IfModule mod_ssl.c> <VirtualHost *: 443> ServerAdmin webmaster @ localhost DocumentRoot / var / www / owncloud Palvelimen nimi cloud.jhausse.net <Directory> Asetukset FollowSymLinks AllowOverride None </ Directory> <Directory / var / www / owncloud> Asetukset Indeksit SeuraaLinkkejä MultiViews AllowOverride Kaikki tilauksen sallivat, estä sallivat kaikki </ Directory> ScriptAlias ​​/ cgi-bin / / usr / lib / cgi-bin / <hakemisto> / usr / lib / cgi-bin "> AllowOverride None Options + ExecCGI -MultiViews + SymLinksIfOwnerMatch Tilaa sallita, estää Allow from all </ Directory> ErrorLog $ {APACHE_LOG_DIR} /error.log # Mahdollisia arvoja ovat: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel varoittaa CustomLog $ {APACHE_LOG_DIR} /ssl_access.log yhdistetty # SSL Engine Switch: # Ota käyttöön / estä SSL tämä virtuaalinen isäntä. SSLEngine on # ei salli suojattomat yhteydet # SSLRequireSSL SSLCipherSuite HIGH: MEDIUM SSLCertificateFile /etc/ssl/certs/cloud.crt SSLCertificateKeyFile /etc/ssl/private/cloud.key <FilesMatch "\. (Cgi | shtml | phtml | php) \ Nokeepalive ssl-epäpuhtaus-shutdown \ downgrade-2 force-xnumx -xnumx- \ nokeepalive ssl-impure-shutdown \ downgrade-6 force- vastaus-1.0 # MSIE 1.0 ja uudemmat pitäisi pystyä käyttämään keepalive BrowserMatch "MSIE [7-17]" ssl-epäpuhdas shutdown </ VirtualHost> </ IfModule>

ja aktivoi omalla äänellä suorittamalla

 a2ensite owncloud palvelu apache2 reload

Sitten mene eteenpäin määrittää omalla äänellä liittymällä https://cloud.jhausse.net/ verkkoselaimessa.

That’s it! Now you’ve got your own Google Drive, Calendar, Contacts, Dropbox, and Gmail! Enjoy your freshly recovered privacy! 🙂

Synkronoi laitteet pilvipalveluun

Voit synkronoida sähköpostit käyttämällä vain suosikkiasi sähköpostiasiakkaasi: tavallista sähköpostiohjelmaa Android- tai iOS-laitteissa, k9mail, tai Thunderbird tietokoneellesi. Voit myös käyttää perustelemamme sähköpostipalvelua.

How to sync your calendar and contacts with the cloud is described in the doc of owncloud. On Android, I’m using the CalDAV-Sync and CardDAV-Sync apps which act as bridges between the Android calendar and contacts apps of the phone and the owncloud server.

Tiedostoja varten Android-sovellus nimeltä Owncloud käyttää tiedostojasi puhelimestasi ja lataa automaattisesti kuvia ja videoita, joita otat pilviin. Macille ja tietokoneellesi tallennettujen tiedostojen käyttö on helppoa hyvin kuvattu Owncloud-dokumentaatiossa.

Viimeiset vinkit

During the first few weeks, it’s a good idea to monitor / Var / log / syslog ja /var/log/mail.log on a daily basis and make sure everything everything is running smoothly. It’s important to do so before you invite others (friends, family, …) to be hosted on your server; you might loose their trust in self-hosting for good if they trust you with their data and the server suddently becomes unavailable.

Lisää uusi sähköposti käyttäjä lisäät vain rivin virtual_users taulukko postipalvelimen DB.

Voit lisätä verkkotunnuksen vain lisäämällä rivin virtual_domains pöytä. Päivitä sitten / Etc / opendkim / SigningTable saada allekirjoitetut lähtevät sähköpostit, ladata OpenDKIM-avain vyöhykkeeseen ja ladata OpenDKIM uudelleen.

Owncloudilla on oma käyttäjätunnistetiedot, joita voidaan hallita kirjautumalla Owncloudiin järjestelmänvalvojana.

Finally, it’s important to think in advance of a solution in case your server becomes temporarily unavailable. For instance, where would your mails go until your server returns? One solution would be to find a friend who can act as your backup MX, while you act as his backup MX (see the relay_domains ja relay_recipient_maps setting in Postfix’s main.cf file). Similarly, what if your server is compromised and a malicious individual erases all your files there? For that, it’s important to think of a regular backup system. Linode offers backups as an option. On 1984.is, I set up a basic but sufficient automatic backup system using on crontabs and scp.


Yksi vastaus

Jätä vastaus

Tämä sivusto käyttää Akismetiä roskapostin vähentämiseksi. Lue, miten kommenttitietosi käsitellään.

GTranslate Your license is inactive or expired, please subscribe again!