Published October 05, 2021 by

Best Tools for GroupWise To Exchange Migration

GroupWise from Novell is an outstanding email server that allows you to implement enterprise-level email communication. It offers a simple yet dynamic interface that is suitable for all types of users. However, it isn’t updated periodically like other popular email servers such as MS Exchange or Domino. The latest available version of this email server is GroupWise 18, which was released in 2017.

But, businesses have many better options now to manage their emails and other data. Microsoft products like Exchange Server and Exchange Online are very popular among enterprises. That’s why most organizations look to migrate GroupWise mailboxes to Exchange. After careful research and study, we have listed the best GroupWise to Exchange Migration tools to help you migrate data to Exchange from your GroupWise.

1. Kernel for GroupWise to Exchange

Kernel for GroupWise to Exchange is a professional tool that can meet your complex migration needs. It migrates GroupWise mailboxes to live Exchange, Outlook PST, and Office 365. It is designed in accordance with the peculiarities of both Exchange and GroupWise environments in mind and hence delivers a smooth migration experience. It supports all versions of GroupWise, Exchange, and Outlook too.

· Migrates GroupWise mailboxes to Outlook PST, Exchange Server, and Exchange Online

· Offers various filtering and selection options to perform need-based migration

· Migrates all mailbox items like emails, calendars, checklists, address books, notes, and journals quickly

· Maintains the data integrity and structure; migrates metadata including To, From,  Subject, Cc, Bcc, Time, etc.

· Offers a preview of the mailbox data before the migration

· Offers multiple login modes - Default mode, Login mode, Login mode with Proxy Access, and Command-line mode

A trial version of the tool is available to migrate 10 emails per folder.

2. Shoviv GroupWise to Exchange Migration

Developed by Shoviv, this GroupWise to Exchange migration utility is a simple solution that can quickly migrate all your data items to live Exchange, MS Outlook, and Office 365. It has a smooth migration process that allows you to quickly migrate all the GroupWise emails, contacts, and other items. The tool offers various features and functionalities that make the overall migration process easier.

· Offers a safe and fast migration from GroupWise to Exchange Online mailboxes

· Supports all versions of Exchange and GroupWise, including Exchange Server 2019, 2016, 2013, 2010, and 2007

· Ideal for migrating archive data from GroupWise to Office 365 and Exchange Server mailbox

· Offers different options to establish connectivity with GroupWise, such as default, online, remote mailbox path, caching mailbox, etc.

· Migrate multiple mailboxes to Outlook PST at once without compromising with the quality

· Enable you to split the PST file into multiple files after converting it

· Allows you to save data in other file formats, including MSG and EML, into a local directory

Shoviv also offers a trial version of the tool to migrate the first 50 items/folder from your GroupWise mailboxes.

3. Stellar GroupWise to Exchange Migration

Steller Info offers a compatible GroupWise migration application that allows you to migrate mailboxes to PST, Office 365, and live Exchange Server. Using this tool, you can migrate all GroupWise emails, contacts, tasks, and other mailbox items in a short time. The tool even allows you to export your archive mailboxes and offers a clear preview of the mailbox items.

· An easy-to-use tool for migrating Novell GroupWise mailboxes to Exchange Online

· Support two different options to migrate – single user mailbox and multiple user mailboxes

· Offers various filter options to convert selected GroupWise mailboxes to PST in batch mode

· Ideal for migrating the entire GroupWise user mailbox, such as emails, contact items, documents folder, checklists, and Unicode characters

· Displays a clear mailbox item preview before migrating the data to a specific destination

· Support all versions of Novell GroupWise and Exchange Server, including the latest versions

The trial version of the tool can be used to analyze its performance and speed. However, it allows you to save only 30 items per folder.

Conclusion

Migrating data from GroupWise to Exchange Server is not that easy, even for technically brilliant administrators.  So, they usually prefer professional solutions. However, it is difficult to get a tool that meets all your requirements. This article lists some of the best Novell GroupWise to Exchange migration tools in detail.

Read More
Published July 09, 2021 by

Recover deleted photos after windows format

 …because every picture tells a story.”


We often keep our memories cherished in the form of photographs and keep revisiting them. But what if these photos get deleted?

Our files, including photographs, often get deleted after formatting the Windows system. This generally happens when you forget to take a backup of your data before a Windows format.

 

What is Windows formatting?

Windows, which was developed by Microsoft, is a prevalent and widely used operating system. When you format your Windows, it means the data gets cleared or cleaned.

 

Need to format Windows-

There are a few reasons why you need to format your Windows system from time to time-

1. Unable to start the computer-

Sometimes when you open your desktop, it displays only a black screen which may happen due to a virus attack. In such a scenario, it is advisable to format the Windows system. 

2. Too many problems-

Often viruses corrupt the data that you have on your system, which makes it difficult to open certain files or even to run the system smoothly.

 

3. Computer is running slow-

The computer starts running slower than usual or with continuous interruptions.

 

4. To upgrade your system-

There is a need to format the current Windows system in order to upgrade it to the latest version.  

 

