Author: Derek Wiedenhoeft

Finding HIPAA Hosting Solutions as a Small Business Owner

Operating within the healthcare industry can be challenging. There are many moving parts that must be accounted for, whether you’re a new startup firm or a large network of hospitals. When most small business owners are looking for hosting solutions, the only concerns are cost and the capability of the hardware to meet the needs of a website. The options are endless when it comes to finding simple hosting. When it comes to firms in the medical sector, there are special considerations to be had.

Your hosting options are significantly narrowed when looking for HIPAA-compliant hosting. Small business owners working in healthcare must seek out hosting companies that specialize in HIPAA compliance. Relatively speaking, few hosting companies can provide this service because of what it entails. Powerful hardware is just one part of the equation. There must also be a long list of security measures put in place to protect sensitive data. This strict set of regulations is the reason why you can’t trust your hosting with just anyone. It’s also why many hosting companies can’t offer this service and why trying to establish local infrastructure to handle these duties isn’t the best option. Part 2 of this document released by the SANS Institute delineates what is required at the local level to remain compliant with HIPAA regulations.  Maintaining HIPAA compliance at the hardware level is cost-prohibitive for most firms and a host is required.

Finding a hosting provider that can meet your organization’s needs can seem daunting, but there are a number of things to be aware of when seeking out a HIPAA-compliant hosting solution. Here are some general guidelines to keep in mind when looking for the right hosting solution for your business.

Read More


SSAE 16, SSAE18, SOC 1, SOC2: What they are and why you should care

Cloud computing has revolutionized the world of software licensing, but it has also opened the gates to new security risks. In the past, if a company wanted to add new software, it had to endure long installation processes on local servers. This gave companies the opportunity to verify the reliability of their systems, while local hosting gave them more control over their data. However, it was also immensely time-consuming and costly to set up and maintain.

Read More


How to: Getting started with Windows Containers and Docker

Introduction

This article is a basic primer on how to use Windows Server 2016 with Containers and Docker on the Atlantic.Net Cloud. Docker popularized containers first on Linux, but now with Windows 2016, Windows containers are now natively supported as well. This means you can build your application in a container and ship it across your development and production environments knowing that it will work and run the exact same way on every device.

In this tutorial, we will deploy a web page in an IIS container from a Microsoft-distributed IIS container image. Let’s get started with a quick tutorial!

Deploying an Atlantic.Net Cloud Server

First, we need to deploy a new Windows 2016 with Containers server from the Atlantic.Net Cloud.

  • Log in to https://cloud.atlantic.net. Atlantic.net cloud login
  • Click “+ Add Server.”
  • On the “Add a Server” page, enter the following:
  • Server Name: What you’d like your server’s name to be. For example, “Windows 2016 Docker.”
  • Location: The data center you want your server created in.
  • Type: Under the “Operating Systems” tab, select “Windows,” and then select “2016 Datacenter (with Containers/Docker).”
  • Term: Do you want month-to-month, on-demand pricing, or do you want a one or three year term commitment for this server?
  • Plan: We recommended at least a G2.2GB plan size for Windows-based servers, due to memory requirements.
  • Enable Backups: Do you want your server backed up by us daily?Docker selection
  • Click “Create Server” to begin the provisioning of the server. The next page will have your login credentials for the new server displayed. Please save these somewhere so you can use them to log in. Note: The credentials will also be emailed to you.

Logging in to Windows 2016

Once the server is done provisioning, you will need to log into Windows 2016. Click here to find out how to remotely log in.

Checking Your Docker Version

Ensure that Docker is actually installed by running the “docker version” command from the Windows command prompt (cmd.exe).

C:\Users\Administrator>docker version

Client:
 Version:      17.03.1-ee-3
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   3fcee33
 Built:        Thu Mar 30 19:31:22 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.1-ee-3
 API version:  1.27 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   3fcee33
 Built:        Thu Mar 30 19:31:22 2017
 OS/Arch:      windows/amd64
 Experimental: false

