Como construir sua própria nuvem para você e seus amigos na Debian Wheezy

Voltar a sua privacidade e controle sobre seus dados em apenas algumas horas: construir sua própria nuvem para você e seus amigos

Algumas das peças mais pessoais de sua identidade são armazenadas em servidores ao redor do mundo, além de seu controle

Let's say you've been a Gmail user between 2006 e 2013 como eu, meaning you received 30'000+ emails and wrote about 5000 e-mails sobre isso 7 período do ano. Alguns dos e-mails que enviou ou recebeu são muito pessoais., maybe so personal that you probably wouldn't like even some family members or close friends to go through them systematically. Talvez você redigiu também alguns e-mails que você nunca enviou porque você mudou de ideia no último minuto. Mas mesmo se você nunca enviou-lhes, esses e-mails são ainda armazenados em algum lugar em um servidor. Como um resultado, it's fair to say that Google servers know more about your personal life than your closest friends or your family.

Estatisticamente, it's a safe bet to consider that you've got a Smartphone. Você mal sabe usar o telefone sem usar o app de contatos que armazena seus contatos no Google contato nos servidores do Google por padrão. Não só o Google sabe sobre seus e-mails, Mas também sobre seus contatos off-line: quem você gosta de chamar, Quem te chama, Quem te texto, e o que você texto eles sobre. You don't have to take my word for it, Você pode verificar por si mesmo, tendo um olhar para as permissões que você deu apps como o Google serviço de jogar para ler a lista de pessoas que te chamou e o SMS que você tem. Você também usa o aplicativo de calendário que vem com o seu telefone? A menos que você explicitamente optou por ficar fora durante a criação de seu calendário, this means that Google knows precisely what you're up to, a cada momento do dia, dia após dia, ano após ano. O mesmo se aplica se você escolheu um iPhone um telefone Android, exceto Apple obtém para saber sobre sua correspondência, contatos e calendário em vez de Google.

Também aceita grande cuidado para manter os contatos no seu diretório atualizado, 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, imagens atualizadas da sua rede social. E você ama o GPS de seu Smartphone que você usa muito juntamente com Google Maps. Isto significa que Google não só sabe o que fazer de seu calendário, mas também onde você está, Onde você mora, Onde você trabalha.. E correlacionando dados de localização GPS através de usuários, Google pode também contar com quem você pode socializar com agora.

Seu hábito diário de distribuir suas informações pessoais mais impactará sua vida de forma que ninguém pode mesmo forsee

Para resumir, Se você é um usuário médio da internet, Google tem atualizado, informações detalhadas sobre seus interesses, preocupa-se, paixões, perguntas, sobre quase 10 anos. Tem uma coleção de algumas de suas mensagens mais pessoais (e-mails, SMS), um detalhe de hora por hora de suas atividades diárias e localização, e uma imagem de alta qualidade de sua rede social. Um profundo conhecimento de você provavelmente vai além do que seus amigos mais próximos, família, ou sua sabe querida de vocês.

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'. Quem sabe quem pode encontrá-lo e o que eles fariam com ele? Ainda, 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 especialistas de classe mundial em análise de dados, perhaps just because it happens by default without us thinking about it when we hit that green 'Accept' button.

Com tanta informação de alta qualidade, ao longo dos anos, Google pode bem conhecer você melhor do que você pode esperar conhecer a mesmo: Parreira, rastejando pela minha digital passado agora, I can't remember having written half of the emails I sent five years ago. Estou surpresa e satisfeita por redescoberta de volta meu interesse no marxismo 2005 e se juntar a minha ATTAC (uma organização que se esforça para limitar a especulação e melhorar a justiça social, tributação de operações financeiras) no próximo ano. E só Deus sabe por que eu era então muito em sapatos de dança de volta em 2007. These is pretty harmless information (you wouldn't have expected me to reveal something embarassing here, seria você? ;-). Mas ao ligar os pontos entre dados de alta qualidade sobre diferentes aspectos da sua vida (o que, Quando, com quem, Onde, ...) ao longo do tempo tal abrange, um pode extrapolar declarações preditivas sobre você. Por exemplo, desde os hábitos de compra de uma garota de 17 anos de idade, supermercados podem dizer que ela está grávida, antes que o pai dela ainda ouve sobre isso (história verdadeira). Quem sabe o que se tornará possível com dados de alta qualidade que tem o Google como, que vai bem além de hábitos de compras? Conectando os pontos, Talvez um pode prever como seus gostos ou opiniões políticas mudará nos próximos anos. Hoje, empresas que nunca ouviu falar de reivindicação para ter 500 pontos de dados sobre você, incluindo a religião, orientação sexual e opiniões políticas. Falando de política, e se você decidir entrar para a política em 10 anos a partir de agora? Sua vida pode mudar, sua opinião também, e você ainda pode esquecer, but Google won't. Você terá que se preocupar que seu oponente está em contacto com alguém que tem acesso aos seus dados no Google e pode desenterrar algo embaraçoso em você esses poços sem fundo dos dados pessoais que você deu ao longo dos anos? Quanto tempo até o Google ou Facebook se hackeado assim como a Sony recentemente foi hackeado e todos os seus dados pessoais na esfera pública para sempre?

Uma das razões a maioria de nós têm confiado os nossos dados pessoais a essas empresas é que eles fornecem seus serviços gratuitamente. Mas como livre é realmente? O valor da média da conta do Google varia de acordo com o método utilizado para estimá-lo: 1000 USD/ano contas para a quantidade de tempo que você investir em escrever e-mails, enquanto o valor de sua conta para a indústria da propaganda está em algum lugar entre 220 USD/ano e 500 USD/ano. Assim que o serviço é gratuito não é exatamente: você paga por ele através de propaganda e os usos ainda desconhecidos que nossos dados podem encontrar no futuro.

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. Mas pode bem ter escrito Apple ou Facebook. Essas empresas realmente mudaram o mundo com seus fantásticos avanços em design, Engenharia e serviços-nós love(d) usar, Todos os dias. 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.

Reivindicação de volta sua privacidade e a de pessoas que você gosta em apenas 5h

Não tem que ser assim. Você pode viver no século XXI, Tenho um smartphone, usar e-mail e GPS em base diária, e ainda manter a sua privacidade. Tudo o que você precisa fazer é voltar o controle sobre seus dados pessoais: e-mails, calendário, contatos, arquivos, etc.. O Prisma-Break.org Web site lista de software que ajudam a controlar o destino dos seus dados pessoais. Além destas opções, a maneira mais segura e mais poderosa para recuperar o controle sobre seus dados pessoais é hospede sua nuvem se, através da construção de seu próprio servidor. Mas você não pode ter o tempo e energia para pesquisa exatamente como fazer isso e fazer funcionar lisamente.

That's where the present article fits in. Em apenas 5 horas, definiremos um servidor para hospedar seus e-mails, contatos, calendários e arquivos para você, seus amigos e sua família. O servidor é projetado para funcionar como um hub ou nuvem para os seus dados pessoais, para que você sempre mantém controle total sobre ele. Os dados serão automaticamente sincronizados entre o seu PC/laptop, seu telefone e seu tablet. Essencialmente, Montamos um sistema que substitui o Gmail, Google Drive / Dropbox, Contatos do Google, Calendário e Google Picasa.