5. Hard drive is full-

After using a desktop or laptop for many years, your drive may become full of many files. You may not be able to add any more files.

 

How to recover deleted photos after formatting Windows?

Sometimes when you format your Windows system, you forget to take a backup of all your essential files and photos, which might result in the removal of these photos from your system. However, these can be recovered through the following ways-

 

Using System Restore Point-

You can yourself recover your precious photos by following these simple steps-

 

STEP 1 –

Open the Control Panel and click on Recovery.


 

 

STEP 2 –

Click on Open System Restore.


STEP 3 –

A dialogue box will open, which says that it will fix problems that might be making the computer run slowly.

Click on Next to proceed further.

 

STEP 4 –

A list will appear on your screen; select a restore point from this list. Click on Scan for affected programs to run a scan for the same.


STEP 5 –

The System Restore will display a list of programs. The first one includes programs that will be deleted from the system during the restore process, and the other one contains all the programs that will be restored during the process. After going through the programs, click on the Close option.

 

STEP 6 –

Select the desired restore point and click on Next.


STEP 7 –

Once again, confirm the restore point and click on the Finish option.


 

 

STEP 8 –

A small dialogue box will open on the screen. After reading the instructions carefully, click on Yes to initiate the restore process.


 
 

Using the Kernel Windows Data Recovery tool-

 

In case you are unable to restore your photos, you will be in need of a professional toolThe Kernel Windows Data Recovery tool is one of the prominent tools which is capable of recovering and restoring lost, missing, or deleted files, folders, Office documents, media files, and emails from corrupt Windows partitions, and removable devices like USB drives, Micro SD cards, SD cards, external hard drives & more.

Just follow this simple process to get your photos restored-


STEP 1 –

Download the Kernel Windows Data Recovery tool on your system.

 

STEP 2 –

Launch the tool. You will see 3 modes- Quick Scan, Deep Scan, and File TraceSelect a mode depending upon the data that you would want to recover.

 

STEP 3 –

Select the specific disk drive from which you want to recover your data and select the Next button.


STEP 4 –

You will get information about the selected drive. Click on Next to move forward.

 

STEP 5 –

The tool will start scanning for all the lost files and folders.

 

STEP 6 –

Select the specific folders and then select the photo that you want to recover. Select on Recover.

 

STEP 7 –

Select a destination to save your recovered file of photos. Then click on Ok.

 

STEP 8 –

The recovered photo has been saved to your specified location. Click on Ok to exit the tool.

 

The deleted photo has been recovered with the help of the Kernel Windows Data Recovery tool, and these features make it the premium tool for such use-

· Recovers lost, deleted, & inaccessible Windows files, folders, etc.

· Recovers data from bad sectors, partitions and removable drives.

· Three scanning modes for Windows recovery – Quick, Deep, and File Trace

· Displays live preview of recovered data with detailed information

· Finds specific type of files for recovery using the search options

· Advanced settings for recovery of deleted or duplicate items

· Saves recovered Windows data to the specified location

· Supports all Windows Operating Systems for data recovery.

  

Conclusion –

In this article, we got to know about the need to format Windows systems from time to time. Also, restoring the lost photos using the settings in our systems. But sometimes, it may not do the needful, and there we need a professional tool like Kernel Windows Data Recovery. Always remember to backup your precious photos before formatting the Windows system.


Read More
Published September 06, 2020 by

Migrate AWS S3 bucket to another AWS account

In this tutorial, I will explain how to migrate the AWS S3 bucket or objects from one AWS account to another AWS account or region.

Step 1: Get Destination AWS Account Number

Sign in to the destination AWS account. Go to My Account → Account Id and copy the account id from there.

Step 2: Create Source S3 Bucket

Sign in to source AWS account. Create a bucket in S3 and Attach the following policy to the bucket.

 {  
   "Version": "2012-10-17",  
   "Statement": [  
     {  
       "Sid": "DelegateS3Access",  
       "Effect": "Allow",  
       "Principal": {  
         "AWS": "arn:aws:iam::DESTINATION_BUCKET_ACCOUNT_NUMBER:root"  
       },  
       "Action": [  
         "s3:ListBucket",  
         "s3:GetObject"  
       ],  
       "Resource": [  
         "arn:aws:s3:::SOURCE_BUCKET_NAME/*",  
         "arn:aws:s3:::SOURCE_BUCKET_NAME"  
       ]  
     }  
   ]  
 }  

Step 3: Create Destination S3 Bucket

Sign in to the destination AWS account. Create a bucket in S3.

Step 4: Create IAM User In Destination AWS Account
Create a new IAM user in the destination AWS account and Attach the following policy to that user. 
 {   
   "Version": "2012-10-17",   
   "Statement": [   
    {   
     "Effect": "Allow",   
     "Action": [   
      "s3:ListBucket",   
      "s3:GetObject"   
     ],   
     "Resource": [   
      "arn:aws:s3:::SOURCE_BUCKET_NAME",   
      "arn:aws:s3:::SOURCE_BUCKET_NAME/*"   
     ]   
    },   
    {   
     "Effect": "Allow",   
     "Action": [   
      "s3:ListBucket",   
      "s3:PutObject",   
      "s3:PutObjectAcl"   
     ],   
     "Resource": [   
      "arn:aws:s3:::DESTINATION_BUCKET_NAME",   
      "arn:aws:s3:::DESTINATION_BUCKET_NAME/*"   
     ]   
    }   
   ]   
  }  