Running Your First IIS Container

The first step is to retrieve the Microsoft distributed IIS container. We could do this with the docker pull command (ie: docker pull microsoft/iis). However, in the interest of simplicity, we can skip this step and go straight to launching our first container. Docker will automatically pull down the necessary image (and any dependent images) if they don’t already exist locally.

Note: We are going to set some properties of the container when we run the command:

  • Name: The name of the container. In this case, we would specify the name by entering “–name myIIS.”
  • Ports: You can specify what ports you want open on the server. You do this by binding the internal ports of your container to an external port so it is accessible publicly. In this case, we are binding port 80 (the web port) of the container to port 80 of our Cloud Server with “-p 80:80“.

Docker will automatically pull down the necessary image (and any dependent images) if they don’t already exist locally.

C:\Users\Administrator>docker run -d --name myIIS -p 80:80 microsoft/iis
Unable to find image 'microsoft/iis:latest' locally
latest: Pulling from microsoft/iis
3889bb8d808b: Pull complete
6d4d50238ed1: Pull complete
0606d7d474d1: Pull complete
672755d284cd: Pull complete
88f5b9741695: Pull complete
d53dd94c8474: Pull complete
Digest: sha256:bcbcb3b442bc5f0ab3b8b769b52584d98751861b5e438b866d59287cc8112f10
Status: Downloaded newer image for microsoft/iis:latest
2614436cb74c8a21c77e071e13fb5937c12f8946ce8e3c7044e24216cae4100b

Your container is now running, which you can check with the following command:

C:\Users\Administrator>docker ps -a
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS                NAMES
2614436cb74c        microsoft/iis       "C:\\ServiceMonitor..."   4 days ago          Up 4 days           0.0.0.0:80->80/tcp   myIIS

Next, we will login to the container and start a Windows command prompt (cmd.exe) in the container to enter interactive commands:

C:\Users\Administrator>docker exec -i myIIS cmd
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\>

Now that you are logged into the container, we are going to remove the default IIS web server start page so we can add our own index page:

del C:\inetpub\wwwroot\iisstart.htm

Now add your own content to the index.html page:

echo "Nice! My first container is displaying this text on my index page!" > C:\inetpub\wwwroot\index.html

Now open a browser and type in the IP address of your Cloud Server into the URL field. You should now see your index page:

iis container

 

Back in the CMD prompt, type exit to exit the interactive session of the container:

C:\>exit
exit

C:\Users\Administrator>

Building and Deploying a Docker Container with Your Changes

Now that the container is configured the way you want, you can save the container to a new container image for future use. First, we need to grab the name of the container from the “docker ps -a” command and stop the container:

C:\Users\Administrator>docker ps -a
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS                NAMES
2614436cb74c        microsoft/iis       "C:\\ServiceMonitor..."   4 days ago          Up 4 days           0.0.0.0:80->80/tcp   myIIS
C:\Users\Administrator>docker stop myIIS
myIIS

Create the new container with “docker commit <current name> <new image name>“. In our case the current name is “myIIS“:

C:\Users\Administrator>docker commit myIIS configured-iis
sha256:4d08b0a5561e11817d199d6d55d46497ce1d4221384d5c29b4c622d44cceed9c

Verify the new image has been created:

C:\Users\Administrator>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
configured-iis      latest              4d08b0a5561e        44 seconds ago      10.5 GB
microsoft/iis       latest              9e66ceefdc5a        2 weeks ago         10.4 GB

The container we just created can now be deployed for future use:

docker run -d --name web01 -p 80:80 configured-iis

Now stop the new container and delete it:

C:\Users\Administrator>docker stop web01
web01
C:\Users\Administrator>docker rm web01
web01

Finishing Up

The above was just a basic tutorial.  You can also do interesting things like automating the build of container images using DockerFiles, pushing the images to a centralized repository, and creating redundancy and automatic failover by having multiple nodes setup in a Docker Swarm. Enjoy!


Windows Server Container Support in the Cloud is now Available!