Apenas fazendo isso por si mesmo já será um grande passo. Mas depois, uma fração significativa de suas informações pessoais ainda vai vazar e acabar em alguns servidores no vale do silício, Só porque então muitas das pessoas interage com todos os dias usar Gmail e têm smartphones. So it's a good idea to have some of the people you are closest to join the adventure.

Vamos construir um sistema que

  1. oferece suporte a um número arbitrário de domínios e usuários. Isto torna mais fácil compartilhar seu servidor com família e amigos, para que ter controle sobre seus dados pessoais também e pode dividir o custo do servidor com você. As pessoas que compartilham seu servidor podem usar suas próprias nome de domínio ou partilhar o seu.
  2. permite-lhe enviar e receber seus e-mails de qualquer rede após com êxito logon servidor. Desta forma, Você pode enviar seus e-mails de qualquer um dos seus endereços de e-mail, partir de qualquer dispositivo (PC, telefone, Tablet), e qualquer rede (em casa, no trabalho, de uma rede pública, ...)
  3. criptografa o tráfego de rede 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. oferece o estado-da-arte antispam, combinação de listas negras de spammers conhecidos, greylisting automático, e filtragem de spam adaptativa. Re-treinar o filtro de spam adaptativa se um e-mail é erroneamente classificado é feita simplesmente movendo spam em ou fora da pasta de Spam/Junk. Também, o servidor contribuirá para spam baseados na Comunidade, os esforços de combate.
  5. requer apenas alguns minutos de manutenção de vez em quando, Basicamente instalar as atualizações de segurança e verificar rapidamente o servidor registra. Adicionar um novo endereço de e-mail se resume a adição de um registro para um banco de dados. Para além disso, Você só pode esquecê-lo e viver a sua vida. Configurar o sistema descrito neste artigo 14 meses atrás e a coisa só foi executado sem problemas desde então. Então eu esqueci completamente sobre isso, 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.

Para passar por este artigo, you'll need a minimum of technical capabilities. Se você sabe qual é a diferença entre SMTP e IMAP, o que é um DNS, e ter uma compreensão básica de TCP/IP, Você sabe o suficiente para acompanhar, através. Também será necessário um conhecimento básico do funcionamento do Unix (trabalhando com arquivos de linha de comando, Administração do sistema básico). And you'll need a total of 5 horas de tempo de configurá-lo.

Este artigo foi inspirado e se baseia nos trabalhos anteriores