Step 5: Sync or copy S3 Bucket or objects To Destination bucket

Now we can copy or sync S3 bucket or objects from the source account to the destination account by using the following AWS CLI command.
 aws s3 sync s3://SOURCE-BUCKET-NAME s3://DESTINATION-BUCKET-NAME   
As you see we did not define any access control list during the command. We can use --acl parameter for this purpose and provide canned ACLs to apply to all objects.
 aws s3 sync s3://SOURCE-BUCKET-NAME s3://DESTINATION-BUCKET-NAME --acl public-read   

Read More

,

Published September 06, 2020 by

Auto change AMI in AWS launch-configuration

 

Normally, we create AMIs manually and update the launch configurations of different auto-scaling groups using those AMIs. This kind of repetitive work becomes tedious on a daily basis and there’s no such feature in AWS to do this automatically. 

After getting frustrated, I thought of getting this fixed on a permanent basis. Using my knowledge of shell scripting and basic AWS CLI commands, I have created a shell script to do this automatically. 

What does this script do?
    1. Get instance id from AutoScallingGroup
    2. Get launch configuration name from AutoScallingGroup
    3. Create AMI from the instance which gets in step 1
    4. Create a new Launch Configuration
    5. Update Auto Scaling Group to use newly created Launch Configuration
    6. Delete old Launch Configuration 

How to choose a specific instance from ASG?
In that case, you can specify the instance ID as well along with the autoscaling group name. The script will then create it’s AMI and update the launch configuration.

And Finally below is the shell script 
 #!/bin/bash  
   
 #Define parameters  
 ASG_NAME="myapp"  
 NEW_LC="myapp-$(date +%Y-%m-%d_%H-%M)"  
 TIME=$(date +%Y-%m-%d_%H-%M)  
   
 echo "Selected Auto Scaling Group is ${ASG_NAME}"  
   
 # Get instance id from ASG_NAME  
 RANDOM_INST_ID="$(aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names ${ASG_NAME} --query 'AutoScalingGroups[].Instances[?HealthStatus==`Healthy`].InstanceId' | head -3 | sed 1d | sed 1d | sed 's/ //g' | sed 's/"//g')";  
   
 # Get launch configuration name from ASG_NAME  
 LC_NAME=$(aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names ${ASG_NAME} --query 'AutoScalingGroups[].LaunchConfigurationName' | head -2 | sed 1d | sed 's/ //g' | sed 's/"//g')  
   
 # Create AMI  
 IMAGE=`aws ec2 create-image --instance-id ${RANDOM_INST_ID} --name NEW-IMAGE-${TIME} --no-reboot --output text`  
   
 echo "Create Image of instance ${RANDOM_INST_ID}"  
   
 # Create Launch Configuration  
 aws autoscaling create-launch-configuration --launch-configuration-name ${NEW_LC} --image-id ${IMAGE} --instance-type t2.micro --key myapp --associate-public-ip-address --security-groups sg-0123456ghbh79  
   
 echo "create new Launch Configuration ${NEW_LC}"  
   
 # Update Auto Scaling Group to use new Launch Configuration  
 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --launch-configuration-name ${NEW_LC}  
   
 echo "New Launch Configuration is updated in ASG ${NEW_LC}"  
   
 # Delete old Auto Scaling Launch Configuration  
 aws autoscaling delete-launch-configuration --launch-configuration-name ${LC_NAME}  
   
 echo "Delete old Launch Configuration"  
   
 echo "SUCCESS!"  

Read More
Published June 14, 2019 by

Restrict users to send mails to certain domains in Zimbra Mail server

This article, I have been explained how to restrict users to send emails to certain users or domains in the Zimbra mail server.

Do the following activity as Zimbra user.

1. Open file /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf and add this line at the top.
 check_sender_access lmdb:/opt/zimbra/conf/restricted_senders  

2. Open file /opt/zimbra/conf/zmconfigd.cf and Find the section labeled SECTION mta and enter the following two lines directly below
 POSTCONF  smtpd_restriction_classes   local_only  
 POSTCONF  local_only                 FILE postfix_check_recipient_access.cf  

3. Create a file "/opt/zimbra/conf/postfix_check_recipient_access.cf" and add the folloeing line
 check_recipient_access lmdb:/opt/zimbra/conf/local_domains, reject  

4. Create a file "/opt/zimbra/conf/restricted_senders" and list all the users, whom you want to restrict. Follow this syntax:
 user@yourdomain.com      local_only  

If you would like to restrict all users of a domain, enter the domain name instead of email ids. For example:
 yourdomain.com      local_only  