Windows Server Container Docker Support in the Cloud is now Available!

Windows Server Container Docker Support in the Cloud is now Available!

 

Introducing Windows Server Containers

We are happy to announce the availability of Windows Containers with Docker. This enables Windows users to package applications into images that can be run on any Windows 2016 server. Users can now deploy and scale their Windows Containers across Atlantic.Net’s global Cloud.

Read More


DIY Security: Why It’s Usually a Bad Idea for Most Businesses

Do-it-yourself is a popular mantra among many people building websites, doing home renovations, or marketing artistic and cultural products.  Unfortunately, however, it is not an appropriate approach for some things; like network security.  Just like a home renovation DIY project gone horribly wrong, organizations taking on cybersecurity roles outside of their core competency could cause themselves ruinous, avoidable expense.

Some companies make the decision to be wholly responsible for their network security intentionally, perhaps due to cost considerations, or a lack of understanding about the frequency and harm of security incidents.  For some companies, it was simply neglected, or a tiny startup in stealth mode grew too quickly for management to keep up with all demands.

The cost of network downtime for enterprises is $5,600 per minute, which is close to $300,000 per hour.

According to Gartner research, the cost of network downtime for enterprises is $5,600 per minute, on average, which is close to $300,000 per hour.  Worse, Ponemon research found that the average total cost of a data breach in 2016 was $4 million.  Protecting against that kind of risk is a job for professionals.  Keeping a network secure can be easy.  You just have to have the right help.

Read More



Is Two-Factor Authentication Necessary? How Do I Get My Employees to Use It?

Contributing writer: Ahmed Muztaba

Why is two-factor authentication necessary?

Today, nothing is more valuable than information. Because the majority of online content is behind the lock and key of the so-called “deep web,” it’s no wonder that hackers are more interested than ever in ferreting out secure information. Today’s great heist doesn’t require a cat burglar. A mouse is easier to maneuver.

Two-factor authorization (or 2FA) arose as a bulwark against the hijinks of Internet pirates whose Trojan Horses and phishing scams were netting easy prey. The premise is simple: by requiring a second layer of verification, it makes your data twice as hard to access illegally. You can see this everywhere; from the chip-and-pin credit card requirements to the “secret questions” that some websites require their users to answer.

By reducing the points of vulnerability in your company, both company and employee sensitive data can remain far less likely of being breached. Requiring strongly-typed password used to be enough, but with the increase in computing power and prevalence of botnets, a person or organization with malicious intent can have an immense amount of resources to harness. This means that once touch-to-crack passwords are now much easier to crack. By requiring a second layer of authentication that requires a code to be entered within a given amount of time before expiring, this can greatly prevent widespread damage.

Read More


Small Business PCI Compliance Guide

Derek Wiedenhoeft April 28, 2017 by under PCI Hosting 0 Comments

PCI Compliance – Critical for small businesses

PCI compliance is critical for small businesses. It is important for two reasons: it gets the company in line with the standards set up by the major credit and debit card brands, and it legitimately checks the security of the business’s systems. In other words, PCI compliance isn’t just about following rules but about protection – especially important since three in five small businesses that get hacked are bankrupt within six months.

Read More


How to Enable User Quotas in cPanel/WHM

Derek Wiedenhoeft April 27, 2017 by under Cloud Hosting 0 Comments

This tutorial will explain how to enable user quotas on Atlantic.Net’s cPanel Cloud Servers. Before we get into the details, let’s do some housekeeping:

Verified on 4/28/17 for cPanel on CentOS 7.2 64-bit

Prerequisites

    • Atlantic.Net Cloud Account

Click here to sign up for your free account!

    • SSH Program

Don’t have one? Follow the guides below for how to SSH:

From Windows
From Linux/Mac

    • Atlantic.Net cPanel Server

Follow this simple guide for how to quickly create a cPanel server:

Create cpanel


Connecting to Your cPanel Server

Now it’s time to connect to your server via SSH:

ssh [email protected][IP Address]