Este artigo inspira-se fortemente de dois outros artigos, ou seja 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, ou seja, empurre suporte para e-mail (gosto de verificar os e-mails somente quando eu decidir, Senão fico distraído o tempo todo), fulltext search in email (which I don't have a use for), e armazenamento de e-mails em um formato criptografado (meu email e os dados não são críticos para o ponto que eu tenho para criptografá-los localmente no servidor). Se você precisar de alguma destas características, feel free to just add them by following to the respective section of Drew's article, o que é compatível com o presente.

Compared to Xavier's and Drew's work, o presente artigo melhora em vários aspectos:

  • it fixes bugs and typos based on my experience with Drew's article and the numerous comments on his original article. Também fui através do presente artigo, Configurando o servidor do zero diversas vezes para replicá-lo e certifique-se que funcionaria direita fora da caixa.
  • low maintenance: compared to Xavier's work, o presente artigo adiciona suporte para múltiplos domínios de e-mail no servidor. Fá-lo, exigindo o mínimo de manutenção do servidor possível: basicamente, para adicionar um domínio ou um usuário, just add one row to a mysql table and that's it (no need to add sieve scripts, ...).
  • Eu adicionei o webmail.
  • Eu adicionei uma seção sobre como configurar uma nuvem, para sediar não só seus e-mails, mas também seus arquivos, seu livro de endereços / contatos (e-mails, números de telefone, aniversários, ...), calendários e fotos para usar em seus dispositivos.

Obter um servidor privado Virtual, um nome de domínio, e configurá-los

Let's start by setting the basic infrastructure: our virtual private server and our nome de domínio.

I've had an excellent experience with the Virtual Private Servers (VPS) de 1984.é e Linode. Neste artigo, Nós usaremos Debian Wheezy, para que ambos 1984 e Linode fornecer imagens prontas para implantar na sua VPS. Eu gosto 1984 Porque os servidores são hospedados em Islândia que executado exclusivamente em energia renovável (geothermical e hidrelétricas) e, portanto, não contribui para as alterações climáticas, ao contrário de as usinas de carvão na qual datacenters mais norte-americana atualmente executados. Também, Eles colocaram a ênfase liberdades civis, transparência, liberdade e Software livre.

Pode ser uma boa ideia para começar um arquivo para armazenar os vários senhas Teremos de definir no servidor (contas de usuário, contas de correio, contas de nuvem, banco de dados contas). 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.

Para registrar um nome de domínio, I've been using the services of Gandi para mais de 10 anos agora, também com satisfação. Para este artigo, Montamos uma zona com o nome jhausse.net. Em seguida, adicionar um host chamado Cloud.jhausse.net a ele, definir o registro MX para que o host. While you're at it, definir o pouco tempo de vida (TTL) para seus registros como 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.

Finalmente, definir o Registro PTR (reverso DNS) para que o Endereço IP dos mapas anfitrião volta ao seu nome. If you don't understand the previous sentence, ler Este artigo para obter o plano de fundo. Se você usar o Linode, Você pode definir o registro PTR no painel de controle na seção de acesso remoto. Com 1984, entrar em contato com o suporte técnico que vai te ajudar com isso.

No servidor, Vamos começar adicionando um usuário não-privledged, so that we don't end up working as root all the time. Também, para logar como root exigirá uma camada extra de segurança.

 adduser leidianne

Em seguida, em /etc/ssh/sshd_config, Estamos prontos

 PermitRootLogin não

e recarregar o ssh servidor

 serviço ssh recarregar

Em seguida, we'll need to change the hostname of the server. Editar /etc/hostname para que ele tenha apenas uma única linha com seu nome de host, no nosso caso

 nuvem

Em seguida, 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 para que o final do arquivo reflete seu hostname, ou instância [email protected]. Em seguida, reinicie o sistema para certificar-se de que o nome do host é fixo sempre que é deve ser

 reinicialização

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

 apt-get update apt-get dist-upgrade serviço exim4 paragem apt-get remove exim4 rpcbind apt-get autoremove apt-get install vim

Eu gosto de usar o vim para editar o config arquivos remotamente. Para isso, ajuda a ligar automaticamente realce de sintaxe. Fazemo-lo adicionando

 SYN em

Para ~/.vimrc.

Configurar o postfix e dovecot para enviar e receber e-mail

 apt-get install postfix postfix-mysql dovecot-núcleo dovecot-imapd dovecot-mysql mysql-servidor dovecot-lmtpd postgrey

No O postfix menu de configuração, Nós selecionamos Site na Internet, e defina o nome de correio do sistema jhausse.net.

Agora definiremos uma base de dados para armazenar a lista de domínios hospedados em nosso servidor, a lista de usuários para cada um destes domínios (juntamente com sua senha), e uma lista de aliases de e-mail (para encaminhar e-mail de um determinado endereço a outro).

 mysqladmin -p criar mailserver mysql -p mailserver mysql> GRANT SELECT ON mailserver.* para 'mailuser'@'localhost' identificado por 'mailuserpass'; MySQL> PRIVILÉGIOS DE DESCARGA; MySQL> CRIAR a tabela 'virtual_domains' ('id' int(11) não NULL auto_increment,   'nome' varchar (50) não nulo,   PRIMARY KEY ('id')) ENGINE = InnoDB DEFAULT CHARSET = utf8; MySQL> CRIAR a tabela 'virtual_users' ('id' int(11) não NULL auto_increment,   'domain_id' int(11) não nula,   'senha' varchar(106) não nula,   'e-mail' varchar(100) não nula,   PRIMARY KEY ('id'),   CHAVE exclusiva 'e-mail' (' '),   REFERÊNCIAS (domain_id) de chave estrangeira virtual_domains(id) ON DELETE CASCADE) ENGINE = InnoDB DEFAULT CHARSET = utf8; MySQL> CRIAR a tabela 'virtual_aliases' ('id' int(11) não NULL auto_increment,   'domain_id' int(11) não nula,   'fonte' varchar(100) não nula,   'destino' varchar(100) não nula,   PRIMARY KEY ('id'),   REFERÊNCIAS (domain_id) de chave estrangeira virtual_domains(id) ON DELETE CASCADE) ENGINE = InnoDB DEFAULT CHARSET = utf8;

Vamos organizar o jhausse.net domínio. If there are other domains you'd like to host, Você também pode adicioná-los. Também montamos um endereço postmaster para cada domínio, que encaminha para [email protected].

 MySQL> INSERT INTO virtual_domains ('name') valores ('jhausse.net'); MySQL> INSERT INTO virtual_domains ('name') valores ('otherdomain.net'); MySQL> INSERT INTO virtual_aliases ('domain_id', «fonte», 'destino') VALUES ('1', 'postmaster', '[email protected]'); MySQL> INSERT INTO virtual_aliases ('domain_id', «fonte», 'destino') VALUES ('2', 'postmaster', '[email protected]');

Podemos agora adicionar uma conta de email hospedados localmente [email protected]. Primeiro, podemos gerar um hash de senha para ele:

 doveadm pw -s SHA512-CRYPT

e, em seguida, adicione o hash para o banco de dados

 MySQL> INSERT INTO 'mailserver'. 'virtual_users' ('domain_id', 'senha', VALORES de 'e-mail') ('1', '$  6$  YOURPASSWORDHASH', '[email protected]');

Agora que nossa lista de domínios, aliases e usuários estão no lugar, Montamos postfix (servidor de SMTP, para o correio de saída). Substitua o conteúdo do /etc/postfix/main.cf com o seguinte:

 myhostname = cloud.jhausse.net myorigin = / etc/nome de correio mydestination = localhost. localdomain, mynetworks_style localhost = host  # Desativamos a afinação na geral caso smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination # Requisitos em servidores que entre em contato conosco: verificamos que o cliente não é um # spammer conhecido (reject_rbl_client) e usar um mecanismo de graylist # (postgrey) para ajudar a reduzir o spam (check_policy_service) smtpd_client_restrictions = permit_mynetworks, reject_rbl_client zen.spamhaus.org, check_policy_service inet:127.0.0.1:10023 disable_vrfy_command = Sim inet_interfaces = todos os smtpd_banner = $  myhostname ESMTP $  mail_name (Debian/GNU) biff = não append_dot_mydomain = não readme_directory = não  # TLS parâmetros smtpd_tls_cert_file=/etc/ssl/certs/cloud.crt smtpd_tls_key_file=/etc/ssl/private/cloud.key smtpd_use_tls = Sim smtpd_tls_auth_only = Sim smtp_tls_security_level = maio smtp_tls_loglevel = 1 smtpd_tls_loglevel = 1 smtpd_tls_received_header = Sim smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache  # Entrega alias_maps = hash: / etc/aliases alias_database = hash: / etc/aliases message_size_limit = 50000000 recipient_delimiter = +  # As próximas linhas são úteis para configurar um backup MX para myfriendsdomain.org # relay_domains = myfriendsdomain.org # relay_recipient_maps =  # Domínios virtuais virtual_transport = lmtp:unix:private / dovecot-lmtp virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.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

Agora nós precisamos ensinar postfix para descobrir quais domínios gostaríamos de aceitar e-mails para usar o banco de dados, que montamos. Criar um novo arquivo /etc/postfix/MySQL-virtual-Mailbox-Domains.cf e adicione o seguinte:

 usuário = senha mailuser = mailuserpass anfitriões = 127.0.0.1 dbname = mailserver consulta = SELECT 1 DE virtual_domains WHERE nome = '%s'

Nós ensinamos o postfix para descobrir a existência através da criação de uma conta de e-mail de determinado /etc/postfix/MySQL-virtual-Mailbox-Maps.cf com o seguinte conteúdo

 usuário = senha mailuser = mailuserpass anfitriões = 127.0.0.1 dbname = mailserver consulta = SELECT 1 DE virtual_users onde e-mail = '%s'

Finalmente, usará o sufixo /etc/postfix/MySQL-virtual-alias-Maps.cf para procurar aliases de e-mail

 usuário = senha mailuser = mailuserpass anfitriões = 127.0.0.1 dbname = mailserver consulta = Selecione virtual_aliases.destination como destino FROM virtual_aliases, virtual_domains onde virtual_aliases.source='%u' e virtual_aliases.domain_id = virtual_domains.id e virtual_domains.name='%d'

Com tudo isso no lugar, Agora é hora de testar se o postfix pode consultar nosso banco de dados corretamente. Podemos fazer isso usando postmap:

 postmap - q jhausse.net mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf postmap - q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf postmap - q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf postmap - q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Se você configurar tudo corretamente, as duas primeiras consultas devem retornar 1, a terceira consulta deve retornar [email protected] e o último que deve retornar nada em tudo.

Agora, let's set up dovecot (the IMAP server, para buscar os emails recebidos no servidor do nossos dispositivos). Editar /etc/Dovecot/Dovecot.conf para definir os seguintes parâmetros:

 # Protocolo de Enable instalado # ! include_try /usr/share/dovecot/protocols.d/*.protocol protocolos = lmtp imap

que só lhe permitirá imap (deixar-nos ir buscar e-mails) e lmtp (sufixo que usará para passar e-mails recebidos para dovecot). Editar /etc/Dovecot/conf.d/10-mail.conf para definir os seguintes parâmetros:

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

que irá armazenar e-mails em /var/mail/domainname/username. Observe que essas configurações estão espalhadas em locais diferentes no arquivo., e às vezes já estão lá para nos definir: só precisamos de comentá-las. As outras configurações que já estão no arquivo., Você pode deixar como está. Temos de fazer o mesmo para atualizar as configurações em muitos mais arquivos no restante deste artigo. Em /etc/Dovecot/conf.d/10-auth.conf, Defina os parâmetros:

 disable_plaintext_auth = Sim auth_mechanisms = plain #! incluir auth-system.conf.ext! incluem auth-sql.conf.ext

Em /etc/Dovecot/conf.d/auth-SQL.conf.ext, Defina os seguintes parâmetros:

 passdb {motorista = sql args = /etc/dovecot/dovecot-sql.conf.ext} userdb {motorista = args estático = uid = gid email = email home=/var/mail/%d/%n}

onde ensinamos dovecot que os usuários têm seus e-mails em /var/mail/domainname/username e para olhar para cima senhas do banco de dados que acabamos de criar. Agora nós ainda precisamos ensinar dovecot exatamente como usar o banco de dados. Para fazê-lo, Coloque o seguinte em /etc/Dovecot/Dovecot-SQL.conf.ext:

 Driver = mysql conectar = host = localhost dbname = servidor de correio usuário = senha mailuser = mailuserpass default_pass_scheme = password_query SHA512-CRYPT = selecione e-mail como usuário, virtual_users de senha de e-mail onde = '%u';

Vamos agora corrigir as permissões em arquivos de configuração

 chown -R e-mail: dovecot/etc/dovecot chmod -R o-rwx/etc/dovecot

Quase lá! Só precisamos editar alguns arquivos mais. Em /etc/Dovecot/conf.d/10-Master.conf, Defina os seguintes parâmetros:

 imap-logon de serviço {inet_listener imap {#port = 143     Port = 0   } inet_listener imaps {port = 993     SSL = yes}} serviço pop3 login {pop3 inet_listener {#port = 110     Port = 0   } inet_listener pop3s {#port = 995     #SSL = Sim port = 0   lmtp de serviço}} {unix_listener /var/spool/postfix/private/dovecot-lmtp {modo = 0666     grupo = usuário postfix = sufixo} usuário = email} serviço auth {unix_listener auth-userdb {modo = 0600     usuário = email #group =}    # Postfix com smtp-auth unix_listener /var/spool/postfix/private/auth {modo = 0666     usuário = sufixo grupo = sufixo}    # Processo de autenticação é executado como este usuário.   #usuário = $  default_internal_user usuário = dovecot} auth-trabalhador de serviços {usuário = email}

Observe que definir portas para todos os serviços mas imaps para 0, que efetivamente desativa-los. Em seguida, em /etc/Dovecot/conf.d/15-Lda.conf, Especifica um endereço de e-mail para o chefe dos correios:

 postmaster_address = [email protected]

Último mas não menos importante., precisamos gerar um par de público e chave privada para o servidor, que nós usaremos tanto no dovecot e postfix:

 openssl req-nova rsa:4096 - newkey - x 509 - dias 365 -nodes -out "/etc/ssl/certs/cloud.crt" -keyout "/etc/ssl/private/cloud.key"

Certifique-se de que você especificar que é o totalmente qualificado domínio nome (FQDN) do servidor, no nosso caso:

 Nome comum (por exemplo. FQDN do servidor ou seu nome) []: cloud.jhausse.net

If you don't, nossos clientes podem queixar-se que o nome do servidor no certificado SSL não coincide com o nome do servidor que estão se conectando. Dizemos o dovecot para usar essas chaves, definindo os seguintes parâmetros no /etc/Dovecot/conf.d/10-SSL.conf:

 SSL = necessário 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!

 reiniciar o serviço dovecot reiniciar serviço postfix

Partir do próprio servidor, tente enviar um e-mail para um usuário local:

 telnet localhost 25 Dados de to:[email protected] de rcpt para MAIL FROM:[email protected] de cloud.jhausse.net EHLO assunto: Hallo!  Isso é um teste, para verificar se o cloud.jhausse.net está pronto para ser um MX!  Brinde, Leidianne . DESISTIR

O servidor deve aceitar nosso e-mail com uma mensagem como

 250 2.0.0 Okey: enfileirado como 58D54101DB

Verifique os logs /var/log/mail.log Se tudo correu bem. Deve haver uma linha dizendo algo como

 Nov 14 07: dovecot nuvem de 57:06: lmtp (4375, [email protected]): ... salvo o correio para caixa de entrada

Até aqui, tudo bem? Bom. Agora, let's try the same from a different machine, como o computador, nós estamos usando para configurar o servidor. 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:[email protected] rcpt to:[email protected]

para que o servidor deve responder

 554 5.7.1 <[email protected]>: Acesso relay negado

That's good: had the server accepted the mail, Isso significaria que montamos postfix como uma retransmissão aberta para todos os spammers do mundo e beyhond usar. Instead of the 'Relay access denied' message, você em vez disso pode receber a mensagem

 554 5.7.1 Serviço indisponível; Host de cliente [87.68.61.119] bloqueado usando zen.spamhaus.org; http://www.spamhaus.org/Query/BL?IP=87.68.61.119

Isto significa que você está tentando entrar em contato com o servidor de um Endereço IP that is considered as a spammer's address. Eu tenho essa mensagem ao tentar se conectar ao servidor através de minha regular Internet Service Provider (ISP). Para corrigir esse problema, Você pode tentar se conectar de outro host, Talvez outro servidor, que você tem acesso a através SSH. Como alternativa, you can reconfigure Postfix's Main.cf not to use Spamhaus's RBL, recarregar o postfix, e verificar se o teste acima funciona. Em ambos os casos, it's important that you find a solution that works for you because we'll test other things in a minute. Se você escolheu para reconfigurar o Postfix para não usar 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 tente enviar um e-mail válido por SMTP na porta 25, quais servidores de correio normal usam para falar entre si:

 OpenSSL s_client-connect cloud.jhausse.net:25 - starttls smtp EHLO cloud.jhausse.net MAIL FROM:[email protected] rcpt to:[email protected]

para que o servidor deve responder

 Host de cliente rejeitado: Greylisted, consulte http://postgrey.schweikert.ch/help/jhausse.net.html

que mostra que postgrey está funcionando como deveria. O postgrey faz isso para rejeitar e-mails com um erro temporário, se o remetente nunca foi visto antes. As regras técnicas de e-mail exigem servidores de e-mail tentar entregar o e-mail novamente. Depois de cinco minutos, postgrey aceitará o e-mail. Servidores de e-mail legítimo ao redor do mundo vão tentar repeatidly para entregar novamente o e-mail para nos, but most spammers won't. Então, esperar por 5 minutos, tente enviar o e-mail novamente usando o comando acima, e verifique se esse sufixo agora aceita o e-mail.

Depois, 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 login [email protected] "mypassword" 2 LIST "" "*" 3 SELECIONE A CAIXA DE ENTRADA 4 Busca UID 1: 1 (UID RFC822. CORPO DE SINALIZADORES DE TAMANHO. PEEK[]) 5 LOGOUT

Onde você deve substituir minhasenha com a senha que você definiu para esta conta de e-mail. Se isso funciona..., Basicamente temos um servidor de e-mail funcional que pode receber nossos e-mails recebidos, e a partir do qual obtemos recuperar esses e-mails nossos dispositivos (PC/laptop, comprimidos, telefones, ...). 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, Mas somente após a autenticação bem-sucedida, Isso é depois que ele pudesse ter certo de que o e-mail vem de alguém que tem uma conta válida no servidor. Para fazê-lo, we'll open a special, Somente SSL, Serviço de envio de e-mail SASL-captivo. Definir os seguintes parâmetros /etc/postfix/Master.cf:

 apresentação inet n       -       -       -       -       smtpd -o syslog_name = postfix/submissão - o smtpd_tls_security_level = criptografar -o smtpd_sasl_auth_enable = sim -o smtpd_client_restrictions = permit_sasl_authenticated, reject -o smtpd_sasl_type = dovecot -o smtpd_sasl_path = privado/auth - o smtpd_sasl_security_options = noanonymous -o smtpd_recipient_restrictions = permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination

e recarregar o postfix

 serviço postfix reload

Agora, 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.

 CORREIO FROM:[email protected] rcpt to:[email protected] 554 5.7.1 <[email protected]>: Relé acesso negado QUIT

That's good, postfix won't relay our emails if he doesn't know us. So let's authentify ourselves first. Para fazê-lo, primeiro precisamos gerar uma sequência de autenticação:

 Echo - ne '[email protected]' | 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 = = FROM:[email protected] MAIL rcpt to:[email protected]

Qual postfix agora deve aceitar. Para completar o teste, let's verify that our virtual aliases work by sending an email to [email protected] and making sure it goes to [email protected]:

 Telnet cloud.jhausse.net 25 Dados de to:[email protected] de rcpt para MAIL FROM:[email protected] de cloud.jhausse.net EHLO assunto: Caro chefe dos correios de teste de alias Virtual, Há muito tempo! Espero que seu MX está funcionando sem problemas e com segurança. Seu sinceramente, Leidianne . DESISTIR

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

 OpenSSL s_client - crlf-connect cloud.jhausse.net:993 1 login [email protected]se.net "mypassword" 2 LIST "" "*" 3 SELECIONE A CAIXA DE ENTRADA * 2 EXISTE * 2 RECENTES 4 LOGOUT

Neste ponto, Temos um servidor de e-mail funcional, tanto para e-mails de entrada e de saída. Podemos criar nossos dispositivos para usá-lo.

PS: esqueceu tente enviar um email para uma conta hospedada pelo servidor através do Porto 25 mais uma vez, para verificar que você não está mais bloqueado por postgrey?

Impedir que o SPAM chegue a sua caixa de entrada

Por uma questão de filtragem de SPAM, Já temos as listas negras em tempo real (RBLs) e greylisting (postgrey) no lugar. 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, para que ele possa aprender de experimentar o que é spam e o que não é. Nós usaremos DSPAM por isso.

 apt-get install dspam dovecot-antispam postfix-pcre dovecot-peneira

Dovecot-antispam é um pacote que permite o dovecot treinar novamente o filtro de spam, se encontrarmos um e-mail que é erroneamente classificado pelo dspam. Basicamente, Tudo o que precisamos fazer é mover e-mails em ou fora da pasta de Spam/Junk. Dovecot-antispam então cuidará de chamada dspam requalificar o filtro. Quanto ao sufixo-pcre e dovecot-peneira, 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.

Em /etc/DSPAM/DSPAM.conf, Defina os seguintes parâmetros para esses valores:

 TrustedDeliveryAgent "/usr/sbin/sendmail" UntrustedDeliveryAgent "/usr/lib/dovecot/deliver -d %u" Tokenizer osb IgnoreHeader X-Spam-Status IgnoreHeader X-Spam-Scanned IgnoreHeader X-Virus-Scanner-Result IgnoreHeader X-Virus-Scanned IgnoreHeader X-DKIM IgnoreHeader DKIM-Signature IgnoreHeader DomainKey-Signature IgnoreHeader X-Google-Dkim-Signature ParseToHeaders on ChangeModeOnParse off ChangeUserOnParse full ServerPID               /var/run/dspam/dspam.pid ServerDomainSocketPath  "/var/run/dspam/dspam.sock" ClientHost      /var/run/dspam/dspam.sock

Em seguida, em /etc/DSPAM/default.prefs, Altere os seguintes parâmetros para:

 spamAction = entregar         # {quarentena | marca | entregar}-> padrão: quarentena signatureLocation = cabeçalhos  # {mensagem | cabeçalhos}-> mensagem padrão: showFactors = no

Agora precisamos ligar dspam para postfix e dovecot adicionando estas duas linhas no final do /etc/postfix/Master.cf:

 DSPAM unix  -       n n       -       10      bandeiras da tubulação = usuário Ru = dspam argv = / usr/bin/dspam - entregar = inocente, spam - usuário $  destinatário -i -f $  remetente -- $  dovecot destinatário unix  -       n n       -       -       bandeiras da tubulação = DRhu usuário = email: correio argv = / usr/lib/dovecot/entrega - f $  {sender} -d $  {destinatário}

Agora vamos dizer postfix para filtrar a cada novo e-mail que é enviado para o servidor na porta 25 (tráfego SMTP normal) através de dspam, Exceto se o e-mail é enviado do servidor próprio (permit_mynetworks). Note that the emails we submit to postfix with SASL authentication won't be filtered through dspam either, como configurar um serviço de envio separado para aqueles na seção anterior. Editar /etc/postfix/main.cf para alterar o smtpd_client_restrictions para o seguinte:

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

No final do arquivo., também acrescentar:

 # Para DSPAM, apenas digitalizar um correio em uma dspam_destination_recipient_limit de tempo = 1

Agora precisamos especificar o filtro que definimos. Basicamente, contaremos o postfix para enviar todos os e-mails (/. /) para dspam através de um socket unix. Criar um novo arquivo /etc/postfix/dspam_filter_access e colocar a seguinte linha:

 /./   FILTRO dspam:unix:/run/dspam/dspam.sock

That's it for the postfix part. Now let's set up dovecot for spam filtering. Em /etc/Dovecot/conf.d/20-IMAP.conf, editar o mail_plugins de IMAP parâmetro de plugins tal que:

 mail_plugins = $  mail_plugins antispam

e adicionar uma seção para lmtp:

 protocolo lmtp { # Lista separada por espaço de plugins para carregar (o padrão é mail_plugins global).   mail_plugins = $  mail_plugins peneira}

Vamos agora configurar o plugin dovecot-antispam. Editar /etc/Dovecot/conf.d/90-plugin.conf para adicionar o seguinte conteúdo para a seção de plugin:

 plugin {   ...   # Antispam (DSPAM) antispam_backend = dspam antispam_allow_append_to_spam = Sim antispam_spam = lixo; Spam antispam_trash = lixo; lixo antispam_signature = antispam_signature_missing X-DSPAM-assinatura = erro antispam_dspam_binary = /usr/bin/dspam antispam_dspam_args =--usuário; %u;..--entregar =;..--fonte = erro antispam_dspam_spam =--classe = spam antispam_dspam_notspam =--classe = antispam_dspam_result_header inocente = X-DSPAM-resultado}

e em /etc/Dovecot/conf.d/90-Sieve.conf, Especifica um script de peneira padrão que se aplicará a todos os usuários do servidor:

 sieve_default = /etc/dovecot/default.sieve

O que é a peneira, e por que precisamos de um script padrão para todos os usuários? Peneira nos permite automatizar tarefas no servidor IMAP. No nosso caso, 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, Criando um novo arquivo /etc/Dovecot/default.sieve com o seguinte conteúdo:

 require ["regex", "fileinto", "imap4flags"]; # Apanhar o correio marcado como Spam, except Spam retrained and delivered to the mailbox if allof (header :regex "X-DSPAM-Result" "^(Spam|Virus|Bl[ao]cklisted)$  ",           not header :contains "X-DSPAM-Reclassified" "Innocent") {   # Marcar como lido   # setflag "\Seen";   # Move into the Junk folder   fileinto "Junk";   # Parar o processamento aqui parada; }

Agora precisamos compilar este script para que o dovecot pode executá-lo. Também precisamos dar permissões apropriadas.

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

Finalmente, Nós precisamos fixar permissões em dois arquivos de configuração do postfix que dspam precisa ler:

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

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

 reiniciar o serviço dovecot reiniciar serviço postfix

e teste antispam, contatando o servidor de um host remoto (por exemplo. o computador que usamos para definir o servidor):

 OpenSSL s_client-ligue cloud.jhausse.net:25 - starttls smtp EHLO dados de cloud.jhausse.net FROM:[email protected] MAIL rcpt to:[email protected] assunto: DSPAM teste Hi leidianne, como você gostaria de comer um pouco de presunto hoje à noite? Seu, J . DESISTIR

Let's check if the mail arrived:

 OpenSSL s_client - crlf-connect cloud.jhausse.net:993 1 login [email protected] "mypassword" 2 LIST "" "*" 3 SELECIONE A CAIXA DE ENTRADA 4 Busca UID 3: 3 (UID RFC822. CORPO DE SINALIZADORES DE TAMANHO. PEEK[])

Que deve retornar algo o e-mail com uma coleção de sinalizador definido pelo SPAM que olha como este:

 X-DSPAM-resultado: Inocêncio X-DSPAM-processado: Sun Oct  5 16: 25:48 2014 X-DSPAM-confiança: 1.0000 X-DSPAM-probabilidade: 0.0023 X-DSPAM-assinatura: 5431710c 178911166011737 X-DSPAM-fatores: 27,         Recebeu * o Postfix + com, 0.40000,         Recebeu * com + #+ id, 0.40000,         como + #+ #+ #+ presunto, 0.40000,         alguns + #+ esta noite, 0.40000,         Recebeu * certificado + solicitada, 0.40000,         Recebeu * cliente + certificado, 0.40000,         Recebeu * para + Fabio, 0.40000,         Recebeu * sol + #+ #+ # + 16, 0.40000,         Recebeu * sol + #+ outubro, 0.40000,         Recebeu * leidianne + #+ #+ #+ outubro, 0.40000,         comer + alguns, 0.40000,         Recebeu * 5 + #+ # + 16, 0.40000,         Received*Cloud.jhausse.net+#+#+#+ID, 0.40000,         Leidianne + #+ #+ #+ a, 0.40000,         Recebeu * out + # + 16, 0.40000,         para + #+ #+ presunto, 0.40000,         Recebeu * não + #+ #+ solicitada, 0.40000,         Received*jhausse.net+#+#+Oct, 0.40000,         Recebeu * 256 + 256, 0.40000,         como + #+ #+ alguns, 0.40000,         Recebeu * ESMTPS + id, 0.40000,         como tinha + #+ #+ a, 0.40000,         Esta noite + seu, 0.40000,         Recebeu * com + cifra, 0.40000 5 LOGOUT

Bom! Agora você tem que configurar para os usuários do seu servidor a filtragem de spam adaptável. É claro, cada usuário precisará treinar o filtro nas primeiras semanas. Para treinar uma mensagem como spam, just move it to a folder called "Spam" or "Junk" using any of your devices (PC, Tablet, telefone). Otherwise it'll be trained as ham.

Certifique-se de que os e-mails que você enviar passar por filtros de spam

Nosso objetivo nesta seção será tornar o nosso servidor de correio aparecem mais limpo possível para o mundo e para tornar mais difícil para os spammers enviar e-mails em nosso nome.. Como um efeito colateral, Isso nos ajudará a receber nossos e-mails através dos filtros de spam de outros servidores de correio.

Sender Policy Framework

Quadro de diretiva de remetente (SPF) é um registro que seu adicionar a sua zona que declara quais servidores de correio em toda internet pode enviar e-mails para o seu nome de domínio. Configurá-lo é muito fácil, Use o assistente de SPF no Microsoft.com para gerar o registro SPF, e, em seguida, adicioná-lo à sua zona como um registro TXT. Ele ficará assim:

 jhausse.net.       300 NO TXT v = spf1 mx mx:cloud.jhausse.net-todos os

PTR reversa

Já discutimos esse ponto cedo Neste artigo, it's a good idea that you set up the reverse DNS for your server correctly, para que fazer uma pesquisa inversa no endereço IP do seu servidor retorna o nome real do seu servidor.

OpenDKIM

Quando nós ativamos OpenDKIM, Postfix assinará todos os e-mail de saída usando uma chave criptográfica. Então, nós depositaremos essa chave na nossa zona, sobre o DNS. Dessa forma, cada servidor de correio no mundo será capaz de verificar se o e-mail veio realmente de nós, ou se foi forjada por um spammer. Let's install opendkim:

 apt-get install opendkim opendkim-ferramentas

E configurá-lo editando /etc/opendkim.conf para que fique assim:

 ## ## opendkim.conf -- arquivo de configuração para o filtro de OpenDKIM ## Canonização relaxado/relaxado ExternalIgnoreList reapresentações: / etc/opendkim/TrustedHosts InternalHosts rearquivar: / etc/opendkim/TrustedHosts KeyTable rearquivar: / etc/opendkim/KeyTable LogWhy Sim MinimumKeyBits          1024 Reapresentações de SigningTable do modo sv PidFile /var/run/opendkim/opendkim.pid: / etc/opendkim/SigningTable soquete inet:[email protected] Syslog Sim SyslogSuccess Sim 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 /TrustedHosts/etc/opendkim com o seguinte conteúdo

 127.0.0.1

e um novo arquivo chamado /KeyTable/etc/opendkim com o seguinte conteúdo

 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. Vamos criar outro arquivo chamado /etc/opendkim/SigningTable e adicione a seguinte linha:

 *@jhausse.net cloudkey

which tells OpenDKIM that every emails of the jhausse.net domain should be signed using the key 'cloudkey'. Se temos outros domínios que queremos assinar, nós pode adicioná-los aqui também.

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

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

Em primeiro lugar, it's a good idea to use the -t que vai sinalizar para outros servidores de correio que você está apenas em modo de teste, and that they shouldn't discard emails based on your OpenDKIM signature (yet). Você pode obter sua chave de OpenDKIM do arquivo mail. txt:

 mail. txt gato

e, em seguida, adicioná-lo ao seu arquivo de zona como registro TXT, que deve ficar assim

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

Finalmente, Nós precisamos dizer postfix para assinar e-mails enviados. No final do /etc/postfix/main.cf, Adicione:

 # Agora para OpenDKIM: nós vai assinar todas as saída e-mails smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $  smtpd_milters milter_default_action = aceitar

E recarregar os serviços correspondentes

 reiniciar o serviço postfix reload serviço opendkim

Now let's test if our OpenDKIM public key can be found and matches the chave privada:

 opendkim-testkey - d jhausse.net -s mail -k mail.private - vvv

que deve retornar.

 opendkim-testkey: Okey-chave

Para isso, Você pode precisar esperar um pouco até que o nome do servidor tem recarregado a zona (na Linode, Isso acontece a cada 15 min). Você pode usar escavação para verificar se a zona foi recarregada ainda.

Se isso funciona, let's test if other servers can validate our OpenDKIM signatures and SPF record. Para fazer isso, Podemos usar Brandon Checkett's email test. Para enviar um e-mail para um endereço de teste que nos foi dado na Brandon's webpage, Podemos executar o seguinte comando no servidor

 mail -s CloudCheck [email protected]

On Brandon's webpage, Você deve ver resultado = pass in the 'DKIM Signature' section, e Resultado: passar in the 'SPF Information' section. Se nossos e-mails passarem neste teste, apenas regenerar uma chave de OpenDKIM sem a -t interruptor, carregar a nova chave para o arquivo de zona, e reteste para ainda se ele ainda passa os testes. Se assim for, Parabéns! Você só setup sucesso OpenDKIM e SPF no seu servidor!

Calendários de acolhimento, contatos, arquivos com Owncloud e colocou um webmail com Roundcube

Agora que temos um servidor de e-mail top-notch, let's add to it the possibility to store your contacts, calendários, e arquivos na nuvem. Estes são os serviços que o Owncloud fornece fora da caixa. While we're at it, we'll also set up a webmail, so you can check email even if you're travelling without electronics, ou, no caso o seu telemóvel e do laptop sem bateria.

Instalar Owncloud é straighforward e é bem descrito aqui. No Debian, Tudo se resume a adicionar o repositório owncloud a suas fontes apt, downloading owncloud's release key and adding it to your apt keyring, e então instalar o owncloud próprio usando o apt-get:

 Echo "deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /Adicionar etc/apt/sources.List.d/owncloud.List wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_6.0/Release.key apt-chave - < Release.Key apt-get update apt-get install apache2 owncloud roundcube

Quando solicitado por ele, escolha dbconfig e depois diga o que quiser Roundcube para usar MySQL. Em seguida, fornecer o mysql senha de root e definir uma boa senha para o usuário de mysql roundcube. Em seguida, Edite o arquivo de config do roundcube /etc/Roundcube/Main.Inc.php para que o logon roundcube usará como padrão usando o seu servidor IMAP:

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

Agora vai configurar o servidor Web apache2 com SSL para que podemos conversar com Owncloud e Roundcube usando criptografia para nossas senhas e dados. Let's turn on Apache's ssl module:

 a2enmod ssl

e editar /etc/apache2/Ports.conf para definir os seguintes parâmetros:

 NameVirtualHost *: Ouça 80 80 ServerName www.jhausse.net  <IfModule mod_ssl.c>     # Se você adicionar NameVirtualHost *: 443 aqui, Você também terá que mudar     # a instrução de VirtualHost no /etc/apache2/sites-available/default-ssl     # Para <VirtualHost *: 443>     # Servidor Indicação de nome para SSL chamado hosts virtuais atualmente não é     # suportado pelo MSIE na Windows XP.     NameVirtualHost *: Ouça 443 443 </IfModule>  <IfModule mod_gnutls.c>     Ouça 443 </IfModule>

We'll set up a default Web site para conexões criptografadas para o servidor Web como https://www.jhausse.net sob /var/www. Editar /etc/apache2/sites-disponível/padrão-ssl:

 <VirtualHost _default_:443>         ServerAdmin [email protected] DocumentRoot/var/www nome_do_servidor www.jhausse.net [...]         <Diretório /var/www/owncloud>           Negar de todas as         </Diretório>         [...]         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 sob /var/www. Editar /etc/apache2/sites-disponível/padrão:

 <VirtualHost _default_:443>         DocumentRoot/var/www nome_do_servidor www.jhausse.net [...]         <Diretório /var/www/owncloud>           Negar de todas as         </Diretório> </VirtualHost>

Dessa forma, Podemos servir páginas para www.jhausse.net, colocando-os em /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 em vez disso.

Agora definiremos se o webmail (roundcube) para que ele será acessado através https://webmail.jhausse.net. Editar /etc/apache2/sites-disponível/roundcube ter o seguinte conteúdo:

 <IfModule mod_ssl.c> <VirtualHost *: 443>         ServerAdmin [email protected] DocumentRoot /var/lib/roundcube         # O nome do host em que você gostaria de acessar o webmail ServerName webmail.jhausse.net         <Diretório />                 Opções FollowSymLinks AllowOverride None         </Diretório>          Log de erros $  {APACHE_LOG_DIR}/error.log          # Os valores possíveis incluem: Depurar, informação, aviso prévio, avisar, erro, crit,         # alerta, emerg.         LogLevel avisar CustomLog $  {APACHE_LOG_DIR}/ssl_access.log combinada          #   Interruptor do motor SSL:         #   Ativar/desativar SSL para este host virtual.         SSLEngine na          # Não permitir conexões não seguras         # SSLRequireSSL SSLCipherSuite HIGH: médio          #   Um certificado auto-assinado (snakeoil) pode ser criado por meio da instalação         #   o pacote ssl-cert. Ver         #   /usr/share/doc/apache2.2-Common/README. Debian. gz para mais informação.         #   Se ambos a chave e certificado são armazenados no mesmo arquivo, apenas o         #   SSLCertificateFile directiva é necessário.         SSLCertificateFile /etc/ssl/certs/cloud.crt SSLCertificateKeyFile /etc/ssl/private/cloud.key          # Esses aliases não funcionam corretamente com vários hosts no seu servidor apache         # Descomente-los para usá-lo ou adaptá-los à sua configuração Alias/programa/js/tiny_mce / / usr/share/tinymce/www /          # Acesso aos arquivos do tinymce         <Directory "/usr/share/tinymce/www/">                 Índices de opções MultiViews FollowSymLinks AllowOverride nenhuma ordem permitir, negar permitir de todos         </Diretório>          <Diretório/var/lib/roundcube />                 Opções + FollowSymLinks                 # Isto é necessário para analisar /var/lib/roundcube/.htaccess. Consulte seu                 # conteúdo antes de definir AllowOverride None.                 AllowOverride toda ordem permitir, negar permitir de todos         </Diretório>          # Protegendo diretórios básicos:         <Diretório /var/lib/roundcube/config>                 Opções - FollowSymLinks AllowOverride None         </Diretório>          <Diretório /var/lib/roundcube/temp>                 Opções - FollowSymLinks AllowOverride nenhuma ordem permitir, negar negar de todas as         </Diretório>          <Diretório /var/lib/roundcube/logs>                 Opções - FollowSymLinks AllowOverride nenhuma ordem permitir, negar negar de todas as         </Diretório>          <FilesMatch "\.(cgi|shtml|phtml|php)$  ">                 SSLOptions + StdEnvVars         </FilesMatch>         <Diretório /usr/lib/cgi-bin>                 SSLOptions + StdEnvVars         </Diretório>         #   Ajustes do protocolo SSL:         #   O cofre e padrão, mas ainda desligamento compatível com padrão de SSL/TLS         #   abordagem é aquele mod_ssl envia o próximo notificar alerta, mas não esperem por         #   o próximo notificar alerta do cliente. Quando precisares de um desligamento diferente         #   abordagem, você pode usar uma das seguintes variáveis:         #   o ssl-impuro-desligamento:         #     Isso força um desligamento imundo quando a conexão é fechada., i.. Não         #     SSL perto notificar alerta é enviado ou recebido é permitido.  Isso viola         #     o mas padrão SSL/TLS é necessária para alguns navegadores com morte cerebral. Uso         #     isto quando você receber erros de I/O devido a abordagem padrão onde         #     Mod_ssl envia o próximo notificar alerta.         #   o ssl-exato-desligamento:         #     Isso força um desligamento exato quando a conexão é fechada., i.. um         #     Feche o SSL notificar alerta é enviado e mod_ssl aguarda o próximo notify         #     alerta do cliente. Esta é a 100% SSL/TLS padrão compatível com, Mas na         #     prática, muitas vezes, provoca suspensão conexões com navegadores com morte cerebral. Uso         #     Isto apenas para navegadores onde você sabe que sua implementação do SSL         #     funciona corretamente.         #   Aviso: a maioria dos problemas dos clientes quebrados também estão relacionados com o HTTP         #   facilidade de manter-alive, Então você normalmente adicionalmente deseja desabilitar         #   Manter-alive para esses clientes, também. Use variable "nokeepalive" for this.         #   Da mesma forma, um tem que forçar alguns clientes usar HTTP/1.0 para solucionar esse problema         #   sua implementação de HTTP/1.1 quebrada. Use variables "downgrade-1.0" and         #   "force-response-1.0" for this.         BrowserMatch "MSIE [2-6]" \                 nokeepalive ssl-impuro-desligamento \                 downgrade-1.0 force-resposta-1.0         # MSIE 7 and newer should be able to use keepalive         BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>

e declarar o servidor em seu DNS, por exemplo:

 webmail.jhausse.net.       300     EM cloud.jhausse.net CNAME.

Now let's enable these three websites

 a2ensite padrão ssl padrão roundcube serviço apache2 restart

e o webmail, acessível sob https://webmail.jhausse.net, Basicamente deve funcionar. Faça o login usando o email completo (ex.. [email protected]) e a senha que você definiu no mailserver DB no início deste artigo. A primeira vez que você se conectar, o navegador irá avisá-lo que o certificado não foi assinado por uma autoridade de certificação. That's fine, Basta adicionar uma exceção.

Último mas não menos importante., Vamos criar um virtual host para owncloud, colocando o seguinte conteúdo /etc/apache2/sites-disponível/owncloud:

 <IfModule mod_ssl.c> <VirtualHost *: 443>         ServerAdmin [email protected] DocumentRoot /var/www/owncloud ServerName cloud.jhausse.net         <Diretório />                 Opções FollowSymLinks AllowOverride None         </Diretório>         <Diretório /var/www/owncloud>                 Opções índices FollowSymLinks MultiViews AllowOverride toda ordem permitir, negar permitir de todos         </Diretório>          ScriptAlias /cgi-bin / /usr/lib/cgi-bin /         <Directory "/usr/lib/cgi-bin">                 AllowOverride None Opções + ExecCGI-MultiViews + SymLinksIfOwnerMatch a fim permitir, negar permissão de todos         </Diretório>          Log de erros $  {APACHE_LOG_DIR}/error.log          # Os valores possíveis incluem: Depurar, informação, aviso prévio, avisar, erro, crit,         # alerta, emerg.         LogLevel avisar CustomLog $  {APACHE_LOG_DIR}/ssl_access.log combinada          #   Interruptor do motor SSL:         #   Ativar/desativar SSL para este host virtual.         SSLEngine na          # Não permitir conexões não seguras         # SSLRequireSSL SSLCipherSuite HIGH: MEDIUM SSLCertificateFile /etc/ssl/certs/cloud.crt SSLCertificateKeyFile /etc/ssl/private/cloud.key          <FilesMatch "\.(cgi|shtml|phtml|php)$  ">                 SSLOptions + StdEnvVars         </FilesMatch>         <Diretório /usr/lib/cgi-bin>                 SSLOptions + StdEnvVars         </Diretório>          BrowserMatch "MSIE [2-6]" \                 nokeepalive ssl-impuro-desligamento \                 downgrade-1.0 force-resposta-1.0         # MSIE 7 and newer should be able to use keepalive         BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>

e ativar owncloud executando

 a2ensite owncloud serviço apache2 reload

Então vá em frente um configurar owncloud conectando-se ao https://Cloud.jhausse.net/ em um navegador da web.

That's it! Now you've got your own Google Drive, Calendário, Contatos, Dropbox, and Gmail! Enjoy your freshly recovered privacy! 🙂

Sincronizar seus dispositivos para a nuvem

Para sincronizar seus e-mails, Você só pode usar seu cliente de email favorito: o programa de email padrão no Android ou iOS, k9mail, ou o Thunderbird no seu PC. Ou você também pode usar o webmail que montamos.

Como sincronizar o seu calendário e contatos com a nuvem é descrito no doc de owncloud. No 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.

Para arquivos, Há um Android app chamado Owncloud para acessar os arquivos do seu telefone e upload automático de fotos e vídeos que você tomar a sua nuvem. Acessar seus arquivos sobre o seu Mac/PC é fácil e bem descrito na documentação do Owncloud.

Últimas dicas

Durante as primeiras semanas, it's a good idea to monitor /var/log/syslog e /var/log/mail.log em uma base diária e certifique-se que tudo tudo está funcionando perfeitamente. It's important to do so before you invite others (friends, família, ...) para ser hospedado em seu servidor; Você pode perder sua confiança em hospedagem interna para bem se eles confiam em você, com seus dados e o servidor de repente se torna indisponível.

Para adicionar outro usuário de e-mail, Basta adicionar uma linha para o virtual_users tabela da MailServer DB.

Para adicionar um domínio, Basta adicionar uma linha para o virtual_domains tabela. Em seguida, atualizar /etc/opendkim/SigningTable para obter saída e-mails assinados, carregar a chave de OpenDKIM para a zona, e recarregar OpenDKIM.

Owncloud tem seu próprio usuário DB que pode ser gerenciado pelo login no Owncloud como administrador.

Finalmente, it's important to think in advance of a solution in case your server becomes temporarily unavailable. Por exemplo, onde iria seus e-mails até que o servidor retorna? Uma solução seria encontrar um amigo que pode atuar como seu backup MX, enquanto você agir como seu backup MX (ver o relay_domains e relay_recipient_maps setting in Postfix's Main.cf arquivo). Da mesma forma, e se o seu servidor está comprometido e um indivíduo mal-intencionado apaga todos os seus arquivos lá? Por isso, it's important to think of a regular backup system. Linode oferece backups como uma opção. Em 1984.is, Configurar um sistema de backup automático básico mas suficiente usando crontabs e scp.

Uma resposta

Deixar uma resposta