5. Create a file "/opt/zimbra/conf/local_domains" and list all the domains where "restricted users" allowed to sent emails.
 yourdomain.com           OK   
 otheralloweddomain.com   OK  

6. Finally, Run below commands for implement
 postmap /opt/zimbra/conf/restricted_senders  
 postmap /opt/zimbra/conf/local_domains   
 zmmtactl stop   
 zmmtactl start  

Please try to sending email to allowed domain and not allowed domain. If you insert new user on number 4 or new domain on number 5, don’t forget to run again number 6.


Undo this configuration

Remove Step 2

and run below commands:
 postconf -e smtpd_restriction_classes=' '  
 zmmtactl reload  

Read More
Published June 07, 2019 by

How to Take Backup of Zimbra Mail Server


Below shell script is a take a backup of you all email accounts in Zimbra
 #!/bin/bash  
   
 ################################################  
 # Zimbra backup script for open source edition #  
 ################################################  
   
 ZIMBRA_HOME=/opt/zimbra  
 ZIMBRA_BIN=$ZIMBRA_HOME/bin  
 ZIMBRA_BACKUP_DIR=$ZIMBRA_HOME/backup   
 BACKUP_DATE=`date +%G-%m-%d_%H-%M`   
   
 # set default option is 0 (unset)  
 VERBOSE=0   
   
 log()  
 {  
   # verbose option is turn on  
   if [ $VERBOSE -eq 1 ]; then  
     echo $1  
   fi  
 }  
   
 usage()   
 {  
   
   cat << EOF  
 zmbackup: zmbackup [-o path] -a|-u mailbox  
 EOF  
   
 }  
   
 backup_mailbox()  
 {  
   mbox=$1  
   log "start backup mailbox $mbox"  
   
   if [ ! -z $2 ]; then  
     $ZIMBRA_BIN/zmmailbox -z -m $mbox getRestURL "//?fmt=tgz" > $ZIMBRA_BACKUP_DIR/$2/$mbox-$BACKUP_DATE.tgz  
     log "backup mailbox $mbox successful"  
     log "backup to $ZIMBRA_BACKUP_DIR/$2"  
   
   else  
     $ZIMBRA_BIN/zmmailbox -z -m $mbox getRestURL "//?fmt=tgz" > $ZIMBRA_BACKUP_DIR/$mbox-$BACKUP_DATE.tgz   
     log "backup mailbox $mbox successful"  
     log "backup to $ZIMBRA_BACKUP_DIR"  
   fi  
 }   
   
 create_pack_backup()  
 {    
   log "search domain"  
   domains=`$ZIMBRA_BIN/zmprov gad`  
   
   for domain in $domains; do  
     log "start backup domain $domain"   
   
     # get all accounts from domain  
     mboxs=`$ZIMBRA_BIN/zmprov -l gaa $domain`  
   
     # check directory if -o is set  
     mkdir -p $ZIMBRA_BACKUP_DIR/$domain  
   
     # fetch account in tgz format  
     for mbox in $mboxs; do  
 #      $ZIMBRA_BIN/zmmailbox -z -m $mbox getRestURL "//?fmt=tgz" > $ZIMBRA_BACKUP_DIR/$domain/$mbox-$BACKUP_DATE.tgz  
       backup_mailbox $mbox $domain  
     done  
   
     # pack mailbox in domain  
     cd $ZIMBRA_BACKUP_DIR/$domain  
     tar czf $domain-$BACKUP_DATE.tgz `ls`  
     mv $domain-$BACKUP_DATE.tgz $ZIMBRA_BACKUP_DIR  
     cd $ZIMBRA_BACKUP_DIR  
     rm -rf $ZIMBRA_BACKUP_DIR/$domain  
       
     log "backup domain $domain successful"  
   
   done  
 }  
   
 # Option  
 # zmbackup [-ah] [-u mailbox] [-o path]   
 while getopts :aho:u:v OPTION; do  
   case $OPTION in  
     a )  
       AFLAG=1  
       ;;  
     h )  
       usage  
       ;;  
     o )  
       if [ -z $OPTARG ]; then  
         echo "-o option must specific path"  
         exit 1  
       else  
         ZIMBRA_BACKUP_DIR=${OPTARG:0:${#OPTARG}-1} # substring from 0 to strlen - 1  
       fi  
       ;;  
     u )   
       if [ -z $OPTARG ]; then  
         echo "-u option must specific mailbox"  
       else  
         UFLAG=$OPTARG  
       fi  
       ;;  
     v )  
       VERBOSE=1  
       ;;  
     # other option doesn't match  
     * )  
       usage  
       exit 1  
       ;;  
   esac  
 done  
   
 # if not specific -a or -u it error and exit the script  
 if [ -z $UFLAG ] && [[ $AFLAG -ne 1 ]]; then  
   echo "you must specific -a or -u option"  
   exit 1  
 fi  
   
 # if UFLAG has value but AFLAG is used  
 if [ ! -z $UFLAG ] && [[ $AFLAG -eq 1 ]]; then  
   echo "use -a or -u"  
   exit 1  
 # if declare UFLAG  
 elif [ ! -z $UFLAG ]; then  
   backup_mailbox $UFLAG  
 fi  
   
 # if AFLAG on  
 if [[ $AFLAG -eq 1 ]]; then  
   create_pack_backup  
 fi  
   