Once you connect to your external device, you’ll see the following which is the RSA negotiation between both devices to ensure you’re connecting to the right host:

The authenticity of host '69.28.xx.xx (69.28.xx.xx)' can't be established.
RSA key fingerprint is 75:98:a9:3d:f8:e7:48:bf:05:c9:1b:ea:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes

Check if Your System Has Quotas Enabled

mount

Find the line that says

/dev/sda1

and if there is no quota enabled, it will say

noquota...
/dev/sda1 on / type xfs (rw,relatime,attr2,inode64,noquota)
...

Edit the default Grub file

By editing the default Grub file, we can specify that the file system should have quotas enabled when the system boots up.

Edit the default Grub file with your favorite editor:

nano /etc/default/grub

Modify the following line from:

GRUB_CMDLINE_LINUX=””

to:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root crashkernel=auto rhgb quiet rootflags=uquota,pquota"

Note: By default, our cPanel Cloud Servers do not have swap enabled. If you have enabled it, you can prepend rd.lvm.lv=centos/swap before rd.lvm.lv=centos/root.

The resulting file should look like this:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root crashkernel=auto rhgb quiet rootflags=uquota,pquota"
GRUB_DISABLE_RECOVERY="true"

Generate the New Grub Configuration File

Now that we have edited the default Grub file, we must use it to generate the Grub bootloader configuration file. First, let’s make a backup of our Grub configuration:

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bakgrub2-mkconfig -o /boot/grub2/grub.cfg

If done correctly, the system will let you know you generated the file successfully.

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.10.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.10.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-17115f95ddd92d410be8cb803e2d845d
Found initrd image: /boot/initramfs-0-rescue-17115f95ddd92d410be8cb803e2d845d.img
done

Finishing Up

In order for the new changes to take effect, let’s reboot the system:

shutdown now

Allow a minute or two for the cPanel server to reboot. Once it has rebooted, SSH back into the server.

ssh [email protected][IP Address]

Let’s check mount again to see if quota shows up now:

mount
...
/dev/sda1 on / type xfs (rw,relatime,attr2,inode64,usrquota,prjquota)
...

As we can now see, user quotas and project quotas are now enabled. You have successfully completed enabling quotas on your Atlantic.Net cPanel Cloud Server!

Your next step is to log in to your cPanel’s WHM to setup quotas: https://[your IP address]:2087. There should no longer be any notification about enabling quotas.

Note: If cPanel is telling you quotas are still not enabled for the filesystem, please run the following command in an SSH terminal:

/scripts/fixquotas

Questions? Comments? Concerns? Let us know in the comments below or email us at [email protected]!


I need HIPAA-compliant hosting. How do I get started?

So you need HIPAA-compliant hosting, and you want to know what the basics to get started are. Before we delve into the details, it helps to know the different types of companies that are concerned with HIPAA, in order to understand your relationship with the hosting provider.

 The Health Insurance Portability and Accountability Act of 1996 (HIPAA) defines two different types of organizations that must meet its parameters: covered entities and business associates. However, there is now a third type of organization that falls under HIPAA rules. Here is basic descriptive information for these categories from the National Institutes of Health (NIH)[i]:

Read More


New York, NY

100 Delawanna Ave, Suite 1

Clifton, NJ 07014

United States

Dallas, TX

2323 Bryan Street,

Dallas, Texas 75201

United States

San Francisco, CA

2820 Northwestern Pkwy,

Santa Clara, CA 95051

United States

Orlando, FL

440 W Kennedy Blvd, Suite 3

Orlando, FL 32810

United States

London, UK

14 Liverpool Road, Slough,

Berkshire SL1 4QZ

United Kingdom

Toronto, Canada

20 Pullman Ct, Scarborough,

Ontario M1X 1E4

Canada

Resources

We use cookies for advertising, social media and analytics purposes. Read about how we use cookies in our updated Privacy Policy. If you continue to use this site, you consent to our use of cookies and our Privacy Policy.