Mailu로 WebUI가 있는 메일 서버를 쉽게 구축

17001 단어 mail

소개



자신용의 메일 서버를 세우려고 했을 때, 시큐리티를 신경쓰면서 설정을 조사해…라고 꽤 힘들군요.

하지만 Mailu 을 사용하면 쉽게 WebUI가있는 메일 서버를 구축 할 수 있습니다!



이 이미지와 같이 WebUI에서도 메일을 송수신할 수 있으므로 편리합니다.
데모 사이트 가 있으므로 흥미가 있는 분은 들여다 봐 주세요.

Mailu가 제공하는 기능은 다음과 같습니다.
  • IMAP, IMAP +, SMTP 메일 서버
  • WebUI 및 관리 화면
  • 자동 회신, 자동 전달
  • 할당량과 같은 관리 기능
  • TLS (Let's Encrypt 대응!), DKIM, 안티 바이러스 등의 보안

  • 자세한 것은 프로젝트 페이지 를 봐 주시는 것으로, 조속히 구축해 봅니다.

    건설



    구축은 DigitalOcean이라고 하는 해외의 VPS상의 docker-compose로 해 봅니다.



    덧붙여서 아래 링크에서 등록하면 10 달러의 쿠폰을 받을 수 있습니다.
    가장 싼 인스턴스라면 2개월간 무료로 움직일 수 있습니다. 부디.
    htps: //m. 어. 코 / c / dc73cf13에 37

    구축 절차



    이번에는 공식 추천 Debian Stretch(9.3)를 사용합니다.
    인스턴스가 시작되면 다음 명령을 실행하십시오.

    준비


    apt update
    # すべてYESと答える
    apt install -y iptables-persistent
    apt-get autoremove --purge exim4 exim4-base
    

    Docker 설치


    # E: Unable to locate package docker-engineと言われても大丈夫
    apt-get remove docker docker-engine docker.io
    apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
    curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
    apt-key fingerprint 0EBFCD88
    add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
       $(lsb_release -cs) \
       stable"
    apt-get update
    apt-get install -y docker-ce
    curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    

    Mailu 설정


    mkdir /mailu
    cd /mailu
    
    cat << '_EOF' > docker-compose.yml
    version: '2'
    
    services:
    
      front:
        image: mailu/nginx:$VERSION
        restart: always
        env_file: .env
        ports:
        - "$BIND_ADDRESS4:80:80"
        - "$BIND_ADDRESS4:443:443"
        - "$BIND_ADDRESS4:110:110"
        - "$BIND_ADDRESS4:143:143"
        - "$BIND_ADDRESS4:993:993"
        - "$BIND_ADDRESS4:995:995"
        - "$BIND_ADDRESS4:25:25"
        - "$BIND_ADDRESS4:465:465"
        - "$BIND_ADDRESS4:587:587"
        volumes:
          - "$ROOT/certs:/certs"
    
      redis:
        image: redis:alpine
        restart: always
        volumes:
          - "$ROOT/redis:/data"
    
      imap:
        image: mailu/dovecot:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/data:/data"
          - "$ROOT/mail:/mail"
          - "$ROOT/overrides:/overrides"
        depends_on:
          - front
    
      smtp:
        image: mailu/postfix:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/data:/data"
          - "$ROOT/overrides:/overrides"
        depends_on:
          - front
    
      antispam:
        image: mailu/rspamd:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/filter:/var/lib/rspamd"
          - "$ROOT/dkim:/dkim"
          - "$ROOT/overrides/rspamd:/etc/rspamd/override.d"
        depends_on:
          - front
    
      antivirus:
        image: mailu/$ANTIVIRUS:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/filter:/data"
    
      webdav:
        image: mailu/$WEBDAV:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/dav:/data"
    
      admin:
        image: mailu/admin:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/data:/data"
          - "$ROOT/dkim:/dkim"
          - /var/run/docker.sock:/var/run/docker.sock:ro
        depends_on:
          - redis
    
      webmail:
        image: "mailu/$WEBMAIL:$VERSION"
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/webmail:/data"
    
      fetchmail:
        image: mailu/fetchmail:$VERSION
        restart: always
        env_file: .env
        volumes:
          - "$ROOT/data:/data"
    _EOF
    
    cat << '_EOF' > .env
    # Mailu main configuration file
    #
    # Most configuration variables can be modified through the Web interface,
    # these few settings must however be configured before starting the mail
    # server and require a restart upon change.
    
    ###################################
    # Common configuration variables
    ###################################
    
    # Set this to the path where Mailu data and configuration is stored
    ROOT=/mailu
    
    # Mailu version to run (1.0, 1.1, etc. or master)
    VERSION=1.5.1
    
    # Set to a randomly generated 16 bytes string
    SECRET_KEY=
    
    # Address where listening ports should bind
    BIND_ADDRESS4=0.0.0.0
    BIND_ADDRESS6=::1
    
    # Main mail domain
    DOMAIN=
    
    # Hostnames for this server, separated with comas
    HOSTNAMES=
    
    # Postmaster local part (will append the main mail domain)
    POSTMASTER=admin
    
    # Choose how secure connections will behave (value: letsencrypt, cert, notls, mail)
    TLS_FLAVOR=letsencrypt
    
    # Authentication rate limit (per source IP address)
    AUTH_RATELIMIT=10/minute;1000/hour
    
    # Opt-out of statistics, replace with "True" to opt out
    DISABLE_STATISTICS=False
    
    ###################################
    # Optional features
    ###################################
    
    # Expose the admin interface (value: true, false)
    ADMIN=true
    
    # Choose which webmail to run if any (values: roundcube, rainloop, none)
    WEBMAIL=rainloop
    
    # Dav server implementation (value: radicale, none)
    WEBDAV=radicale
    
    # Antivirus solution (value: clamav, none)
    ANTIVIRUS=none
    
    ###################################
    # Mail settings
    ###################################
    
    # Message size limit in bytes
    # Default: accept messages up to 50MB
    MESSAGE_SIZE_LIMIT=50000000
    
    # Networks granted relay permissions, make sure that you include your Docker
    # internal network (default to 172.17.0.0/16)
    RELAYNETS=172.16.0.0/12
    
    # Will relay all outgoing mails if configured
    RELAYHOST=
    
    # Fetchmail delay
    FETCHMAIL_DELAY=600
    
    # Recipient delimiter, character used to delimiter localpart from custom address part
    # e.g. localpart+custom@domain;tld
    RECIPIENT_DELIMITER=+
    
    # DMARC rua and ruf email
    DMARC_RUA=admin
    DMARC_RUF=admin
    
    # Weclome email, enable and set a topic and body if you wish to send welcome
    # emails to all users.
    WELCOME=false
    WELCOME_SUBJECT=Welcome to your new email account
    WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly!
    
    ###################################
    # Web settings
    ###################################
    
    # Path to the admin interface if enabled
    WEB_ADMIN=/admin
    
    # Path to the webmail if enabled
    WEB_WEBMAIL=/webmail
    
    # Website name
    SITENAME=Mailu
    
    # Linked Website URL
    WEBSITE=
    
    ###################################
    # Advanced settings
    ###################################
    
    # Docker-compose project name, this will prepended to containers names.
    COMPOSE_PROJECT_NAME=mailu
    
    # Default password scheme used for newly created accounts and changed passwords
    # (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
    PASSWORD_SCHEME=SHA512-CRYPT
    _EOF
    

    설정



    설정 파일의 기재와 도메인의 설정을 실시합니다.

    설정 파일 편집



    .env 파일을 편집기에서 열고 아래 설정을 변경합니다.
    다른 설정 항목은 문서을 참조하십시오.


    설정
    설정값


    SECRET_KEY
    16자 영숫자

    DOMAIN
    이메일에 사용할 도메인

    HOSTNAMES
    mail. (메일에서 사용하는 도메인)


    DNS 레코드 편집



    다음과 같이 편집합니다.


    레코드 이름
    레코드 유형
    설정값


    (도메인)
    A
    (서버 IP 주소)

    (도메인)
    MX
    10 mail. (메일로 사용할 도메인)

    mail.(도메인)
    A
    (서버 IP 주소)

    (도메인)
    SPF
    "v=spf1 ip4:(서버 IP 주소) ~all"

    (도메인)
    TXT
    "v=spf1 ip4:(서버 IP 주소) ~all"


    사용해보기



    아래 명령을 실행하고 잠시 기다리십시오 (자신은 25 분이 걸렸습니다).docker-compose logs -f 로 진행을 확인해도 좋다고 생각합니다.
    DH 파라미터의 생성이나 Let's Encrypt에 의한 증명서 자동 취득이 끝나면, https://mail.(메일로 사용하는 도메인)/ 로 액세스 할 수 있게 됩니다.
    docker-compose up -d
    

    계정 설정



    계정을 설정합니다.
    아래 명령을 실행하십시오.
    docker-compose run --rm admin python manage.py admin (ユーザ名) (ドメイン) (パスワード)
    

    브라우저에서 http://mail.(도메인)/으로 이동하여 "(사용자 이름) @ (도메인 이름)"으로 설정한 암호로 로그인합니다.

    이상.

    좋은 웹페이지 즐겨찾기