For taking a backup run this above script with -a parameter
 ./zmbackup.sh -a  

the backup file is stored in /opt/zimbra/backup
Read More
Published June 07, 2019 by

Redirect HTTP to HTTPS in Zimbra Mail Server


Using Below command we can forcefully redirect all HTTP request to HTTPS in Zimbra Mail Server.

 # su - zimbra  
 # zmprov ms myserver.yourdomain.com zimbraReverseProxyMailMode redirect  
 # zmcontrol restart  

OR

 # su – zimbra  
 # zmtlsctl redirect  
 # zmcontrol restart  

Read More
Published June 06, 2019 by

Install Rocket.Chat on Ubuntu or Debian

Rocket Chat is the leading open source team chat software solution. Free, unlimited and completely customizable with on-premises and SaaS cloud hosting.

You can consider rocket chat as an alternative to Skype and Slack chat solutions.


In this tutorial, we are learning how to install rocket chat on Ubuntu or Debian and configure let's encrypt SSL also we discuss how to take backup Rocket chat server.

Install Rocket chat Server

1. Update the system.
 sudo apt-get update  

2. Install snap if it is not installed.
 sudo apt-get install snapd  

3. Install Rocket Chat
 sudo snap install rocketchat-server  

4. Check if Rocket Chat is running
 sudo service snap.rocketchat-server.rocketchat-server status  

Then browse to http://localhost:3000 and setup Rocket Chat Server. 


Setup NGINX with Reverse Proxy and SSL

5. Install Nginx and enabled to start automatically on reboot
 sudo apt install nginx  
 sudo systemctl start nginx  
 sudo systemctl enable nginx  
6. Set up NGINX Reverse Proxy

Remove the default site
 sudo rm /etc/nginx/sites-enabled/default  

Create /etc/nginx/sites-available/rocketchat.conf file.
 vim /etc/nginx/sites-available/rocketchat.conf  

add the necessary values to point to your domain name and to add the reverse proxy. Replace example.com with your actual domain name.
 server {  
   listen 80;  
   
   server_name example.com;  
   
   location / {  
     proxy_pass http://localhost:3000/;  
   }  
 }  

Enable the new configuration by creating a link to it from /etc/nginx/sites-available/
 sudo ln -s /etc/nginx/sites-available/rocketchat.conf /etc/nginx/sites-enabled/  

Test the configuration and reload the new configuration
 sudo nginx -t  
 sudo nginx -s reload  

7. Generate SSL certificates using Certbot
 sudo apt-get install python-certbot-nginx  
 sudo certbot --nginx  

Certbot will ask for information about the site. The responses will be saved as part of the certificate also Certbot will also ask if you would like to automatically redirect HTTP traffic to HTTPS traffic. It is recommended that you select this option.

Again Test the configuration and reload the new configuration
 sudo nginx -t  
 sudo nginx -s reload  

Then browse to https://yourdomain.com and setup Rocket Chat Server. 
Read More
Published May 05, 2019 by

Configure Let's Encrypt SSL in Zimbra Mail Server

In this tutorial, we configure let's encrypt SSL in our Zimbra mail server which we have configured in the previous post.

For install ssl in zimbra create file named zimbra-ssl.sh.
 sudo vim zimbra-ssl.sh   
