• About
  • Advertise
  • Privacy & Policy
  • Contact
DevZone
  • Home
  • News
  • Dev
    • All
    • Algorithm
    • Architecture
    • Database
    • Design
    • DevOps
    • IoT
    • Network
    • Test
    • Web
    Phương thức xử lý mảng trong javascript

    Phương thức xử lý mảng trong javascript

    Bảo vệ content, chống copy nội dung web!

    Bảo vệ content, chống copy nội dung web!

    Lưu ý mệnh đề NOT IN trong SQL

    Lưu ý mệnh đề NOT IN trong SQL

    SOLID Principles: Dependency Inversion Principle

    SOLID Principles: Dependency Inversion Principle

    Solid Principles: Interface Segregation Principle

    Solid Principles: Interface Segregation Principle

    Tìm hiểu về composer.json schema (phần 2 – autoload)

    Tìm hiểu về composer.json schema (phần 2 – autoload)

    IPC – Đằng sau sự thành công của Chromium

    IPC – Đằng sau sự thành công của Chromium

    Dựng layout website với CSS Grid Layout

    Dựng layout website với CSS Grid Layout

    Golang cơ bản (p1)

    Golang cơ bản (p1)

    Trending Tags

    • Idea
    • Lifestyle
    No Result
    View All Result
    • Home
    • News
    • Dev
      • All
      • Algorithm
      • Architecture
      • Database
      • Design
      • DevOps
      • IoT
      • Network
      • Test
      • Web
      Phương thức xử lý mảng trong javascript

      Phương thức xử lý mảng trong javascript

      Bảo vệ content, chống copy nội dung web!

      Bảo vệ content, chống copy nội dung web!

      Lưu ý mệnh đề NOT IN trong SQL

      Lưu ý mệnh đề NOT IN trong SQL

      SOLID Principles: Dependency Inversion Principle

      SOLID Principles: Dependency Inversion Principle

      Solid Principles: Interface Segregation Principle

      Solid Principles: Interface Segregation Principle

      Tìm hiểu về composer.json schema (phần 2 – autoload)

      Tìm hiểu về composer.json schema (phần 2 – autoload)

      IPC – Đằng sau sự thành công của Chromium

      IPC – Đằng sau sự thành công của Chromium

      Dựng layout website với CSS Grid Layout

      Dựng layout website với CSS Grid Layout

      Golang cơ bản (p1)

      Golang cơ bản (p1)

      Trending Tags

      • Idea
      • Lifestyle
      No Result
      View All Result
      DEVZONE
      No Result
      View All Result
      Home Dev

      Xây dựng Email Server với Postfix, Dovecot và Roundcube: #1 – Cài đặt Postfix, Dovecot trên Centos 7

      Bách Nguyễn by Bách Nguyễn
      December 31, 2019
      in Dev, DevOps
      0
      Xây dựng webmail với Postfix, Dovecot và Roundcube trên Centos 7

      Trong hướng dẫn này chúng ta sẽ cùng tìm hiểu cách xây dựng một Email Server bằng Postfix và Dovecot trên CentOS 7. Postfix là một ứng dụng mã nguồn mở mạnh mẽ với khả năng gửi và nhận thư sử dụng SMTP. Dovecot là một máy chủ POP3 và IMAP mã nguồn mở miễn phí, nó cung cấp và truy xuất email đến các hộp thư cục bộ trên hệ thống Linux.

      Yêu cầu:
      – VPS hoặc Máy chủ chuyên dụng cài đặt CentOS 7.x và địa chỉ IP tĩnh. Để thuận tiện cho các hướng dẫn sau này thì bạn nên sử dụng VPS của Vultr.
      – Tài khoản root. Trong hướng dẫn này tôi sẽ dùng tài khoản root, nếu tài khoản bạn sử dụng không phải là root, hãy sử dụng lệnh sudo khi cài đặt.
      – Một domain. Trong nội dung bài hướng dẫn sẽ có một vài phần cấu hình liên quan đến phần quản lý domain.

      Thiết lập DNS:
      Đầu tiên bạn cần phải thiết lập một số cấu hình DNS, cụ thể là bản ghi MX trong phần quản lý tên miền của bạn. Một bản ghi MX sẽ có dạng như sau:

      HostTypeDestinationPriorityTTL
      @MXmail.yourdomain.com103600
      mailAyour server public ip03600

      Sau khi thiết lập xong DNS bạn cần đợi một chút để các cấu hình này được cập nhật. Có thể là 3-5 phút hoặc lâu hơn chút. Trong khi chờ đợi ta có thể tiến hành một số cài đặt trên CentOS.

      Cài đặt Postfix
      Đăng nhập vào vps với tài khoản của bạn và tiến hành chạy lệnh cập nhật repository và thư viện.

      yum -y update
      

      Đợi một chút để hoàn tất việc cập nhật. Sau đó bạn hãy đổi hostname server của bạn. Để thay đổi hostname ta sử dụng lệnh sau:

      hostname mail.yourdomain.com
      

      Tiếp theo là sửa file hosts:

      vi /etc/hosts
      
      127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1       localhost localhost.localdomain localhost6 localhost6.localdomain6
      123.45.78.990 mail.yourdomain.com mail <-
      

      Hãy thêm dòng tôi đánh dấu mũi tên bằng thông tin domain và server public ip của bạn. Sau khi hoàn tất các chỉnh sửa trên thì ta sẽ chuyển sang phần cài đặt và cấu hình cho postfix, dovecot. Sử dụng câu lệnh sau:

      yum -y install postfix
      

      Trước khi tiến hành việc thiết lập một số cấu hình cho postfix thì ta cần cài và cấu hình SSL để mã hoá và bảo mật cho email khi gửi đi. Trước tiên, ta tạo một thư mục ssl trong thư mục cài đặt của postfix bằng câu lệnh sau:

      mkdir /etc/postfix/ssl
      cd /etc/postfix/ssl
      

      Sau đó ta sẽ tạo file SSL certificates. Server của bạn cần có openssl để làm điều này. Nếu chưa có, hãy dùng câu lệnh này để cài đặt:

      yum -y install openssl
      
      

      Sau khi cài đặt xong openssl thì chạy tiếp lệnh sau để tạo file SSL certificates:

      openssl req -x509 -nodes -newkey rsa:2048 -keyout server.key -out server.crt -nodes -days 365
      

      Sau khi chạy lệnh trên, sẽ có một loạt các câu hỏi yêu cầu bạn nhập thông tin cho chứng chỉ SSL. Nó có dạng thế này:

      Generating a 2048 bit RSA private key
          ..........................+++
          ...........................+++
          writing new private key to 'server.key'
          -----
          You are about to be asked to enter information that will be incorporated
          into your certificate request.
          What you are about to enter is what is called a Distinguished Name or a DN.
          There are quite a few fields but you can leave some blank
          For some fields there will be a default value,
          If you enter '.', the field will be left blank.
          -----
          Country Name (2 letter code) [XX]:VN
          State or Province Name (full name) []:North
          Locality Name (eg, city) [Default City]:Ha Noi
          Organization Name (eg, company) [Default Company Ltd]: (Tên công ty của bạn hoặc để trống)
          Organizational Unit Name (eg, section) []:(Cái này tôi điền bộ phận tôi làm việc)
          Common Name (eg, your name or your server's hostname) []:mail.yourdomain.com
          Email Address []:info@yourdomain.com 
      

      Sau khi bạn hoàn tất việc nhập các thông tin này file .key và .crt sẽ được tạo trong đường dẫn /etc/postfix/ssl. Đường dẫn của file này sẽ được đặt trong cấu hình của file main.cf. Vì vậy tiếp theo ta sẽ mở file /etc/postfix/main.cf lên để thay đổi một chút.

      vi /etc/postfix/main.cf
      
      

      Sau khi mở được file main.cf lên, hãy thêm đoạn sau đây xuống cuối file. Lưu ý một số config trong này đã có sẵn, hãy tìm và comment bằng dấu # ở đầu dòng để tránh bị trùng lặp. Tôi tập trung hết các cấu hình cần thiết vào đây để tiện cho việc thiết lập tiếp sau này.

          myhostname = mail.yourdomain.com
          mydomain = yourdomain.com
          myorigin = $mydomain
          home_mailbox = mail/
          mynetworks = 127.0.0.0/8, 45.23.44.0/24
          inet_interfaces = all
          inet_protocols = all
          mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
          smtpd_sasl_type = dovecot
          smtpd_sasl_path = private/auth
          smtpd_sasl_local_domain =
          smtpd_sasl_security_options = noanonymous
          broken_sasl_auth_clients = yes
          smtpd_sasl_auth_enable = yes
          smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
          smtp_tls_security_level = may
          smtpd_tls_security_level = may
          smtp_tls_note_starttls_offer = yes
          smtpd_tls_loglevel = 1
          smtpd_tls_key_file = /etc/postfix/ssl/server.key
          smtpd_tls_cert_file = /etc/postfix/ssl/server.crt
          smtpd_tls_received_header = yes
          smtpd_tls_session_cache_timeout = 3600s
          tls_random_source = dev:/dev/urandom
      

      Chú ý dòng mynetworks = 127.0.0.0/8, 45.23.44.0/24. Hãy thay địa chỉ 45.23.44.0/24 này thành public ip server của bạn và thay cụm số cuối trong địa chỉ ip server của bạn thành 0. Ví dụ: 45.23.44.111 thành 45.23.44.0. Điều này rất quan trọng vì nó ảnh hưởng đến việc mail của bạn có gửi được ra ngoài hay không.

      Tiếp theo hãy mở file /etc/postfix/master.cf lên để thiết lập tiếp. Tìm dòng sau trong file master.cf:

      # service type  private unpriv  chroot  wakeup  maxproc command + args
          #               (yes)   (yes)   (yes)   (never) (100)
          # ==========================================================================
          smtp      inet  n       -       n       -       -       smtpd
      

      Và thêm đoạn sau vào ngay phia dưới:

      submission     inet  n       -       n       -       -       smtpd
            -o syslog_name=postfix/submission
            -o smtpd_sasl_auth_enable=yes
            -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
            -o milter_macro_daemon_name=ORIGINATING
      smtps     inet  n       -       n       -       -       smtpd
            -o syslog_name=postfix/smtps
            -o smtpd_sasl_auth_enable=yes
            -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
            -o milter_macro_daemon_name=ORIGINATING
      

      OK. Lưu lại và đóng file đó vào. Ta đã tiến hành cài đặt và cấu hình xong cho Postfix. Tiếp theo sẽ là cài đặt và thiết lập cho Dovecot.

      Cài đặt Dovecot
      Chạy lệnh sau để cài đặt Dovecot lên CentOS.

       yum -y install dovecot
      

      Sau khi cài đặt xong Dovecot, hãy mở file /etc/dovecot/conf.d/10-master.conf và tìm dòng # Postfix smtp-auth, sửa lại thành như sau:

      # Postfix smtp-auth
      unix_listener /var/spool/postfix/private/auth {
      mode = 0660
      user = postfix
      group = postfix
      }
      

      Tiếp theo mở file /etc/dovecot/conf.d/10-auth.conf và tìm dòng auth_mechanisms. Đổi thiết lập của dòng này từ:

      # Space separated list of wanted authentication mechanisms:
      #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
      #   gss-spnego
      # NOTE: See also disable_plaintext_auth setting.
      auth_mechanisms = plain
      

      thành :

      # Space separated list of wanted authentication mechanisms:
      #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
      #   gss-spnego
      # NOTE: See also disable_plaintext_auth setting.
      auth_mechanisms = plain login
      

      Tiếp theo là file /etc/dovecot/conf.d/10-mail.conf. Bỏ comment ở đầu dòng và sửa lại thành như dưới đây:

      mail_location = maildir:~/mail
      

      Dòng trên chỉ đường dẫn nơi lưu trữ email đến và đi của một user. Cấu hình đường dẫn lưu email này phải trùng khớp với dòng home_mailbox = mail/ trong file main.cf của Postfix.
      Tiếp theo mở file /etc/dovecot/conf.d/20-pop3.conf và bỏ comment của dòng sau đi:

       #pop3_uidl_format = %08Xu%08Xv
      

      Sửa lại thành:

          # Note that Outlook 2003 seems to have problems with %v.%u format which was
          # Dovecot's default, so if you're building a new server it would be a good
          # idea to change this. %08Xu%08Xv should be pretty fail-safe.
          #
          pop3_uidl_format = %08Xu%08Xv 
      

      Done. Vậy là bạn đã thiết lập các cấu hình cần thiết cho Dovecot. Sau khi hoàn thiện các bước trên thì ta cần restart lại Postfix và Dovecot services với những lệnh sau:

          systemctl restart postfix
          systemctl enable postfix -- (tự động chạy service khi reboot server)
          systemctl restart dovecot
          systemctl enable dovecot -- (tự động chạy service khi reboot server)
      

      Còn một điều nữa cần nhớ. Để có thể truy cập được các dịch vụ mail mà bạn vừa cài đặt thì cần mở cổng cho nó trên firewall (Với trường hợp server của bạn có bật firewall 🙂 ). Chạy các lệnh sau để thực hiện việc mở cổng:

          firewall-cmd --permanent --add-service=smtp
          firewall-cmd --permanent --add-port=587/tcp
          firewall-cmd --permanent --add-port=465/tcp
          firewall-cmd --permanent --add-port=110/tcp
          firewall-cmd --permanent --add-service=pop3s
          firewall-cmd --permanent --add-port=143/tcp
          firewall-cmd --permanent --add-service=imaps
          firewall-cmd --permanent --add-service=http
          firewall-cmd --reload
      

      Chạy thử Postfix và Dovecot:
      Sau khi cài đặt và cấu hình xong như ở trên, ta cần chạy thử xem mọi thứ có ổn không. Sau khi cài đặt và thiết lập cả mớ cấu hình phía trên thì các bản ghi MX của bạn chạy đã được cập nhật. Test nhanh cho chắc bằng lệnh ping đến bản ghi MX bạn vừa trỏ.
      OK. Để chạy thử Postfix ta dùng lệnh sau:

          telnet mail.yourdomain.com smtp
      

      Xong nó sẽ hiện ra như thế này:

          Trying ::1...
          Connected to localhost.
          Escape character is '^]'.
          220 mail.yourdomain.com ESMTP Postfix
      

      Tiếp sau đó bạn gõ một vài dòng sau để test gửi email.

          mail from: info@yourdomain.com 
          rcpt to: yourGmail@gmail.com
          data
          Subject: Test mail from roundcube
          Hi, Test message
          .
      

      Bạn gõ lần lượt các dòng trên. Kết thúc và gửi email bằng dấu chấm (.). Hãy thử xem bạn có nhận được email không nhé. Có thể email bạn nhận được sẽ nằm trong mục SPAM hoặc ngay sau khi bạn gửi email từ dòng lệnh trên kia sẽ có thông báo lỗi. Để khắc phục các vấn đề này tôi sẽ hướng dẫn tiếp ở phần sau, những cấu hình sẽ quyết định việc email của bạn nằm trong INBOX hay SPAM của Gmail. Cám ơn!

      Tags: Centos 7DovecotMail Server
      Thả tim (4 lượt thả tim)
      Loading...
      Previous Post

      Thuật toán cho người mới bắt đầu

      Next Post

      SOLID Principles: Single Responsibility

      Bách Nguyễn

      Bách Nguyễn

      Next Post
      SOLID Principles: Single Responsibility

      SOLID Principles: Single Responsibility

      Leave a Reply Cancel reply

      Your email address will not be published. Required fields are marked *

      Recent News

      Lập trình viên không dùng máy Mac nhiều như người ta đã nghĩ

      Lập trình viên không dùng máy Mac nhiều như người ta đã nghĩ

      July 25, 2020
      Dấu hiệu nhận biết sức khỏe qua liềm móng tay

      Dấu hiệu nhận biết sức khỏe qua liềm móng tay

      June 26, 2020
      Phương thức xử lý mảng trong javascript

      Phương thức xử lý mảng trong javascript

      May 31, 2020
      Lợi ích của việc tập thể dục thường xuyên

      Lợi ích của việc tập thể dục thường xuyên

      May 25, 2020
      DEVZONE

      Browse by Category

      • Algorithm
      • Architecture
      • Database
      • Design
      • Dev
      • DevOps
      • Idea
      • IoT
      • Lifestyle
      • Network
      • News
      • Test
      • Uncategorized
      • Web
      • About
      • Advertise
      • Privacy & Policy
      • Contact

      © 2019 Devzone

      No Result
      View All Result

      © 2019 Devzone