Insert Below script in a zimbra-ssl.sh file and save.
 #!/bin/bash  
   
 # SSL certificate installation in Zimbra  
 # with SSL certificate provided by Let's Encrypt (letsencrypt.org)  
 # Author: Subhash (serverkaka.com)  
   
 # Check if running as root  
 if [ "$(id -u)" != "0" ]; then  
   echo "This script must be run as root" 1>&2  
   exit 1  
 fi  
   
 read -p 'letsencrypt_email [xx@xx.xx]: ' letsencrypt_email  
 read -p 'mail_server_url [xx.xx.xx]: ' mail_server_url  
   
 # Check All variable have a value  
 if [ -z $mail_server_url ] || [ -z $letsencrypt_email ]  
 then  
    echo run script again please insert all value. do not miss any value  
 else  
   
 # Installation start  
 # Stop the jetty or nginx service at Zimbra level  
 su - zimbra -c 'zmproxyctl stop'  
 su - zimbra -c 'zmmailboxdctl stop'  
   
 # Install git and letsencrypt  
 cd /opt/  
 apt-get install git -y  
 git clone https://github.com/letsencrypt/letsencrypt  
 cd letsencrypt  
   
 # Get SSL certificate  
 ./letsencrypt-auto certonly --standalone --non-interactive --agree-tos --email $letsencrypt_email -d $mail_server_url --hsts  
 cd /etc/letsencrypt/live/$mail_server_url  
 cat <<EOF >>chain.pem  
 -----BEGIN CERTIFICATE-----  
 MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/  
 MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT  
 DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow  
 PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD  
 Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB  
 AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O  
 rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq  
 OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b  
 xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw  
 7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD  
 aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV  
 HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG  
 SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69  
 ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr  
 AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz  
 R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5  
 JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo  
 Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ  
 -----END CERTIFICATE-----  
 EOF  
   
 # Verify commercial certificate  
 mkdir /opt/zimbra/ssl/letsencrypt  
 cp /etc/letsencrypt/live/$mail_server_url/* /opt/zimbra/ssl/letsencrypt/  
 chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/*  
 ls -la /opt/zimbra/ssl/letsencrypt/  
 su - zimbra -c 'cd /opt/zimbra/ssl/letsencrypt/ && /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem'  
   
 # Deploy the new Let's Encrypt SSL certificate  
 cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")  
 cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key  
 sudo chown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.key  
 su - zimbra -c 'cd /opt/zimbra/ssl/letsencrypt/ && /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem'  
   
 # Restart Zimbra  
 su - zimbra -c 'zmcontrol restart'  
   
 # setting auto https redirect  
 cd /opt && touch https-redirect.sh && chown zimbra:zimbra https-redirect.sh && chmod +x https-redirect.sh  
 cat <<EOF >>/opt/https-redirect.sh  
 zmprov ms $mail_server_url zimbraReverseProxyMailMode redirect  
 EOF  
 su - zimbra -c '/opt/https-redirect.sh'  
 rm /opt/https-redirect.sh  
 fi  
Give execute permission to the zimbra-ssl.sh file
 sudo chmod +x zimbra-ssl.sh  
Finally, now run the zimbra-ssl.sh file
 sudo ./zimbra-ssl.sh  

After successfully script execute, Go to a browser and check https://mail.servrkaka.com/



For more script and installation note check this link: https://github.com/SubhashPatel/Install-Zimbra-mail-server-ubuntu

Read More
Published May 05, 2019 by

Install and Configure Zimbra Mail Server in Ubuntu/Debian

Zimbra Collaboration Suite (ZCS) is a collaborative software suite that includes an email server and web client.

The software consists of both client and server components, and a desktop client. Two versions of Zimbra are available: an open-source version and a commercially supported version ("Network Edition") with closed-source components such as a proprietary Messaging Application Programming Interface connector to Outlook for calendar and contact synchronization.

The ZCS Server uses open source projects such as:
  • Postfix
  • MariaDB (since version 8.5)
  • OpenDKIM (since version 8.0)
  • OpenLDAP
  • Jetty (since version 5)
  • Lucene
  • ClamAV
  • SpamAssassin
  • Amavis (amavisd-new)
  • DSPAM (deprecated starting 8.7)
  • Aspell
  • nginx (since 5.0)
Prerequisite:

2 GHz 64 bit CPU
Minimum 8 GB RAM
Minimum 10 GB disk

Configure Hostname

Edit /etc/hosts and add the line 192.168.0.25 mail.serverkaka.com mail. Change 192.168.0.25 with the Local IP you want to use.
 root@mail:~# cat /etc/hosts  
 127.0.0.1 localhost  
 192.168.0.25 mail.serverkaka.com mail  
Also edit /etc/hostname and the line 'mail'
 root@mail:~# cat /etc/hostname  
 mail  
Reboot the system and test the FQDN of your server with the command hostname -f and hostname.
 root@mail:~# hostname -f   
 mail.serverkaka.com  
 root@mail:~# hostname   
 mail  
DNS Setup Before Install

Before Zimbra installation, we have to set up DNS configuration (A record and MX Record).

A Record
TypeHostPoints toTTL
Amail34.73.91.191 Hour
MX Record
TypeHostPoints toPriorityTTL
MX@mail.serverkaka.com101 Hour
Don't forget to change above value with actual value.

Zimbra Server Installation

For Install  Zimbra mail server Create a file named Zimbra.sh
 sudo vim zimbra.sh  
Insert Below script in a Zimbra.sh file and save.
 #!/bin/bash -x  
   
 # Zimbra mail server installation in Ubuntu 14.04 and 16.04  
 # Author: Subhash (serverkaka.com)  
   
 # Check if running as root  
 if [ "$(id -u)" != "0" ]; then  
   echo "This script must be run as root" 1>&2  
   exit 1  
 fi  
   
 ## Preparing all the variables like IP, Hostname, etc, all of them from the server  
 RANDOMHAM=$(date +%s|sha256sum|base64|head -c 10)  
 RANDOMSPAM=$(date +%s|sha256sum|base64|head -c 10)  
 RANDOMVIRUS=$(date +%s|sha256sum|base64|head -c 10)  
 HOSTNAME=$(hostname -s)  
   
 ##Install a DNS Server  
 sudo apt-get update && sudo apt-get install -y bind9 bind9utils bind9-doc  
 echo "Installing Bind DNS Server"  
 sed "s/-u/-4 -u/g" /etc/default/bind9 > /etc/default/bind9.new  
 mv /etc/default/bind9.new /etc/default/bind9  
 rm /etc/bind/named.conf.options  
 cat <<EOF >>/etc/bind/named.conf.options  
 options {  
 directory "/var/cache/bind";  
 listen-on { $2; }; # ns1 private IP address - listen on private network only  
 allow-transfer { none; }; # disable zone transfers by default  
 forwarders {  
 8.8.8.8;  
 8.8.4.4;  
 };  
 auth-nxdomain no; # conform to RFC1035  
 #listen-on-v6 { any; };  
 };  
 EOF  
 cat <<EOF >>/etc/bind/named.conf.local  
 zone "$1" {  
     type master;  
     file "/etc/bind/db.$1";  
 };  
 EOF  
 touch /etc/bind/db.$1  
 cat <<EOF >/etc/bind/db.$1  
 \$TTL 604800  
 @   IN   SOA  ns1.$1. root.localhost. (  
                 2    ; Serial  
             604800    ; Refresh  
             86400    ; Retry  
             2419200    ; Expire  
             604800 )   ; Negative Cache TTL  
   ;  
   @   IN   NS   ns1.$1.  
   @   IN   A   $2  
   @   IN   MX   10   $HOSTNAME.$1.  
   $HOSTNAME   IN   A   $2  
   ns1   IN   A   $2  
   mail   IN   A   $2  
   pop3   IN   A   $2  
   imap   IN   A   $2  
   imap4   IN   A   $2  
   smtp   IN   A   $2  
 EOF  
 sudo service bind9 restart  
   
 ##Preparing the config files to inject  
 echo "Creating the Scripts files"  
 mkdir /tmp/zcs && cd /tmp/zcs  
 touch /tmp/zcs/installZimbraScript  
 cat <<EOF >/tmp/zcs/installZimbraScript  
 AVDOMAIN="$1"  
 AVUSER="admin@$1"  
 CREATEADMIN="admin@$1"  
 CREATEADMINPASS="$3"  
 CREATEDOMAIN="$1"  
 DOCREATEADMIN="yes"  
 DOCREATEDOMAIN="yes"  
 DOTRAINSA="yes"  
 EXPANDMENU="no"  
 HOSTNAME="$HOSTNAME.$1"  
 HTTPPORT="8080"  
 HTTPPROXY="TRUE"  
 HTTPPROXYPORT="80"  
 HTTPSPORT="8443"  
 HTTPSPROXYPORT="443"  
 IMAPPORT="7143"  
 IMAPPROXYPORT="143"  
 IMAPSSLPORT="7993"  
 IMAPSSLPROXYPORT="993"  
 INSTALL_WEBAPPS="service zimlet zimbra zimbraAdmin"  
 JAVAHOME="/opt/zimbra/common/lib/jvm/java"  
 LDAPAMAVISPASS="$3"  
 LDAPPOSTPASS="$3"  
 LDAPROOTPASS="$3"  
 LDAPADMINPASS="$3"  
 LDAPREPPASS="$3"  
 LDAPBESSEARCHSET="set"  
 LDAPDEFAULTSLOADED="1"  
 LDAPHOST="$HOSTNAME.$1"  
 LDAPPORT="389"  
 LDAPREPLICATIONTYPE="master"  
 LDAPSERVERID="2"  
 MAILBOXDMEMORY="512"  
 MAILPROXY="TRUE"  
 MODE="https"  
 MYSQLMEMORYPERCENT="30"  
 POPPORT="7110"  
 POPPROXYPORT="110"  
 POPSSLPORT="7995"  
 POPSSLPROXYPORT="995"  
 PROXYMODE="https"  
 REMOVE="no"  
 RUNARCHIVING="no"  
 RUNAV="yes"  
 RUNCBPOLICYD="no"  
 RUNDKIM="yes"  
 RUNSA="yes"  
 RUNVMHA="no"  
 SERVICEWEBAPP="yes"  
 SMTPDEST="admin@$1"  
 SMTPHOST="$HOSTNAME.$1"  
 SMTPNOTIFY="yes"  
 SMTPSOURCE="admin@$1"  
 SNMPNOTIFY="yes"  
 SNMPTRAPHOST="$HOSTNAME.$1"  
 SPELLURL="http://$HOSTNAME.$1:7780/aspell.php"  
 STARTSERVERS="yes"  
 SYSTEMMEMORY="3.8"  
 TRAINSAHAM="ham.$RANDOMHAM@$1"  
 TRAINSASPAM="spam.$RANDOMSPAM@$1"  
 UIWEBAPPS="yes"  
 UPGRADE="yes"  
 USEKBSHORTCUTS="TRUE"  
 USESPELL="yes"  
 VERSIONUPDATECHECKS="TRUE"  
 VIRUSQUARANTINE="virus-quarantine.$RANDOMVIRUS@$1"  
 ZIMBRA_REQ_SECURITY="yes"  
 ldap_bes_searcher_password="$3"  
 ldap_dit_base_dn_config="cn=zimbra"  
 ldap_nginx_password="$3"  
 ldap_url="ldap://$HOSTNAME.$1:389"  
 mailboxd_directory="/opt/zimbra/mailboxd"  
 mailboxd_keystore="/opt/zimbra/mailboxd/etc/keystore"  
 mailboxd_keystore_password="$3"  
 mailboxd_server="jetty"  
 mailboxd_truststore="/opt/zimbra/common/lib/jvm/java/jre/lib/security/cacerts"  
 mailboxd_truststore_password="changeit"  
 postfix_mail_owner="postfix"  
 postfix_setgid_group="postdrop"  
 ssl_default_digest="sha256"  
 zimbraDNSMasterIP=""  
 zimbraDNSTCPUpstream="no"  
 zimbraDNSUseTCP="yes"  
 zimbraDNSUseUDP="yes"  
 zimbraDefaultDomainName="$1"  
 zimbraFeatureBriefcasesEnabled="Enabled"  
 zimbraFeatureTasksEnabled="Enabled"  
 zimbraIPMode="ipv4"  
 zimbraMailProxy="FALSE"  
 zimbraMtaMyNetworks="127.0.0.0/8 $2/32 [::1]/128 [fe80::]/64"  
 zimbraPrefTimeZoneId="America/Los_Angeles"  
 zimbraReverseProxyLookupTarget="TRUE"  
 zimbraVersionCheckInterval="1d"  
 zimbraVersionCheckNotificationEmail="admin@$1"  
 zimbraVersionCheckNotificationEmailFrom="admin@$1"  
 zimbraVersionCheckSendNotifications="TRUE"  
 zimbraWebProxy="FALSE"  
 zimbra_ldap_userdn="uid=zimbra,cn=admins,cn=zimbra"  
 zimbra_require_interprocess_security="1"  
 zimbra_server_hostname="$HOSTNAME.$1"  
 INSTALL_PACKAGES="zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-memcached zimbra-proxy"  
 EOF  
   
 touch /tmp/zcs/installZimbra-keystrokes  
 cat <<EOF >/tmp/zcs/installZimbra-keystrokes  
 y  
 y  
 y  
 y  
 y  
 n  
 y  
 y  
 y  
 y  
 y  
 y  
 y  
 n  
 y  
 y  
 EOF  
   
 ## Install Zimbra Mail Server  
 if [[ `lsb_release -rs` == "16.04" ]]; then  
      echo "Downloading Zimbra Collaboration 8.8.10 for Ubuntu 16.04"  
      wget https://files.zimbra.com/downloads/8.8.10_GA/zcs-8.8.10_GA_3039.UBUNTU16_64.20180928094617.tgz  
      tar xzvf zcs-*  
      echo "Installing Zimbra Collaboration just the Software"  
      cd /tmp/zcs/zcs-* && ./install.sh -s < /tmp/zcs/installZimbra-keystrokes  
      echo "Installing Zimbra Collaboration injecting the configuration"  
      /opt/zimbra/libexec/zmsetup.pl -c /tmp/zcs/installZimbraScript  
 fi  
 if [[ `lsb_release -rs` == "14.04" ]]; then  
      echo "Downloading Zimbra Collaboration 8.8.10 for Ubuntu 16.04"  
      wget https://files.zimbra.com/downloads/8.8.10_GA/zcs-8.8.10_GA_3039.UBUNTU14_64.20180928094617.tgz  
      tar xzvf zcs-*  
      echo "Installing Zimbra Collaboration just the Software"  
      cd /tmp/zcs/zcs-* && ./install.sh -s < /tmp/zcs/installZimbra-keystrokes  
      echo "Installing Zimbra Collaboration injecting the configuration"  
      /opt/zimbra/libexec/zmsetup.pl -c /tmp/zcs/installZimbraScript  
 fi  
   
 ## Restart Zimbra  
 su - zimbra -c 'zmcontrol restart'  
   
 ## Add Crontab for server autostart at startup or reboot   
 cat <(crontab -l) <(echo "@reboot su - zimbra -c 'zmcontrol start'") | crontab -  
   
 echo "You can access now to your Zimbra Collaboration Server"  
 echo "Admin Console: https://"$2":7071"  
 echo "Web Client: https://"$2  
Give execute permission to Zimbra.sh file
 sudo chmod +x zimbra.sh  
Finally, now run the Zimbra.sh file with parameter your domain name, machine Local IP and Admin Password.
 sudo ./zimbra.sh serverkaka.com 192.168.0.25 Zimbra123  
Now sit back and Relax, it will take time up to 30 minutes, depending on your internet and machine speed.

After Successfully script executed below is Access Zimbra Admin Portal & Web Mail Client.

To access Zimbra Mail Web Client, type the following URL in the browser
https://mail.serverkaka.com/



To access the Zimbra Admin Portal, type below URL in Web Browser
https://mail.serverkaka.com:7071/



Below Ports should be open in firewall for Zimbra access from external:
HTTP80
HTTPS443
POP3110
SMTP25
SMTP587
POP3S (Secure POP3)995
IMAP143
IMAPS (Secure IMAP)993

Read More